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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 02.11.2011, 00:07   #1
тина222
 
Регистрация: 02.11.2011
Сообщений: 4
Восклицание паскаль

пожалуйста помогите переделать программу. эта программа написана через цикл, а мне надо через функцию или процедуру. найти все делители натурального числа n.
вот сама программа

program Project1;

{$APPTYPE CONSOLE}

uses
SysUtils;

Var n,i:integer;
begin
{ TODO -oUser -cConsole Main : Insert code here }

Write('vvedite chislo...');
Readln(n);
Write(' deliteli chisla',n,' : ');
i:=1;
while i<=n do
begin
if n mod i = 0
then Write(i,' ');
Inc(i);
end;
readln;
end.
тина222 вне форума
Старый 02.11.2011, 00:22   #2
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Странное противопоставление. Без цикла тут никак, в том или ином виде.
Abstraction вне форума
Старый 02.11.2011, 00:22   #3
kangreon
Форумчанин
 
Аватар для kangreon
 
Регистрация: 03.04.2009
Сообщений: 305
По умолчанию

Без цикла будет так. Но с большими числами не выйдет =)
Код:
program Project1;

{$APPTYPE CONSOLE}

uses
  SysUtils;

Var
  n, i: Integer;

procedure FinDiv(const st, sel: Integer);
begin
  if sel <= 0 then
    Exit;

  if st mod sel = 0 then
    Write(sel, ' ');

  FinDiv(st, sel - 1);
end;

begin
  Write('Write number: ');
  ReadLn(i);

  Write(i, ' divided into: ');
  FinDiv(i, i);
  ReadLn;
end.
или если надо было просто добавить функцию

Код:
program Project1;

{$APPTYPE CONSOLE}

Var
  n, i: integer;

function isMod(n, i: integer): Boolean;
begin
  Result := n mod i = 0;
end;

begin
  Write('vvedite chislo...');
  Readln(n);
  Write(' deliteli chisla', n, ' : ');
  i := 1;
  while i <= n do
  begin
    if isMod(n, i) then
      Write(i, ' ');
    Inc(i);
  end;
  Readln;
end.
kangreon вне форума
Старый 02.11.2011, 00:29   #4
тина222
 
Регистрация: 02.11.2011
Сообщений: 4
Радость

аааааааааааааа спасибо огромное!!!!!!!!!!!!
и вообще хорошо что у нас у девушек есть на кого положиться!!!
тина222 вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль, Борланд Паскаль-в чем разница??? Vremya-Dengy Паскаль, Turbo Pascal, PascalABC.NET 13 31.05.2011 18:23
паскаль и турбо паскаль Евгения Игоревна Помощь студентам 6 05.05.2011 14:31
Паскаль -->C++ Eross Общие вопросы C/C++ 5 16.04.2011 23:19
из Си в Паскаль AET Паскаль, Turbo Pascal, PascalABC.NET 1 15.04.2011 21:58