Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
pascal.pdf
Скачиваний:
114
Добавлен:
20.04.2015
Размер:
980.04 Кб
Скачать

 

47

Программирование на языке Pascal

If C=#0 Then C:=ReadKey; {Если ReadKey возвратил символ с}

{кодом 0, считываем еще раз}

If C=#75 Then WriteLn('Нажата клавиша ВЛЕВО');

End.

Проверка

If C=#0 Then C:=ReadKey;

необходима для тех случаев, когда ReadKey возвращает перед кодом нажатой клавиши нулевой символ.

Движение символа будем осуществлять вычитая либо прибавляя единицу к соответствующей координате. Поскольку вертикальная ось направлена вниз (ось Y), а горизонтальная – слева направо (Ось X), то для движения влево нам необходимо будет уменьшать горизонтальную координату, а для движения вверх – уменьшать координату Y. Чтобы не оставлять трек движения символа по экрану, будем на каждой итерации очищать экран при помощи процедуры ClrScr. (На самом деле, можно очистку экрана и убрать, тоже интересно будет – можно рисовать звездочкой различные рисунки на экране).

Исходный текст программы будет тогда выглядеть следующим образом:

Uses Crt;

Var c:char; x,y: Byte;

Begin

x:=40; {Координаты середины экрана} y:=12;

Repeat

ClrScr; GotoXY(x, y); Write('*'); c:=ReadKey;

If c=#0 Then c:=ReadKey;

Case c Of

#72: y:=y-1; {двигаемся вверх} #80: y:=y+1; {двигаемся вниз} #75: x:=x-1; {двигаемся влево} #77: x:=x+1; {двигаемся вправо}

End;

If (x=0) Or (x=80) Or (y=0) Or (y=25) Then

Begin

Writeln('Миссия завершена!'); Break;

End;

Until c=#27; {Выполняем цикл до тех пор пока пользователь}

{не нажмет клавишу Esc}

End.

Оператор безусловного перехода к следующей итерации (continue)

Вслучае, когда при некоторых условиях необходимо не прекращать выполнение цикла, а начать следующую итерацию, применяется оператор continue.

Вкачестве примера приведем программу, которая суммирует только нечетные числа из тех, что вводит пользователь. В случае, если пользователь введет четное число, благодаря оператору continue, цикл перейдет к следующей итерации, требуя от пользователя ввода

47

 

48

Программирование на языке Pascal

следующего значения. Программа выполняется, пока общее количество вводимых чисел не превысит 10.

Четность или нечетность числа проверяется по остатку деления его на 2. Если остаток от деления равен нулю, значит число четное, в противном случае – нечетное. Для вычисления остатка от деления воспользуемся оператором Mod.

Var Number, i, Sum, cnt: Integer;

Begin

Sum:=0;

For i:=1 To 10 Do

Begin

ReadLn(Number);

If Number Mod 2=0 Then Continue; Sum:=Sum+Number;

cnt:=cnt+1;

End;

WriteLn('Сумма нечетных чисел= ', sum, ' Их количество=',cnt);

End.

48

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]