Конспект урока "Организация циклических программ на ЭВМ"

Тема: Организация циклических программ на ЭВМ.
Количество учебных часов: 2ч.
Актуальность темы: Понимание основ и принципов программирования, а также овладение
практическими навыками представления программ в виде алгоритмов обеспечивает более
глубокое представление о возможностях и методах информационных технологий в школе.
Умение представлять задачу в виде последовательности элементарных действий на языке
программирования способствует также и развитию в дальнейшем способности к формализации
любых других задач, в том числе и при принятии клинических решений.
Цель занятия: овладение практическими навыками составления программ с
использованием операторов цикла.
Студент должен знать:
назначение циклов
синтаксис оператора цикла WHILE
синтаксис оператора цикла UNTIL
синтаксис оператора цикла FOR
структуру циклического алгоритма.
Студент должен уметь:
запускать систему программирования QBASIC
вводить и редактировать текст программы
использовать цикл WHILE при составлении программ
использовать цикл UNTIL при составлении программ
использовать цикл FOR при составлении программ
писать циклические программы на языке QBASIC.
Базисные вопросы
1. Что включает в себя система программирования?
2. Как запустить систему программирования QBasic?
3. Как сохранить программу на диске?
4. Как открыть программу, хранящуюся на диске?
5. Как записывается и выполняется условный оператор, записанный в полной и
сокращенной формах?
6. В каких случаях выполняется серия команд, стоящая после слова ELSE в условном
операторе?
7. С помощью каких операторов реализуется алгоритм с командой выбора на языке
QBasic?
8. Какие возможны варианты записи условий в операторе выбора и условном операторе
на языке QBasic
Вопросы по теме занятия
1. Какие алгоритмы называются циклическими?
2. Каким образом исполняется команда повторения?
3. Каким образом записывается команда повторения с параметром?
4. Каким образом записывается команда повторения с параметром?
5. Каково назначение операторов FOR, NEXT?
6. Что будет с циклом без служебного слова STEP?
2
Иформационно-дидактический блок
ЦИКЛИЧЕСКИЕ АЛГОРИТМЫ
При решении задач часто возникает необходимость многократного повторения однотипных
действий при различных значениях параметров, определяющих эти действия.
Алгоритмы, реализующие такие действия, называются циклическими, а многократно
повторяемая последовательность действий (тело цикла) - циклами. Использование циклов
позволяет выполнять большие объемы вычислений с помощью компактных программ.
Различают циклы с заданным и заранее неизвестным числом повторений.
ЦИКЛЫ С НЕИЗВЕСТНЫМ ЧИСЛОМ ПОВТОРЕНИЙ
Иногда заранее неизвестно, сколько раз надо повторить цикл, но известно, что он должен
выполняться, пока справедливо некоторое условие.
Блок-схема
QBasic
WHILE условие
тело цикла
WEND
DO WHILE или UNTIL
тело цикла
LOOP
DO
тело цикла
LOOP WHILE или UNTIL
Цикл выполняется до тех пор, пока
условие истинно (WHILE) или пока
ложно (UNTIL). Условие может
проверяться до начала тела цикла
или после него.
Задача: Вычислить сумму: 2
2
+ 2
3
+ 2
4
+ 2
5
.
Решение:
Команда для накапливания суммы выглядит так: S = S + очередное слагаемое.
Слагаемые отличаются друг от друга только значением показателя степени. Если ввести
переменную X (параметр цикла), можно определить каждое слагаемое по формуле 2
X
где X
меняется от 2 до 5 с шагом 1. Тогда S определится так:
S = S + 2^X
CLS
S=0: X=2
WHILE X<=5
S=S+2^X
X=X+1
WEND
PRINT "S="; S
3
Выполнение программы осуществляется следующим образом:
Вначале функция CLS очищает экран, затем переменной S присваивается значение 0 и
переменной Х присваивается значение 2, после чего проверяется условие WHILE X<=5 (пока
X<=5) производить следующие операции:
S=S+2^X
X=X+1
К значению S прибавляем значение 2 в степени Х, значение Х увеличивается следом за S на
1 единицу. Как только Х станет больше 5, выполнится оператор вывода значения на экран
PRINT.
ЦИКЛЫ С ИЗВЕСТНЫМ ЧИСЛОМ ПОВТОРЕНИЙ
Команда повторения с параметром позволяет наглядней записывать алгоритмы циклической
структуры. Параметром цикла является переменная X, которая последовательно принимает
значения от Х
нач
до Х
кон
в соответствии с указанным шагом Х
шаг
. Механизм выполнения
команды повторения с параметром аналогичен команде повторения (цикл "пока" (WHILE)).
Использование команды повторения с параметром (цикла "для" (FOR)) вместо команды
повторения (цикла "пока" (WHILE)) позволяет упростить запись алгоритма.
Блок-схема
QBasic
FOR X=X
нач
TO X
кон
STEP X
шаг
тело цикла
NEXT X
FOR оператор начала цикла.
При X
шаг
=1 служебное слово STEP
можно опустить.
NEXT оператор конца цикла.
Сначала оператор FOR устанавливает начальное, конечное значения параметра и значение
шага. Потом выполняется тело цикла для указанного начального значения параметра. Затем
оператор NEXT вначале изменяет параметр на величину шага и проверяет условие окончания
цикла. Если текущее значение параметра не превышает конечного значения, NEXT переводит
вычислительный процесс в строку, следующую за оператором FOR, в противном случае в
строку, следующую за оператором NEXT. В отличие от цикла с неизвестным числом
повторений, параметр в данном цикле может изменяться только на величину шага, т.е.
Х=Х+Х
шаг
.
Задача: Каждая бактерия делится на две в течение одной минуты. В начальный момент
времени имеется одна бактерия. Составить программу, которая рассчитывает количество
бактерий на заданное целое значение момента времени.
CLS
INPUT “Введите время: “; T
B = 1
FOR I = 1 TO T
B = B + B
NEXT I
PRINT “Через “; T; “минут будет “; B; “бактерий”
4
ВЛОЖЕННЫЕ ЦИКЛЫ
Циклы могут быть вложены один в другой. Например, представленная ниже программа
подсчитывает текущий рейтинг практических занятий по введённым оценкам. Программа
проверяет также правильность введения оценки (от 1 до 5), при вводе 0 ввод оценок
заканчивается и программа выдаёт значение рейтинга.
CLS
PRINT
PRINT "================================================="
PRINT "Программа считает текущий рейтинг."
PRINT "Введите оценки (1,2,3,4, или 5)"
PRINT "0 завершает ввод оценок и выдается результат ."
PRINT "================================================="
PRINT
SUM = 0
N = 0
DO
DO
INPUT "GRADE: ", GRADE
IF GRADE<0 OR GRADE>5 THEN
PRINT "Неправильное значение! Введите снова."
END IF
LOOP UNTIL 0<=GRADE AND GRADE<=5
SUM = SUM + GRADE
N = N + 1
LOOP UNTIL GRADE=0
N = N - 1
R = (SUM/(5*N))*100
PRINT
PRINT "================================================="
PRINT
PRINT "СПАСИБО! РЕЙТИНГ СОСТАВЛЯЕТ ";R;"%."
Содержание занятия:
Контроль исходного уровня знаний
В начале занятия преподаватель оценивает исходный уровень знаний студентов, используя
тесты, представленные в приложении 1.
Работа с преподавателем
Преподаватель объясняет студентам основные правила работы в среде программирования
QBasic и составления циклических алгоритмов на языке QBasic. Под руководством
преподавателя студенты пишут и запускают на выполнение примеры программ,
представленные в информационно-дидактическом блоке.
Самостоятельная работа
1. Переделать программу подсчёта рейтинга, представленную в дидактическом блоке,
так, чтобы она вначале спрашивала число занятий, по которым будут введены оценки
и затем с помощью цикла FORNEXT осуществляла их ввод.
2. Преподаватель раздаёт студентам варианты заданий для самостоятельного
выполнения. Студенты должны составить программу на языке QBasic для решения
предложенной задачи. Составленная программа должна выводить описание задачи и
5
только затем предлагать ввести необходимые данные для решения задачи.
Желательно при этом использовать процедуры и функции. Варианты заданий
представлены ниже:
1. Определить количество цифр во введённом числе.
2. Найти
b
ai
i
2
3. Найти
4. Найти
naaa
1
...
1
11
5. Напечатать все целые цифры от a до b.
6. Найти
22
()

b
ia
i a i
7. Напечатать таблицу умножения для первых 10 чисел.
8. Напечатать таблицу умножения чисел от a до b.
9. Найти среднее арифметическое N введённых чисел.
10. Найти среднеквадратичное отклонение N введённых чисел.
11. Рассчитать коэффициент корреляции для 2 переменных, представленных N
случаями каждая.
Контроль итогового уровня знаний
В конце занятия преподаватель проверяет выполнение студентами заданий для
самостоятельной работы и проводит устный опрос по вопросам, представленным в приложении
2.
Рекомендуемая литература по занятию
1. Уоллес Вонг. Основы программирования для "чайников".– Пер. с англ.– М:
Издательский дом "Вильяме", 2002.– 336 с.
2. Задачи по программированию / С.А. Абрамов, Г.Г. Гнездилова, Е.Н. Капустина, М.И.
Семон.– М.: Наука. Гл. ред. физ.-мат. лит., 1988.– 224 с.
3. Касаткин В.Н. Информация, алгоритмы, ЭВМ.– М.: Просвещение, 1991.– 192 с.
Приложение 1
Тестовые вопросы для оценки исходного уровня знаний.
1 вариант
1. Характеристика циклического алгоритма:
A) содержит один или несколько циклов;
B) не содержит логических условий и имеет одну ветвь вычислений;
C) содержит одно или несколько логических условий;
D) не содержит вычислений;
Е) все ответы верны.
2. Для чего нужны операторы цикла:
a) для определения порядка выполнения программы
b) для вычисление различных функций
c) для многократного повторения однотипных действий
d) для настройки QBasic
e) для облегчения работы в операционной системе
3. Многократно повторяемая последовательность действий называется:
6
a) константой
b) оператором
c) переменной
d) параметром
e) циклом
4. Выберите оператор цикла c неизвестным числом повторений:
a) IF
b) WHILE
c) FOR
d) END
e) ELSE
5. Выберите оператор цикла c известным числом повторений:
a) WHILE
b) IF
c) FOR
d) END
e) ELSE
6. Какой цикл выполняется до тех пор, пока условие истинно:
a) END
b) IF
c) FOR
d) WHILE
e) ELSE
7. Какой цикл выполняется до тех пор, пока условие ложно:
a) FOR
b) IF
c) UNTIL
d) WHILE
e) ELSE
8. Тело цикла располагается в операторных скобках:
a) DO, LOOP UNTIL
b) IF, THEN, ELSE
c) FOR, TO
d) WHILE, UNTIL
e) ELSE, END
9. Тело цикла располагается в операторных скобках:
a) ELSE, END
b) IF, THEN, ELSE
c) FOR, TO
d) WHILE, UNTIL
e) DO, LOOP WHILE
10. До каких пор выполняется тело цикла в цикле с известным числом повторений:
a) пока не прервешь вычисление самостоятельно
b) пока текущее значение параметра не превышает конечного значения
c) до завершения программы
7
d) до тех пор пока истинно значение после оператора WHILE
e) пока программа не достигнет оператора END
2 вариант
1. Алгоритм содержащий один или несколько
циклов называется:
C) циклический;
D) линейный;
C) разветвлённый;
D) подпрограммой;
Е) все ответы верны.
2. Для многократного повторения
однотипных действий используют:
a) подпрограммы
b) оператор ELSE
c) операторы цикла
d) настройки QBasic
e) мышь
3. Циклом называется:
a) линейный алгоритм
b) многократно повторяемая
последовательность действий
c) переменная изменяемой величины
d) параметр
e) константа
4. WHILE - это:
a) оператор цикла c неизвестным числом
повторений
b) оператор цикла c известным числом
повторений
c) продолжение оператора FOR
d) оператор конца программы
e) оператор выбора
5. FOR - это:
a) оператор цикла c неизвестным числом
повторений
b) оператор цикла c известным числом
повторений
c) продолжение оператора FOR
d) оператор конца программы
e) оператор выбора
6. WHILE выполняется до тех пор, пока:
a) условие ложно
b) невыполнимо
c) неопределимо
d) самодостаточно
e) условие истинно
7. UNTIL выполняется до тех пор, пока:
a) условие ложно
b) невыполнимо
c) неопределимо
d) самодостаточно
e) условие истинно
8. В операторных скобках DO, LOOP UNTIL
располагается:
a) тело цикла
b) оператор конца программы
c) файл программы
d) оператор начала программы
e) окно результатов
9. В операторных скобках DO, LOOP WHILE
располагается:
a) окно результатов
b) оператор конца программы
c) файл программы
d) оператор начала программы
e) тело цикла
10. До тех пор, пока текущее значение
параметра не превышает конечного
значения, выполняется:
a) тело цикла в цикле с неизвестным числом
повторений
b) определение зависимости программы от
пользователя
c) тело цикла в цикле с известным числом
повторений
d) расчёт корреляций в программе
STATISTICA
e) завершение программы
8
Приложение 2
Контрольные вопросы для заключительного контроля знаний
1. Что называют циклическими алгоритмами?
2. Какую функцию выполняет оператор FOR?
3. Каково назначение операторов WHILE, DO?
4. Служебное слово STEP?
5. Каким образом исполняется команда повторения?
6. Каким образом записывается команда повторения с параметром?
7. Каково назначение операторов FOR, NEXT?
8. Что будет с циклом без служебного слова STEP?