Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ проверка ввода

Автор: -Екатерина- 20.10.2007 16:22

вводятся размерность массива и его элементы, как проверить что m и n именно типа integer а не буква знак и тд??
я вот так сделала, но на жирном месте не проходит

writeln('m= ');
readln(m1);
val(m1,m,code);
if code<>0
then begin
writeln('OSHIBKA! Vvod nedopystimogo znacheniya!');
writeln('VIXOD IZ PROGRAMMI!!!');
READLN;
halt;
end;
readln(m);
writeln('n= ');
val(n1,m,code);
if code<>0
then begin
writeln('OSHIBKA! Vvod nedopystimogo znacheniya!');
writeln('VIXOD IZ PROGRAMMI!!!');
READLN;
halt;
end;
readln(n);


подскажите в чем же едло пожалуйста

Автор: volvo 20.10.2007 18:46

Где именно у тебя не проходит?

Вообще, алгоритм такой: читаешь то, что вводит пользователь в Integer, но с отключенной проверкой: {I-} ... Тогда:

var
n: integer;
err: boolean;

begin
repeat
{$i-}
readln(n);
{$i+}
err := (ioresult <> 0);
if err then begin
writeln('error! one more time...');
end;
until not err;

writeln('n = ', n); { <--- Вот тут в n содержится число }

end.


Автор: -Екатерина- 20.10.2007 19:29


writeln('m= ');
readln(m1);
val(m1,m,code);
if code<>0
then begin
writeln('OSHIBKA! Vvod nedopystimogo znacheniya!');
writeln('VIXOD IZ PROGRAMMI!!!');
READLN;
halt;
end;
writeln('code=0');
readln(m);



выводит 'code=0' а адльше не идет сколько не нажимай enter

Добавлено через 6 мин.
заработал твой вариант! спасибо большое