Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.01.2011, 14:48   #1
Андрей К-в
Пользователь
 
Регистрация: 16.01.2011
Сообщений: 10
По умолчанию как вставить в программу реакцию на ошибку

Есть программа, она работает с матрицами, всё нормально, только если не введешь никакого символа матрицы и нажмешь 'Enter' происходит просто переход на другую строку и всё. Нужно сделать что-бы сообщила о том, что не введен символ, и вернулась к строке ввода. Пробовал с "Repeat ...until", но видимо что-то не так делаю.
Это процедура ввода данных:
{2. Описание процедуры InpMas - ввод элементов массивов}
Код:
procedure InpMas(var m : MyArr);
begin
for i:=1  to n do begin
     for j:=1  to n do begin
      repeat
        write('(',i,',',j,')='); readln(m[i,j]);   { Ввод массива }
      until (m[i,j]='');
     end;
end;
end;

Это ссылка  головной программы  на эту процедуру:
ClrScr;
writeln('Введите элементы массива C');
InpMas(c);
writeln('Введите элементы массива T');
InpMas(t);
Summ(c,s1);
Summ(t,s2);
Помогите кто может, очень срочно надо, завтра зачет.

Последний раз редактировалось Stilet; 16.01.2011 в 17:13.
Андрей К-в вне форума Ответить с цитированием
Старый 16.01.2011, 14:51   #2
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Код:
{$I-}
Read (chislo);
if IOResult <> 0 then Writeln ('Введено не верное число');
{$I+}
это проверка если заместо числа введёте символ!
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 16.01.2011, 15:00   #3
Андрей К-в
Пользователь
 
Регистрация: 16.01.2011
Сообщений: 10
По умолчанию

Да, но могут вводится и нули, а мне нужно что-бы реакия была только на ввод '' или на ввод буквенных символов. Это поможет?
Андрей К-в вне форума Ответить с цитированием
Старый 16.01.2011, 15:04   #4
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Цитата:
ввод буквенных символов.
Поможет!!!
Цитата:
на ввод ''
В данном случае, ввода не происходит!
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 16.01.2011, 15:05   #5
Андрей К-в
Пользователь
 
Регистрация: 16.01.2011
Сообщений: 10
По умолчанию

А где это нужно прописать?

Вставил вроде куда нужно, только теперь на ввод лбого числа, кроме нуля надпись "введено неверное число" на пустую строку также никакой реакции.
Код:
procedure InpMas(var m : MyArr);
begin
for i:=1  to n do begin
     for j:=1  to n do begin
      write('(',i,',',j,')=');
      {$I-} readln(m[i,j]);   { Ввод массива }
      if (m[i,j]) <> 0 then Writeln ('Введено не верное число');
      {$I+}

     end;
end;
end;
Что не так?

Последний раз редактировалось Stilet; 16.01.2011 в 17:14.
Андрей К-в вне форума Ответить с цитированием
Старый 16.01.2011, 15:45   #6
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Вы на мой код посмотрите!!! Там в условии IOResult
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 16.01.2011, 15:51   #7
Андрей К-в
Пользователь
 
Регистрация: 16.01.2011
Сообщений: 10
По умолчанию

Если писать как Вы подсказали, выдается ошибка "неизвестный идентификатор IOResult".


if IOResult <> 0 then Writeln ('Введено не верное число');
Андрей К-в вне форума Ответить с цитированием
Старый 16.01.2011, 15:56   #8
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

У вас паскаль какой???
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 16.01.2011, 16:09   #9
Андрей К-в
Пользователь
 
Регистрация: 16.01.2011
Сообщений: 10
По умолчанию

Для начинающих. ABCPascal. Версия 3.0
Андрей К-в вне форума Ответить с цитированием
Старый 16.01.2011, 16:17   #10
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Ну что ж вы ТС сразу не сказали!
Используйте в ABC Pascal
try
блок, в котором может быть ошибка
except
что надо сделать если произошла ошибка
end;
То есть как то так
Код:
try
    Read(chislo);
except 
    Writeln ('АААААА КАРАУЛ ОШИБКА ! ВЫ ВВЕЛИ НЕ ВЕРНОЕ ЧИСЛО!)
end;
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вставить код в программу? Nostalgy Общие вопросы C/C++ 0 27.05.2010 18:39
Как вставить таймер в программу если нет формы durexa Помощь студентам 9 25.06.2007 13:13
Можно ли как-нибудь изменить реакцию всплывающих менюшек на кнопки? Major Gray Общие вопросы Delphi 0 15.04.2007 01:23
Как вставить в программу gif-анимацию ? Alar Общие вопросы Delphi 0 29.10.2006 20:51