Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 18.10.2012
Сообщений: 15

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

18.10.2012, 21:27. Показов 1372. Ответов 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
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
18.10.2012, 21:27
Ответы с готовыми решениями:

Переписать функцию с использованием указателей
Подскажите пожалуйста как выполнить задание::wall: Перепишите функцию revers с использованием указателей #include...

Переписать код с использованием указателей
помогите пожалуйста, нужно не использовать а все сделать через указатели #include &quot;stdafx.h&quot; #include &quot;math.h&quot; ...

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

15
9 / 9 / 0
Регистрация: 05.07.2012
Сообщений: 38
18.10.2012, 21:31
Я не очень понял сути задания, но если тебе нужен указатель на функцию то используй что-то вроде:
float(*fptr)(float, float) = &sum;
(*fptr)(a, b);
0
0 / 0 / 0
Регистрация: 18.10.2012
Сообщений: 15
18.10.2012, 21:33  [ТС]
Цитата Сообщение от Marko Посмотреть сообщение
Я не очень понял сути задания, но если тебе нужен указатель на функцию то используй что-то вроде:
Суть в том, чтобы эту программу записать с помощью указателей!
0
9 / 9 / 0
Регистрация: 05.07.2012
Сообщений: 38
18.10.2012, 21:38
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
0 / 0 / 0
Регистрация: 18.10.2012
Сообщений: 15
18.10.2012, 21:42  [ТС]
Программа не компилируется даже (

Теперь работает! А можно поподробнее Вот это строки расписать, что они делают и зачем они там???
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
9 / 9 / 0
Регистрация: 05.07.2012
Сообщений: 38
18.10.2012, 21:51
C++
1
float *a = new float()
Выделение памяти для указателя.


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

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

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

Добавлено через 1 минуту
И еще, а зачем нам вот это? (*fptr)
0
9 / 9 / 0
Регистрация: 05.07.2012
Сообщений: 38
18.10.2012, 21:58
Ну ты же прочил всё через указатели, так держи всё, в том числе функции.
Есть еще указатели на методы класса, но это совсем темный лес.
1
0 / 0 / 0
Регистрация: 18.10.2012
Сообщений: 15
18.10.2012, 21:59  [ТС]
Если вам не трудно, возможно бы еще эту задачу так переделали?)
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
9 / 9 / 0
Регистрация: 05.07.2012
Сообщений: 38
18.10.2012, 22:00
Повтори по аналогии.
У меня нет под рукой ничего компилирующего, посему даже если я переделаю, то за работоспособность не отвечаю.
0
0 / 0 / 0
Регистрация: 18.10.2012
Сообщений: 15
18.10.2012, 22:03  [ТС]
Цитата Сообщение от Marko Посмотреть сообщение
У меня нет под рукой ничего компилирующего, посему даже если я переделаю, то за работоспособность не отвечаю
Мне главное чтобы основание было, а если что-то не так то и я сам уже смогу исправить!
0
 Аватар для defer
577 / 256 / 18
Регистрация: 29.11.2010
Сообщений: 868
18.10.2012, 22:10
Marko, компилятор online http://liveworkspace.org/
0
 Аватар для Nazek
0 / 0 / 0
Регистрация: 28.10.2012
Сообщений: 6
28.10.2012, 15:36
извини за тупой вопрос, А можешь поподробнее Вот эти строки расписать?

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

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include "stdafx.h"
#include <conio.h>
#include <stdlib.h>
#include <iostream>
 
using namespace std;
 
float sum(float *x,float *y)
{
    float c = (*x+*y)/2;
    return c;
}
 
 
void main()
{
    float a,b;
    a = 3;
    b = 2;
    cout<<"Srednee arifmeticheskoe:"<<sum(&a,&b)<<"\n";
    getch();
    //return 0;
}
Всё остальное уже сам доделаешь, это пример.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
29.10.2012, 11:11
Помогаю со студенческими работами здесь

Как правильней переписать код с использованием умных указателей?
Всем привет. Есть код: TImage *im1 = new TImage(NULL); TImage *im2 = new TImage(NULL); TPngImage* png = new TPngImage(); ...

Переписать код с использованием указателей
Помогите сделать указатели... #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;locale.h&gt; #define SIZE 5 int func( int...

Переписать код с использованием указателей
Есть код на C,надо заменить на указатели. #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;locale.h&gt; int prov(int a) { ...

Переписать программу с использованием указателей
поменяйте, пожалуйста, из индексов в указатели #include &lt;stdio.h&gt;; int cmp_cresc ( const int* x, const int* y ) // Initiem un...

Переписать с использованием указателей и адресов
#include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;time.h&gt; #define n 10 int main (void) { srand(time(NULL)); int x; int i,...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru