Неправильный вывод. - Pascal
Формулировка задачи:
Подскажите пожалуйста почему выводятся одни нули. Заранее благодарю.
вот модуль
program core;
uses moduli;
var
a, b: x;
i, k1, k2, n: integer;
s1, s2, z: real;
procedure vivod(var a: x; var b: x; i: integer);
begin
writeln('Массив X:');
for i := 1 to m do
begin
write(' X[', i:2, ']=', a[i]:2);
if i mod 5 = 0 then
begin
writeln;
end;
end;
begin
writeln;
writeln('Массив O:');
for i := 1 to l do
begin
write(' O[', i:2, ']=', b[i]:2);
if i mod 5 = 0 then
begin
writeln;
end;
end;
end;
end;
begin
vvod(a, b, n, i);
vivod(a, b, i);
sum(a, m, s1);
sum(b, l, s2);
count(a, m, k1);
count(b, l, k2);
writeln;
z := (abs(s1) + s2) / (k1 + k2);
writeln('Значение функции z=', z:4:2);
readln;
end.unit moduli;
interface
const
m = 8; l = 14;
type
x = array[1..l] of integer;
procedure vvod(a, b: x; n: integer; var i: integer);
procedure sum(a: x; n: integer; var s: real);
procedure count(a: x; n: integer; var k: integer);
implementation
procedure sum;
var
i: integer;
begin
for i := 1 to n do
s := s + a[i];
end;
procedure count;
var
i: integer;
begin
k := 0;
for i := 1 to n do
if a[i] > 0 then
k := k + 1;
end;
procedure vvod;
begin
writeln('Введите массив X');
for i := 1 to m do
begin
write(' X[', i, ']=');
read(a[i]);
end;
begin
writeln('Введите массив O');
for i := 1 to l do
begin
write(' O[', i, ']=');
read(b[i]);
end;
end;
end;
end.Решение задачи: «Неправильный вывод.»
textual
Листинг программы
procedure vvod(var a, b: x; n: integer; var i: integer);
Объяснение кода листинга программы
- Создается процедура с именем
vvod. - Процедура принимает аргументы:
- переменные
aиbтипаxпо ссылке, - переменную
nтипаinteger, - переменную
iтипаintegerпо ссылке.
- переменные
- В процедуре осуществляется ввод значений в переменные
aиbи увеличение значения переменнойnна1. - Измененное значение переменной
nдоступно в вызывающей программе через аргумент процедуры.