Jump to content

Pascal/Променливи и типове

From Wikiversity
Информатика

Уроци
Урок 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. Забележете, че ако се въведе интервал или цифра на мястото на някой от символите програмата не дава грешка, тъй като интервала, препинателните знаци и цифрите също се считат за символи според Wikipedia 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.

В следващия урок ще разгледаме, как командите изпълнявани от програмата могат да зависят от стойностите на променливите.