Program z4; Type Arr=array[1..255] of integer; Var A,b:arr; M,v,n:byte;Procedure sa(x, y: arr;
z:byte; var c:array[1..255] of real); Var i, j, K :byte; begin x[i]:=x[1]; y[j]:=y[1]; for k:=1 to z do begin c[k]:=(X[i]+y[j])/2; x[i]:=x[i+1]; y[j]:=y[j+1]; write (' ',c[k]); end; end;beginrandomize;write('введите N'); read(n); for M:=1 to n do begin A[m]:=random (90)-43; Write (' ',a[m]); End; writeln;for v:=1 to n do begin B[v]:=random (87)-36; Write (' ',b[v]); End; sa (a, b, n);End.что не так, срочно!!!!!!!!!!!!!составить блок схемуОтветы на вопрос
Ответ:
i,n: integer; procedure IN1(var a,b:real;n: integer;var y:real); var p:real; i:integer; ... Пример записи: CONST 63 N=20; TYPE T= ARRAY [ 1.
В коде, который вы предоставили, есть несколько ошибок:
В процедуре
saвам необходимо объявить переменныеi,jиkи инициализировать их значениями перед их использованием в цикле. Также, для циклаfor k:=1 to zследует использоватьzкак верхнюю границу, а не1.В вызове процедуры
saв конце программы не передается переменная для хранения результата. Вы объявили массивc, но не передали его в процедуру.В процедуре
saвы используете переменныеiиj, но не инициализируете их значениями. Вам нужно итерироваться по массивамxиy, чтобы вычислить значенияc[k], но в вашем коде это не выполняется.В вашем вызове процедуры
saвы передаете только два массиваaиb, но ожидаете, что будет передано третье значениеn. Вы должны передавать все три параметра.Вы должны объявить переменную
kперед использованием ее в цикле.После вызова
sa(a, b, n);вам нужно указать переменную для хранения результата, либо изменить процедуруsa, чтобы она возвращала результат.
Вот исправленный код:
pascalProgram z4; Type Arr = array[1..255] of integer; Var A, b: arr; M, v, n: byte; Procedure sa(x, y: arr; z: byte; var c: array[1..255] of real); Var i, j, k: byte; begin i := 1; j := 1; for k := 1 to z do begin c[k] := (x[i] + y[j]) / 2; x[i] := x[i + 1]; y[j] := y[j + 1]; write(' ', c[k]); end; end; begin randomize; write('Введите N: '); read(n); for M := 1 to n do begin A[M] := random(90) - 43; Write(' ', A[M]); end; writeln; for v := 1 to n do begin b[v] := random(87) - 36; Write(' ', b[v]); end; writeln; // Создайте массив для хранения результата var result: array[1..255] of real; sa(A, b, n, result); end.
Это исправленный код, который должен работать корректно. Теперь в нем объявлены и инициализированы все необходимые переменные и массивы.
Похожие вопросы
Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili
