1)Как называется вс алгоритм, который напрямую или через другие вс алгоритмы вызывает сам себя? Линейный
Разветвляющийся
Циклический
Рекурсивный
2)Как называется определения множества объектов через это же множество на основе заданных базовых случаев?
Рекурсия
Прогрессия
Регрессия
3)Выберите ложные утверждения:
Рекурсивные алгоритмы обязательно должны содержать вызов самого себя или другого вс алгоритма.
Рекурсивные алгоритмы работают быстрее итерационных.
Рекурсивные алгоритмы обычно короче и понятнее итерационных.
Программный стек не ограничен.
4)Как называется принцип, согласно которому сложные программы разрабатываются и тестируются по частям. При это такие части программы независимы друг от друга?
5)Как называется область оперативной памяти, в которой хранятся значения параметров и адреса возврата вызываемых функций?
6)Чему будет равно а после исполнения инструкций?
def func (num):
if num < 10:
return num
else:
return func (num % 10 + num % 100 // 10)
a = func (275)
7)Из каких частей состоит рекурсивное определение?
Индуктивная часть
Противоречащие случаи
Инверсная часть
Базовые случаи
8)Какие из приведённых строк кода можно описать на пропущеной позиции в рекурсивной функции вычисления n-ного числа Фибоначчи? Числами Фибоначчи называется числовой ряд, в котором первые два числа равны единице, а все последующие являются суммой двух предыдущих.
def fibo (n):
if n <2:
return 1
else:
fibo (n - 1) + fibo (n - 2)
return fibo (n - 1) + fibo (n - 2)
return fibo ((n - 1) + (n - 2))
return fibo (n - 2) + fibo (n - 1)
9)Как называется принцип, согласно которому описанные модули стоит сохранять и расширять, чтобы не решать снова уже решённую задачу, если она встретиться повторно?
Повторное использование кода
Первичное использование кода
Основное использование кода
10)Что произойдёт при попытке исполнения инструкций?
def rec (n):
if n > 0:
return rec (n % 10)
else:
return n
a = rec (15)
Значение а станет равно 5
Зацикливание
Переполнение программного стека
Значение а станет равно 0
#include <sstream>
#include <vector>
#include <string>
using namespace std;
int main(int argc, char** argv) {
cout << "string: ";
string s; getline(cin, s);
istringstream ss(s);
vector<string> v;
while (ss >> s) v.push_back(s);
int j=v[0].size(),k=0;
for (int i=1; i<v.size(); i++)
if (v[i].size()>j) { j=v[i].size(); k=i; }
cout<<"long word: "<<v[k]<<endl<<endl;
system("pause");
return 0;
}
// PascalABC.NET 3.0, сборка 1157 от 02.02.2016
begin
SeqGen(ReadInteger('k=')+1,2.0,x->2+1/x).Skip(1).Println;
end.
Тестовое решение:
k= 6
2.5 2.4 2.41666666666667 2.41379310344828 2.41428571428571 2.41420118343195
А теперь "школьный вариант":
// PascalABC.NET 3.0, сборка 1157 от 02.02.2016
var
i,k:integer;
a,a0:real;
begin
Write('k='); Read(k);
a0:=2;
for i:=1 to k do begin
a:=2+1/a0; a0:=a; Write(a,' ')
end
end.
Тестовое решение:
k=6
2.5 2.4 2.41666666666667 2.41379310344828 2.41428571428571 2.41420118343195