Помощь - Поиск - Пользователи - Календарь
Полная версия: Помогите пожалуйста! Задача на последовательность!
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Раиль
Помогите пожалуйста!!! Угроза вылета из института!!! Надо до завтра сделать!!! blink.gif
Вот задача:
Дана последовательность целых чисел. Вывести все числа, равные сумме двух предыдущих чисел. Выведенные числа упорядочить по возрастанию. Числа задавать с помощью генератора случайных чисел.
ПОЖалуйста mega_chok.gif
Coach
Ну берешь создаешь массив с помощью рандома ,а потом проходишься по массиву ,если A[i]=A[i-1]+A[i-2] ,то загоняешь в другой массив к примеру В ,а потом сортируешь В .Что не получается именно.
Гость
Ну я набрал:
Program Summa;
uses crt;
Const n=10;
Var a: array[1..n] of integer;
i, j, c: integer;
begin
clrScr;
Randomize;
for i:=1 to 10 do
begin
a[i]:=random(10);
Write (a[i]:8)
end;
if a[i]<>a[i-1]+a[i-2] then
Write ('Oaeeo ?enae iao')
Else
if a[i]=a[i-1]+a[i-2] then begin
for j:=1 to n-1 do
a[j]:=a[i];
if a[j]>a[j+1] then begin
c:=a[j];
a[j]:=a[j+1];
a[j+1]:=c;
end;
for j:=1 to n do Write(a[j]:8)
end;
end.
А программа проверяет только последнее число!!! Вот!!!
Coach
Код
Program Summa;
uses crt;
Const n=10;
Var a: array[1..n] of integer;
    b: array[1..n] of integer;
   i, j, c,m,min: integer;
   t:boolean;
begin
clrScr;
Randomize;
for i:=1 to 10 do
begin
a[i]:=random(10);
Write (a[i]:8)
end;
t:=false;
j:=1;
For i:=3 to 10 do
if a[i]=a[i-1]+a[i-2] then
begin
  b[j]:=a[i];
  j:=j+1;
  t:=true
end;
m:=j;
For  i:=1  to m-1 do
begin
   min:=i;
   For j:=i+1 to M-1 do
   begin
       If b[j]<b[min] then
          min:=j;
   end;
   c:=b[i];
   b[i]:=b[min];
   b[min]:=c;
end;
If t=false then
  writeln ('Gisel ydovletvor ysloviu net');
for i:=1 to (m-1) do Write(b[i]:3);
readln;
end.

вот ....
Гость
ААААААААААААААААААААААААААААААААА!!!!!!!!!!! Уррррра!!!! Спасибо!!! Я вечный должник!!!! lol.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.