Форум программистов
 
Расширенный поиск
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > Lazarus, Free Pascal, CodeTyphon
Регистрация

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



Ответ
 
Опции темы
Старый 17.05.2017, 19:43   #1
povaki
Пользователь
 
Регистрация: 25.11.2015
Сообщений: 12
Репутация: 10
По умолчанию ошибка деления

Почему в итоге p, q, t выводятся как сумма u, g, x?

Код:

h:=v/s;
   label18.Caption:='y|1='+FloatToStr(h);
   l:=f/s;
   label19.Caption:='y|2='+FloatToStr(l);
   k:=o/s;
   label20.Caption:='y|3='+FloatToStr(k);
   Label21.Visible:=true;
 
   u:=1*h+d*l+e*k;
   label22.caption:='z1='+FloatToStr(u);
   g:=j*h+1*l+w*k;
   label23.caption:='z2='+FloatToStr(g);
   x:=m*h+n*l+1*k;
   label24.caption:='z3='+FloatToStr(x);
 
   p:=u/h;
   form3.label25.caption:='z|1='+FloatToStr(p);
   q:=g/l;
   form3.label26.caption:='z|2='+FloatToStr(q);
   t:=x/k;
   form3.label27.caption:='z|3='+FloatToStr(t);


Последний раз редактировалось Вадим Мошев; 17.05.2017 в 23:09.
povaki вне форума   Ответить с цитированием
Старый 17.05.2017, 23:19   #2
Вадим Мошев
гигаМодератор :)
Заслуженный модератор
 
Аватар для Вадим Мошев
 
Регистрация: 12.11.2010
Адрес: Адрес: Адрес: Адрес: Адрес: Адрес: Адрес: Адрес: Адрес:
Сообщений: 7,355
Репутация: 3624
По умолчанию

Вообще, лучше бы показать весь код. А так мне в глаза бросились эти строки:
Код:

 u:=1*h+d*l+e*k;
...
g:=j*h+1*l+w*k;
...
x:=m*h+n*l+1*k;

ИМХО, самим себе создали проблемы. А всё из-за того, что:
1. не следует использовать для идентификатора однобуквенный индентификатор l - это очень легко спутать с цифрой 1 или вертикальной чертой: |. Вот сами сравните слева направо символы: буква l, вертикальная черта и цифра один: l | 1.
Красным цветом я выделил цифры 1 в вашем коде.
2. Однобуквенные идентификаторы лучше вообще не использовать (исключение счётчик цикла i, j, k). Вместо этого советую давать переменным осмысленные имена: arrayOfIntegerNumbers, carVelocity, trainAcceleration...

Последний раз редактировалось Вадим Мошев; 17.05.2017 в 23:22.
Вадим Мошев на форуме   Ответить с цитированием
Старый 11.10.2017, 13:09   #3
dummy_user
Форумчанин
 
Аватар для dummy_user
 
Регистрация: 02.03.2013
Адрес: Сибирь
Сообщений: 109
Репутация: 27

skype: raw_2_raw
По умолчанию

Да, соглашусь в комментарием выше, используйте понятные, несущие смысловую нагрузку названия для переменных и методов, ведь ни черта не понятно, что делает код, что за формулы использованы.
dummy_user вне форума   Ответить с цитированием
Ответ



Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка: деления на 0 iluxa1810 Assembler 5 16.03.2015 20:39
Ошибка деления на 0 (delphi) Novikov_Dmitriy Помощь студентам 2 30.01.2013 19:24
Ошибка деления на ноль Сметуська Assembler 2 14.03.2011 19:13
Ошибка деления на ноль El_Blasto Assembler 4 16.12.2010 11:09
Ошибка деления на ноль nolz Помощь студентам 3 07.03.2010 14:14




20:47.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

купить трафик


как улучшить посещаемость, а также решения по монетизации сайтов, видео и приложений

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru