Даны действительные числа а1…а30. Оставить без изменения последовательность а1..а30 если она упорядочена не по убыванию и не по возрастанию, в противном случае удалить из последовательности те члены , порядковые номера которых кратны 4, сохранив прежним порядок оставленных членов — Pascal(Паскаль)

uses crt;
const n=30;
var a:array[1..n] of real;
    i,u,v,k,j,p:integer;
begin
clrscr;
writeln('Ishodnyj massiv:');
i:=0;
repeat
inc(i); {увеличиваем на 1}
read(a[i]); {вводим числа в строку через пробел, в конце Enter}
until i=n;
readln;
writeln('Rezultat:');
u:=0;v:=0;k:=0; {начальные значения}
for i:=2 to n do
if a[i]>=a[i-1] then inc(v) {если возрастает, увеличиваем на 1 v}
else if (a[i]<=a[i-1])then inc(u);{если убывает, увеличиваем на 1 u}
if (v=n-1)or(u=n-1) then {если все убывают или возрастают}
   begin
     k:=1; {изменяем значение к}
     for i:=1 to n do {выводим массив как он есть}
     write(a[i]:5:1);
   end;
if k=0 then  {если не возрастает, не убывает, то}
   begin
     i:=1;p:=n;{запоминаем n, т.к. его надо убавлять, а константа не может меняться}
     while i<=p do
       begin
        if i mod 4=0 then {если номер кратный 4}
          begin
            for j:=i to p-1 do {сдвигаем массив влево к этому элементу, он исчезает}
            a[j]:=a[j+1];
            dec(p);  {уменьшаем на 1 длину массива}
          end;
        inc(i);  {переходим к следующему числу +1}
      end;
    for i:=1 to p do {выводим измененный массив}
    write(a[i]:5:1);
  end;
readln
end.

Leave a Comment

− 2 = 6