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 - первый. Ваш вариант с процедурами и статическими массивами - второй.