В n будем хранить количество чисел, которые ещё нужно вывести. a и b - предыдущее и текущее числа Фибоначчи. По определению, следующее число Фибоначчи равно сумме двух предыдущих, так что новое значение b будет a + b. Чтобы не заводить новую временную переменную, новое значение a можно будет найти, вычитая из нового b старое a, получится (a + b) - a = b.
Код процедуры:
procedure print_fib(n: integer);
var a, b, t: integer;
begin
a := 0;
b := 1;
while n > 0 do
begin
write(b, ' ');
b := a + b;
a := b - a;
n := n - 1;
end;
end;
Пример основной программы:
begin
print_fib(10)
end.
Вывод:
1 1 2 3 5 8 13 21 34 55
var
x:integer;
y:real;
begin
write('Введите значение аргумента "X" : ');
readln(x);
y:=3*cos((5*x));
writeln('Значение функции "Y" = ',y);
readln;
end.
2.
var
x,b:integer;
begin
write('Введите количество молока, полученного за день, л : ');
readln(x);
write('Введите количество дней : ');
readln(b);
writeln('Количество молока, полученного за заданный промежуток времени = ',x*b);
readln;
end.
3.
var
a,b,c:integer;
begin
write('Введите двузначное число: ');
readln(a);
b:=a div 10;
c:=a mod 10;
writeln(b,#10,c);
end.
4.
var
b:integer;
a:longint;
begin
write('Введите целое число: ');
readln(a);
b:=a div 100 mod 100;
writeln(b);
readln;
end.
5.
var
a,b:integer;
begin
write('Введите числа : ');
readln(a,b);
if a and b mod 2=0 then
writeln(a+b);
if a and b mod 2<>0 then
writeln(a*b);
readln;
end.
{Про последнее "Иначе", увеличьте все числа в пять раз и выведите результаты" не очень понялЕсли оба чётные - сумма, если оба - нечётные - то произведение. А если иначе, то число должно быть равно нулю. Смысл увеличивать его в пять раз?)}