Реферат: Паскаль. Отладка программ
Идеальная логика эквивалентности:
If Ready then Exam_ok := true else Exam_ok := false;
Управление вычислительным процессом, цикл for
В математических задачах часто встречается необходимость неоднократного повторения одинаковых действий. Рассмотрим, например, вычисление суммы N членов гармонического ряда
Естественный алгоритм для решения такой задачи:
(1) обозначим искомую сумму S и присвоим ей значение, равное нулю;
(2) последовательно N раз вычислим слагаемые ряда и прибавим их к переменной S.
Многократные повторения одних и тех же действий можно выполнить с помощью конструкций, которые в программировании называются циклами. Повторяемые действия называются телом цикла. В Паскале существует несколько операторов цикла. Оператор for повторяет тело цикла заданное число раз. Он имеет следующие синтаксические формы:
for < счетчик цикла> := < первое значение> to < последнее значение> do
<тело цикла>;
for < счетчик цикла> := < первое значение>
downto < последнее значение> do<тело цикла>;
Счетчик цикла — это переменная одного из порядковых типов (из порядковых типов мы пока знаем только целые и логический тип, в главе 7 понятие порядкового типа будет расширено). Назначение этой переменной очевидное — она хранит число повторений операторов тела цикла, следующего за словом do. Значение счетчика цикла изменяется автоматически от первого до последнего значения и увеличивается на единицу для первой формы записи (с оператором to) или уменьшается на единицу для второй формы записи (с оператором downto). Дополнительные изменения значения счетчика цикла в части, обозначенной здесь как <тело цикла>, запрещены. В качестве первого и последнего значения могут использоваться конкретные числа, другие переменные целого типа, вычисленные ранее, и выражения, имеющие значения целого типа.
Операторы тела цикла выполняются только один раз, если верхнее и нижнее значения счетчика совпадают. Если в операторе for .. to последнее значение счетчика цикла меньше первого, то тело цикла не выполняется ни одного раза. В операторе for.. downto цикл не выполняется, если последнее значение счетчика больше первого.
Программа с циклом for, которая вычисляет сумму N членов гармонического ряда1 :
Program Sum; {сумма N членов гармонического ряда}
var x: byte; {счетчик цикла}
s : real; {сумма ряда}
N : byte; {число членов ряда}
begin
Write('N = '); ReadLn(N); {ввод числа членов ряда}
s := 0; {начальное значение суммы}
тогх:= 1 toNdos:=s+ 1/х; {подсчет суммы}
WriteLn( 'S = ', s); {вывод результата}
ReadLn {ожидание нажатия клавиши Enter}
end.
Оператор, следующий после слова do, может быть составным (представлять собой группу операторов).
Пример. Найти нечетные и кратные трем числа в диапазоне от 30 до 60 включительно. Распечатать их в порядке убывания.
Условие нечетности целого числа — Odd(J). Условие кратности трем — равенство нулю остатка от деления i mod 3=0. Нас интересуют числа, удовлетворяющие обоим условиям, то есть числа, для которых истинно Odd(i) and (i mod 3 = 0). Убывающий порядок следования чисел обеспечивает оператор for.. downto. Таким образом, программа будет иметь вид