ПРАКТИЧЕСКОЕ ЗАНЯТИЕ РАЗРАБОТКА ПРОГРАММ С ИСПОЛЬЗОВАНИЕМ
ЦИКЛА С ПАРАМЕТРОМ (FOR)
Целью занятия является получение навыков в составлении циклических программ с использованием оператора цикла For.
Цикл – это многократно повторяющаяся последовательность операторов. В Паскале используются 3 типа циклов:
- цикл с постусловием (Repeat);
- цикл с предусловием (While);
- цикл с параметром (For).
2.1 Оператор цикла For
Оператор цикла For используется когда заранее известно количество по- вторений цикла и когда шагом цикла является целое число.
Синтаксис оператора цикла с параметром:
For <параметр цикла> := <начальное значение> To/DownTo <конечное значение> Do <оператор>;
<Оператор> выполняется до тех пор, пока <параметр цикла> изменяет свое значение от <начального значения> до <конечного значения>.
ски.
Например,
For I:=1 To 10 Do x:=x+2;
В этом случае параметр цикла каждый раз увеличивается на 1 автоматиче-
For I:=10 DownTo 1 Do x:=x+2;
В этом случае параметр цикла каждый раз уменьшается на 1 автоматиче-
ски.
ВНИМАНИЕ! В теле цикла НЕ желательно изменять параметр цикла (для избежания зацикливания). Например:
For I:=1 To 10 Do I:=I+2; {последний раз цикл должен выполниться для I равного 10 и если каким-то образом переменная I «проскочит» это значение, то произойдет зацикливание программы}
Если все-таки программа зациклилась, воспользуйтесь комбинацией кла- виш Ctrl+Break для возврата в среду программирования Паскаль.
Если телом цикла For является составной оператор, то его заключают в операторные скобки Begin …end. Например:
For I:=1 to 10 Do Begin оператор1;
… операторN; end;
Перед началом цикла параметру цикла присваивается <начальное значе- ние>. И если до этого цикла переменная, являющаяся параметром цикла храни- ла какое-то значение, оно теряется.
2.2 Процедуры Break и Continue
Процедура Break предназначена для принудительного досрочного выхода из цикла. Как правило, используется для уменьшения времени выполнения про- граммы (время выполнения программы можно сократить за счет невыполнения некоторых операторов «в холостую», это когда результат выполнения таких операторов ни на что не влияет). Например:
For I := 1 To 100 Do
Begin
Readln(k);
If k mod 2 <> 0 Then Break; {принудительный выход из цикла ес-
ли введено нечетное число k}
If k>0 Then s:=s+k ;
End;
Если после процедуры Readln(k) будет введено нечетное значение, цикл прекратит свое выполнение и далее будет выполнен оператор, следующий за оператором End. В данном примере процедура Break позволяет сократить время выполнения программы, по меньшей мере, на время выполнения операто- ра If k>0 (т.е. на время проверки условия k>0).
Процедура Continue принудительно вызывает начало новой итерации (по-
вторения) цикла, даже если предыдущая не закончена. Например:
For I := 1 To 100 Do
Begin
Readln(k);
If k = 0 Then Continue; {вызов начала выполнения тела цикла,
начиная с процедуры ввода Readln(k)}
End;
If k>0 Then s:=s+1; If k<0 Then d:=d+1;
В данном примере если с помощью процедуры ввода Readln(k) в перемен- ной k окажется ноль, то два последних условных оператора будут проигнори- рованы и запрошено новое значение переменной k (тело цикла начнет выпол- няться сначала). Т.е. процедура Continue также позволяет экономить время выполнения программы. В принципе условного оператора If k = 0 Then Contin- ue может не быть. Но тогда в случае нулевого значения переменной k будет зря тратиться время на проверку двух последних условий.
3.1 Написать программу, выводящую на экран заглавные буквы латинского алфавита в обратном порядке в одну строку через запятую.
В качестве параметра цикла For может быть переменная не только целого типа, но и символьного. Например,
Var С:char; Begin
For С:=’a’ to ‘k’ do writeln(С); {параметр цикла С перебирает значения букв латинского алфавита от а до k по порядку}
В данной задаче необходимо вывести буквы в обратном порядке, т.е. не по алфавиту. Значит, параметр цикла должен не увеличиваться, а уменьшаться, следовательно, вместо разделителя To необходимо использовать разделитель DownTo.
3.2 Вывести на экран все нечетные числа из последовательности чисел, вводимых с клавиатуры. Количество чисел в исходной последовательности N описать как константу в разделе описания констант Const.
Например, дана последовательность чисел: 2 5 12 36 45 7 9 22. Результа-
том работы программы будет следующая последовательность чисел: 5 45 7 9.
По блок-схеме алгоритма, приведенной на рисунке 1, составить программу решения задачи и заполнить таблицу.
|
Вводимая последовательность |
Результат |
|
|
|
|
|
|

4. КОНТРОЛЬНЫЕ ВОПРОСЫ
1) В каких случаях может быть использован оператор цикла For?
2) Какие требования предъявляются к параметру цикла For?
3) Как изменится цикл For, если параметр цикла должен не увеличиваться, а уменьшаться с каждой следующей итерацией цикла.
4) Если телом цикла является составной оператор, что при этом изменится для цикла For?
5) С помощью какой процедуры можно прервать выполнение цикла? Приве- дите пример.
6) Как можно возобновить выполнение цикла, если еще не завершен преды- дущий проход цикла? Приведите пример.
7) По приведенному фрагменту программы определить сколько раз на экране появится слово «ЦИКЛ».
For I:=1 to 5 do Writeln(‘ЦИКЛ’);
1) Написать программу, вычисляющую сумму и среднее арифметическое по-
следовательности положительных чисел, которые вводятся с клавиатуры.
2) Написать программу, которая вычисляет среднюю (за неделю) температу- ру воздуха. Исходные данные должны вводиться во время работы про- граммы.
3) Составить программу, вычисляющую сумму квадратов чисел от 1 до вве- денного вами целого числа n.
4) Начав тренировки, спортсмен в первый день пробежал 10 км. Каждый день он увеличивал дневную норму на 10% нормы предыдущего дня. Какой суммарный путь пробежит спортсмен за 7 дней.
5) Написать программу, которая выводит таблицу степеней двойки (от нуле- вой до десятой).
Скачано с www.znanio.ru
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.