Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Anton21
0 / 0 / 0
Регистрация: 18.10.2012
Сообщений: 15
#1

Переписать код с использованием указателей на функцию - C++

18.10.2012, 21:27. Просмотров 707. Ответов 15
Метки нет (Все метки)

Помогите вот эту программу переделать на указатели! Спасибо всем)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
#include <locale.h>
#include <conio.h>
using namespace std;
float sum(float,float);
int main()
{
    float a,b;
    setlocale(LC_ALL,"ukrainian");
    do
    {
    cout<<"Введiть два числа:";
    cin>>a>>b;
    cout<<"Cереднє гармонiчне:"<<sum(a,b)<<"\n";
     }
    while(a!=0 && b!=0);
    getch();
    return 0;
}
float sum(float x,float y)
{
    float c=(2*x*y)/(x+y);
    return c;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.10.2012, 21:27
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Переписать код с использованием указателей на функцию (C++):

Переписать функцию с использованием указателей - C++
Подскажите пожалуйста как выполнить задание::wall: Перепишите функцию revers с использованием указателей #include &lt;iostream&gt; ...

Переписать приведенный код с использованием указателей - C++
Есть такой код с функциями. Надо его реализовать через указатели. 3 задания к лабе сделал, а вот ето незнаю как( #include &lt;stdio.h&gt; ...

Подскажите как переписать класс с использованием умных указателей, либо STL - C++
К сожалению, знания об умных указателях и библиотеке STL прошли мимо меня... Сейчас пытаюсь восполнить этот пробел, но уже третий день не...

Переписать код без указателей - C++
Ввести в память машины одномерный целочисленный массив,используя динамическое выделение памяти,найти количество максимальных...

код с использованием указателей - C++
Привет многоуважаемые пользователи не могли бы вы помоч в решение проблемы суть такова как сделать так что у нас выводилось в консоль не ...

Переделать код с использованием указателей - C++
Всем доброго времени суток. Подскажите как еще можно написать программу к следующему заданию через указатели, сказали что указатели...

15
Marko
9 / 9 / 0
Регистрация: 05.07.2012
Сообщений: 38
18.10.2012, 21:31 #2
Я не очень понял сути задания, но если тебе нужен указатель на функцию то используй что-то вроде:
float(*fptr)(float, float) = &sum;
(*fptr)(a, b);
0
Anton21
0 / 0 / 0
Регистрация: 18.10.2012
Сообщений: 15
18.10.2012, 21:33  [ТС] #3
Цитата Сообщение от Marko Посмотреть сообщение
Я не очень понял сути задания, но если тебе нужен указатель на функцию то используй что-то вроде:
Суть в том, чтобы эту программу записать с помощью указателей!
0
Marko
9 / 9 / 0
Регистрация: 05.07.2012
Сообщений: 38
18.10.2012, 21:38 #4
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <iostream>
#include <locale.h>
#include <conio.h>
using namespace std;
float* sum(float*,float*);
int main()
{
    float *a = new float(),
           *b = new float();
    float*(*fptr)(float* float*) = &sum;
    setlocale(LC_ALL,"ukrainian");
    do
    {
    cout<<"Введiть два числа:";
    cin>>*a>>*b;
    float* c = (*fptr)(a,b);
    cout<<"Cереднє гармонiчне:"<<*c<<"\n";
     }
    while(*a && *b);
    delete a;
    delete b;
    delete c;
    getch();
    return 0;
}
float* sum(float* x,float* y)
{
    float* c= new float((2*(*x)*(*y))/((*x)+(*y)));
    return c;
}
Держи, тут все на указателях.
0
Anton21
0 / 0 / 0
Регистрация: 18.10.2012
Сообщений: 15
18.10.2012, 21:42  [ТС] #5
Программа не компилируется даже (

Теперь работает! А можно поподробнее Вот это строки расписать, что они делают и зачем они там???
C++
1
2
3
float *a = new float(),
           *b = new float();
    float*(*fptr)(float* float*) = &sum;

C++
1
2
3
delete a;
    delete b;
    delete c;
0
Marko
9 / 9 / 0
Регистрация: 05.07.2012
Сообщений: 38
18.10.2012, 21:51 #6
C++
1
float *a = new float()
Выделение памяти для указателя.


C++
1
float*(*fptr)(float*, float*) = &sum;
Создание указателя на функцию.

C++
1
delete a;
Освобождение выделенной памяти.

А вообще, программа выше - сарказм.
1
Anton21
0 / 0 / 0
Регистрация: 18.10.2012
Сообщений: 15
18.10.2012, 21:53  [ТС] #7
Цитата Сообщение от Marko Посмотреть сообщение
А вообще, программа выше - сарказм.
Я только учусь))

Добавлено через 1 минуту
И еще, а зачем нам вот это? (*fptr)
0
Marko
9 / 9 / 0
Регистрация: 05.07.2012
Сообщений: 38
18.10.2012, 21:58 #8
Ну ты же прочил всё через указатели, так держи всё, в том числе функции.
Есть еще указатели на методы класса, но это совсем темный лес.
1
Anton21
0 / 0 / 0
Регистрация: 18.10.2012
Сообщений: 15
18.10.2012, 21:59  [ТС] #9
Если вам не трудно, возможно бы еще эту задачу так переделали?)
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#include <iostream>
#include <conio.h>
using namespace std;
 
int min(int ,int);
int max(int ,int);
int main()
{
    int a,b,c,y;
    cout<<"vv a b c ";
    cin>>a>>b>>c;;
    y = min(a,b+c)+max(a*b,c)-min(a*2,c);
    cout <<"y= "<< y <<endl;
    getch();
    return 0;
}
int min(int x,int y) 
{                                 
    if (x > y) return y;
    else
        return x;
}
int max(int x,int y)
{
    if (x > y) return x;
    else return y;
}
0
Marko
9 / 9 / 0
Регистрация: 05.07.2012
Сообщений: 38
18.10.2012, 22:00 #10
Повтори по аналогии.
У меня нет под рукой ничего компилирующего, посему даже если я переделаю, то за работоспособность не отвечаю.
0
Anton21
0 / 0 / 0
Регистрация: 18.10.2012
Сообщений: 15
18.10.2012, 22:03  [ТС] #11
Цитата Сообщение от Marko Посмотреть сообщение
У меня нет под рукой ничего компилирующего, посему даже если я переделаю, то за работоспособность не отвечаю
Мне главное чтобы основание было, а если что-то не так то и я сам уже смогу исправить!
0
defer
秘密
555 / 235 / 3
Регистрация: 29.11.2010
Сообщений: 783
18.10.2012, 22:10 #12
Marko, компилятор online http://liveworkspace.org/
0
Nazek
0 / 0 / 0
Регистрация: 28.10.2012
Сообщений: 6
28.10.2012, 15:36 #13
извини за тупой вопрос, А можешь поподробнее Вот эти строки расписать?

C++
1
2
3
4
5
6
 cout<<"Cереднє гармонiчне:"<<sum(a,b)<<"\n";
     }
    while(a!=0 && b!=0);
    getch();
    return 0;
}
0
_arty_
29 / 28 / 1
Регистрация: 10.07.2009
Сообщений: 317
28.10.2012, 18:56 #14
Разве так среднее арифметическое находят?
Я думал это сумма всех чисел в наборе, делённое на их количество....
По поводу куска кода - ждём пока a и b не будут равны нулю, до тех пор будем "долбить" на клавишу "Space".
0
Nazek
0 / 0 / 0
Регистрация: 28.10.2012
Сообщений: 6
28.10.2012, 19:21 #15
Цитата Сообщение от >arty< Посмотреть сообщение
ждём пока a и b не будут равны нулю, до тех пор будем "долбить" на клавишу "Space".
спасибо
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.10.2012, 19:21
Привет! Вот еще темы с ответами:

Написать функцию, находящую корни уравнения методом хорд с использованием указателей - C++
Написать функцию, находящую корни уравнения методом хорд. Аргументы этой функции: указатель на функцию, задающую уравнение; интервал...

Переписать код с использованием шаблонов - C++
Помогите переписать код через шаблоны , не совсем ясно понимаю , как их в данном случае использовать.. #include &lt;iostream&gt; ...

Переписать код с использованием цикла while - C++
здравствуйте, помогите мне пожалуйста переделать код, нужно что б было через while\ #include &lt;iostream&gt; using namespace std; ...

Переписать код с использованием функций - C++
Народ, помогите плиз. надо переписать этот код так, чтобы были функции #include &lt;windows.h&gt; #include &lt;iostream&gt; #include &lt;stdlib.h&gt; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Yandex
Объявления
28.10.2012, 19:21
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru