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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 06.10.2009, 20:59   #1
ac1d_buRn
Пользователь
 
Регистрация: 05.06.2009
Сообщений: 37
По умолчанию Цикл repeat until

Код:
var x,x1:integer;

begin
  write('write the number - '); read(x);
    repeat
      x1:= x mod 10;
      writeln(x1);
    until x1<0;
  readln;
Ввожу число 456, а он выводит бесконечный цикл с числом 6
Почему не 4, 5 и 6 ?
ac1d_buRn вне форума Ответить с цитированием
Старый 06.10.2009, 21:04   #2
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

потому что вы x не меняете.
Код:
x1 := x mod 10;
x := x div 10;
и остаток от деления(mod) никогда не будет меньше нуля
netrino вне форума Ответить с цитированием
Старый 06.10.2009, 21:24   #3
ac1d_buRn
Пользователь
 
Регистрация: 05.06.2009
Сообщений: 37
По умолчанию

Код:
var x:integer;

begin
  write('write the number - '); read(x);
  repeat
  x := x div 10;
  writeln(x);
  until x=0;
  readln;
  readln;

  { TODO -oUser -cConsole Main : Insert code here }
end.
Ввожу больше 9 цифр, то выдаёт ошибку: Debugger Exception Notification. Project Project2.exe raised exception class ElnOutError with message 'Invalid numberic input'. Process stopped. Use step or Run to continue.
ac1d_buRn вне форума Ответить с цитированием
Старый 06.10.2009, 21:29   #4
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

если это дельфи, то максимальное число, которое можно держать в integer - 2147483648 - 1.
netrino вне форума Ответить с цитированием
Старый 06.10.2009, 21:55   #5
ac1d_buRn
Пользователь
 
Регистрация: 05.06.2009
Сообщений: 37
По умолчанию

//delete//

рабочий код:

Код:
program Project2;

{$APPTYPE CONSOLE}

uses
  SysUtils;
var x:integer;

begin
  write('write the number - '); read(x);
    repeat
     Writeln(x mod 10);
     x:=x div 10;
    until x=0;

  readln;
  readln;
  { TODO -oUser -cConsole Main : Insert code here }
end.

Последний раз редактировалось ac1d_buRn; 06.10.2009 в 23:47.
ac1d_buRn вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск одинаковых чисел bvden Microsoft Office Excel 3 05.07.2009 01:29
запрет ввода одинаковых чисел в edit epic6 Общие вопросы Delphi 6 15.06.2009 08:31
Подсчёт голосов eldar PHP 6 01.06.2009 12:40
Подсчёт натуральных чисел. GGman Microsoft Office Excel 1 05.05.2009 15:08
Подсчёт трафика Альберт Работа с сетью в Delphi 2 10.09.2007 11:35