Вопрос 1.
Какие ключевые слова не используются для записи команды ветвления?
andВопрос 2.
Как выглядит полная форма команды ветвления?
if ... then ... else ...
Вопрос 3.Как выглядит сокращённая форма команды ветвления?
if ... then ...Вопрос 4.
Какая из команд записана неправильно?
if a:=0 then a>0;
Вопрос 5.
Какая из команд записана правильно?
if x=0 and a>0 then b:=0 else b:=x;Вопрос 6.
Какая из команд записана правильно?
if (x=0) and (a>0) then begin b:=0;c:=x; end else b:=x;
Вопрос 7.
Что будет напечатано на экране в результате выполнения данного фрагмента программы
a:=6;
if a mod 2 = 0 then write(a+2) else write(a-2);
8Вопрос 8.
Что будет напечатано на экране в результате выполнения данного фрагмента программы
a:=12;
if a div 2 >= 6 then b:=a mod 5 else b:=a div 3;
write(a-b);
10
Вопрос 9.
Что будет напечатано на экране в результате выполнения данного фрагмента программы
a:=22;
if a*a >= 225 then a:=a mod 6
Write(22-a);
18
Вопрос 10.
Вставьте пропущенную логическую операцию так, чтобы значение переменной z после выполнения заданного фрагмента программы стало равным 9
a:=5; b:=8; c:=11;
if (a>b) ... (b
4 не знаю - ФРАГМЕНТ ПРОГРАММЫ НЕ ДОПИСАН
Вопрос 11.
Вставьте пропущенную логическую операцию так, чтобы значение переменной z после выполнения заданного фрагмента программы стало равным 3
a:=15; b:=7; c:=4;
if (a>b) ... (b
4 не знаю - ФРАГМЕНТ ПРОГРАММЫ НЕ ДОПИСАН
Вопрос 12.
Вставьте пропущенную логическую операцию так, чтобы значение переменной z после выполнения заданного фрагмента программы стало равным 5
a:=1; b:=8; c:=6;
if (a<=c) ... (b<=c) then z:=c-a else z:=c-b;
2 orProgram summa;
Uses crt;
Const m=20;
Var a:array[1..m] of integer;
i,s:integer;
Begin
For i:=1 to m do
a[i]:=random(101)-50;
For i:=1 to m do
s:=s+a[i];
If s>50 then writeln('Сумма = ',s) else
for i:= 1 to m do
Writeln('Элемент массива №',i,' равен ',a[i]);
End.
или
Program summa;
Uses crt;
Const m=20;
Var a:array[1..m] of integer;
i,s:integer;
Begin
For i:=1 to m do
Readln(a[i]);
clrscr;
For i:=1 to m do
s:=s+a[i];
If s>50 then writeln('Сумма = ',s) else
for i:= 1 to m do
Writeln('Элемент массива №',i,' равен ',a[i]);
End.
Для перехода от математической записи к записи, пригодной для алгоритмизации (и программирования), нужно представить число Фибоначчи в виде некоей функции F(n) и уже эту функцию программировать. Такое представление получить в данном случае очень просто.
Поскольку в функции присутствует определение её значения через обращение к ней же, мы можем говорить о рекурсивном определении функции.
Рекурсия программируется либо непосредственно (это быстро, наглядно, но часто сопряжено с большими расходами вычислительных ресурсов), либо путем сведения к итерации (это существенно менее наглядно, может быть затруднено алгоритмически, но эффективно при выполнении). Поскольку в задании говорится о рекурсии, выбираем рекурсивный алгоритм.
1. Очень короткая реализация
// PascalABC.NET 3.1, сборка 1250 от 28.05.2016
function Fib(n:integer):integer:=(n<2?1:Fib(n-1)+Fib(n-2));
begin
Writeln(Fib(ReadInteger('n=')))
end.
Тестовое решение
n= 20
10946
2. Более традиционная реализация
// PascalABC.NET 3.1, сборка 1250 от 28.05.2016
function Fib(n:integer):integer;
begin
if n<2 then Result:=1
else Result:=Fib(n-1)+Fib(n-2)
end;
begin
Writeln(Fib(ReadInteger('n=')))
end.
3. Тупо-школьная реализация
// PascalABC.NET 3.1, сборка 1250 от 28.05.2016
function Fib(n:integer):integer;
begin
if n<2 then Fib:=1
else Fib:=Fib(n-1)+Fib(n-2)
end;
var
n:integer;
begin
Write('n='); Read(n);
Writeln(Fib(n))
end.
Как хорошо видно, по мере деградации уровня программирования программа становится длиннее, но ни в коем случае ни яснее, ни эффективнее.