Неправильный вывод. - 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
доступно в вызывающей программе через аргумент процедуры.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д