Помогите с двумя задачами, одну частично выполнил...
Задача №1
Задача на использование формальных массивов в процедурах.
Составить процедуру, исходными данными которой является матрица А из n строк и n столбцов, либо два массива B1,B2,...,Вn; C1,C2,...,Cm, либо один из них. Для проверки составленной внешней процедуры разработать головной модуль.
Важно. Процедура не должна использовать «внутри себя» глобальных переменных. Все необходимое для работы процедуры и передачи результата должно осуществляться через параметры процедуры.
Вывести измененный массив C1,C2,...,Cm: каждый элемент, предшествующий минимальному, помножен на него, а все следующие за минимальным уменьшены на 1.
Я решал, общую форму программы написал примерно, а с позицией минимального элемента проблема....
PHP код:
uses System;
const
m=5;
type
Mass=array[1..m] of integer;
Mas=array[1..m] of integer;
Procedure Izmena ( Var C:Mass;Var D:Mas ;Const Pm:byte;var Pmin:integer; Pi_min:integer; i:integer ); // Pm-кол-во элементов, Pmin-минимальный элемент, Pi_min-позиция минимального элемента
begin
i:=i+1;
Pmin:=Pm;
for i:=1 to Pm do
D[i]:=C[i];
for i:=1 to Pm do
Begin
if C[i]<Pmin then
Begin
Pmin:=C[i];
Pi_min:=i;
writeln(Pi_min);
end;
end;
end;
Var
B:Mas;
A:Mass:=((5,5,4,2,7));
min,i_min,ia:integer;
begin
Izmena(A,B,m,min,i_min,ia);
writeln('минимум ',min, ', стоит на ', i_min, ' месте');
writeln(i_min);
for ia:=1 to m do
end.
...каждый элемент, предшествующий минимальному, помножен на него, а все следующие за минимальным уменьшены на 1... Я представил как
PHP код:
for i:=1 to Pm do
...if i<Pi_min then
D[i]:=C[i]*Pmin;
if i>Pi_min then
D[i]:=C[i]-1...
Не знаю, верно это или нет
Задача №2
Задача на разработку программы с использованием созданной в задании процедуры.
Составить программу с разработкой и использованием указанной в задании процедуры.
Напоминание: процедура не должна использовать «внутри себя» глобальных переменных. Все необходимое для работы процедуры и передачи результата должно осуществляться через параметры процедуры.
В каждой из матриц: A (3 строки, 4 столбца) и B (5 строк, 5 столбцов) поменять местами две строки: в матрице A - строки 2 и 3, в матрице B - строки 2 и 4.
Для обмена в матрице строк с произвольными номерами использовать процедуру.
В этой задаче я испытал огромные сложности, не придя к правильному решению...
Заранее спасибо!