Модераторы: volvo877, Snowy, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> проблема с организацией ввода данных, действие при неправильном вводе 
:(
    Опции темы
uuuser
  Дата 20.12.2010, 21:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 20.12.2010

Репутация: нет
Всего: нет



Здравствуйте. я новичок в Паскале и в программировании.

у меня следующая проблема:

в задаче... при вводе данных у меня идёт проверка, являются ли они правильными. а именно: нужно вводить числа, я проверяю, число ли вообще введённый символ. так вот если символ не число, то как организовать ввод, чтобы программа не выкидывала меня, а продолжала запрашивать ввод и проверять до тех пор, пока не будет введено число?

вот это неправильно у меня. укажите на мою ошибку, пожалуйста, если вам не трудно. вводится квадратная матрица

Код

for i:=1 to L do                                                             
                                                                              
  for j:=1 to N do                                                            
  
begin                                                                       
   write ('A[',i,',',j,']=');                                                 
   read (ch);                                                                 
   val (ch, chislo, code);                                                    
   if code=0 then                                                             
   A[i,j]:=chislo;                                                            
   if code<>0 then                                                            
    Begin                                                                     
   
     err:=true;                                                               
                                                                              
      while err do                                                            
      begin                                                                   
       writeln ('A[',i,',',j,']=');                                           
       read (ch);                                                             
       val (ch, chislo, code);                                                
        if code=0 then                                                        
        A[i,j]:=chislo;                                                      
        if code<>0 then err:=true           
         else                                                                 
          begin                                                               
            err:=false;                                                       
            A[i,j]:=chislo                                                    
          end                                                                 
       end                                                                    
    end  
end;                                                                     


PM MAIL   Вверх
SPrograMMer
Дата 21.12.2010, 11:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Спамер :)
**


Профиль
Группа: Участник
Сообщений: 442
Регистрация: 5.11.2004
Где: Краснодар

Репутация: нет
Всего: 6



Цитата(uuuser @  20.12.2010,  21:47 Найти цитируемый пост)
до тех пор, пока не будет введено число?

Цитата(uuuser @  20.12.2010,  21:47 Найти цитируемый пост)
я проверяю, число ли вообще введённый символ

Цитата(uuuser @  20.12.2010,  21:47 Найти цитируемый пост)
  
Код
                                             
   read (ch);                                                                 
   val (ch, chislo, code);      
 

Я так понимаю
Код
var ch:char;
? Если да то... нужно подумать, а когда заканчивается вводит числа, ну скажем числа 123?
наверное по нажатию клавиши Enter?
Тогда нужно воспринимать поток символов, пока не встретится символ Enter`а. И как только он это сделал, проверить введенную последовательность. Ну примерно так:
Код

var
  ch:Char;
  S:String;
S:='';ch := #0;
while ch<>#13 Do Begin
   read(ch);
   S:= S + ch;
End;
val(S,chislo,code);
....



--------------------
животное = зверь
законченный гентушник
PM MAIL ICQ Jabber   Вверх
uuuser
Дата 21.12.2010, 12:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 20.12.2010

Репутация: нет
Всего: нет



Цитата


Я так понимаю

Код

var ch:char;




да... именно..

Цитата

Если да то... нужно подумать, а когда заканчивается вводит числа, ну скажем числа 123?
наверное по нажатию клавиши Enter?
Тогда нужно воспринимать поток символов, пока не встретится символ Enter`а. И как только он это сделал, проверить введенную последовательность.


Оу.. спасибо =) мне в голову не пришло как-то...  smile попробую. 


а насчет самого алгоритма - что неверно у меня? как правильно цикл организовать, чтобы выполнялась проверка до тех пор пока не будет введено число?

Это сообщение отредактировал(а) uuuser - 21.12.2010, 12:26
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

1. Обсуждать и делится взломанными компонентами или программным обеспечением

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




[ Время генерации скрипта: 0.0559 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.