1-11 класс
  • 1-11 класс
  • 1 класс
  • 2 класс
  • 3 класс
  • 4 класс
  • 5 класс
  • 6 класс
  • 7 класс
  • 8 класс
  • 9 класс
  • 10 класс
  • 11 класс
Выберите класс
Предметы
Босова (Сам и контр)
Вариант 2 Самостоятельная работа 6 ГДЗ Самостоятельные и контрольные работы Босова 9 класс (Информатика)
Босова, Босова, Лобанов
9 класс
Автор
Босова, Босова, Лобанов

Вариант 2 Самостоятельная работа 6 ГДЗ Самостоятельные и контрольные работы Босова 9 класс (Информатика)

Задача

1. Для исполнителя Чертёжник в среде программирования КуМир составьте программу рисования слова БАОБАБ, Для изображения букв воспользуйтесь вспомогательными алгоритмами.
использовать Чертежник
алг
нач
. сместиться в точку(2,4)
. ББ
. сместиться на вектор(5,2)
. БА
. сместиться на вектор(1,0)
. БО
. сместиться на вектор(5,0)
. ББ
. сместиться на вектор(5,2)
. БА
. сместиться на вектор(3,0)
. ББ
кон
алг ББ
нач
. опустить перо
. сместиться на вектор(-2,0)
. сместиться на вектор(0,-4)
. сместиться на вектор(2,0)
. сместиться на вектор(0,2)
. сместиться на вектор(-2,0)
. поднять перо
кон
алг БА
нач
. опустить перо
. сместиться на вектор(-2,-2)
. сместиться на вектор(0,-2)
. сместиться на вектор(0,1)
. сместиться на вектор(2,0)
. сместиться на вектор(0,-1)
. сместиться на вектор(0,4)
. поднять перо
кон
алг БО
нач
. опустить перо
. сместиться на вектор(0,-4)
. сместиться на вектор(2,0)
. сместиться на вектор(0,4)
. сместиться на вектор(-2,0)
. поднять перо
кон
2. Для подсчёта минимального числа ходов в задаче «Ханойская башня» используется функция S(n), которая вычисляется по следующему алгоритму:
S(1) = 1,
S(n) = 2 • S(n — 1) + 1 при натуральном n > 1.
Вычислите S(9) — минимальное число ходов для перекладывания башни из 9 колец.
S(1) = 1
S(n) = 2*S(n — 1) + 1
Ответ: S(9) = 511
3. Дополнительное задание. В среде программирования Паскаль напишите и отладьте программу для нахождения наибольшего общего делителя двух чисел с помощью алгоритма Евклида. Используйте её для нахождения наибольшего общего делителя следующих шести чисел: 6, 12, 30, 42, 80, 132.
Паскаль
var
a, b, c, d, e, f, nd: integer;
function nod(x, y: integer): integer;
begin
while x < > y do
if x > y then x := x — y
else y := y — x;
nod := x
end;
begin
writeln(‘Введи 6-ть целых числа > > ‘);
readln(a, b, c, d, e, f);
//можно объединить три строчки ниже
nd := nod(nod(a, b), c);
nd := nod(nod(nd, d), e);
nd := nod(nd, f);
writeln(‘NOD=’, nd)
end.
Окно вывода:
Введи 6-ть целых числа > >
6 12 30 42 80 132
NOD=2
Можно через цикл:
var
a, b, i: integer;
function nod(x, y: integer): integer;
begin
while x < > y do
if x > y then x := x — y
else y := y — x;
nod := x
end;
begin
write(‘Введи число > > ‘);
readln(a);
for i:=2 to 6 do
begin
write(‘Введи число > > ‘);
readln(b);
a:=nod(a,b)
end;
writeln(‘NOD=’, a)
end.
Окно вывода:
Введи число > > 6
Введи число > > 12
Введи число > > 30
Введи число > > 42
Введи число > > 80
Введи число > > 132
NOD=2
Python
def nod(a,b):
global x
while a!=b:
if a > b:
a=a-b
else:
b=b-a
x=a
k=6
x=int(input(‘Введи число’))
for i in range(1,k):
y=int(input(‘Введи число’))
nod(x,y)
print(‘NOD =’,x)
Окно вывода:
Введи число 6
Введи число 12
Введи число 30
Введи число 42
Введи число 80
Введи число 132
NOD = 2

Подробный ответ

1. Для рисования слова БАОБАБ удобно использовать вспомогательные алгоритмы для букв Б, А и О. Основная программа последовательно вызывает эти алгоритмы и смещает Чертёжник в нужные точки.

использовать Чертежник
алг
нач
  сместиться в точку(2,4)
  ББ
  сместиться на вектор(5,2)
  БА
  сместиться на вектор(1,0)
  БО
  сместиться на вектор(5,0)
  ББ
  сместиться на вектор(5,2)
  БА
  сместиться на вектор(3,0)
  ББ
кон

алг ББ
нач
  опустить перо
  сместиться на вектор(-2,0)
  сместиться на вектор(0,-4)
  сместиться на вектор(2,0)
  сместиться на вектор(0,2)
  сместиться на вектор(-2,0)
  поднять перо
кон

алг БА
нач
  опустить перо
  сместиться на вектор(-2,-2)
  сместиться на вектор(0,-2)
  сместиться на вектор(0,1)
  сместиться на вектор(2,0)
  сместиться на вектор(0,-1)
  сместиться на вектор(0,4)
  поднять перо
кон

алг БО
нач
  опустить перо
  сместиться на вектор(0,-4)
  сместиться на вектор(2,0)
  сместиться на вектор(0,4)
  сместиться на вектор(-2,0)
  поднять перо
кон

2. Минимальное число ходов в задаче о Ханойской башне задаётся рекуррентной формулой:

$$S(1)=1,$$

$$S(n)=2\cdot S(n-1)+1 \quad \text{при } n>1.$$

Последовательно вычислим значения:

$$n$$123456789
$$S(n)$$137153163127255511

3. Для нахождения НОД шести чисел используем алгоритм Евклида. Сначала находим НОД первых двух чисел, затем последовательно включаем остальные.

var
  a, b, c, d, e, f, nd: integer;

function nod(x, y: integer): integer;
begin
  while x <> y do
    if x > y then x := x — y
    else y := y — x;
  nod := x
end;

begin
  writeln(‘Введи 6-ть целых числа>>’);
  readln(a, b, c, d, e, f);
  nd := nod(nod(a, b), c);
  nd := nod(nod(nd, d), e);
  nd := nod(nd, f);
  writeln(‘NOD=’, nd)
end.

Проверка для чисел $$6, 12, 30, 42, 80, 132$$ даёт:

$$\gcd(6,12,30,42,80,132)=2.$$

Ответ

1) Программа для Чертёжника приведена выше.
2) $$S(9)=511$$.
3) $$\gcd(6,12,30,42,80,132)=2$$.



Общая оценка
4 / 5
Другие учебники
Другие предметы