![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() ![]() |
![]() |
murmanskk |
![]() ![]()
Сообщение
#1
|
Группа: Пользователи Сообщений: 4 Пол: Мужской Репутация: ![]() ![]() ![]() |
Привет. Помогите разобраться.
myans - это ответ который ввожу Я. ( число) ans - это верный ответ. Нужно их сравнить, если myans= ans ИЛИ myans <на1 ИЛИ >на1 = Вывести "Правильно" В других случаях: <на2 ИЛИ >на2 вывести "Неправильно". Код Program prog1; Var num1, num2, myans, ans:real; i:integer; begin for i:=1 to 100 do begin Write('a: '); Read(num1); Write('b: '); Read(num2); ans:=num1/(num1+num2)*100; Writeln('-' ); read(myans); writeln(ans); end; end. Я пробовал сделать так но у меня не вышло.. Спойлер (Показать/Скрыть)
|
Ромаха |
![]()
Сообщение
#2
|
![]() Новичок ![]() Группа: Пользователи Сообщений: 26 Пол: Мужской Реальное имя: Роман Репутация: ![]() ![]() ![]() |
if (myans = ans) or (myans-1 = ans) or (myans+1 = ans) then
WriteLn ('Правильно')
else
WriteLn ('Неправильно')
|
murmanskk |
![]()
Сообщение
#3
|
Группа: Пользователи Сообщений: 4 Пол: Мужской Репутация: ![]() ![]() ![]() |
Не получается так..
Если ответ целое число например 25 то нормально, а если в ответе не целое 33.33.. (например при исходных данных 10 и 20) то пишет всегда "НЕПРАВИЛЬНО" какое бы число не ввести в ответе. Сообщение отредактировано: murmanskk - 5.03.2013 15:10 |
IUnknown |
![]()
Сообщение
#4
|
![]() a.k.a. volvo877 ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: ![]() ![]() ![]() |
Вещественные числа (а они в этой программе все вещественные) не сравниваются оператором "=", только Abs(Value1 - Value2) < Eps.
|
murmanskk |
![]()
Сообщение
#5
|
Группа: Пользователи Сообщений: 4 Пол: Мужской Репутация: ![]() ![]() ![]() |
|
IUnknown |
![]()
Сообщение
#6
|
![]() a.k.a. volvo877 ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 1 013 Пол: Мужской Репутация: ![]() ![]() ![]() |
Конструкцию
Цитата if (myans = ans) then
const
eps = 0.0001; { Если 2 числа будут отличаться больше, чем на eps - они будут считаться разными }
{ ... }
if Abs(myans - ans) < Eps then
{ модуль разности чисел не превышает eps, значит, можно считать что myans = ans }
В более продвинутых компиляторах (например, FPC) используется функция SameValue из модуля Math, которая примерно это и делает. |
murmanskk |
![]()
Сообщение
#7
|
Группа: Пользователи Сообщений: 4 Пол: Мужской Репутация: ![]() ![]() ![]() |
спасибо
|
![]() ![]() |
![]() |
Текстовая версия | 28.07.2025 18:52 |