
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.

Ответы на вопрос

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



Чтобы переделать программу с использованием подпрограмм и автоматического ввода массива, вы можете создать отдельные процедуры для ввода массивов, преобразования и вывода результатов. Вот пример переработанной программы:
```pascal program VectorsTransformation;
const N = 20;
type RealArray = array[1..N] of real;
var X, Y: RealArray; P: real;
procedure InputArray(var A: RealArray); var I: integer; begin for I := 1 to N do begin write('Введите элемент ', I, ': '); readln(A[I]); end; end;
procedure TransformArrays(var X, Y: RealArray; var P: real); var I: integer; K: real; begin P := 1.0; for I := 1 to N do begin if X[I] < Y[I] then begin P := P * Y[I]; K := X[I]; X[I] := Y[I]; Y[I] := K; end; end; end;
procedure OutputArray(const A: RealArray; const message: string); var I: integer; begin writeln(message); for I := 1 to N do write(A[I], ' '); writeln; end;
begin InputArray(X); InputArray(Y);
TransformArrays(X, Y, P);
OutputArray(X, 'Преобразованный массив X:'); OutputArray(Y, 'Преобразованный массив Y:');
writeln('Произведение новых компонентов вектора X: ', P:8:3);
readln; end. ```
Этот код использует процедуры `InputArray`, `TransformArrays` и `OutputArray` для ввода массивов, преобразования и вывода результатов соответственно. Теперь программа более структурирована, и каждая процедура выполняет свою конкретную задачу.


Топ вопросов за вчера в категории Информатика
Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili