Вопрос задан 14.01.2020 в 13:01. Предмет Информатика. Спрашивает Зиятдинов Радмир.

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.
0 0
Перейти к ответам

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

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Байбородов Денис.

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

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

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Чтобы переделать программу с использованием подпрограмм и автоматического ввода массива, вы можете создать отдельные процедуры для ввода массивов, преобразования и вывода результатов. Вот пример переработанной программы:

```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` для ввода массивов, преобразования и вывода результатов соответственно. Теперь программа более структурирована, и каждая процедура выполняет свою конкретную задачу.

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос