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

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

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.03.2013, 19:42   #1
Narami
Новичок
Джуниор
 
Аватар для Narami
 
Регистрация: 16.03.2013
Сообщений: 2
Печаль Возникли проблемы с созданием самого файла

Составить программу для вычисления значения неэлементарной функции y = f(x). Реализовать решение несколькими способами:
1) полное ветвление;
2) краткая форма ветвления с использованием составных логических выражений;
3) с использованием условной операции.
Подобрать самостоятельно значения входных данных, демонстрирующие правильность работы программы. Количество тестов должно быть не менее 7 (внутри каждого интервала и на границах).
Аргумент функции прочитать из заранее подготовленного текстового файла In.txt, полученное значение функции вывести на экран и записать в выходной файл Out.txt
4) Написать программу, которая запрашивает аргумент функции x и номер формулы, по которой происходит вычисление (самая верхняя формула – № 1, самая нижняя – № 4). Предусмотреть ввод некорректных данных (номер меньше 1 или больше 4) и случай, когда x не входит в область определения вычисляемой функции.
Подобрать самостоятельно значения входных данных, демонстрирующие правильность работы программы. Количество тестов должно обеспечивать проверку работы каждой формулы (с учётом области определения), а также случай, когда не может быть выбрана ни одна из четырёх формул.

Отчётом о проделанной работе является текстовый файл в сетевой папке (имя файла содержит информацию о фамилии, группе и подгруппе, порядковом номере лабораторной работы и номере варианта).
В отчёте должны быть:
тексты всех четырёх программ;
входные данные для тестирования и ожидаемый результат (для первых трёх задач тесты совпадают, для четвёртой – в соответствии с условиями задачи.

y = (cos(x)+14/sin(x)+7) при x <=4
y = sqrt(x+log(abs(x-8)+10)) при 4 <= x < 12
y = sqrt(x-13) при 12 <= x < 3
y = 5*x при x>=38

Код:
#include <iostream>
#include <cmath>
#include <fstream>
using namespace std;

/*
Функция y = f(x):
y = (cos(x)+14/sin(x)+7) при x <=4
y = sqrt(x+log(abs(x-8)+10)) при 4 <= x < 12
y = sqrt(x-13) при 12 <= x < 3
y = 5*x при x>=38
*/

// полное ветвление
double FullBran (double x,y,a,b,c)
{
a=sin(x)+7;
b=x+log(abs(x-8)+10;
c=x-13;
if (x<= 4 && a!=0)
y=(cos(x)+14/a);
else
{
if (4<=x && X<12 && b>0)
y=sgrt(b);
else
{
if (12<=x && x<3 && c>0)
y=sqrt(c);
else
{
if (x>=38)
y=5*x;
cout<<"y="<<y<<endl;
}
}
}
}

//краткая форма ветвления с использованием составных логических выражений
double ShortBran (double x,y,a,b,c)
{
a=sin(x)+7;
b=x+log(abs(x-8)+10;
c=x-13;
if (x<= 4 && a!=0)
y=(cos(x)+14/a);
if (4<=x && X<12 && b>0)
y=sgrt(b);
if (12<=x && x<3 && c>0)
y=sqrt(c);
if (x>=38)
y=5*x;
cout<<"y="<<y<<endl;
}

//с использованием условной операции
double CondOper (double x,y)
{
(x<=4) ? (y = (cos(x)+14/sin(x)+7)):
(4<=x && X<12) ? (y=sqrt(x+log(abs(x-8)+10))): (12<=x && x<3) ? (y=sqrt(x-13)) : (x>=38) ? (y=5*x);
count<<"y="<<y<<endl;
}
int main()
{
{
ifstream infile;
infile.open("In.txt");
ofstream outfile;
outfile.open("Out.txt");
while (!infile.eof())
{
infile >> x;
outfile << FullBran << "    " << ShortBran << "    " << CondOper << endl;
}
cout << "See file: Out.txt" << endl;
infile.close();
outfile.close();
return 0;
}
setlocale(LC_ALL, "Russian");
a=sin(x)+7;
b=x+log(abs(x-8)+10;
c=x-13;
switch(d)
{
if (d>=1 && d<=4)
{
case 1:  cout<< "№1" ; if (x<= 4 && a!=0)
y=(cos(x)+14/a) ; break;
case 2:  cout<< "№2";if (4<=x && X<12 && b>0)
y=sgrt(b) ; break;
case 3:  cout<< "№3" ; if (12<=x && x<3 && c>0)
y=sqrt(c); break;
case 4:  cout<< "№4" ;if (x>=38)
y=5*x; break;
}
else
cout<<"ошибка =";
default : cout<<"ошибка";d=0;
}
cout<<"***
system("pause");
}

Последний раз редактировалось Narami; 16.03.2013 в 20:59. Причина: код программы
Narami вне форума Ответить с цитированием
Старый 26.03.2013, 12:50   #2
Narami
Новичок
Джуниор
 
Аватар для Narami
 
Регистрация: 16.03.2013
Сообщений: 2
По умолчанию

все уже исправила если кому нужно. правда без файла
Код:
#include <iostream>
#include <cmath>
using namespace std;

int main()
{
	setlocale(LC_ALL, "Russian");
	double y1,y2,y3,x;
	cout<<"Введите x: "; cin>>x;	
	double a1=sin(x)+7;
	double b1=x+log(abs(x-8)+10);
	double c1=x-13;
	if (x<= 4 && a1!=0)
		y1=(cos(x)+14/a1);
	else
	{
		if (x<=12 && b1>0)
			y1=sqrt(b1);
		else
		{
			if ( x<38 && c1>0)
				y1=sqrt(c1);
			else
			{
				if (x>=38)
					y1=5*x;					
				else
					cout<<"ОШИБКА \n";
			}
		}
	}
	cout<<"ПОЛНОЕ ВЕТВЛЕНИЕ\n";
	cout<<"y1="<<y1<<endl;

	double a2=sin(x)+7;
	double b2=x+log(abs(x-8)+10);
	double c2=x-13;
	if (x<= 4 && a2!=0)
		y1=(cos(x)+14/a2);
	if (x<=12 && b2>0)
		y2=sqrt(b2);
	if ( x<38 && c2>0)
		y2=sqrt(c2);
	if (x>=38)
		y2=5*x;	
	cout<<"КРАТКОЕ ВЕТВЛЕНИЕ \n";
	cout<<"y2="<<y2<<endl;

	(x<=4) ? (y3 = (cos(x)+14/sin(x)+7)):
		(x<12) ? (y3=sqrt(x+log(abs(x-8)+10))): (12<=x && x<38) ? (y3=sqrt(x-13)) : (x>=38) ? (y3=5*x) : y3;	
	cout<<"ВЕТВЛЕНИЕ С ИСПОЛЬЗОВАНИЕМ УСЛОВНОЙ ОПЕРАЦИИ \n";
	cout<<"y3="<<y3<<endl;

	double t,z;
	int N;
	cout<<"Введите z:"; cin>>z;
	cout<<"НОМЕР ИНТЕРЕСУЕЩЕГО ВАС ЗАДАНИЯ ОТ 1 ДО 4 \n"; cin>> N;
	switch(N)
	{
		case 1: cout<<"№1"; t = (cos(z)+14/sin(z)+7); break ;
		case 2: cout<<"№2"; t = sqrt(z+log(abs(z-8)+10)); break ;
		case 3: cout<<"№3"; t = sqrt(z-13); break;
		case 4:cout<<"№4"; t = 5*z; break;
		default: cout<< "ОШИБКА ВВОДА ДАННЫХ" ; t=0;
	}	
	cout<<"ЗАПРОС АРГУМЕНТА ФУНКЦИИ\n ";
	cout<<"t"<<t<<endl;

	system("pause");
	return 0;
}

Последний раз редактировалось Narami; 26.03.2013 в 12:55.
Narami вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Возникли проблемы с функцией gets() apeorin Visual C++ 16 23.10.2012 20:03
Возникли проблемы с функциями FRATER1234 Общие вопросы C/C++ 10 08.10.2011 20:51
Установка Wordpress возникли проблемы misher WordPress и другие CMS 9 21.02.2011 09:34
Установка форума - возникли проблемы misher WordPress и другие CMS 18 10.02.2011 15:10
JQuery - возникли некоторые проблемы! hoza_syl JavaScript, Ajax 6 30.12.2009 23:11