В функцию sort не передается значения массива из другой функции - Pascal
Формулировка задачи:
Подскажите пжлст почему в процедуру sort не передаются значения массива из процедуры vyb
var z: integer; const n = 1000; type mas = array [1..n] of real; var a: mas; b: mas; procedure vyb(var a: mas); var i, n1: integer; begin writeln('vvedite kolichestvo chisel, kotoroe budet v massive'); readln(n1); writeln('vvedite chisla, posle kazhdogo chisla nazhav enter'); for i := 1 to n1 do begin readln(a[i]); end; writeln('vvedyenyi massiv'); for i := 1 to n1 do write(a[i], ' '); writeln; end; procedure vvod(var z: integer); var b: mas; begin repeat begin readln(z); case z of 1: vyb(b); 2: begin writeln('программа будет закрыта'); halt; end; else begin writeln('введите правильное число 1 или 2'); z := 0; end; end; end; until (z = 1); end; procedure sort(var a: mas); var i, j, n1: integer; tmp: real; begin tmp := 0; for i := 1 to n1 do begin for j := 1 to n1 - 1 do begin writeln('a[j]=', a[j], ' '); if a[j] > a[j + 1] then begin tmp := a[j]; a[j] := a[j + 1]; a[j + 1] := tmp; end; end; end; if tmp <> 0 then writeln('отсортированное множество по возрастанию'); for i := 1 to n1 do write(a[i], ' '); end; begin writeln('vvedite deistvie s klaviatury nazhav sootvetstvuyshuy cifru: 1 - vvod mnozhestva, 2 - vyhod iz programmy'); vvod(z); writeln; sort(b); writeln; end.
Решение задачи: «В функцию sort не передается значения массива из другой функции»
textual
Листинг программы
{основная программа, глобальные переменные} var b: mas; ... procedure vvod(var z: integer); var b: mas; { это отдельный локальный массив b, а не глобальный массив b } { Глобальный массив b здесь и далее до конца процедуры не виден } { все обращения к b -- это обращения к локальной b }
Объяснение кода листинга программы
- В файле объявлены глобальные переменные, включая массив
b
. - Начинается описание процедуры
vvod
, которая принимает переменнуюz
по ссылке. - Внутри процедуры объявляется локальный массив
b
, который независим от глобального массиваb
. - Внутри процедуры все обращения к
b
будут относиться к локальному массивуb
, а не к глобальному массивуb
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д