Сайт Koder.kz сайт для Delphi программистов.

koder.kz

Web or desctop App Developer

Написать

Добавил 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
{программа выполняется дальше}