Помощь - Поиск - Пользователи - Календарь
Полная версия: Программирование алгоритмов с массивами
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
GORBUNKI
Помогите решить две задачи Пожалуйста:
1.Найти номер последнего отрицательного элемента в массиве.
2.Заполнить N элементов массива А числами Фибоначчи (первые два элемента равны 1, а каждое следующее - сумме двух предыдущих).
И Пожалуйста Обе
APAL
1.
...
for i:=1 to Mmax do If m[i]<0 then k:=i;
Writeln('Последний отрицательный элемент под номером ',k,' и равен ',m[k]);
...
APAL
2.
...
A[1]:=1; A[2]:=1;
For i:=3 to N do A[i]:=A[i-1]+A[i-2];
...
GORBUNKI
Цитата
Помогите решить две задачи Пожалуйста:
1.Найти номер последнего отрицательного элемента в массиве.
2.Заполнить N элементов массива А числами Фибоначчи (первые два элемента равны 1, а каждое следующее - сумме двух предыдущих).
И Пожалуйста Обе

Только полностью решёные задачи, а то я в этом ничего не соображаю!
APAL
Цитата(GORBUNKI @ 13.04.04 13:43)
Только полностью решёные задачи, а то я в этом ничего не соображаю!

1.
Код
Const
 Mmax:=20;
Var
 i,k : Word;
 m : array [1..Mmax] of Integer;
Begin
 {Заполняем массив случ. числами от -200 до +200}
 For i:=1 to Mmax do m[i]:=Round(Random(400)-200);

 For i:=1 to Mmax do If m[i]<0 then k:=i;
 Writeln('Последний отрицательный элемент под номером ',k,' и равен ',m[k]);
End.


P.S.: Программу писал прямо здесь. Т.е. я ее не проверял в работе...
APAL
2.

Код
Const
 N:=100;
Var
 A : Array [1..N] of LongInt;
Begin
 A[1]:=1; A[2]:=1;
 For i:=3 to N do
 Begin
   A[i]:=A[i-1]+A[i-2];
   Writeln(A[i]);
 End;
End.
fms
в первой задаче можно просто задом наперед массив просмотреть и до 1-ого отрицательного.. тогда немного быстрее.. smile.gif
AlaRic
Оптимизация и устранение неточностей:

Код
Const
Mmax=20;
Var
i,k : Word;
m : array [1..Mmax] of Integer;
Begin
Randomize;
Clrscr;
{Заполняем массив случ. числами от -200 до +200}
For i:=1 to Mmax do m[i]:=Round(Random(400)-200);
For i:=Mmax downto 1 do If m[i]<0 then begin k:=i; break; end;
Writeln('Последний отрицательный элемент под номером ',k,' и равен ',m[k]);
End.
fms
лучше вместо for'a while или repeat использовать.. из них лучше выходить в нужный момент.. rolleyes.gif
APAL
Да, оптимизация на лишняя... smile.gif
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.