Считать значения вектора X[1:24] из внешнего файла. Если модуль минимального значение вектора Х больше модуля максимального значения вектора, сформировать вектор Y [1:12] следующим образом: — Pascal(Паскаль)

Y(1) = X(1) + X(2)

Y(2) = X(3) + X(4)

. . . . . .

Y(12) = X(23) + X(24)

Иначе сформировать вектор Y [1:24] следующим образом:

Y(1) = X(1)

Y(2) = X(1)-X(2)

Y(3)= X(1)-X(2) +X(3)

. . . .

Y(24) = X(1)-X(2) +X(3)-¼-X(24)

Записать значения полученных векторов во внешний файл
Для тестирования программы создайте в папке с ней 3 текстовых файла с целыми числами
- первый с количеством чисел меньше 24
- второй с 24 числами где модуль минимума больше, например самое маленькое число -20, самое большое +15
- третий где модуль минимума меньше, например минимум -5 максимум 15.
uses crt;
const n=24;
var f,g:text;
    x,y:array[1..n] of integer;
    k,i,j:byte;
    nf,ng:string;
    mn,mx:integer;
begin
clrscr;
write('Имя файла для чтения: ');
readln(nf);
nf:=nf+'.txt';
assign(f,nf);
{$I-} reset(f);  {$I+}
if IOResult <> 0 then
 begin
  writeLn('Не могу открыть файл ',nf);
  writeLn('Работа программы завершена. Нажмите ENTER');
  readln;
  exit;
 end;
k:=0;
while (k<24)and not eof(f) do
 begin
  k:=k+1;
  read(f,x[k]);
 end;
if eof(f) and(k<n) then
 begin
  writeln('В файле ',nf,' нет ',n,' чисел, исправьте файл!');
  writeLn('Работа программы завершена. Нажмите ENTER');
  readln;
  exit;
 end;
close(f);
write('Имя файла для записи  ');
readln(ng);
ng:=ng+'.txt';
assign(g,ng);
rewrite(g);
writeln('Вектор Х:');
mn:=x[1];
mx:=x[1];
for i:=1 to n do
 begin
  write(x[i],' ');
  if x[i]<mn then mn:=x[i];
  if x[i]>mx then mx:=x[i];
 end;
writeln;
writeln('Минимум=',mn,'  максимум=',mx);
if abs(mn)>abs(mx) then
 begin
  writeln('Модуль минимума больше модуля максимума');
  writeln('Вектор Y:');
  writeln(g,'Vektor Y:');
  for i:=1 to n div 2 do
   begin
    y[i]:=x[2*i-1]+x[2*i];
    write(y[i],' ');
    write(g,' ',y[i]);
   end;
  writeln;
  write('Вектор Y записан в файл ',ng);
  close(g);
 end
else
 begin
  writeln('Модуль минимума не больше модуля максимума');
  writeln('Вектор Y:');
  writeln(g,'Vektor Y:');
  for i:=1 to n do
   begin
    y[i]:=0;
    for j:=1 to i do
    if odd(j) then y[i]:=y[i]+x[j]
    else y[i]:=y[i]-x[j];
    write(y[i],' ');
    write(g,' ',y[i]);
   end;
  writeln;
  write('Вектор Y записан в файл ',ng);
  close(g);
 end;
readln
end.

Leave a Comment

21 + = 23