Max среди координат одного вектора - Free Pascal
Формулировка задачи:
max среди координат одного вектора.
С векторов v1,v2,v3 выбрать вектора(один или несколько),что имеют наибольший max среди координат.В выбранных векторах заменить этот max на значения 2010.Вывести max среди координат и отобранные векторы,вывести изменённые векторы.
Помогите с программкой)))
Решение задачи: «Max среди координат одного вектора»
textual
Листинг программы
{$mode objfpc}
uses
math;
const
n=15;
var
num,i,j:integer;
v1,v2,v3:array[1..n] of Integer;
b:array[1..3] of integer;
procedure CreateVectors;
begin
for i:=1 to n do
begin
v1[i]:=random(n*n)- n*n div 2;
v2[i]:=random(n*n)- n*n div 2;
v3[i]:=random(n*n)- n*n div 2;
end;
writeln('Первый вектор: ');
for i:=1 to n do
write(v1[i]:5);
writeln;
writeln('Второй вектор: ');
for i:=1 to n do
write(v2[i]:5);
writeln;
writeln('Третий вектор: ');
for i:=1 to n do
write(v3[i]:5);
writeln;
end;
procedure FindMax;
begin
b[1]:=MaxValue(v1);
b[2]:=MaxValue(v2);
b[3]:=MaxValue(v3);
writeln('Максимумы:');
for i:=1 to 3 do
writeln('Максимум ',i,'-го вектора: ',b[i]);
Writeln('Максимум среди максимумов: ',MaxValue(b));
for j:=1 to 3 do
if b[j]=maxvalue(b) then
num:=j;
writeln;
end;
procedure OutputChangedVector;
begin
case num of
1: begin
writeln('Измененный первый вектор:');
for i:=1 to n do
begin
if v1[i]=b[1] then
v1[i]:=2010;
write(v1[i]:5)
end;
writeln;
end;
2: begin
writeln('Измененный второй вектор:');
for i:=1 to n do
begin
if v2[i]=b[2] then
v2[i]:=2010;
write(v2[i]:5)
end;
writeln;
end;
3: begin
writeln('Измененный третий вектор:');
for i:=1 to n do
begin
if v3[i]=b[3] then
v3[i]:=2010;
write(v3[i]:5)
end;
writeln;
end;
end;
end;
begin
randomize;
createvectors;
FindMax;
OutputChangedVector;
readln;
end.
Объяснение кода листинга программы
Список элементов кода:
- Векторы v1, v2 и v3 заданы размером n и заполняются случайными значениями от -n до n.
- Функция MaxValue ищет максимальное значение в массиве.
- В процедуре FindMax находятся максимальные значения для каждого из векторов, а затем находится максимальное значение среди этих максимумов.
- В процедуре OutputChangedVector выводится вектор, в котором найден максимальный элемент, и этот элемент заменяется на 2010.
- В конце кода выполняется чтение NUL-символа для завершения работы программы.