![]() |
|
Модераторы: Poseidon |
![]()
|
|
| serg1L1 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 14.3.2010 Репутация: нет Всего: нет |
Написать функцию печатанье таблицы (в виде аргумент - значение функции) на экран та в файл (имя задаётся пользователем), параметрами которой есть массив указателей на функцию, та количество елементов в этом массиве, что вычесляются: (cos(x)/sin(x))+(sin(x)/cos(x)); и (cos(x)/sin(x))+(sin(x)/cos(x));
Вот код программы: #include <stdio.h> #include <math.h> typedef double val_type; typedef val_type(func)(val_type); val_type math_func(double x) { val_type res=(cos(x)/sin(x))+(sin(x)/cos(x)); if (x==0 || x==1) throw(1); return res; } val_type math2_func(double x) { val_type res1=(cos(x)/sin(x))+(sin(x)/cos(x)); if (x==0 || x==1) throw(1); return res1; } void save (val_type start_x, val_type end_x,val_type step, func *f,int n,char *m1) { FILE*IN; IN=fopen(m1,"w"); for(int i=0;i<n;i++) { for (;start_x<=end_x;start_x+=step) try { fprintf(IN,"%6.4f->%6.4f\n",start_x,f[i](start_x)); // сдесь ошибка (наименование ошибки: индекс требует массив или тип указателя) printf("%6.4f->%6.4f\n",start_x,f[i](start_x)); } catch (int) { fprintf(IN,"%i->%i\n",start_x,"mathematics not know this"); printf("%i->%i\n",start_x,"mathematics not know this"); } } fclose(IN); } int main () { float start_x,end_x,step; char m1[256]; func *funcar[2]; funcar[0] = math_func; funcar[1] = math2_func; printf("Enter the start of x:\n"); scanf("%f",&start_x); printf("Enter the end of x:\n"); scanf("%f",&end_x); printf("Enter the step of x:\n"); scanf("%f",&step); printf ("Please enter a name of file\n"); scanf("%s",&m1); save(start_x, end_x, step, math_func,2,m1); save(start_x, end_x, step, math2_func,2,m1); return 0; } |
|||
|
||||
| smalcom |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 494 Регистрация: 16.10.2004 Где: Dnepr Репутация: нет Всего: 7 |
Это сообщение отредактировал(а) smalcom - 15.4.2010, 15:31 -------------------- What DA F...??? |
|||
|
||||
| serg1L1 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 14.3.2010 Репутация: нет Всего: нет |
fprintf(IN,"%6.4f->%6.4f\n",start_x,f[i](start_x)); // сдесь ошибка (наименование ошибки: индекс требует массив или тип указателя) а именно с этим ему что-то не нравитсяf[i](start_x) |
|||
|
||||
| smalcom |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 494 Регистрация: 16.10.2004 Где: Dnepr Репутация: нет Всего: 7 |
блин. сорри. чета туплю.
там же указатель на функцию? зачем тогда стоит [i]? Добавлено через 1 минуту и 27 секунд
и это зачем? -------------------- What DA F...??? |
|||
|
||||
| serg1L1 |
|
||||||||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 14.3.2010 Репутация: нет Всего: нет |
спасибо. всё заработало))))) у тебя есть аська? Добавлено через 1 минуту и 35 секунд
в задании сказано. |
||||||||
|
|||||||||
| smalcom |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 494 Регистрация: 16.10.2004 Где: Dnepr Репутация: нет Всего: 7 |
не пользуюсь. и лучше тут на форуме - може у кого еще похожие проблемы возникнут, а здесь можно посмотреть решение -------------------- What DA F...??? |
|||
|
||||
| serg1L1 |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 13 Регистрация: 14.3.2010 Репутация: нет Всего: нет |
smalcom, я цикл убрал. задание выполнено так, как в условии?
|
|||
|
||||
| smalcom |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 494 Регистрация: 16.10.2004 Где: Dnepr Репутация: нет Всего: 7 |
угу, мне кажется цикл там лишний, как и параментр в функции. может это "солянка" и раньше там через вызов функции и указание номера в массиве созраняло результаты указаной функции из массива, а у тебя всеравно указатель прямой на функцию передается. так что все должно работать теперь
-------------------- What DA F...??? |
|||
|
||||
![]()
|
| Правила форума "Центр помощи" | |
|
|
ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Более подробно с правилами данного раздела Вы можете ознакомится в этой теме. Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Центр помощи | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |