2
|
Актуализация опорных знаний
|
Фронтальный опрос:
1. Какие виды алгоритмов мы изучали на прошлых уроках?
2. Что характерно для линейных и ветвящихся алгоритмов?
3. Как можно записать ветвление в языке Паскаль?
4. Какие виды логических выражений вам известны?
Работа в группах. Ученики делятся на 3 группы, каждой группе выдается
карточка с двумя заданиями: 1. составить программу по блок-схеме, рассказать
как она работает 2. составить программу с использованием сложного логического
выражения Задания – в приложении к уроку(см. ниже)
|
1.
Линейные и ветвящиеся алгоритмы
2.
В линейных алгоритмах команды выполняются
последовательно, в ветвящихся алгоритмах в зависимости от выполнения или
невыполнения некоторого условия совершается либо одна, либо другая
последовательность действий
3.
3. Для записи ветвлений в Паскале используется
оператор if
4.
Простые: составленые из двух арифметических
выражений или двух текстовых величин, связанных одним из знаков: < -
меньше, чем..., > - больше, чем..., <= - меньше, чем... или равно,
>= - больше, чем... или равно, <> - не равно, = - равно и
сложные(получаются объединением простых выражений и логических операций not, and, or, xor)
Ученики 5 мин. делают задания, 2 мин. – отчет каждой группы.
|
3
7
|
3
|
Изучение нового материала
|
Сегодня мы изучим еще один вид алгоритмов-это циклические алгоритмы.
Цикл-команда исполнителю многократно повторять указанную последовательность
команд. Любой цикл состоит из тела и заголовка. Тело цикла — это набор
повторяющихся операторов, а условие — это логическое выражение, в зависимости
от результата которого и происходит повторное выполнение набора операторов. В
языке Pascal, как и в
большинстве языков программирования, существует три типа циклических
конструкций: цикл с предусловием(while), цикл с постусловием(repeat), цикл с параметром(for).
Цикл с предусловием(while)
Структура цикла while: в
заголовке цикла находится логическое выражение, тело цикла выполняется, пока
логическое выражение истинно(true) while имеет формат: while < условие> do <оператор 1>;
Данный цикл подходит если в теле цикла только один оператор, если
операторов несколько, то необходимо заключать их в операторные скобки— begin и end(как и в условном операторе if). Задача. С клавиатуры вводится число. Найти сумму его цифр. Cначала рассмотрим, как можно разбить
четырехзначное число на цифры с помощью линейного алгоритма. Для удобства обозначим каждую цифру отдельной буквой(
Как вы видите, программа содержит повторяющиеся действия: взять
остаток от деления на 10(получить последнюю цифру),
разделить число на 10(сдвигаемся на одну цифру влево), прибавить к сумме
последнюю цифру. Но в таком алгоритме нам нужно знать
сколько цифр в числе заранее, или каждый раз проверять с помощью условного
оператора не стало ли n равно 0.
Теперь запишем тоже самое с помощью цикла while,
который, кстати, будет работать для любого количества цифр в числе.
Цикл с параметром(for)
for — это цикл, в котором тело выполняется заданное количество
раз.
В заголовке цикла указываются два значения. Первое значение
присваивается так называемой переменной-счетчику, от этого значения
начинается отсчет количества итераций (повторений). Отсчет идет всегда с
шагом равным единице. Второе значение указывает, при каком значении счетчика
цикл должен остановиться. Количество итераций цикла определяется разностью
между вторым и первым значением плюс единица. В Pascal тело цикла не должно
содержать выражений, изменяющих счетчик.
Цикл for существует в двух формах:
for счетчик:=значение to конечное_значение do тело_цикла;
for счетчик:=значение downto конечное_значение do тело_цикла;
Счетчик – это переменная любого из перечисляемых типов (целого,
булевого, символьного, диапазонного, перечисления). Начальные и конечные
значения могут быть представлены не только значениями, но и выражениями,
возвращающими совместимые с типом счетчика типы данных. Если между начальным
и конечным выражением указано служебное слово to, то на каждом шаге цикла
значение параметра будет увеличиваться на единицу. Если же указано downto, то
значение параметра будет уменьшаться на единицу.
Задача. Одна штука некоторого товара стоит 20,4 руб. Напечатать
таблицу стоимости 2, 3, …,20 штук этого товара
Цикл с постусловием(repeat)
Цикл while может не выполниться ни разу, если логическое выражение
в заголовке сразу ложно(false).Бывает, что тело цикла должно выполниться хотя
бы один раз, не зависимо оттого, что вернет логическое выражение. В таком
случае используется цикл repeat – цикл с постусловием.
В цикле repeat логическое выражение стоит после тела цикла.
Причем тело выполняется до тех пор, пока условие ложно(false); как только
логическое выражение становится true, выполнение цикла прекращается. repeat
имеет формат:
repeat <оператор 1>;
< оператор 2>;
…
until <условие>
begin и end не требуются. Задача. Дано положительное число N.
Найти наименьшее целое положительное число K, квадрат которого превосходит
N: K> N
|
Решение вместе с учеником задачи у доски. С клавиатуры вводится
число, найти количество цифр в нем.
Решение вместе с учеником задачи у доски. Напечатать таблицу
соответствия между весом в фунтах и весом в килограммах для значений 10,…, 1
фунтов(1 фунт=453 г).
Эта задача аналогична предыдущей, но здесь мы будем использовать
вторую форму цикла for- с downto
Решение вместе с учеником задачи у доски. Дано положительное число
N. Найти наименьшее целое число K, при котором выполняется неравенство 3 K
N .
Заметим, что не во всех версиях Паскаля есть встроенная функция
возведения в степень power(x, y), поэтому мы будем возводить тройку в степень
путем многократного умножения на 3.
|
10
10
10
|
Оставьте свой комментарий
Авторизуйтесь, чтобы задавать вопросы.