Считать значения вектора V[1:24] из внешнего файла. Если среднеарифметическое значение элементов с четными индексами больше или равно среднеарифметическому значению элементов с нечетными индексами, то все элементы вектора увеличить в 5 раз и сформировать из них матрицу W[1:4;1:6]. Иначе в вектор вставить 15-м элементом минимальный элемент вектора, все элементы вектора возвести в квадрат и сформировать из них матрицу Z[1:5;1:3]. Записать значения полученных матриц во внешний файл — Pascal(Паскаль)

uses crt;
const n=24;
var v:array[1..n+1] of real;
    w,z:array[1..5,1..6] of real;
    i,j,kc,kn:byte;
    a,sc,sn,mn:real;
    f,g:text;
begin
clrscr;
randomize;
assign(f,'filef.txt');
rewrite(f);
assign(g,'fileg.txt');
rewrite(g);
//чтобы для каждого теста не вбивать файл вручную, 
будем его заполнять рандомно в программе.
for i:=1 to n do
 begin
  a:=10*random;
  write(f,a:6:2);
 end;
close(f);
reset(f);
writeln('Исходный вектор:');
sc:=0;kc:=0;
sn:=0;kn:=0;
for i:=1 to n do
 begin
  read(f,v[i]);
  write(v[i]:6:2);
  if i mod 2=0 then
   begin
    sc:=sc+v[i];
    kc:=kc+1;
   end
  else
   begin
    sn:=sn+v[i];
    kn:=kn+1;
   end;
 end;
writeln;
writeln;
sc:=sc/kc;
sn:=sn/kn;
writeln('Среднее с четными индексами=',sc:0:2);
writeln('Среднее с нечетными индексами=',sn:0:2);
if sc>=sn then
 begin
  writeln('Среднее с четными индексами больше');
  for i:=1 to n do
  v[i]:=v[i]*5;
  writeln('Матрица W:');
  writeln(g,'Matrica W:');
  for i:=1 to 4 do
  begin
    for j:=1 to 6 do
       begin
        w[i,j]:=v[j+6*(i-1)];
        write(w[i,j]:6:2);
        write(g,w[i,j]:6:2);
       end;
    writeln;
    writeln(g,'');
  end;
 end
else
 begin
  writeln('Среднее с четными индексами меньше');
  mn:=v[1];
  for i:=1 to n do
  if v[i]<mn then mn:=v[i];
  v[n+1]:=mn;
  writeln('Минимальный элемент=',mn:0:2);
  writeln('Матрица Z:');
  writeln(g,'Matrica Z:');
  for i:=1 to 5 do
   begin
    for j:=1 to 5 do
       begin
        z[i,j]:=v[j+5*(i-1)];
        write(z[i,j]:6:2);
        write(g,z[i,j]:6:2);
       end;
    writeln;
    writeln(g,'');
   end;
 end;
close(g);
write('Файл матриц записан!');
readln
end.

Leave a Comment

68 − = 59