Нужно было составить функцию, вычисляющую сумму отрицательных элементов массива Y1,Y2,Y3,...,Yn, используя модуль. Проблема в том, что компилятор указывает на stack overflow, ошибку 202. Посоветуйте,пожалуйста, как избавиться от неё!!!!!!!
Модуль:
unit pr1;
Interface
const n=6;
type mas=array[1..n] of integer;
function sum(a:mas;d:integer):integer;
procedure vvod(var a:mas;d:integer);
Implementation
function sum;
var sum1,i:integer;
begin
sum1:=0;
for i:=1 to d do
if a[i]<0 then sum1:=sum1+a[i];
writeln('сумма элементов:',sum(a,i));
end;
procedure vvod;
var i:integer;
begin
for i:=1 to d do
write(a[i]);
writeln;
end;
end.
Сама программа:
program pr1_1;
uses pr1;
var b:mas;
i:integer;
begin
vvod(b,n );
sum(b,n);
end.
М | Теги ! |
function sum;(хотя я бы просто возвращал результат, и распечатывал его уже в основной программе... Функция все-таки, а не процедура...)
var sum1,i:integer;
begin
sum1:=0;
for i:=1 to d do
if a[i]<0 then sum1:=sum1+a[i];
writeln('сумма элементов:',sum1); { <--- Здесь }
end;
ввод - это техническая отчепятка )))
спасибо за помощь, сйчас попробую запустить...
Добавлено через 15 мин.
Итог запуска: с модулем всё в порядке, а программа не идёт. =(