Реферат: Паскаль. Отладка программ

begin

x:=1;y:=1;

repeat

if(5*x-3*y)>1theny:=y+1;

if (5 * x - 3 * у) < 1 then х := х + 1 until(5*x-3*y)=1;

writeln('x= ',x, 'y=',y) end.

В результате на экране получим х=2у=3.

Пример. С помощью цикла repeat...until можно организовать процедуру ввода данных с защитой программы от завершения при ошибочном наборе. Если тип данных не соответствует инициализируемой при стандартном вводе переменной (например, требуется ввести целое число, а набрано дробное), то возникает ошибка в выполнении программы, и мы должны снова запускать программу, и, естественно, повторить набор. Чтобы защититься от последствий таких ошибок, можно использовать собственную процедуру ввода. Такая процедура должна отключить автоматическую проверку правильности ввода и проводить ее самостоятельно, причем при ошибке требовать повторного набора. Отключение проверки правильности ввода производится директивой компилятора {$!-} (Input/Output checking в окне настройки опций компилятора). После каждого действия по вводу-выводу специальная функция lOResult возвращает целое значение, соответствующее ошибкам ввода-вывода. Правильной работе ввода-вывода соответствует нулевое значение, возвращаемое этой функцией. Надежный ввод целого числа i выполняет фрагмент программы:

{$!-} {отключение проверки ввода-вывода} repeat

Write ('Введите i = '); {вывод на экран предложения для ввода}

ReadLn (i) {ввод целого числа}

until lOResult = 0; {lOResult — функция, равная 0, если нет ошибки} {$!+} {восстановление проверки ввода-вывода}

По крайней мере один раз вводится число; если при вводе была сделана ошибка, условие lOResult = 0 имеет значение false, и ввод будет повторяться до тех пор, пока он не будет сделан правильно.

Операторы Break и Continue

В последних версиях языка Borland Pascal введены два новых оператора, Break и Continue, применяемые внутри циклов. Они расширяют возможности использования циклов и улучшают структуру программ. В процессе выполнения тела цикла до его завершения могут возникнуть дополнительные условия, требующие завершения цикла. В этом случае цикл может быть прекращен оператором Break.

Пример. Игра с ЭВМ в кости. Условия игры. Компьютер выдает себе или Вам случайные числа от 1 до 6. Задача — набрать максимальную сумму очков. Набравший больше 21 очка проигрывает, в любой момент один из игроков может отказаться от набора очков (спасовать).

Program Bones;

Const MaxSum = 1; {максимальное число очков}

var SumYour, {сумма очков игрока}

SumComp, {сумма очков компьютера}

count: byte; {очередные выпавшие очки}

reply: string; {ответ на запрос ЭВМ}

begin

SumYour := 0;

SumComp:=12; {начальное количество очков}

Randomize; {установка датчика случайных чисел}

repeat {начало общего цикла, организующего игру}

write ('Бросить кость для Вас? (у/n)');

repeat {Начало цикла для ввода корректного ответа} readln(reply) {ввод ответа}

К-во Просмотров: 437
Бесплатно скачать Реферат: Паскаль. Отладка программ