Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

Ответ
 
Опции темы
Старый 17.12.2018, 06:20   #1
Kosta Riko
Новичок
 
Регистрация: 17.12.2018
Сообщений: 2
Репутация: 10
По умолчанию [РЕШЕНО] Как убрать цикл 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 в 06:32. Причина: сделать код более читабельным
Kosta Riko вне форума   Ответить с цитированием
Старый 17.12.2018, 10:08   #2
evg_m
Профессионал
 
Регистрация: 20.04.2008
Сообщений: 4,777
Репутация: 2114
По умолчанию

Код:

        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, 14:11   #3
Kosta Riko
Новичок
 
Регистрация: 17.12.2018
Сообщений: 2
Репутация: 10
По умолчанию

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

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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


23:02.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru