Вопрос задан 19.07.2023 в 03:42. Предмет Информатика. Спрашивает Япарова Лия.

ПАСКАЛЬ! ПОМОГИТЕ ПОЖАЛУЙСТА! C использованием цикла WHILE ( не массив! ). Числа Фибоначчи

определяются: f0=f1=1, fn=fn-a+fn-2, при n=2, 3... (Т.у. каждое последующее число равно сумме двух предыдущих). Составить программу: а) нахождения К-го числа Фибоначчи; б)нахождение самого первого числа Фибоначчи, превышающего M; в) вычисления суммы всех чисел Фибоначчи, значения которых не превышает 1000. БУДУ ОЧЕНЬ БЛАГОДАРНА!
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Смирнов Евгений.

Ответ:

Program test;

var a,i,b,c,d,count:integer;

   a1,i1,b1,c1,d1,count1,m1:integer;

   a2,i2,b2,c2,d2,count2,summ2:integer;

 

begin

 count := 1;

 c := 0;

 b := 1;

 writeln('Введите номер элемента Фибонначи');

 readln(a);

 writeln('-------------------');

 if a=1 then writeln(0);

 if a=2 then writeln(1);

 

 

 if a>2 then  

 while count<=a-2 do

 begin

   d := b + c;

   c := b;

   b := d;

   

   count := count + 1;

   

 end;

 if a>2 then writeln(d);

 writeln('-------------------');

begin

 count1 := 1;

 c1 := 0;

 b1 := 1;

 writeln('Введите число M');

 readln(m1);

 writeln('-------------------');

 if m1=0 then writeln(1);

 if m1=1 then writeln(2);

 

 if m1>1 then  

 while true do

 begin

   d1 := b1 + c1;

   c1 := b1;

   b1 := d1;

   count := count+ 1;

   if d1>m1 then break;

   

 

   

 end;

if m1>1 then   writeln(d1);

 writeln('-------------------');

 end;

begin

 summ2 := 1;1

 

 count2 := 1;

 c2 := 0;

 b2 := 1;

 writeln('-------------------');

 while true do

   

 begin

   d1 := b1+ c1;

   if d1>1000 then break;

   c1 := b1;

   b1 := d1;

   count := count + 1;

   summ2 := summ2 + d1;

   writeln(summ2);

   

 end;

 writeln('-------------------');

 

end;

end.

Объяснение:

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Конечно, я могу помочь вам с этим. Вот пример программы на языке Pascal, реализующей требуемые функции:

а) Нахождение К-го числа Фибоначчи:

pascal
program FibonacciKthNumber; var K, fibPrev, fibCurr, fibNext, i: integer; begin write('Введите номер K: '); readln(K); fibPrev := 1; fibCurr := 1; i := 2; while i < K do begin fibNext := fibPrev + fibCurr; fibPrev := fibCurr; fibCurr := fibNext; i := i + 1; end; writeln('K-е число Фибоначчи: ', fibCurr); end.

б) Нахождение самого первого числа Фибоначчи, превышающего M:

pascal
program FirstFibonacciGreaterThanM; var M, fibPrev, fibCurr, fibNext: integer; begin write('Введите число M: '); readln(M); fibPrev := 1; fibCurr := 1; while fibCurr <= M do begin fibNext := fibPrev + fibCurr; fibPrev := fibCurr; fibCurr := fibNext; end; writeln('Первое число Фибоначчи, превышающее M: ', fibCurr); end.

в) Вычисление суммы всех чисел Фибоначчи, значения которых не превышают 1000:

pascal
program SumOfFibonacciNumbers; var fibPrev, fibCurr, fibNext, sum: integer; begin fibPrev := 1; fibCurr := 1; sum := 0; while fibCurr <= 1000 do begin sum := sum + fibCurr; fibNext := fibPrev + fibCurr; fibPrev := fibCurr; fibCurr := fibNext; end; writeln('Сумма чисел Фибоначчи, значения которых не превышают 1000: ', sum); end.

Надеюсь, эти примеры помогут вам понять, как использовать цикл while для решения задач с числами Фибоначчи на языке Pascal. Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать их.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос