С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
5 / 5 / 1
Регистрация: 15.09.2016
Сообщений: 410
1

Не могу найти ошибку в программе

30.09.2016, 19:01. Показов 1092. Ответов 7
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте! Не могу понять, как полностью отладить программу. Определенное понимание о характере ошибке есть( ниже прложил ее название), но исправить не понимаю как. У меня программа считает сначала одно уравнение ,а потом еще досчитывает , беря ответ промежуточный ответ и согласно требованич if выдает ответ. Помогите пожалуйста, что-то думается мне,что я еще в скобках {} наплутал.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
void __fastcall TForm1::Button1Click(TObject *Sender)
{
 if (Edit1->Text=="") ShowMessage("Перед получением результата необходимо  ввести данные"); 
 
 
int b = StrToInt(Edit1-> Text);
double y = StrToFloat(Edit2-> Text);
    double n ;
    switch (b)
      {
          case 1:       { n=  y+b /(y+7)  ; break;}
          case 2:       { n=sin(y-b) ; break;}  
          case 8:     { n=log(fabs(b+y)) ; break;}
          default:      n=y*y+pow(b,y) ;
 
  Edit3->Text = FloatToStr(n);
  n = StrToFloat(Edit3-> Text);
 
double b = StrToFloat(Edit1-> Text);
if(n<0) { n=n*b ; }
if (n==0) { n=n*(2*b) ; }
if (n>0) { n=n*(3*b) ; }
 
 Edit4->Text = FloatToStr(n);
 
}
}
Миниатюры
Не могу найти  ошибку в программе   Не могу найти  ошибку в программе  
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.09.2016, 19:01
Ответы с готовыми решениями:

Не могу найти ошибку в программе
Даны действительные числа х1, у1, х2, у2, …,х10, у10. Найти периметр десятиугольника, вершины...

Не могу найти ошибку в программе
Добрый вечер, уважаемые программисты. Прошу у вас помощи с программой. Нужно её сдавать, а она не...

Не могу найти ошибку в программе
Не могу найти ошибку в программе #include &quot;stdafx.h&quot; #include &lt;iostream.h&gt; #include &lt;math.h&gt;...

Не могу найти ошибку в программе
# include &lt;iostream&gt; #include &lt;string&gt; #include &lt;math.h&gt; void main() { string str; ...

7
2686 / 2258 / 244
Регистрация: 03.07.2012
Сообщений: 8,216
Записей в блоге: 1
30.09.2016, 19:06 2
if(n<0) { n=n*b ; } это меняет n и могут отработать другие условия
if (n==0) { n=n*(2*b) ; } какой смысл, если n не изменится?
0
Модератор
Эксперт С++
13706 / 10909 / 6473
Регистрация: 18.12.2011
Сообщений: 29,126
30.09.2016, 19:08 3
Ошибка скорее всего во вводе в строках
Цитата Сообщение от slavek777 Посмотреть сообщение
int b = StrToInt(Edit1-> Text);
double y = StrToFloat(Edit2-> Text);
0
5 / 5 / 1
Регистрация: 15.09.2016
Сообщений: 410
30.09.2016, 19:10  [ТС] 4
Таково условие задания. После вычисления первого,в любом случаи изменить его значение.
Миниатюры
Не могу найти  ошибку в программе  
0
5 / 5 / 1
Регистрация: 15.09.2016
Сообщений: 410
30.09.2016, 19:17  [ТС] 5
Значения вводит и считает, но в каком-то слуаи все равно ошибку дает.
Миниатюры
Не могу найти  ошибку в программе   Не могу найти  ошибку в программе  
0
Хитрая блондиночка $)
1472 / 988 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
30.09.2016, 19:20 6
Цитата Сообщение от slavek777 Посмотреть сообщение
но в каком-то слуаи все равно ошибку дает.
Так у тебя в поле для "b" ничего не вписано )
Правильно дает тебе законное сообщение.
0
5 / 5 / 1
Регистрация: 15.09.2016
Сообщений: 410
30.09.2016, 19:29  [ТС] 7
Это в какой части?Чего-то не понимаю

Добавлено через 5 минут
По-крайней мере обнаружил ошибку в 6 и 19 строке, поменял на int и int там. Но ошибка все равно выбивается...
0
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,706
30.09.2016, 20:33 8
Лучший ответ Сообщение было отмечено slavek777 как решение

Решение

Проверка в 3-й строке пропустит пробел или неправильное число. Так сделай:
C++
1
2
3
4
5
6
7
8
9
10
int b;
try
{
    b = StrToInt(Edit1-> Text);
}
catch(Exception *ex)
{
    ShowMessage("Перед получением результата необходимо  ввести данные");
    return;
}
И для чего нужна 17-я строка? Какой смысл конвертировать в строку и обратно одно и то же число?
1
30.09.2016, 20:33
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.09.2016, 20:33
Помогаю со студенческими работами здесь

не могу ошибку найти в программе
#include &lt;iostream&gt; #include &lt;ctime&gt; #include &lt;cstdlib&gt; #include &lt;iomanip&gt; #include &lt;cmath&gt; ...

Не могу найти ошибку в программе
Прога рабочая, но если вводишь х = 0 и у= 0 то она зацикливается на &quot;Ошибка! Начните заново.&quot; и не...

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

Не могу найти ошибку в программе
Разложение числа на сумму двух квадратов &quot;for(a=o;a&lt;=floor(sqrt(W));x++); ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru