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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 02.12.2009, 19:16   #1
ArcaN0id
Пользователь
 
Регистрация: 03.06.2009
Сообщений: 62
По умолчанию Pascal ABC

Как в паскале реализовать проверку правильности ввода данных? например если вместо числа ввели букву(или наоборот), то как сделать чтоб прога не вылетала, а выдавала сообщение типа: Ошибка, введите еще раз.
ArcaN0id вне форума Ответить с цитированием
Старый 02.12.2009, 19:18   #2
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

Цитата:
проверку правильности ввода данных
читать ввод как строку и проверять посимвольно!а потом либо конвертировать, либо выдавать сообщение
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.
ОДИНОЧЕСТВО В СЕТИ вне форума Ответить с цитированием
Старый 02.12.2009, 19:22   #3
ArcaN0id
Пользователь
 
Регистрация: 03.06.2009
Сообщений: 62
По умолчанию

а как это в коде?
ArcaN0id вне форума Ответить с цитированием
Старый 02.12.2009, 20:49   #4
russian-stalker
Участник клубаДжуниор
 
Аватар для russian-stalker
 
Регистрация: 23.08.2008
Сообщений: 1,616
По умолчанию

Думаю смысл понятен:
Код:
for i:=1 to length(s) do
if not (s in [0..9]) then
writeln('Try Again');
pushl $0x18E3DF6B
call ICQ
russian-stalker вне форума Ответить с цитированием
Старый 06.12.2009, 22:18   #5
ArcaN0id
Пользователь
 
Регистрация: 03.06.2009
Сообщений: 62
По умолчанию

Ошибка: "Операция in неприминима к типам string и set of byte"
ArcaN0id вне форума Ответить с цитированием
Старый 07.12.2009, 00:56   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Код:
for i:=1 to length(s) do
if not (s[i] in [0..9]) then begin
  writeln('Try Again');
  break;
end;
Serge_Bliznykov вне форума Ответить с цитированием
Старый 07.12.2009, 14:14   #7
ArcaN0id
Пользователь
 
Регистрация: 03.06.2009
Сообщений: 62
По умолчанию

все равно та же ошибка.
Операция in неприминима к типам char и set of byte
ArcaN0id вне форума Ответить с цитированием
Старый 07.12.2009, 15:09   #8
notHaker
Форумчанин
 
Аватар для notHaker
 
Регистрация: 01.12.2009
Сообщений: 569
По умолчанию

Цитата:
Сообщение от ArcaN0id Посмотреть сообщение
все равно та же ошибка.
Операция in неприминима к типам char и set of byte
Код:
{для числа}
for i := 1 to length(str) do
if (ord(str[i]) < 48) or (ord(str[i]) > 57) then
  begin
    writeln('try again');
    break;
  end;
Код - это работа, а работа стоит денег.

pz-game.ru. 2d зомби-сурвивал для олдфагов.
notHaker вне форума Ответить с цитированием
Старый 07.12.2009, 15:24   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

ну конечно же. символ и множество цифр нельзя сопоставить..

а так попробуйте:
Код:
  for i:=1 to length(s) do
    if not (s[i] in ['0'..'9']) then begin
      writeln('try again');
      break;
    end;
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C++ аналог Pascal ABC russian-stalker Софт 2 24.11.2009 18:15
Меню в ABC Pascal Desha Паскаль, Turbo Pascal, PascalABC.NET 0 23.11.2009 21:24
2 задачи Pascal Abc Максим1987 Фриланс 3 15.06.2009 13:24
Pascal ABC, массивы Russia Помощь студентам 8 23.05.2009 12:23