ZMIENNE I STAŁE W PASCALU
Stałe i zmienne, to jakby pudełka z wypisaną na wieczku nazwą, w których można przechowywać informacje przydatne w programie (podobnie jak na matematyce). Zamiast używać w programie jakichś wartości lepiej jest posługiwać się ich nazwami. Zanim zaczniemy ich używać, należy poinformować program o nazwie i typie zmiennej - co będziemy w zmiennej przechowywać (liczby, teksty itp.). Ta część programu nosi nazwę deklarowania zmiennych i stałych. Związane jest to z tym, że program musi zarezerwować w pamięci komputera określoną liczbę bajtów. Wartość zmiennych może ulegać zmianie w trakcie działania programu. Stałe pełnią podobną rolę w programie jak i zmienne - przechowują pewne wartości. Jednak w trakcie działania programu nie ulegają zmianie (nie trzeba też deklarować ich typu).
Deklarowanie
zmiennych
Zadeklarujmy
np. zmienną x, w której będziemy przechowywać współrzędne punktów na
ekranie monitora (liczby) i stałą y, która będzie miała przez cały czas
działania programu wartość -1.
VAR x : integer;
Deklarowanie stałych
CONST y = -1;
Typ INTEGER oznacza, że do tej zmiennej można „wrzucać” w trakcie działania programu liczby całkowite z zakresu -32768..32767. Typ BYTE od –128 do 127
Do zmiennej możemy "wrzucić" pewną informację oraz zmienić jej zawartość w trakcie działania programu. Nazywamy to przypisywaniem do zmiennej i wygląda w następujący sposób:
x := 3 ; {zmienna x zawiera liczbę 3}
x := x + 4 ; {od tej chwili zmienna x zawiera liczbę 7}
x := y ; (jeśli np. w y była liczba -1, to x też przyjmuje taką wartość)
Instrukcja LINE(x,100,x,200); będzie rysowała linie pionowe. W zależności od
wartości zmiennej x linie te będą w różnym stopniu oddalone od lewej krawędzi
ekranu. Wystarczy raz zdefiniować linię pionową i zastanawiać się tylko nad
odległością od brzegu
x:=100;
LINE(x,100,x,200);
x:=150;
LINE(x,100,x,200);
x:=200;
LINE(x,100,x,200);
A w tym
przypadku linia będzie miała różną długość w zależności od wartości
zmiennej y:
x:=200;
y:=100;
LINE(x,100,x,100+y); {długość 100}
x:=250;
y:=50;
LINE(x,100,x,100+y); {linia przesunięta o 50 w prawo od poprzedniej i długość
tylko 50}
Jeśli szerokość lub wysokość określamy za pomocą stałych lub zmiennych zachodzi konieczność obliczenia ich połowy lub jednej czwartej. Nie możemy współrzędnych w tradycyjny sposób używając znaku dzielenia, gdyż rezultatem takiego działania są liczby rzeczywiste, których nie można wstawiać do instrukcji rysujących. Dzielenie całkowite, którego wynikiem są liczby całkowite możliwe jest po zastosowaniu polecenia DIV.
LINEREL(0, wys DIV 2); {narysowana zostanie linia pionowa w dół o długości, która jest równa połowie zmiennej WYS}
GRAF04.PAS LITERKI i ZMIENNE
program grafika04;
uses graph;
var
d,m:integer;
{zadeklarowano dwie zmienne}
x,y:integer;
const
w=100; {wysokość litery}
s=40; {szerokość litery}
o=20;
begin
d:=detect;
initgraph(d,m,'');
{początkowe wartości zmiennych}
x:=50;
y:=100;
SetColor(12);
Line(x ,y ,x ,y+100);
Line(x ,y+100,x+40 ,y+100);
Line(x+60 ,y ,x+60 ,y+100);
Line(x+80 ,y+50 ,x+80 ,y+100);
Line(x+100,y ,x+100,y+100);
Line(x+60 ,y+100,x+100,y+100);
readln;
{zmieniamy zawartość x i y i używamy stałych s i w}
x:=200;
y:=100;
SetColor(13);
MoveTo(x ,y);
LineTo(x ,y+w);
LineTo(x+s ,y+w)
{zamiast dodawać liczby jak w poprzednim przykładzie
lepiej zmienić zawartość zmiennej x};
x:=x+s+o;
MoveTo(x ,y);
LineTo(x ,y+w);
LineTo(x+s,y+w);
LineTo(x+s,y);
MoveTo(x+s div 2 ,y+w div 2);
LineTo(x+s div2 ,y+w);
readln;
{zmieniliśmy zawartość zmiennych x i y}
x:=350;
y:=100;
SetColor(14);
MoveTo(x,y);
LineRel(0,w);
LineRel(s,0);
MoveRel(s div 2,-w);
LineRel(0,w);
LineRel(s,0);
LineRel(0,-w);
MoveRel(-s div 2,w div 2);
LineRel(0,w div 2);
readln;
CloseGraph;
end.
Ćwiczenia
Narysuj poniższy napis używając jak najmniejszej liczby cyfr. Posługuj się stałymi i zmiennymi
zadeklaruj następujące stałe i przypisz im odpowiednie wartości
s - szerokość litery - 100
w - wysokość litery - 200
o - odstęp między literami 20
px - lewy górny róg napisu - 50
py - lewy górny róg napisu - 100
zadeklaruj zmienne x i y
- kolory kolejnych liter: czerwona, żółta, zielona,
niebieska, biała
- dodatkowe końce linii znajdują się w połowie lub w 1/4
odległości
a) używając instrukcji bezwzględnych
MOVETO i LINETO
b) używając instrukcji względnych
MOVEREL i LINEREL
c) używając instrukcji LINE