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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.03.2013, 22:36   #1
Veryn4ik1993
Пользователь
 
Регистрация: 12.09.2012
Сообщений: 81
По умолчанию Задача про деление с остатком

Найти наибольшее 4-значное число, которое делится на 21?
можно так или нет?
Код:
program z4;

const
  b = 21; a=9999;

procedure division(a,b: integer);

begin
  
  while a >= b do 
  begin
    a := a - b; 
  end;
 writeln('r =', 9999-a);
end;

begin
  division(a,b);
end.
Veryn4ik1993 вне форума Ответить с цитированием
Старый 27.03.2013, 23:23   #2
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

21 * 9999 div 21
eoln вне форума Ответить с цитированием
Старый 27.03.2013, 23:29   #3
Veryn4ik1993
Пользователь
 
Регистрация: 12.09.2012
Сообщений: 81
По умолчанию

Мне нельзя использовать div и mod а только просматривать через эту процедурку
Veryn4ik1993 вне форума Ответить с цитированием
Старый 28.03.2013, 07:19   #4
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Цитата:
можно так или нет?
Можно, но это только часть программы. Так, которая проверяет, делится ли число. Нужен еще цикл по четырехзначным числам.
Кроме того, у Вас явные пересечения имен переменных с именами объявленных констант - не есть гуд.

Код:
program z4;

const
  c = 21; a=9999; b=1000;

Function IsDiv(num, div_num: integer): boolean;
var temp: integer;
begin
  temp:=num;
  while temp>= div_num do temp:=temp-div_num;    //Собственно Ваша проверка
  IsDiv:=temp=0;            //Если остаток = 0 функция возвращает истину инача - ложь
end;

var i: integer;

begin
  for i:=a downto b do            //проходим циклом от большего числа к меньшему
    if IsDiv (i,c) then break;     //останавливаем цикл, как только находим первое число, делящееся без остатка
  writeln(i);
  readln;
end.
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
деление с остатком Maincore Помощь студентам 4 21.11.2011 06:18
Деление чисел с остатком (C++) mustang075 Помощь студентам 2 16.12.2009 18:21
Деление с остатком! Хрустик Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 15.10.2009 12:44
Деление полиномов с остатком Deidre Общие вопросы C/C++ 0 03.06.2009 22:29
Задача на деление с остатком MAKEDON Свободное общение 1 14.09.2008 10:51