Добавил admin | Категория Pascal за 12 уроков, перевод | 19 Декабря 2013
Этот урок будет охватывать:
• Использование зарезервированных слов
• Описание зарезервированных слов
Мы рассмотрим:
ClrScr;
GotoXY (_, _);
Textbackground ();
TextColor ();
ReadKey;
Delay();
Halt; / Halt()
Использование зарезервированных слов
Прежде чем мы научимся с вами разрабатывать собственные процедуры и функции предлагаю вам посмотреть как работают уже существующие. Для того что бы использовать стандартные процедуры и функции языка Паскаль нам необходимо подключить один из модулей в котором хранятся эти функции. Разные функции хранятся в разных модулях. Модули подключаются в специальном разделе – Uses. Если мы в нашей программе попытаемся вызвать какую то функцию а модуль в разделе Uses не будет подключен, компилятор скажет нам что он не знает где эта функция находится соответственно выполнить ее не в его силах. Вот программа из второго урока (программа 3).
Program lesson3_Program1;
Uses Crt; {We will make use of the crt library}
Var PD, Dname, Cmodel : String;
CostPD, TCostPD, Distance : Real;
{real is a decimal (described later)}
Begin
textbackground(brown); {background colour}
ClrScr; {Clear screen with a brown colour.
Try run the program without this!!!}
TextColor(lightgreen); {text colour}
TCostPD := 0;
Writeln('This program prompts you to '+
+'input the cost per litre of');
Writeln('the petrol/diesel you spend in and '
+'the average distance you travel');
Writeln('with your car every week. Then, '+
+'the computer calculates the total cost');
Writeln('you spend in fuel every week.');
Readkey; {program move on as soon as a key is pressed}
ClrScr;{short for clear screen}
GotoXy(28,3);
{^move to a position on the screen:
x (horizontal), y (vertical)}
Write('Diesel or Petrol? Type p or d: ');
PD := Readkey;
{^as soon as a key is pressed
it is stored in the variable 'PD'}
GotoXy(30,4);
Write('Name Of Driver: ');
Readln(Dname);
GotoXy(30,5);
Write('Car Model: ');
Readln(Cmodel);
GotoXy(29,6);
Write('Cost of Diesel/Petrol: (£) ');
Readln(CostPD);
GotoXy(8,7);
Writeln('Average distance you travel with '+
+'your car every week: (kilometres) ');
Readln(Distance);
ClrScr;
GotoXy(28,3);
Writeln('Name of Driver:',Dname);
GotoXy(31,4); Delay(500);
Writeln('Car Model:',Cmodel);
GotoXy(32,5); Delay(500);
Writeln('Diesel/Petrol:',PD);
GotoXy(8,6); Delay(500);
Writeln('Average distance covered '+
+'every week: ',Distance:1:2,'Km');
GotoXy(25,7); Delay(500);
Writeln('Cost of ',PD,' per litre: £',CostPD:1:2,'/litre');
Writeln; Delay(500);
Writeln;
TCostPD := Distance * CostPD;
GotoXy(21,10);
Writeln('Total cost of ',PD,' per week:£',TCostPD:1:2);
TCostPD := 0;
GotoXy(21,12);
Writeln('Total cost of ',PD,' per week:'+
+'£',(Distance * CostPD):1:2);
GotoXy(18,14);
Writeln('Total cost of ',PD,' per week:£',Distance * CostPD);
readln;
End.
Для того что бы увидеть разницу в работе этих двух программ, выполните их, и посмотрите на результат работы.
Модуль Crt, наверное самая распространенная библиотека языка, она имеет широкий спектр процедур и функций, которые просто необходимы для написания программ на Паскале. В таблице ниже мы постарались перечислить наиболее часто используемые из них.
Описание зарезервированных слов
Процедура/функция | Нужен модуль Crt | Описание |
Clrscr | да | Очистка экрана |
Gotoxy(int,int) | да | Перемещает курсор на указанные координаты |
Textbackground(word/int) | да | Устанавливает цвет фона |
Textcolor(word/int) | да | Устанавливает цвет текста |
Readkey | да | Считывает код нажатой клавиши |
Delay(int) | да | Задержка выполнения программы (значение указывается в миллисекундах) |
Halt(parameter) | нет | Завершение работы программы. |
ключ (тип переменной):
Int - integer (от -32768 до +32767), word - от 0 до 65535.
Примеры использования
• ClrScr: (очистка экрана)
WriteLn ('Нажмите любую клавишу для очистки экрана');
ReadLn;
ClrScr;
• GotoXY (внутр, целое): (устанавливаем курсор на позицию х и у)
GotoXY (10,10);
Writeln ('Позиция 10 пикселей от левой части экрана, и десять пикселей');
Writeln ('из верхней части экрана.');
ReadLn;
• Textbackground(word/int): (Цвет фона)
Textbackground(red); {цвет фона будет красный}
Writeln ('Обратите внимание на разницу');
Textbackground (5);
ClrScr;
Writeln ('Обратите внимание на разницу');
ReadLn;
• TextColor (word/int): (Цвет текста)
v TextColor(red); {цвет фона будет красный} Writeln ('Цвет текста'); TextColor (5); Writeln ('Цвет текста'); ReadLn;• ReadKey: (Ждет нажатия любой клавиши)
Пример 1:
Writeln ('Нажмите любую клавишу!');
ReadKey;
Пример 2:
Writeln ('Нажмите любую клавишу');
eypress: = ReadKey; {нажатие является объявленная переменная строка (может быть целая переменная)}
Writeln (Keypress);
• Delay(int): (Пауза в выполнении программы)
Writeln ('1 ');
Delay (1000), {1000 миллисекунд}
Writeln ('2 ');
Delay (1000);
Writeln ('3 ');
ReadLn;
• Halt(int): (Программа завершается с кодом выхода)
WriteLn (‘нажмите Enter для завершения работы программы’);
ReadLn;
Halt(0);
Тут стоит отметить что при использовании Halt(0);, все что идет ниже или в другой ветки программы не выполниться, так как Halt(0); сразу после того как его встретил компилятор завершает выполнение программы. Думаю, для лучшего понимая поможет пример
If a > b then
Halt(0){программа завершает работу}
Else
{программа выполняется дальше}