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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.12.2018, 05:20   #1
Kosta Riko
Новичок
Джуниор
 
Регистрация: 17.12.2018
Сообщений: 2
По умолчанию [РЕШЕНО] Как убрать цикл for, оставив тело

Всем привет, результат программы появляется в консольном окне, а оно, как известно, не резиновое. И хотелось, что б отрицательный результат вообще не появлялся. Знаю только, что надо убирать цикл for и оставлять тело, но как практически это сделать не пойму. Убил 3 часа, вспотел, поседел и пришёл за помощью. Буду очень признателен.

Код:
uses
   CRT;
var
   dividend: integer;
   divisor: integer;
   sNumber: string;
begin
   CRT.SetWindowTitle('ДЕЛИМОСТЬ ЧИСЕЛ ');
   while (true) do
   begin
      repeat
         TextColor(LightMagenta);         
         Writeln('Введите делимое:  ');
         TextColor(LightBlue);
         dividend:= ReadInteger();
         if (dividend = 0) then exit;
      until (dividend > 1);
      repeat
         TextColor(LightMagenta);
         Writeln('Введите делитель: ');
         TextColor(LightBlue);
         divisor:= ReadInteger();
         if (divisor = 0) then exit;
      until (divisor > 1) ;
      Writeln();
      for i: integer:= 2 to divisor do
      begin
         if (dividend mod i = 0) then
         begin
            TextColor(CRT.LightGreen);
            sNumber:= 'Число делится на:        ';
         end
         else
         begin 
            TextColor(CRT.LightRed);
            sNumber:= 'Число не делится на:     ';
         end;   
      if (i < 10) then 
         sNumber += '';
      Writeln(sNumber + i. ToString());   
         
            
      end;
      Writeln();
   
   end;  
end.

Последний раз редактировалось Kosta Riko; 17.12.2018 в 05:32. Причина: сделать код более читабельным
Kosta Riko вне форума Ответить с цитированием
Старый 17.12.2018, 09:08   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

Код:
        if (dividend mod i = 0) then
         begin
            TextColor(CRT.LightGreen);
            sNumber:= 'Число делится на:        ';
         end
         else
         begin 
            TextColor(CRT.LightRed);
            sNumber:= 'Число не делится на:     ';
         end;   
      if (i < 10) then 
         sNumber += '';
      Writeln(sNumber + i. ToString());   
end;
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 17.12.2018, 13:11   #3
Kosta Riko
Новичок
Джуниор
 
Регистрация: 17.12.2018
Сообщений: 2
По умолчанию

Спасибо большое, а то я сам себя запутал)))
Kosta Riko вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как скрыть страницу оставив меню skyferera JavaScript, Ajax 1 28.04.2018 09:03
[РЕШЕНО]: Почему не работает цикл for на javaScript. Shvarcengold Помощь студентам 2 07.03.2017 15:24
Убрать заголовок формы, оставив границы Хамяг Общие вопросы Delphi 13 22.02.2011 02:01