Pascal

Instrukcja uruchamiania kompliatora

   1. Uruchom dosboxportable.exe z dysku "h"
   2. mount h h:
   3. h:
   4. cd bp
   5. cd bin
   6. bp.exe
   7. naciśnij prawy ATL+ENTER

ZMIENNE

Przykład deklaracji zmiennych w programie

program dowolna_nazwa;
var a,b,c:integer;
    d,e,f:real;
    zmienna:string;
begin;
{algorytm}
end.

TYPY LICZBOWE CAŁKOWITE
Integer  od -32768 do 32767 ze znakiem,
     16 lub 32 lub 64 bitowy
     (w zależności od platformy na którą programujemy)

ShortInt –128..127 ze znakiem, 8-bitowy
LongInt  –2147483648..2147453647 ze znakiem, 32bit.
Byte      0..255 bez znaku, 8-bitowy
Word      0..65535 bez znaku, 16-bitowy

TYPY LICZBOWE RZECZYWISTE
Real     5.0 x 10^–324 .. 1.7 x 10^308     64-bitowy
Single     1.5 x 10^–45 .. 3.4 x 10^38     32-bitowy
Double     1.5 x 10^–309 .. 1.7 x 10^309     64-bitowy
   
TYPY ZNAKOWE
Char     8 - bitowy     zgodny z typem AnsiChar

TYPY ŁAŃCUCHOWE
String

TYPY LOGICZNE
Boolean     8 - bitowy

WYBRANE PODSTAWOWE INSTRUKCJE

Operacje we/wy

write ('napis');

writeln ('napis');

write (zmienna);

writeln (zmienna);

writeln;

read (zmienna); {instrukcja z błędem!!!}

readln (zmienna);


Działania matematyczne
c:=a+b;
c:=a-b;
c:=a*b;
c:=a/b;
c:=a mod b;
c:=a div b;
Jeżeli

if (warunek_logiczny) then
            begin;
            {prawda - instrukcje}
            end
            else
            begin;
            {fałsz - instrukcje}
            end;

if (warunek_logiczny) then {instrukcja - 1 sztuka};

if (warunek_logiczny) then
            begin;
            {prawda - instrukcje}
            end;

warunek_logiczny - to równanie, nierówność
           lub zmienna boolean
UWAGA! po then, po i przed else nigdy nie piszemy";"


PĘTLE

Pętle iteracyjne

for i:=1 to 10 do
    begin;
    {coś}
    end;

for i:=1 to 10 do {pojedyncza instrukcja};

for i:=10 downto 1 do
    begin;
    {coś}
    end;

for i:=10 downto 1 do {pojedyncza instrukcja};
-----
i - zmienna typu całkowitego (dowolna nazwa)
inkrementowana/dekrementowana automatycznie
(i:=i+1 jest zbędne!, jeśli je zastosujesz zmienna
będzie się zmieniać o 2!!!)
Pętle warunkowe

repeat

{tutaj instrukcje - nie jest potrzebny begin i end!}

until (warunek_logiczny);

--------------------------

while (warunek) do
    begin;
    {tutaj instrukcje}
    end;

Pierwsze programy

program suma_2_liczb;
var a,b,c:integer;

begin;
write ('podaj 1 liczbe: ');
readln(a);
write ('podaj 2 liczbe: ');
readln(b);
c:=a+b;
write ('wynik wynosi: ');
write(c);
end.

--------------------------------------

program wart_bezwzgledna;
var a:real;

begin;
write ('podaj liczbe: ');
readln(a);
if (a<0) then a:=-a;
writeln(a:2:2);
readln;
end.
program kwadrat_z_x;
var n,i,j:byte;

begin;
write ('podaj wymiar: ');
readln(n);

for i:=1 to n do
    begin;
    for j:=1 to n do write('x');
    writeln;
    end;

readln;
end.

Losowanie liczb

randomize; -



c:=random(a); -
program losowanie;
uses crt;
var ok,pom,i,j:byte;
    tablica:array ⌈1..6⌉ of byte;

begin;
randomize;

for i:=1 to 6 do
    begin;
    ok:=0;
    repeat
    pom:=random (49)+1;
    for j:=1 to 6 do if tablica⌈j⌉<>pom then
                        begin
                        ok:=1;
                        tablica⌈i⌉:=pom;
                        writeln(pom);
                        end;

    until ok=1;
    end;
end.

Procedury i funkcje

deklaracja procedury:

procedure nazwa_p;
var a,b:byte;     {zmienne lokalne}
begin;
    {tutaj algorytm do wykonania}
end;




wywołanie w programie glównym:
nazwa_p;           {wywołanie procedury}
deklaracja funkcji:

function nazwa_f(a,b:byte):integer;
var c,d:byte;
begin;
    {algorytm z przypisaniem wartości tej funkcji np.:}
    nazwa_f:=a+b;
end;



wywołanie w programie glównym:
c:=nazwa_f(3,6);   {wywołanie funkcji}

Obsługa plików

program pliki;
uses crt,dos;

var f:file of char;
    c:char;

begin;

assign(f,'h:bpplikuś.txt');
rewrite (f);

repeat
c:=readkey;
if c<>#27 then
    begin;
    write(c);
    write(f,c);
    end;

until c=#27;
close (f);

end.
 

Długość stringa

program znaki;
var s:string;
    ile_znakow:integer;

begin;   
    read(s);
     ile_znakow:=Length(s);
    write ("Dlugosc napisu: ",ile_znakow);
end.