Pascal/Променливи и типове
Урок 1 : | Въведение |
---|---|
Урок 2 : | Променливи и типове |
Урок 3 : | Условия |
Урок 4 : | Цикли |
Урок 5 : | Масиви |
Урок 6 : | Константи |
Урок 7 : | Процедури и функции |
Упражнение : | Упражнения І |
---|
Този урок се занимава с декларирането на променливи и тяхната употреба в езика Pascal. Променливите дават възможност на потребителя да запазва стойности и да извършва операции с тях.
Деклариране на променливи
[edit]Променливите в Pascal се декларират, като първо се зададе запазената дума var
(оказва на компилатора, че следва декларация на променлива), последвана от името на променливата (свободно избираемо, но е препоръчително да се различавава от запазените думи), двуеточие и типа на променливата. Типът определя какви стойности може да приема променливата, напр. цяло число, буква, вярно/невярно и др. Някой от най-често използваните типове са:
- Integer: цели числа между -32 768 и 32 767;
- Char: символи (например A, B, C);
- String: низ от символи;
- Boolean: вярно/невярно (true/false)
В следния пример се декларират променливата a от тип integer, b от тип char и c от тип boolean:
var a:integer;
b:char;
c:boolean;
Примерни програми, използващи декларации на променливи от различни типове
[edit]За да изясни употребата на променливи ще разгледаме програмата от предходния урок, която отпечатва стойността на израза 1+2, но използвайки променлива. На променливата и, която ще декларираме от тип integer (цяло число), ще присвоим стойност 1+2, като присвояването се извършва със знака :=
var i:integer;
begin
i:=1+2;
write('1+2=', i);
readln;
end.
Някои от възможните операции със типа integer са:
- +: Събиране. Пример: a:=2+1, при което a=3;
- -: Изваждане. Пример: a:=2-1, при което a=1;
- *: Умножение. Пример: a:=2*1, при което a=2;
- div: Цяло частно от деленето. Пример: a:=2 div 1, при което a=2;
- mod: Целочислен остатък от деленето. Пример: a:=2 mod 1, при което a=0;
Променлива може да бъде не само отпечатана, но и прочетена, което се извършва с командата read(); или readln(); като съответната променлива се поставя в скобите без кавички.
Следната програма иска въвеждане на две числа и отпечатва техния сбор. Обърнете внимание, че ако се въведе буква, а не цифра програмата спира, отчитайки грешка.
var a, b, c:integer;
begin
write('Vyvedete 4isloto a:');
readln(a);
write('Vyvedete 4isloto b:');
readln(b);
c:=a+b;
write('a+b=', c);
readln;
end.
Възможно е и двете числа да се въведат на един ред, разделени от интервал:
var a, b, c:integer;
begin
write('Vyvedete 4islata a i b:');
readln(a, b);
c:=a+b;
write('a+b=', c);
readln;
end.
В следната програма се въвеждат три символа, използвайки променливите bukva1, bukva2 и bukva3 от тип char. Програма А прочита трите символа, като след всеки е нужно натискането на клавиша enter, след което отпечата и трите символа един след друг на един ред без интервали. Програма Б прочита трите символа на един ред без интервали между тях и ги отпечатва на нов ред в обратен ред, разделени от интервали. Реда на прочитане и отпечатване на променливи зависи от ред на изписването им в командите read и write. Забележете, че ако се въведе интервал или цифра на мястото на някой от символите програмата не дава грешка, тъй като интервала, препинателните знаци и цифрите също се считат за символи според ASCII кода.
Програма А
var bukva1, bukva2, bukva3:char;
begin
readln(bukva1);
readln(bukva2);
readln(bukva3);
write(bukva1, bukva2, bukva3);
readln;
end.
Програма Б
var bukva1, bukva2, bukva3:char;
begin
readln(bukva1, bukva2, bukva3);
write(bukva3, ' ', bukva2, ' ', bukva1);
readln;
end.
В следния пример е декларирана променливата b от тип boolean, на която се присвоява стойността на израза (a=c). a и c са променливи от тип integer въведени от потребителя. Ако двете променливи са равни, то стойността на израза a=c е вярна и програмата ще отпечата TRUE, а в противен случай FALSE.
var b:boolean;
a, c:integer;
begin
readln(a, c);
b:=(a=c);
write(b);
readln;
end.
В следващия урок ще разгледаме, как командите изпълнявани от програмата могат да зависят от стойностите на променливите.