Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Задача, помогите разобраться с процедурой

Ответить
Настройки темы
C/C++ - Задача, помогите разобраться с процедурой

Новый участник


Сообщения: 4
Благодарности: 0

Профиль | Отправить PM | Цитировать


задача такова, необходимо решить выражение с двумя переменными..при этом чтобы программа выводила ошибку при вводе значений не удовлетворяющих ОДЗ, и результат конечно же..
вот программа которая получилась у меня:



Код: Выделить весь код
#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;
}
Мне нужно чтобы в основную программу процедура возвращала c - результат и k - код ошибки...
помогите пожалуйста доделать...

Отправлено: 22:49, 12-12-2011

 

Аватара для ferget

Разный


Сообщения: 1294
Благодарности: 359

Профиль | Отправить PM | Цитировать


Цитата acidspark:
не удовлетворяющих ОДЗ »
что это такое?

в с++/с процедур нет, только функции

Отправлено: 02:10, 13-12-2011 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Verholom

Новый участник


Сообщения: 21
Благодарности: 2

Профиль | Отправить PM | Цитировать


Сделайте их указателями и не забывайте о разименовании
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:34, 13-12-2011 | #3


Новый участник


Сообщения: 4
Благодарности: 0

Профиль | Отправить PM | Цитировать


ребят, дело в том, что я в си вообще не соображаю, мне ближе паскаль, можно пожалуйста подробнее?

ОДЗ это область значений при которых будет существовать эта функция двух переменных.

Последний раз редактировалось acidspark, 13-12-2011 в 23:12.


Отправлено: 22:56, 13-12-2011 | #4


Новый участник


Сообщения: 4
Благодарности: 0

Профиль | Отправить 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


Аватара для ferget

Разный


Сообщения: 1294
Благодарности: 359

Профиль | Отправить 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
Благодарности: 0

Профиль | Отправить 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
Благодарности: 824

Профиль | Отправить PM | Цитировать


Цитата ferget:
в с++/с процедур нет, только функции »
процедура - это передача параметров по ссылке и оно в c++ есть

Отправлено: 11:10, 16-12-2011 | #8



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » C/C++ - Задача, помогите разобраться с процедурой

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
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




 
Переход