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

koder.kz

Web or desctop App Developer

Написать

Добавил admin | Категория Pascal за 12 уроков, перевод | 18 Декабря 2013


Сегодня мы с вами поговорим о том как работать в Паскале со строковыми переменными, обратите внимание на код ниже:


Program Lesson2_Program1;
Var name, surname: String;
Begin
	Write('Enter your name:');
	readln(name);
	Write('Enter your surname:');
	readln(surname);
	writeln;{new line}
	writeln;{new line}
	Writeln('Your full name is: ',name,' ',surname);
	Readln;
End.

Давайте теперь посмотрим на нашу программу. Тут мы объявляем две переменных типа string, это name, surname. Как вы наверное уже успели понять мы сегодня с вами будем изучать тип данных string. Это такой строковый тип в Паскале :).

Давайте разбирать что же все таки мы написали выше. И так, мы предлагаем пользователю ввести свое имя (строчка Write('Enter your name:');), ждем пока он его введет (строчка readln(name);) затем предлагаем ввести ему фамилию, ждем пока он ее введет. Думаю с этим все понятно. Потом обратите внимание у нас идут два пустых 


writeln;{new line}
writeln;{new line}

мы их используем для того что бы переместить указатель на две строки ниже.

Ну и на следующей строке мы выводим 


Writeln('Your full name is: ',name,' ',surname);

Ваше имя и фамилия

Обратите внимание что это можно сделать следующим образом


Writeln('Your name is: ',name,'');

Или вот так 


Writeln('Your name is: ',name);

Константы и оператор присваивания

в паскале по мимо переменных так же есть так называемые константы. Константой называется «переменная» значение которой в процессе работы программы не изменяются. Давайте посмотрим на следующий код


Program Lesson2_Program2;
Var
	surname: String;
	Const {the reserved word 'const'
	is used to initialize constants}
	name = 'Victor';
Begin
	Write('Enter your surname:');
	readln(surname);
	writeln;
	writeln;
	Writeln('Your full name is: ',name,' ',surname);
	Readln;
End.

Тут мы объявляем специальный раздел – Const и в нем описываем константу name и присваиваем ей значение name = 'Victor'; В других примерах, например когда нужно использовать числовую константу можно написать так:

Const

    age = 15;

теперь наша константа age может быть использована в любом месте программы. Например 

age2 := 15;

age2 := age + 15;

приведенный выше пример показывает как с помощью нашей константы age мы увеличиваем значение переменной age2. В результате выполнения этого участка кода в переменной age2 будет значение 30.

Для закрепления нашего сегодняшнего материала хотелось бы вам представить такой вот исходных код программы, подумайте над ним, посмотрите как это работает.


Program lesson2_Program3;
Var PD, Dname, Cmodel : String;
TotalKM, CostPD, TCostPD, Distance : Real;
{real is a decimal (described later)}
begin
	TCostPD := 0;
	{note that this is called an 'initialisation'.
	It is important to initialise variables to 0
	so that it is 'refreshed' from the previous
	'rubbish' value in the memory.}
	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.');
	Readln;
	Write('Diesel or Petrol?: ');
	Readln(PD);
	Write('Name Of Driver: ');
	Readln(Dname);
	Write('Car Model: ');
	Readln(Cmodel);
	Write('Cost of Diesel/Petrol: (£) ');
	Readln(CostPD);
	Writeln('Average distance you travel '+
		+'with your car every week: (kilometres) ');
	Readln(Distance);
	Writeln;
	Writeln;
	Writeln('Name of Driver:',Dname);
	Writeln('Car Model:',Cmodel);
	Writeln('Diesel/Petrol:',PD);
	Writeln('Average distance covered '+
		+'every week: ',Distance:1:2,'Km');
	Writeln('Cost of ',PD,' per liter: £',CostPD:1:2,'/litre');
	Writeln;
	Writeln;
	TCostPD := Distance * CostPD;
	Writeln('Total cost of ',PD,' per week:'+
		+'£',TCostPD:1:2); {note this,}
	TCostPD := 0;
	Writeln('Total cost of ',PD,' per week:'+
		+'£',(Distance * CostPD):1:2); {this}
	Writeln('Total cost of ',PD,' per week:'+
		+'£',Distance * CostPD); {and this - without ':1:2'}
	readln;
End.