Тема: «Тестирование готовой программы»
Задание:
Рассмотреть теоретический материал по теме.
Выполнить практические задания:
Задание №1
Составить программу для решения задачи, используя цикл «ДО».
Условие задачи: Написать программу подсчета суммы S первых 1000 членов гармонического ряда 1+1/2+1/3+1/4+...1/N
Программа:
Ответ:_______
Задание № 2
Ответьте на контрольные вопросы к практическому заданию:
Какая программа называется циклической?
Какие существуют циклы в языке Паскаль?
Какой формат записи имеет цикл с параметром? Как он работает и в каких случаях применяется?
Какой формат записи имеет цикл с предусловием? Как он работает.
Какой формат записи имеет цикл с постусловием? Как он работает.
Задание № 3
Сделайте вывод о проделанном практическом задании.
Теоретические сведения к практическому заданию
Цикл – это многократные повторяемые действия. В Турбо Паскале существует 3 основных вида циклов:
-цикл с параметром;
-цикл с предусловием;
-цикл с постусловием.
Цикл с параметром
Оператор имеет следующий формат: For i:=A to B do S; где
i – счетчик цикла, является переменной порядкового типа данных.
А – начальное значение, В – конечное значение счетчика цикла.
S – тело цикла (повторяющиеся действия).
Цикл работает следующим образом: переменной i присваивается начальное значение A, если A
Существует еще одна разновидность цикла с параметром: For i:=A downto B do S; где A=B
Цикл работает аналогично предыдущему, но после выполнения тела цикла, значение счетчика цикла автоматически уменьшается на 1. Если A
Цикл с предусловием
Цикл с параметром следует применять, когда заранее известно, сколько раз необходимо повторить те или иные действия. Однако во многих случаях циклические действия необходимо выполнять пока не будет достигнут определенный результат. В этом случае используются другие разновидности циклов: цикл с предусловием и цикл с постусловием.
Цикл с предусловием (цикл «пока») имеет следующий формат: Whileусловие do S;
В качестве условия можно использовать любое логическое выражение, которое может быть либо истиной (true) ли ложью (false). S – тело цикла.
Сначала проверяется условие, если оно – истина, то выполняется тело цикла S и опять проверяется условие. Цикл будет повторяться до тех пор, пока условие – истина, как только условие станет ложным – происходит выход из цикла. Если изначально условие – ложь, то тело цикла не выполнится ни разу. В отличии от цикла с параметром в этом виде цикла не предусмотрено автоматическое изменение переменной цикла, поэтому в теле цикла S должны быть команды, изменяющие значение переменной цикла. В противном случае при запуске произойдет так называемое зацикливание программы (т.е. выполнение бесконечного цикла).
Если тело цикла S состоит из нескольких операторов, то они заключаются в операторные скобки (begin…end).
Цикл с постусловием
Формат оператора: Repeat S Until условие; где
S – тело цикла, условие – любое логическое выражение.
Принципиальное отличие оператора repeat...until (повторять до тех пор, пока) от оператора while...do в том, что проверка условия производится не перед началом выполнения оператора, а в его конце, когда решается вопрос, повторить ли еще раз действия. Поэтому тело этого цикла всегда выполняется по крайней мере один раз. Кроме того цикл будет повторяться, когда условие – ложно, как только условие станет истинным – происходит выход из цикла.
Тестирование готовой программы
Цикл с параметром
Задача №1: Найти сумму всех натуральных чисел от 1 до 100
Решение задачи:
Определяем:
Параметр цикла – переменная i;
Начальное значение параметра цикла – i:=1;
Конечное значение параметра цикла – i:=100;
Начальное значение суммы – s:=0;
Рабочий блок – s:=s+i
Проверка окончания цикла – 1
Формула изменения параметра цикла – i:=i+1.
Программа будет выглядеть следующим образом:
program zadacha1_12; | Название программы |
var i, s: integer; | Описание переменных |
Begin | Начало программы |
s: = 0; | Начальное значение суммы |
For i:=1 to 100 do | Начало цикла «ДО», указывается начальное значение параметра цикла i=3, конечное значение параметра цикла 100 |
s: = s + i; | Вычисление суммы чисел |
writeln(‘сумма от 1 до 100’, ‘=’,s); | Вывод искомой суммы |
End. | Завершение программы |
Цикл с предусловием
Program zadacha2_12; | Название программы |
var i, s: integer; | Описание переменных |
Begin | Начало программы |
s: = 0; i:=l; | Начальное значение суммы и параметра цикла |
while i | Начало цикла «ПОКА» |
begin | Начало тела цикла «ПОКА» |
s: = s + i; | Вычисление суммы чисел |
i: = i + 1; | Изменение параметра цикла с указанием шага параметра |
end; | Завершение тела цикла «ПОКА» |
writeln('cyммa от 1 до 100', '=', s); | Вывод искомой суммы |
End. | Завершение программы |
Цикл с постусловием
Program zadacha3_12; | Название программы |
var i, s: integer; | Описание переменных |
Begin | Начало программы |
s: = 0; i:=l; | Начальное значение суммы и параметра цикла |
repeat | Начало цикла «ПОКА» |
begin | Начало тела цикла «ПОКА» |
s: = s + i; | Вычисление суммы чисел |
i: = i + 1; | Изменение параметра цикла с указанием шага параметра |
end; | Завершение тела цикла «ПОКА» |
until i n; | Проверка условия выхода из цикла |
writeln('cyммa от 1 до 100', '=', s); | Вывод искомой суммы |
End. | Завершение программы |