Форум программистов, компьютерный форум, киберфорум
Наши страницы
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Max-12
0 / 0 / 0
Регистрация: 30.01.2016
Сообщений: 4
#1

Неверный результат сравнения одинаковых чисел

30.01.2016, 09:52. Просмотров 252. Ответов 5
Метки нет (Все метки)

Почему К False;
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
program f1;
uses crt;
const
d:real =0.85;
s:real =3.5;
i:real =2.975;
var
ds:real;
k:boolean;
begin
{
writeln ('Vvedite i'); readln(i);
writeln ('Vvedite d'); readln(d);
writeln ('Vvedite s'); readln(s);   }
ds:=d*s;
if i=ds then
k := true
else k:=false;
writeln ('i= ',i,'  ds= ',ds,' K= ',k);
readkey;
end.

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.01.2016, 09:52
Ответы с готовыми решениями:

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

Рекурсивная процедура. Определить результат сравнения количества четных и количества нечетных чисел
Помогите пожалуйста с программой. Условие : Используя рекурсивную процедуру...

Неверный результат сложение
Всем привет, взялся за Паскаль - выполнять задание от универа и тут же...

Неверный результат в программе с условными операторами
Вместо результата всегда пишет-0 program vareniki; var a: char; g,b,c:...

Присвоить логической переменной результат сравнения модулей сумм положительных и отрицательных элементов
Исходя из элементов вещественного массива Х1, Х2,..., X12, присвоить логической...

5
ФедосеевПавел
Модератор
3454 / 1951 / 817
Регистрация: 01.02.2015
Сообщений: 6,508
30.01.2016, 10:07 #2
В отличие от целочисленных типов, все вещественные не точные, а приближённые.

Ввод с клавиатуры 0,33333
И вычисление 1/3=0,333333333333333333333333333333333333333.
И эти числа формально не равны.

Если нужно сравнивать вещественные, то это делают через абсолютную или относительную погрешность
Pascal
1
  if abs(i=ds)<eps then
Добавлено через 1 минуту
Плюс, в вашем случае лучше записать так
Pascal
1
  K:=(abs(i=ds)<eps);
0
Max-12
0 / 0 / 0
Регистрация: 30.01.2016
Сообщений: 4
30.01.2016, 10:12  [ТС] #3
Спасибо.
0
ФедосеевПавел
Модератор
3454 / 1951 / 817
Регистрация: 01.02.2015
Сообщений: 6,508
30.01.2016, 11:02 #4
Sorry, я ошибся при копировании. Конечно же
Pascal
1
K:=(abs(i-ds)<eps);
0
capricornus CF
30.01.2016, 21:51
  #5

Не по теме:

Забавно. Фрипаскаль - K=true.

0
Cyborg Drone
Модератор
5273 / 3140 / 2440
Регистрация: 17.08.2012
Сообщений: 10,112
01.02.2016, 03:18 #6
Max-12, когда Вы пишете что-либо подобное строкам Вашего кода 16..18, где-то умирает маленький пушистый котёнок. Никогда больше так не пишите. Незачем проверять значение логического выражения на истинность или ложность, оно и без Вашего вмешательства уже истинно либо ложно. Все указанные строчки заменяются на одну:
Pascal
16
k := i = ds;
Если нужно противоположное условие, тогда так:
Pascal
1
k := not (i = ds);
или
Pascal
1
k := i <> ds;
0
01.02.2016, 03:18
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.02.2016, 03:18

Написать функцию, которая сравнивает два числа и выдает результат сравнения в виде одного из знаков «<», “>” или «=»
Написать функцию, которая сравнивает два числа и выдает результат сравнения в...

Алгоритм сравнения трех чисел
Голову сломал уже. Подскажите оптимальный алгоритм сравнения трех чисел....

В последовательности чисел определить номера чисел, состоящие из одинаковых цифр, и их количество
вводится последовательность из n двузначных целых чисел. определить порядковые...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru