Технический форум

Технический форум (http://www.tehnari.ru/)
-   Delphi, Kylix and Pascal (http://www.tehnari.ru/f43/)
-   -   Рекурсия в паскале (http://www.tehnari.ru/f43/t42137/)

zena 16.11.2010 13:12

Рекурсия в паскале
 
Помогите пожалуста составить программу на паскаль.
Даны 2 последовательности по 10 целых чисел в каждой. Найти наименьшее среди тех чисел первой последовательности, которые не входят во вторую последовательность(считая,что хотя бы одно такое число есть).

Если бы нужно было решить не через рекурсию, то задача была бы решена, но в рекурсии совсем не разбираюсь.

AlexZir 16.11.2010 13:26

Цитата:

Рекурсия — это такой способ организации вспомогательного алгоритма (подпрограммы), при котором эта подпрограмма (процедура или функция) в ходе выполнения ее операторов обращается сама к себе. Вообще, рекурсивным называется любой объект, который частично определяется через себя.
Исходя из определения, вам нужно выбрать рекурсивную часть задания и реализовать её.

zena 16.11.2010 13:37

ну я понимаю что такое рекурсия: это ситуация, когда подпрограмма вызывает сама себя.
Но у меня никогда не получалось составить программу с помощью рекурсии: Я очень много допускаю ошибок(в том числе при описании)

zena 16.11.2010 19:54

Вот что-то получилось, но что-то мне не нравится...проверьте пожалуйта:
Цитата:

var a,b:array[1..10] of integer;
k,i,max:integer;

function find(k,i:integer):Integer;
begin
if (i>10)or(a[i+1]=k) then
Result:=i
else
Result:=find(k,i+1);
end;
begin
for i:=1 to 10 do begin
a[i]:=random(10);b[i]:=random(10);
write(a[i]:5);
end;writeln;
for i:=1 to 10 do begin
write(b[i]:5);
end;writeln;
for i:=1 to 10 do begin
k:=find(b[i],1);
if k=11 then begin
write(b[i]:5);
if max<b[i] then max:=b[i];
end;
end;writeln;

end.

zena 17.11.2010 19:46

Здесь только выводятся две последовательности... минимальное число не выводится.:tehnari_ru_325:

AlexZir 18.11.2010 06:47

Странно, в задании написано найти минимальное число, а вы в приведенном листинге ищите максимальное. К чему бы это? Ответьте также, каким образом к может быть равным 11, если у вас цикл от 1 до 10? И почему вы на анализируете вторую последовательность?


Часовой пояс GMT +4, время: 17:37.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.