Var X, Y: array[1..20] of real; N, I: integer; P, K: real; begin write('N='); readln(N);...

0 голосов
79 просмотров

Var X, Y: array[1..20] of real; N, I: integer; P, K: real; begin write('N='); readln(N); for i:=1 to n do read(x[i]); for i:=1 to n do read(y[i]); P:=1.0; for I:=1 to N do if X[I] begin P:=P*Y[I]; K:=X[I]; X[I]:=Y[I]; Y[I]:=K; end; writeln('Izmenen massiv X'); for I:=1 to N do write(X[I], ' '); writeln; writeln('Izmenen massiv Y'); for I:=1 to N do write(Y[I], ' '); writeln; writeln('Proizvedenie novykh komponent X: ', P:8:3); readln; end. как переделать эту программу с подпрограммами??желательно еще сделать авто ввод массива САМА ЗАДАЧА Вещественные векторы x (x1, x2, …, xN) и y (y1, y2, …, yN) преобразовать по правилу: большее из xi и yi принять в качестве нового значения xi , а меньшее – в качестве нового значения yi (i=1, 2, …, N). Печатать преобразованные векторы x и y. Найти и напечатать произведение новых компонентов вектора x.


Информатика (20 баллов) | 79 просмотров
0

Твоя программа (та что написана) не рабочая... Сравнение xi и yi и присвоение значений должен идти подпрограммой? Авто ввод это рандом?

Дан 1 ответ
0 голосов

Вообще это конечно уже извращение писать такие программы в стиле Турбо Паскаля, или даже Фри-Паскаля. По сути тут совсем не нужно писать свои процедуры, - в PascalABC.NET хватает встроенных функций и методов. К тому же, вдобавок, можно пользоваться еще и "нетовскими", если вам мало. Не нужно придумывать свои велосипеды.

Смотрите прикрепленные файлы. В стиле PascalABC.NET - первый. Ваш вариант с процедурами и статическими массивами - второй.

(2.5k баллов)