Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
deamoning
0 / 0 / 0
Регистрация: 06.01.2015
Сообщений: 12
1

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

07.01.2015, 09:14. Просмотров 841. Ответов 12
Метки нет (Все метки)

всем доброго времени суток! вроде код правильный, помогите найти ошибку!!
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
31
32
33
#include <iostream.h>
#include <math.h> 
 
double Calculatea(double x,double y,double z)
{
    return ((y-x)*((y-z/(y-x))/1+(x-y)*(x-y)));
}
 
double Calculateb(double z)
{
    return (1+((z*z)/(3+(z*z)/5)));
}
 
main( )
{
    double x, y, z, Result;
    cout << "Input x, y, z: "<<endl;
    cin >> x >> y >> z;
    
    // îáúÿâëåГ*ГЁГҐ Г¬Г*Г±Г±ГЁГўГ* ГіГЄГ*Г§Г*òåëåé Г*Г* ГґГіГ*êöèè
    double (*Calculate[2]) (double,double,double);
    
    // ïðèñâîåГ*ГЁГҐ Г*äðåñîâ ГґГіГ*êöèé ГіГЄГ*Г§Г*òåëÿì 
    Calculate[0]=Calculatea;
    Calculate[1]=Calculateb;
    
    // âûçîâ ГґГіГ*êöèé Г± ïîìîùüþ ГіГЄГ*Г§Г*òåëåé
    Result=(*Calculate[0]) (x,y,z);
    cout <<" Result a= " << Result << endl;
    Result=(*Calculate[1]) (b);
    cout <<" Result b= " << Result << endl;
    return 0;
}
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.01.2015, 09:14
Ответы с готовыми решениями:

Программирование задач с использованием строк
Нужно введите строку символов. Подсчитать и ввести на экран количество...

Программирование с использованием функций
Получите все двузначные натуральные числа в которых нет одинаковых цифр....

Программирование задач с использованием классов. Определение класса «стек»
Определить класс «стек». В класс необходимо включить два конструктора:...

Программирование задач с использованием комбинированного типа данных или структур
Написать программу данных задач используя комбинированный тип: Абитуриенты...

Программирование комбинированных задач на языке С++
Помогите написать программу с использованием файлов и структур. Заполнить...

12
grikukan
62 / 62 / 54
Регистрация: 23.09.2012
Сообщений: 212
07.01.2015, 09:34 2
Так у Вас же функции разных типов. Одна double(double), другая double(double,double,double). Их нельзя кидать в один массив, так же как в один массив нельзя кидать int и unordered_map<set<pair<int,long double> >,string>
0
deamoning
0 / 0 / 0
Регистрация: 06.01.2015
Сообщений: 12
07.01.2015, 10:04  [ТС] 3
а как ее исправить,сколько пробовал не получается, что то упускаю постоянно((( помогите пожалуйста!
0
zss
Модератор
Эксперт С++
7188 / 6682 / 4231
Регистрация: 18.12.2011
Сообщений: 17,635
Завершенные тесты: 1
07.01.2015, 10:09 4
Объявите
C++
1
2
3
4
double Calculateb(double z,double,double)
{
    return (1.+((z*z)/(3.+(z*z)/5.)));
}
И вызов:
C++
1
Result=(*Calculate[1]) (x,0,0);

Не по теме:

Не используйте целочисленные константы в выражениях с вещественными числами
Во избежание ошибок.
Распространенные ошибки

0
deamoning
0 / 0 / 0
Регистрация: 06.01.2015
Сообщений: 12
07.01.2015, 10:18  [ТС] 5
C:\Documents and Settings\XPMUser\Ðàáî÷èé ñòîë\Íîâàÿ ïàïêà\Íîâàÿ ïàïêà (5)\22.cpp(9) : error C2146: syntax error : missing ';' before identifier 'Calculateb'
C:\Documents and Settings\XPMUser\Ðàáî÷èé ñòîë\Íîâàÿ ïàïêà\Íîâàÿ ïàïêà (5)\22.cpp(9) : error C2501: 'ddouble' : missing storage-class or type specifiers
C:\Documents and Settings\XPMUser\Ðàáî÷èé ñòîë\Íîâàÿ ïàïêà\Íîâàÿ ïàïêà (5)\22.cpp(9) : fatal error C1004: unexpected end of file found
Error executing cl.exe.
0
Enno
267 / 170 / 40
Регистрация: 25.08.2014
Сообщений: 1,087
Записей в блоге: 1
07.01.2015, 11:24 6
ddouble - чё за тип такой?
0
deamoning
0 / 0 / 0
Регистрация: 06.01.2015
Сообщений: 12
07.01.2015, 11:27  [ТС] 7
незнаю. выдает эти ошибки и хоть тресни. и что с кодом и где что поменять так и не понял... исходник сверху.
0
Enno
267 / 170 / 40
Регистрация: 25.08.2014
Сообщений: 1,087
Записей в блоге: 1
07.01.2015, 12:03 8
Цитата Сообщение от deamoning Посмотреть сообщение
исходник сверху.
Судя по ошибкам это уже устаревший исходник. Актуальный в студию.
0
zss
Модератор
Эксперт С++
7188 / 6682 / 4231
Регистрация: 18.12.2011
Сообщений: 17,635
Завершенные тесты: 1
07.01.2015, 12:05 9
Все происходит в 9 строке Вашего кода.
Там вместо double написано ddouble

Не по теме:

Если бы просто скопировали код из поста 4,
то такой ошибки не было бы....

0
KOPOJI
07.01.2015, 12:07
  #10

Не по теме:

deamoning, не надо трескать. Просто исправьте "ddouble" на "double" в той строке, где вам рисует IDE...

0
deamoning
0 / 0 / 0
Регистрация: 06.01.2015
Сообщений: 12
07.01.2015, 12:07  [ТС] 11
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
31
32
33
34
35
36
#include <iostream.h>
#include <math.h> 
 
double Calculatea(double x,double y,double z)
{
    return ((y-x)*((y-z/(y-x))/1+(x-y)*(x-y)));
}
 
double Calculateb(double z,double,double)
{
    return (1+((z*z)/(3+(z*z)/5)));
}
 
main( )
{
    double x, y, z, Result;
    cout << "Input x, y, z: "<<endl;
    cin >> x >> y >> z;
    
    // объявление массива указателей на функции
    double (*Calculate[2]) (double,double,double);
    double (*Calculate[3]) (double);
 
    
    // присвоение адресов функций указателям 
    Calculate[0]=Calculatea;
    Calculate[1]=Calculateb;
    
    // вызов функций с помощью указателей
    Result=(*Calculate[0]) (x,y,z);
    cout <<" Result a= " << Result << endl;
    Result=(*Calculate[1]) (z,0,0);
 
    cout <<" Result b= " << Result << endl;
    return 0;
}
0
zss
Модератор
Эксперт С++
7188 / 6682 / 4231
Регистрация: 18.12.2011
Сообщений: 17,635
Завершенные тесты: 1
07.01.2015, 12:16 12
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

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
31
32
33
34
35
36
#include <iostream>
using namespace std; 
double Calculatea(double x,double y,double z)
{
    return ((y-x)*((y-z/(y-x))/1.+(x-y)*(x-y)));
}
 
double Calculateb(double z,double,double)
{
    return (1.+((z*z)/(3.+(z*z)/5.)));
}
 
int main( )
{
    double x, y, z, Result;
    cout << "Input x, y, z: "<<endl;
    cin >> x >> y >> z;
    
    // объявление массива указателей на функции
    double (*Calculate[2]) (double,double,double);
    //double (*Calculate[3]) (double);
 
    
    // присвоение адресов функций указателям 
    Calculate[0]=Calculatea;
    Calculate[1]=Calculateb;
    
    // вызов функций с помощью указателей
    Result=(*Calculate[0]) (x,y,z);
    cout <<" Result a= " << Result << endl;
    Result=(*Calculate[1]) (z,0,0);
 
    cout <<" Result b= " << Result << endl;
    system("pause");
    return 0;
}
1
Enno
267 / 170 / 40
Регистрация: 25.08.2014
Сообщений: 1,087
Записей в блоге: 1
07.01.2015, 12:16 13
Конфликт имён Calculate[2] и Calculate[3].
0
07.01.2015, 12:16
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.01.2015, 12:16

Программирование задач обработки файлов
Дан файл f, компоненты которого являются целыми числами. Записать в файл g...

Программирование задач обработки структур и файлов
помогите пожалуйста! Даны сведения о студентах группы: ФИО студента, дата...

Программирование задач обработки структур и файлов
Задание: Даны сведения о результатах сессии: ФИО студента, названия четырех...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

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