Пользовательский тип данных в Паскале =((

интернет Компьютеры программирование программы паскаль

Простая программа для вывода на экран типа стипендии. минус - нет, 0 - обычная, плюс - повышенная. лень было писать.
---
program test1;
var a,b,c:3..5;
begin

writeln('a:'); readln(a);
writeln('b:'); readln(b);
writeln('c:'); readln(c);

if (a=3) or (b=3) or (c=3) then writeln('-') else
if (a=5) and (b=5) and (c=5) then writeln('+') else writeln(0);

end.
---
Я ввожу 2 2 и 2. Он выводит результат 0. Но я же задал интервал 3..5
Почему же он не выдал ошибку? Мне надо, чтобы пользователь вводил корректные данные.

Примечание:
Можно, конечно, использовать в коде программы цикл с предусловием, но ведь тип данных не изменится и будет у меня программа использовать много лишнего.
Ответы:
А где у тебя происходит сравнение на больше /меньше?
У тебя стоит условие:
Если хотя бы одна переменная = 3, то печатать '-'
Если все переменные = 5, то печатать '+'
В остальных случаях печатать 0, что ты и получил
у тебя стоит элс, это значит что в любом случае, какое бы ты число не ввел, кроме 3 и 5, всегда будет 0
var
a:array[1..3] of byte;
i:integer;
begin
write('a: ');readln(a[1]);
write('b: ');readln(a[2]);
write('c: ');readln(a[3]);
for i:=1 to 3 do
case  a[i] of
3:writeln('-');
4:writeln('0');
5:writeln('+');
end;
end;
Для проверки корректности введенных данных нужно использовать проверки в теле программы, а не ограничивать типы и ожидать что программа будет вылетать с ошибкой при неверном вводе. Что за индусятина)


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.