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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 27.09.2010, 21:59   #21
g001501
Пользователь
 
Аватар для g001501
 
Регистрация: 16.09.2010
Сообщений: 28
По умолчанию

Цитата:
Сообщение от mrChester Посмотреть сообщение
может стоить проет сохранить а потом появится?
не помогает
g001501 вне форума
Старый 27.09.2010, 22:26   #22
kaljan775
:D
Форумчанин
 
Аватар для kaljan775
 
Регистрация: 26.09.2010
Сообщений: 570
По умолчанию

ну все, сломали
Пишу ПО, создаю сайты, делаю курсовые работы, за деньги
C#, .NET, MS SQL, AngularJS, HTML, jQuery
kaljan775 вне форума
Старый 28.09.2010, 14:52   #23
g001501
Пользователь
 
Аватар для g001501
 
Регистрация: 16.09.2010
Сообщений: 28
По умолчанию программирование разветволяющихся алгоритмов

Вот ссылка на условие задачи:

http://file.qip.ru/photo/67GInBsX/_online.html

Нужно составить программу вычисления выражения. Предусмотреть вывод информации о выбранной ветви вычислений.

Я составила. У меня получилось вот что:

Код:
#include <iostream.h>
#include <math.h>
int main()
{double x, y, s;
cout<<"Vvedite x:";
cin>>x;
cout<<"Vvedite y:";
cin>>y;
double del=x/y;
if (del>0) {s=pow(x+log(fabs(y)),3);
cout<<"1 vetv. Result = "<<s<<"\n";}
else { if(del<0)
{s=2/3.+log(sin(fabs(y)));
cout<<"2 vetv. Result = "<<s<<"\n";}
else {s=pow(x, 2/3.)+y;
cout<<"3 vetv. Result = "<<s<<"\n";}}
return 0;
}
Только нужно еще предусмотреть условие деления на ноль. Так как если y=0, то задача решения не имеет. Компилятор выдает результат бесконечность. Я думала, что нужно вставить вот это строку в код программы: if (y=0) cout <<"ERROR. Delenie na 0\n";
Но у меня ничего не получается. В какое бы место я ее не вставляла, программа выдает неверные ответы.
Может, кто-нибудь подскажет, как исправить ошибку?

Последний раз редактировалось Stilet; 28.09.2010 в 15:47.
g001501 вне форума
Старый 28.09.2010, 14:59   #24
mrChester
Я
Форумчанин
 
Аватар для mrChester
 
Регистрация: 24.04.2010
Сообщений: 693
По умолчанию

Можно решить проблему так
Код:
#include <iostream.h>
#include <math.h>
int main()
{double x, y, s;
cout<<"Vvedite x:";
cin>>x;
cout<<"Vvedite y:";
do
{
  cin>>y;
  if (y == 0) cout <<"ERROR. Delenie na 0\nVvedite drugoe znachenie!";
}while (y!=0);
double del=x/y;
if (del>0) {s=pow(x+log(fabs(y)),3);
cout<<"1 vetv. Result = "<<s<<"\n";}
else { if(del<0)
{s=2/3.+log(sin(fabs(y)));
cout<<"2 vetv. Result = "<<s<<"\n";}
else {s=pow(x, 2/3.)+y;
cout<<"3 vetv. Result = "<<s<<"\n";}}
return 0;
}
А можно так
Код:
if (y=0)
{
 cout <<"ERROR. Delenie na 0\n";
 Exit(1);
}
Все персонажи вымышлены, все совпадения случайны.
Если жизнь игра, тогда я её разработчик ©.
mrChester вне форума
Старый 28.09.2010, 16:40   #25
g001501
Пользователь
 
Аватар для g001501
 
Регистрация: 16.09.2010
Сообщений: 28
По умолчанию

Мне пока не разрешается использовать оператор повторения while.

Цитата:
А можно так
Код:
if (y=0)
{
 cout <<"ERROR. Delenie na 0\n";
 Exit(1);
}
А скажите, пожалуйста, в какое место нужно вставить этот кусок кода в мое решение?
g001501 вне форума
Старый 28.09.2010, 19:17   #26
Florent
 
Аватар для Florent
 
Регистрация: 24.01.2009
Сообщений: 6
По умолчанию

Ответ к первому посту.
Рекомендую учебник по Си Демидовича. Кстати, белорусский вроде препод) Там всё чётко, ясно и, главное, с примерами (которых крайне мало в известном учебнике Подбельского). "Керниган, Ритчи" хорош как справочник, но не как учебник, тем более, если нет опыта программирования.
Florent вне форума
Старый 28.09.2010, 23:44   #27
savva
Форумчанин
 
Регистрация: 10.06.2010
Сообщений: 225
По умолчанию

Товарищи,в С++ сравнение делается с помощью двух равно if (y==0)
когда-то сам запоролся на этом,день не мог понять в чём проблема.
За помощь: Нажмите на весы слева от сообщения!
savva вне форума
Старый 29.09.2010, 00:13   #28
ozo
Форумчанин
 
Аватар для ozo
 
Регистрация: 26.04.2010
Сообщений: 328
По умолчанию

Поэтому пишем :
if( !y )
Используй гугль, будь счастлив
hackme@yandex.ru
Блог об archlinux
ozo вне форума
Старый 01.10.2010, 17:26   #29
g001501
Пользователь
 
Аватар для g001501
 
Регистрация: 16.09.2010
Сообщений: 28
По умолчанию

Цитата:
Сообщение от savva Посмотреть сообщение
Товарищи,в С++ сравнение делается с помощью двух равно if (y==0)
когда-то сам запоролся на этом,день не мог понять в чём проблема.
Спасибо большое! ты мне очень помог!
g001501 вне форума
Старый 01.10.2010, 17:27   #30
g001501
Пользователь
 
Аватар для g001501
 
Регистрация: 16.09.2010
Сообщений: 28
По умолчанию

Таким образом, чтобы избежать деление на ноль, надо решать задачу следующим образом:

PHP код:
#include <iostream.h>
#include <math.h>
int main()
{
double xys;
cout<<"Vvedite x:";
cin>>x;
cout<<"Vvedite y:";
cin>>y;
if (
y==0cout <<"ERROR. Delenie na 0\n"
double del=x/y;
if (
del>0&&y!=0) {s=pow(x+log(fabs(y)),3);
cout<<"1 vetv. Result = "<<s<<"\n";}
else { if(
del<0&&y!=0)
{
s=2/3.+log(sin(fabs(y)));
cout<<"2 vetv. Result = "<<s<<"\n";}
else  if(
y!=0) {s=pow(x2/3.)+y;
cout<<"3 vetv. Result = "<<s<<"\n";}}
return 
0;

g001501 вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача на С# Рома_Я Помощь студентам 1 24.10.2009 17:06
Задача в C# Оксанка Помощь студентам 1 02.03.2009 23:51
Задача по С++ Плюшечка Помощь студентам 1 07.11.2008 12:08