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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.04.2010, 18:27   #1
qwerty98765
Пользователь
 
Регистрация: 10.04.2010
Сообщений: 10
По умолчанию рекурсия паскаль

Создать логическую функцию, которая возвращает True, если ее аргумент = простое число.
алгоритм реалиовать через рекурсию

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



Function Simple (Pr : Integer) : Boolean;
Var I : Integer; LogPer : Boolean;
Begin I := 2; {счетчик}
Repeat
LogPer := (Pr Mod I = 0);
I := I + 1
Until (I > Pr Div 2 + 1) Or (LogPer);
Simple := Not LogPer
End;
qwerty98765 вне форума Ответить с цитированием
Старый 19.04.2010, 21:11   #2
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Код:
function Simple (Pr : Integer; i: integer = 2) : Boolean;
begin
  if Pr < 2 then result := false else//первое простое число - это 2
  if Pr = 2 then result := true else//если Pr=2, то сразу говорим ДА
  if Pr mod i = 0 then//делится ли число без остатка на i (первоначально i=2)
    result := false
  else
    if i < Pr div 2 then
      result := Simple(Pr, i + 1)//если не делится, то пытаемся делить на i+1
    else
      result := true//возникает в случае если Pr не делится ни на одно число из промежутка (2, Pr div 2]
end;
var i: byte;
begin
for i := 1 to 14 do
  if Simple(i) then writeln(i:3, ' yes') else writeln(i:3, ' no');
  readln
end.
рекурсия_1
рекурсия_2
eoln вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль-рекурсия tanyhaftv Помощь студентам 1 24.03.2010 10:33
Рекурсия(Паскаль) yoyo32 Помощь студентам 3 19.12.2009 20:44
Рекурсия Паскаль seeton Помощь студентам 1 10.12.2009 18:24
Паскаль. Рекурсия Sergik1977 Помощь студентам 8 12.11.2007 17:08