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;wpe10.gif (2270 bytes)
{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;wpe12.gif (2815 bytes)
{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;wpe14.gif (3376 bytes)
  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