Реферат: Паскаль. Отладка программ
var i: byte;
begin
for i := 60 downto 30 do {цикл по убывающей от 60 до 30}
if Odd(i) and (i mod 3=0) then WriteLn(i) end.
В результате выполнении программы получим в столбик значения 57, 51,45,39, 33.
В приведенном примере многократно повторялся один оператор, однако во многих случаях необходимо повторять группу операторов. Вспомним, что говорилось в предыдущей главе о вложенности операторов друг в друга. Чтобы использовать вместо одного оператора группу, нужно эту группу превратить в один сложный оператор. Осуществляется это с помощью так называемых “программных скобок” — операторов begin и end.
begin
<оператор1>;
< оператор 2>;
< оператор М> end;
Любая группа операторов, начинающаяся со слова begin и кончающаяся словом end в любой конструкции языка Паскаль может использоваться как один сложный оператор. Сложный оператор, в свою очередь, может иметь в своем составе сложные операторы следующего уровня вложенности и так далее. Операторы begin и end подобны открывающим и закрывающим скобкам, и на их употребление накладываются те же ограничения, что и на обыкновенные скобки в арифметических выражениях: каждой “открывающей скобке” begin должна соответствовать “закрывающая скобка” end. Слово end не может предшествовать парному ему слову begin. При компиляции программы проверяется правильность расстановки скобок и дается сообщение об ошибке. Это сообщение не всегда попадает в то место, где действительно нужна скобка, поэтому не спешите вставлять операторы туда, куда предлагает компилятор, а тщательно проанализируйте Вашу программу.
Пример. Имеется логическое выражение not a and b xor с. Требуется вывести на печать значения логических переменных а, Ь, с, при которых данное выражение истинно. Мы предлагаем перебор всех возможных значений а, b, с с проверкой выполнения условия для каждого сочетания значений.
Program Sample;
Vara, b, с : boolean;
begin
for a := false to true do
for b := false to true do
for с := false to true do
if not a and b xor с then
begin
Write('a=',a);
Write('b=',b);
WriteLn('c=',c)
End
End.
В результате выполнения этой программы на экран будет выведено:
a =FALSE
b =FALSE
с =TRUE