IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Функция
сообщение
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 51
Пол: Мужской
Реальное имя: Аблай

Репутация: -  0  +


Описать рекурсивную функцию MinRec(A,N) вещества типа,которая находит минимальный элемент вещестного массива A размера N,не используя оператор цикла .С помощью функции MinRec найти минимальные элемента массивов A,B,C размера NA,NB,NC соответсвенно!!

Помогите пожалуста. непонятные ошибки...

type mas=array[1..50] of integer;
var x,y,z:mas;
n,i,k,l:integer;

function Min(n,k,l:integer):integer;
var w:integer;
begin
if n>1 then
begin
w:=Min(n-1);
if x[n]>w then Min:=w
else Min:=x[n]
end
else Min:=x[1]
end;

begin
if k>1 then
begin
w:=Min(k-1);
if y[k]>w then Min:=w
else Min:=y[k]
end
else Min:=y[1]
end;

begin
if l>1 then
begin
w:=Min(l-1);
if z[l]>w then Min:=w
else Min:=z[l]
end
else Min:=z[1]
end;

begin
clrscr;
randomize;
write('Razmer massiva X n='); readln(n);
write('Razmer masiva X k='); readln(k);
write('Razmer masiva X l='); readln(l);
writeln('Massiv X: '); writeln('Massiva Y: '); writeln('Massiv Z: ');
for i:=1 to n do
begin
x[i]:=random(20);
y[i]:=random(20);
z[i]:=random(20);
write(x[i],' ', y[i] , ' ' , z[i] , ' ');
end;
writeln;
write('min=',Min(n));
write('min=',Min(k));
write('min=',Min(l));
readln
end.

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






Начать решать заново.

Для начала - алгоритм. На словах. Что делаешь, если у тебя есть массив определенного размера, и тебе надо найти в нем минимум? Правильно. Если размер = 1, то минимум очевиден: это и есть тот единственный элемент. Если элементов больше 1 - то надо найти наименьшее из двух: последний элемент массива и минимум всех предыдущих:

function min(a, b: real): real;
begin
if a < b then min := a else min := b;
end;

function minrec(const arr: array of real;
size: integer): real;
begin
if size = 1 then minrec := arr[0]
else minrec := min(arr[size - 1], minrec(arr, size - 1));
end;

Все просто...

Вызывать - так:
type
mas=array[1..5] of real;
const
a1: mas = (4, 3, 9, -12, 5);

begin
writeln(minrec(a1, 5):5 :2);
end.
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 8.11.2025 18:42
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name