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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.06.2009, 00:06   #1
Hikari
Пользователь
 
Регистрация: 31.05.2009
Сообщений: 13
Вопрос переполнение стека. помогите решить эту проблему

Задача:
Дан вектор X из n вещественных чисел. Найти минимальный элемент вектора, используя вспомогательную рекурсивную функцию, находящую минимум среди последних элементов вектора X, начиная с n -гo.

вот программная реализация ее:

program rec;
uses crt;
Var a:arrray [1..30] of real;
i,n:integer;
min:real;

Procedure CreateMass;
Begin
for i:=1 to n do
begin
a[i]:=random*30-10;
write(a[i]:3:2);
end;
End;

Function compare(n:integer):real;
Begin
i:=n;
if a[i]<=a[i-1] then compare:=a[i]
else compare:=a[i-1];
compare:=compare(n-1);
End;

Begin
clrscr;
write('введите количество элементов массива ')
read(n);
CreateMass;
writeln('Минимальный элемент ');
min:=compare(n);
readkey;
End.

при вызове программы выдается ошибка 202 - Stack overflow error.
помогитe, пожалуйста, решить эту проблему.
Hikari вне форума Ответить с цитированием
Старый 01.06.2009, 18:58   #2
volvo877
Форумчанин
 
Аватар для volvo877
 
Регистрация: 01.06.2009
Сообщений: 108
По умолчанию

Код:
function compare(n: integer): real;
var v: real;
begin
  if n = 1 then compare := a[1]
  else begin
    v := compare(n - 1);
    if a[n] < v then compare := a[n] else compare := v
  end;
end;
Вызывать:
Код:
Writeln(compare(n):10:5);
volvo877 вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Переполнение стека Ake Паскаль, Turbo Pascal, PascalABC.NET 3 30.05.2009 22:39
Переполнение Стека Викдон Паскаль, Turbo Pascal, PascalABC.NET 0 19.12.2008 19:16
Переполнение стека при передачи функциям массивов большой размерности graphoman Общие вопросы Delphi 2 07.01.2008 21:47
Помогите решить эту задачку Magic Blood Microsoft Office Excel 1 16.05.2007 18:17