Четверг, 18.04.2024, 18:48
Блог учителя информатики и математики
О блогеМой профильРегистрацияВыходВход
Вы вошли как Гость · Группа "Гости" Приветствую Вас, Гость · RSS
Меню блога
Погода в нашем районе.

НАГРАДА

Как Вы считаете, должны ли дети ходить в школу в школьной форме?
Всего ответов: 2806
 
 Блог учителя
Главная » Статьи » Информатика » В помощь ученику

Решение сложных алгоритмических задач (20 урок).

1 задача:

 

Отгадать целое число, которое "загадал" компьютер в определенном диапазоне.

Описание переменных:

 

a – число, "загаданное" компьютером;

b – очередное число, вводимое пользователем.

Алгоритм решения задачи:

 

1.       Программа генерирует псевдослучайное число, которое записывается в переменную a.

 

2.       Цикл: пока число a не совпадет с числом b, предлагается ввести очередное число. При этом, если b > a, то на экран будет выдаваться сообщение "меньше". Иначе появится сообщение "больше", иначе сообщение "число угадано".

 

Не трудно понять, что если b не больше и не меньше a, то значит оно равно a. В таком случае логическое выражение при while вернет false, и цикл прервется.

Программа на языке Паскаль:

 

var

    a,b: integer;

 

begin

    randomize;

    a := random(100);

 

    while a <> b do begin

        write('Ваше число: ');

        readln(b);

        if b > a then

            writeln('меньше')

        else

            if b < a then

                writeln('больше')

            else

                writeln(' число угадано ');

    end;

 

readln

end.

 

Примечания:

 

ДЗ.Если делить каждый оставшийся диапазон пополам, то понадобится не более…?

 

2 задача:

Источник Ханойская башня — Википедия

 В одном из буддийских монастырей монахи уже тысячу лет занимаются перекладыванием колец. Они располагают тремя пирамидами, на которых надеты кольца разных размеров.

В начальном состоянии 64 кольца были надеты на первую пирамиду и упорядочены по размеру. Монахи должны переложить все кольца с первой пирамиды на вторую, выполняя единственное условие — кольцо нельзя положить на кольцо меньшего размера. При перекладывании можно использовать все три пирамиды. Монахи перекладывают одно кольцо за одну секунду. Как только они закончат свою работу, наступит конец света.

Беспокоиться о близком конце света не стоит. Задача эта не под силу и современным компьютерам. Число ходов в ней равно 264, а это, как известно, большое число, и компьютер, работающий в сотню миллионов раз быстрее монахов, не справится с этой задачей в ближайшие тысячелетия.

Эта древняя легенда породила задачу о Ханойской башне: переместить m дисков с одного из трех стержней на другой, соблюдая «законы Брамы».

1. диски можно перемещать с одного стержня на другой только по одному;
2. нельзя класть больший диск на меньший.
Когда все 64 диска будут перенесены с одного стержня на другой?(, и башня, и храмы, и жрецы-брамины превратятся в прах, и наступит конец света.)

 

Назовем стержни левым (left), средним (middle) и правым (right). Задача состоит в переносе m дисков с левого стержня на правый.

Задача может быть решена одним перемещением только для одного (m = 1) диска. В общем случае потребуется 2m-1 перемещений.

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

{ Переместить с x на y }

procedure replace(k:integer;x,y,z:char);

 begin

  if k=1 then

    writeln(x,' => ', y)

  else

    begin

     replace(k-1,x,z,y);

     writeln(x, ' => ', y);

     replace(k-1, z,y,x);

    end;

 end;

 

var

  n:integer;

begin

  writeln('Введите число дисков в крайнем столбце');

  readln(n);

  writeln('Столбцы: a, b, c');

  replace(n,'a','c','b');

end.

 

Категория: В помощь ученику | Добавил: Harchev (22.01.2014)
Просмотров: 3278 | Комментарии: 1 | Теги: отгадай число, цикл, задача о Ханойской башне, монахи, в помощь ученику | Рейтинг: 4.3/28
Всего комментариев: 0
Имя *:
Email *:
Код *:
Copyright MyCorp © 2024
Блог учителя Учительский портал