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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.11.2011, 19:01   #1
proser93
Пользователь
 
Регистрация: 22.10.2011
Сообщений: 12
Смущение Неудобство ABC Pascal и глюк Borland Pascal

Здравствуйте! Выяснил, что функция ioresult не поддерживается на ABC Pascal - а есть ли альтернативы? (при отключении контроля требуется проверка на код ошибки - т.е. если 0, то все норм, если не 0, то значит ошибка)
Также в Borland Pascal запустил программу, и она там зациклилась, хотя на ABC все работает нормально. Помогите пожалуйста мне разобраться в этой мистике!)
Вот собственно прога (вычисляет НОК 4 введенных нат. чисел)
Код:
uses crt;
var i:integer;
    nok1,nok2,rez:longint;
    button:string;
    dig:array[1..4]of integer;
procedure NOK(a,b: integer; var r:longint);  {procedure to calc nok of 2 numbers}
 var z: integer;
begin
if a>b then z:=a
else z:=b;
while not ((z mod a=0) and (z mod b=0)) do
z:=z+1;
r:=z;
end;
begin
    while (button[1]<>'y') or (button[1]<>'n') or (length(button) > 1) do begin
       writeln('Continue?(Press y to continue, n to exit)');
       read(button);
       if length(button) > 1 then writeln('Too many buttons')
       else
       if button[1] = 'n' then halt(0)  {Choice of action and screening incorrect keystrokes}
       else
      if button[1] = 'y' then begin
      delete(button,1,length(button));
         i:= 1;
          while i < 5 do begin
              writeln('Enter ',i,' number: ');
              {$I-}   
              read(dig[i]);
              if (ioresult <> 0) or (dig[i]<1) then begin writeln('Incorrect input, retry!'); i:=i-1 end;
              {$I+}
              i:= i + 1;
              end;
              NOK(dig[1],dig[2],nok1);
              NOK(nok1,dig[3],nok2);
              NOK(nok2,dig[4],rez);
              writeln(rez);     {Print result}
              end;
    end;
 end.

Последний раз редактировалось Stilet; 19.11.2011 в 19:08.
proser93 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
pascal ABC saharok Помощь студентам 1 14.10.2011 21:10
Pascal ABC Veron_20 Паскаль, Turbo Pascal, PascalABC.NET 9 21.12.2010 22:36
Turbo Pascal or Pascal ABC Ikram Паскаль, Turbo Pascal, PascalABC.NET 0 27.04.2010 13:44