
- •Лекция №9 Тема «Операторы цикла в Паскале»
- •9.1. Операторы циклов в Паскале
- •9.2. Цикл for
- •9.3. Цикл while
- •9.4. Цикл repeat
- •Тема «Операторы goto, break, continue и прекращения программы»
- •9.5. Оператор безусловного перехода goto
- •9.6. Операторы break и continue
- •9.7. Принудительное прекращение программы
- •Программа "Угадай число"
- •Возведение числа в степень
- •Вывод на экран таблицы ascii
- •Вычисление суммы ряда чисел
Вывод на экран таблицы ascii
Задача:
ASCII – код для обмена информацией. В настоящее время чаще используется 8-битный вариант (под каждый символ выделяется 1 байт памяти). Проще говоря, получается таблица из 256 символов, соответствующих числам от 0 до 255.
Представим, что стоит задача вывода на экран соответствий между символами и их численными обозначениями в памяти компьютера.
Алгоритм решения задачи:
Можно использовать цикл for и перебрать все значения от 0 до 255, поставив им в соответствие символ. В языке программирования Pascal есть специальная функция chr, которая возвращает символ, порядковый номер которого передается ей в качестве аргумента.
Программа на языке Паскаль:
var
ch: char;
i: byte;
begin
for i := 0 to 255 do begin
if (i mod 5) = 0 then
writeln;
write (i:3,' - ', chr(i), '; ')
end;
readln
end.
Примечания:
Инструкция if внутри цикла for здесь исключительно для перехода на новую строку после вывода пяти очередных символов.
Можно немного изменить программу и выводить ее как таблицу, из 16 строк и столбцов. Упрощенный код программы тогда может выглядеть примерно так:
var
ch: char;
i,j: byte;
begin
for i := 0 to 15 do begin
for j := 0 to 15 do
write (chr(i*j):2);
writeln
end;
readln
end.
Вычисление суммы ряда чисел
Задача:
Вычислить сумму ряда чисел 1/12 + 1/22 + 1/32 + … + 1/n2, где n определяется пользователем.
Программа на языке Паскаль:
var
n, i: word;
sum: real;
begin
write ('n = '); readln (n);
sum := 0;
for i := 1 to n do
sum := sum + 1/(i*i);
writeln (sum:6:5);
readln
end.
Таблица умножения на Паскале
Задача:
Достаточно часто требуется построить на экране какую-нибудь двумерную таблицу. Это можно реализовать с помощью двух циклов for. При этом один цикл должен быть вложен в другой.
Допустим, нам требуется вывести на экран таблицу умножения.
Алгоритм решения задачи:
Внешний цикл for отвечает за формирование строк. Всего их будет 10, значит количество итераций цикла должно быть равно 10.
Внутренний цикл for формирует каждое значение в строке. Всего значений в строке 10. Значит и число его итераций должно быть 10.
В теле вложенного цикла for происходит формирование конкретного значения путем умножения текущего значения счетчика внешнего цикла на текущее значение счетчика внутреннего цикла. Поскольку на протяжении десяти итераций внутреннего цикла, значение счетчика внешнего цикла не меняется, то получается строка, где числа от 1 до 10 умножаются на одно и то же число.
После выхода из внутреннего цикла, перед следующей итерацией внешнего цикла требуется осуществить переход на новую строку. Иначе все значения будут записаны не в виде таблицы, а в виде одной строки.