Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.11.2012, 21:44   #1
Bar1V1en
 
Регистрация: 04.05.2012
Сообщений: 6
По умолчанию Аналог SWITCH

Здравствуйте!

Подскажите пожалуйста какой-нибудь способ, кроме введения новой переменной для подсчёта ошибок в программе.

Код:
#include <iostream>
#include <fstream>
#include <math.h>

using namespace std;

#define M_PI       3.14159265358979323846

int Input();
int account();
int operacion1 ();
int operacion2 ();
int operacion3 ();
int Output ();

int error =0;
int b,c,n,z;
double y11,t;
float x,a,y22,y33;

		ifstream file("Input.in");
		ofstream fileout("Output.out");

int main()
{
error =	Input ();
error =	account ();
error =	operacion1 ();
error =	operacion2 ();
error =	operacion3 ();
error =	Output ();
}	

int Input ()
	{
			if (!file)
			{return 01;}
return 00;	}
	
int account ()
	{
		char ch;
				file >> ch >> ch >> a; 
				file >> ch >> ch >> b;
				file >> ch >> ch >> c;
				file >> ch >> ch >> t;
				file >> ch >> ch >> n;
				file >> ch >> ch >> z;
file.close();
				if (file.fail ())
				{
					return 02;
					// если нет какой-то переменной.
				}
return 00;
}

int operacion1 ()
{
		y11 =M_PI*((exp(1/a))+b/a)/abs(t) * exp(M_PI*t) * (sqrt(24*23.6)/pow(a*pow(x,n),1/5)) ;
		
		if (t==0)
		{
			return 03;
		}
		
		if ( pow(a*pow(x,n),1/5)<0)
		{
			return 06;
		}

		fileout << "Первый У = " << y11 << endl;	
return 00;}
int operacion2 ()
	{
		if ( x > 0)
		{
			y22 = z*z + log(a +b*c)/x ;

				if (x==0)
				{return 03;}
				if (a+b*c >= 0)
				{return 05;}

		}
		else
			if ( x<=0 && (x*z)>0 )
			{y22 = sqrt(z*x) * sin(a*x) ;}
			else
		y22 = 1;

		fileout << "Второй У = " << y22 << endl;
return 00;	
}
int operacion3 ()
{	
		for (a=0;a<n;a++)
		{
			y33 = 2 + (pow(-1,a+1)) * ((1/((2*a + 1) + 1)/((2*a)+2)));
		}
		if ( (2*a + 1) ==0 || ((2*a)+2) ==0)
		{
			return 03;
		}
	fileout << "Третий У = " << y33 << endl;
return 00;
}
	
int Output ()
	{
		switch(error) 
		{
		case 00: fileout << " OK " ;
			break;
		case 01: fileout << " Нет файла" ;
			break;
		case 02: fileout << " Нет какой-то переменной";
			break;
		case 03: fileout << " Знаменатель не может быть равен 0";
			break;
		case 05: fileout << " Не возможно из-за свойства логарифма ";
			break;
		case 06: fileout << " Подкоренное выражение не отрицательно ";
			break;
		default: fileout << "---";
			break;
		}

	fileout.close();
return 0; }
Т.е. сейчас в конечный файл он выведет только второе, третье значение и "ОК".
(На входном файле значения могут быть любые, главное что бы "t" было равно 0.

С уважением
Bar1V1en

P.S. Нужно что бы не перезаписывалось, а запоминались "возвратные" значения
Bar1V1en вне форума Ответить с цитированием
Старый 10.11.2012, 22:04   #2
rUs_LAN
Форумчанин
 
Регистрация: 15.11.2008
Сообщений: 577
По умолчанию

ничего не понял но отписал,в лучших традициях интернета

вот здесь можно посмотреть
rUs_LAN вне форума Ответить с цитированием
Старый 10.11.2012, 22:08   #3
Bar1V1en
 
Регистрация: 04.05.2012
Сообщений: 6
По умолчанию

Вопрос ещё актуален, хотя я вышел из затруднения с помощью :
Код:
{
error =	Input ();
if (error != 0)
{error = Output();}
else
error =	account ();;
if (error != 0)
{error = Output();}
else
error =	operacion1 ();
if (error != 0)
{error = Output();}
else
error =	operacion2 ();
if (error != 0)
{error = Output();}
else
error =	operacion3 ();
error =	Output();
}
Bar1V1en вне форума Ответить с цитированием
Старый 10.11.2012, 22:39   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
хотя я вышел из затруднения с помощью
Я тоже так делаю. Нормальный способ.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C# switch Sna1L Помощь студентам 2 07.07.2011 15:00
C++ Switch Sonny01 Помощь студентам 2 12.11.2010 22:38
switch G. J. Cezar Общие вопросы C/C++ 2 16.10.2010 14:06
switch Артэс Общие вопросы C/C++ 40 29.05.2010 20:11
Switch Division Общие вопросы C/C++ 3 11.01.2009 23:52