Последовательность, ее тип

Hetrik

ввести последовательность чисел A размерности N. Определить к какому типу относится исходная последовательность: возрастающая, убывающая, переменная. Вывести исходную последовательность, ее тип, а также максимальную разность между соседними членами возрастающей последовательности, минимальную разность между соседними членами убывающей последовательности и 0-для переменной последовательности. Определение типа последовательности оформить подпрограммой. Спасибо заранее)
3 ответа

Hetrik

uses crt;
const nmax=100;
type mas=array[1..nmax] of integer;
procedure Typ(var v:mas;var n:byte;var t:byte);
var i,k1,k2:byte;
begin
repeat
write('Размер последовательности до ',nmax,' n=');
readln(n);
until n in [1..nmax];
writeln('Введите ',n,' элементов последовательности:');
readln(v[1]);
k1:=0;k2:=0;
for i:=2 to n do
 begin
  readln(v[i]);
  if v[i]>=v[i-1] then inc(k1)
  else if v[i]<=v[i-1] then inc(k2);
 end;
if k1=n-1 then t:=1
else if k2=n-1 then t:=2
else t:=3;
clrscr;
end;
var a:mas;
    n,i,k:byte;
    m:integer;
begin
clrscr;
Typ(a,n,k);
writeln('Последовательность:');
for i:=1 to n do
write(a[i],' ');
writeln;
writeln;
case k of
1:begin
  writeln('Последовательность возрастаюшая!');
  m:=abs(a[1]-a[2]);
  for i:=2 to n do
  if abs(a[i]-a[i-1])>m then m:=abs(a[i]-a[i-1]);
  writeln('Максимальная разность между соседними элементами=',m);
  end;
2:begin
  writeln('Последовательность убываюшая!');
  m:=abs(a[1]-a[2]);
  for i:=2 to n do
  if abs(a[i]-a[i-1])<m then m:=abs(a[i]-a[i-1]);
  writeln('Минимальная разность между соседними элементами=',m);
  end;
3:begin
  writeln('Последовательность переменная!');
  write('0');
  end;
end;
readln
end.


Hetrik

Можно точно такую же программу на фортране? Хотя бы проверку на один тип последовательности, остальные попробую сделать по образу и подобию.


Hetrik

Shahmatist, создайте тему в соответствующем разделе.