|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Задача, помогите разобраться с процедурой |
|
C/C++ - Задача, помогите разобраться с процедурой
|
Новый участник Сообщения: 4 |
задача такова, необходимо решить выражение с двумя переменными..при этом чтобы программа выводила ошибку при вводе значений не удовлетворяющих ОДЗ, и результат конечно же..
вот программа которая получилась у меня: #include <math.h> #include <stdio.h> #include <conio.h> int x,p,k; float a,b,c; void main() { clrscr(); printf("vvedite znachenije x= "); scanf("\n %d", &x); printf("vvedite znachenie p= "); scanf("\n %d", &p); k=0; reshenie(int x, int p, int k, int c); if (k!=4) { if (k!=3) { if (k!=2) { if (k!=1) { printf("znachenie drobi ravno = %f\n",c); } else printf("v znamenatele 0"); } else printf("pod logarifmom 0"); } else printf("pod kornem 0"); } } float reshenie(int x, int p, int k, float c) { if ((2*x*x-p)>0) { if (x!=-p) { if ((tan(log((x+p)*(x+p))-x*x*pow(p,4)))!=0) { a=3*pow(x,3)*p*p-sqrt(2*x*x-p); b=tan(log((x+p)*(x+p))-x*x*pow(p,4)); c=a/b; k=1; } else k=2; } else k=3; } else k=4; return c; } помогите пожалуйста доделать... |
|
Отправлено: 22:49, 12-12-2011 |
Разный Сообщения: 1294
|
Профиль | Отправить PM | Цитировать |
Отправлено: 02:10, 13-12-2011 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 21
|
Профиль | Отправить PM | Цитировать Сделайте их указателями и не забывайте о разименовании
|
Отправлено: 12:34, 13-12-2011 | #3 |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать ребят, дело в том, что я в си вообще не соображаю, мне ближе паскаль, можно пожалуйста подробнее?
ОДЗ это область значений при которых будет существовать эта функция двух переменных. |
Последний раз редактировалось acidspark, 13-12-2011 в 23:12. Отправлено: 22:56, 13-12-2011 | #4 |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать Я подправил через указатели: Но я там понимаю параметр k не передается в основную программу. Как это исправить??
#include <math.h> #include <stdio.h> #include <conio.h> int x,p,k; float a,b,c; float reshenie(int x, int p, int *k, float c) { int l=*k; if ((2*x*x-p)>0) { if (x!=-p) { if ((tan(log((x+p)*(x+p))-x*x*pow(p,4)))!=0) { a=3*pow(x,3)*p*p-sqrt(2*x*x-p); b=tan(log((x+p)*(x+p))-x*x*pow(p,4)); c=a/b; l=1; } else l=2; } else l=3; } else l=4; *k=l; return c; } int main() { clrscr(); printf("vvedite znachenije x= "); scanf("\n %d", &x); printf("vvedite znachenie p= "); scanf("\n %d", &p); reshenie(x, p, &k, c); if (k!=4) { if (k!=3) { if (k!=2) { if (k!=1) { printf("znachenie drobi ravno = %f\n",c); } else printf("v znamenatele 0"); } else printf("pod logarifmom 0"); } else printf("pod kornem 0"); } getch(); return 0; } |
|
Отправлено: 20:52, 14-12-2011 | #5 |
Разный Сообщения: 1294
|
Профиль | Отправить PM | Цитировать вроде так
#include <math.h> #include <stdio.h> #include <conio.h> int k; float x,p; float a,b,c; double reshenie(float x, float p, int *k, float c) { if ((2*x*x-p)>0) { if (x!=-p) { if ((tan(log((x+p)*(x+p))-x*x*pow(p,4)))!=0) { a=3*pow(x,3)*p*p-sqrt(2*x*x-p); b=tan(log((x+p)*(x+p))-x*x*pow(p,4)); c=a/b; *k=1; } else *k=2; } else *k=3; } else *k=4; return c; } int main() { printf("vvedite znachenije x= "); scanf("\n %f", &x); printf("vvedite znachenie p= "); scanf("\n %f", &p); c=reshenie(x, p, &k, c); if (k!=4) { if (k!=3) { if (k!=2) { if (k!=1) { printf("znachenie drobi ravno = %f\n",c); } else printf("v znamenatele 0"); } else printf("pod logarifmom 0"); } else printf("pod kornem 0"); } getch(); return 0; } |
Отправлено: 02:57, 15-12-2011 | #6 |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать я сделал хитрее немного:
#include <math.h> #include <stdio.h> #include <conio.h> int x,p,k,i,n; float a,b,c; float oshibka (int x, int p, int k) { if ((2*x*x-p)>0) { if (x!=-p) { if ((tan(log((x+p)*(x+p))-x*x*pow(p,4)))!=0) { k=1; } else k=2; } else k=3; } else k=4; return k; } float reshenie (int x, int p, float c) { a=3*pow(x,3)*p*p-sqrt(2*x*x-p); b=tan(log((x+p)*(x+p))-x*x*pow(p,4)); c=a/b; return c; } int main() { clrscr(); printf("vvedite kolichestvo vuchislenii n= "); scanf("\n %d",&n); for (i=1;i<n;i++) { printf("vvedite znachenije x= "); scanf("\n %d", &x); printf("vvedite znachenie p= "); scanf("\n %d", &p); k=oshibka(x, p, k); if (k==4) { printf("pod kornem 0"); } else if (k==3) { printf("pod logarifmom 0"); } else if (k==2) { printf("v znamenatele 0"); } else if (k==1) { c=reshenie(x,p,c); printf("znachenie drobi ravno = %f\n",c); } } getch(); return 0; } |
Отправлено: 23:25, 15-12-2011 | #7 |
Ветеран Сообщения: 3806
|
Профиль | Отправить PM | Цитировать Цитата ferget:
|
|
Отправлено: 11:10, 16-12-2011 | #8 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
MySQL - Помогите с простенькой процедурой/функцией | GregRUS | Программирование и базы данных | 7 | 25-07-2011 02:11 | |
Помогите! что это за задача csrss.exe!? | pavlunya | Лечение систем от вредоносных программ | 1 | 20-06-2011 22:39 | |
C/C++ - Помогите разобраться | morgan1991 | Программирование и базы данных | 3 | 04-11-2008 17:16 | |
HDD - Помогите разобраться! | hack | Накопители (SSD, HDD, USB Flash) | 4 | 02-03-2008 06:45 | |
Помогите разобраться.... | alex e | О сайте и форуме | 2 | 03-04-2002 09:17 |
|