Лабораторная работа: Структуры и алгоритмы обработки данных
Procedure Proverka (var w: WE); {проверкапревышения
значениятипа Integer}
Var
a, i: TE;
c: char;
b: chisla;
Begin
w:= '';
ReadLn(w); //ввод числа с клавиатуры – тип String
While (w = '') or (w='-')do {проверяем, если пользователь не ввел данные или ввел только знак минуса выводим на экран сообщения о не корректные вводе}
Begin
WriteLn(Rus('Вы не ввели данные или они не корректны, попробуйте еще раз')); WriteLn(' ');
Proverka(w); //выполняем рекурсивный вход в процедуру
End;
fori:= 1 tolength(w) do {запускаем цикл проверки числа на корректность ввода, число введено, как строка. По этому мы можем поэлементно проверить каждую цифру}
begin
b:= ['0','1','2','3','4','5','6','7','8','9']; //множество состоящее из цифр
c:=w[i]; {берем каждую цифру из числа проходя от первой до последней}
if (cinb) or (c='-') and (i=1) then {сравниваем есть ли цифра из введенного числа во множестве заданных цифр и проверяем какое число было введено, отрицательное или положительное и не стоит ли знак минус в середине числа}
else
a:= 1; {если число не корректно делаем пометку для дальнейшей проверки}
end;
ifa = 1 then {если число не прошло проверку выводим
сообщение о не корректном вводе числа}
begin
WriteLn(rus('Вы ввели не корректные данные !'));
WriteLn(' ');
Proverka(w); {выполняем рекурсивный вход в
процедуру}