Kody źródłowe we FreePascal

Ta strona jest ciągle rozwijana, możesz pomóc zgłaszając swoje uwagi na dole strony otwierając dyskusję dotyczącą tego artykułu.

Kody źródłowe

Wektory

Działania na wektorach

Podzielny wektor

Program podzielnyWektor;
Uses Crt;
 
{
 Proszę stworzyć wektor, który będzie przechowywać liczby z przedziału od 1 do
 20, podzielne przez 3. Wyświetlić ten wektor.
}
 
Var
    wektor : Array[1..20] Of Integer;
    licznik, i : Integer;
 
Const
    a=3;
 
Begin
ClrScr();
licznik:=0;
 
    For i:=1 To 20 Do
    Begin
        If((i mod a)=0) Then
        Begin
            licznik:=licznik+1;
            wektor[licznik]:=i;
 
{            Write('Ta liczba jest podzielna przez ', a, ': ', i);
            WriteLn(' i jest ', licznik, ' elementem');
}
            WriteLn('wektor[', licznik, ']=', i);
        End;
    End;
End.

Losowe liczby w wektorach

Losowanko

Program losowanko;
 
Uses Crt;
 
{
 Stwórz wektor 10 elementowy, któremu będą przypisywane losowe liczby
 z przedziału od 1 do 9.
 
 Stwórz drugi wektor, do którego przypiszemy liczby większe od 4.
 Zsumuj liczby z wektora.
 
 Policz iloczyn liczb dla drugiego wektora.
}
 
Var
    a, b : Array[1..10] Of Byte;
    i, suma, iloczyn : Longword;
 
Begin
    ClrScr();
    suma:=0;
    iloczyn:=1;
 
    Write('a: ');
    For i:=1 To 10 Do
    Begin
        a[i]:=Random(9)+1;
        Write(a[i], '...');
    End;
    WriteLn('');
 
    Write('b: ');
    For i:=1 To 10 Do
    Begin
        b[i]:=Random(9)+5;
        Write(b[i], '...');
        suma:=suma+b[i];
        iloczyn:=iloczyn*b[i];
    End;
 
    WriteLn('');
    WriteLn('Suma drugiego wektora wynosi: ', suma);
    WriteLn('Iloczyn drugiego wektora wynosi: ', iloczyn);
End.

Losuj i wyświetl elementy tabeli

Program losujLiczbe;
Uses Crt;
 
{
 Stwórz wektor 10 elementowy i wlosuj do niego liczby z przedziału
 od 0 do 7 (widoczne dla użytkownika, programista musi wpisać
 zakres do 8).
}
 
Const
    doIlu=9;
    zakres=8;
 
Var
    wektor : Array[0..doIlu] Of Byte;
    i : Byte;
 
Begin
    ClrScr();
    Randomize();
 
    For i:=0 To doIlu Do
    Begin
        wektor[i]:=Random(zakres);
        Write(wektor[i], '...');
    End;
End.

Suma wektorów

Program sumaWektorow;
Uses Crt;
 
{
 Zadeklarować 2 wektory 5-elementowe, w #1 wektorze są liczby podawane
 przez użytkownika. W #2 liczby są losowane z przedziału od 2 do 15.
 Wyświetl te wektory, i stwórz #3 wektor, który będzie sumą tamtych
 dwóch wektorów.
}
 
Var
    pierwszy, drugi, suma : Array[0..4] Of Integer;
    i : Integer;
 
Begin
Randomize();
ClrScr();
 
    WriteLn('Podaj 5 liczb, każdą potwierdzając klawiszem Return');
    For i:=0 To 4 Do
    Begin
        Read(pierwszy[i]);
        drugi[i]:=Random(14)+2;
    End;
 
    ClrScr();
 
    Write('Pierwszy wektor: ');
    For i:=0 To 4 Do
        Write(pierwszy[i]:3, ' ');
 
    WriteLn('');
 
    Write('Drugi wektor:    ');
    For i:=0 To 4 Do
        Write(drugi[i]:3, ' ');
 
    WriteLn('');
 
    Write('Suma wektorów:  ');
    For i:=0 To 4 Do
    Begin
        suma[i]:=pierwszy[i]+drugi[i];
        Write(suma[i]:3, ' ');
    End;
End.

Małe programiki

KML-divMod

Program divMod;
 
Uses Crt;
 
Var
 
    a : Integer;
    b : Integer;
Begin
    Write('Podaj dwie następujące po sobie wartości liczbowe: ');
    ReadLn(a, b);
 
    WriteLn('Reszta ', a mod b);
    WriteLn('Czesc calkowita ', a div b);
End.

KML-dodatniaUjemna

Program wczytuZmienna;
 
Uses Crt;
 
Var
    a : Real;
 
Procedure czekajNaKlawisz();
Begin
    WriteLn();
    WriteLn('Wcisnij dowolny klawisz, aby kontynuuowac...');
    ReadKey();
End;
 
Begin
    ClrScr();
 
    Write('Podaj liczbe : ');
    ReadLn(a);
 
    If(a<=0) Then
        WriteLn('liczba ujemna')
    Else
    WriteLn('liczba dodatnia');
 
    czekajNaKlawisz();
End.

KML-mod

Program m0d;
 
Uses Crt;
 
Begin
    ClrScr();
 
    WriteLn('Reszta z dzielenia liczby 4 przez liczbe 3 wynosi ', (4 mod 3));
 
    WriteLn('');
    WriteLn('Wcisnij dowolny klawisz...');
    ReadKey();
End.

KML-petlaFor

Program petlaFor;
 
Uses Crt;
 
Const
    n = 100;
Var
    i : Byte;
 
Begin
    ClrScr();
 
    For i:=1 To n Do
    Begin
        Write(i);
        Write('%...');
        Delay(50);
    End;
 
End.

KML-petlaRepeat

Program petlaRepeat;
 
Uses Crt;
 
Var
    a : Byte;
 
Procedure czekajNaKlawisz();
Begin
    WriteLn('');
    WriteLn('Wcisnij dowolny klawisz...');
    ReadKey();
End;
 
Begin
    Repeat
        ClrScr();
        WriteLn('Podaj liczbe wieksza od 5');
        Read(a);
    Until(a>5);
 
    WriteLn('Podales liczbe : ', a);
    czekajNaKlawisz();
End.

KML-podzielnaPrzez

Program taLiczaJestPodzelnaPrzez;
 
Uses Crt;
 
    Var
        a, i : Byte;
 
Procedure czekajNaKlawisz();
Begin
    WriteLn('');
    WriteLn('Wcisnij dowolny klawisz...');
    ReadKey();
End;
 
Begin
a:=2;
    ClrScr();
 
    For i:=1 To 20 Do
    Begin
    If((i mod a)=0) Then
        WriteLn('Ta liczba jest podzielna przez ', a, ': ', i);
    End;
 
czekajNaKlawisz();
 
End.

KML-resztaDzieleniaCzescCalkowita

Program resztaDzieleniaCzescCalkowita;
 
Uses Crt;
 
Var
    a, b : Integer;
 
Begin
    ClrScr();
 
    Write('Podaj liczbe do licznika: ');
    ReadLn(a);
 
    Write('Podaj liczbe do mianownika: ');
    ReadLn(b);
 
    If(b=0) Then
    Begin
        WriteLn('Dzielenie przez zero jest niemozliwe');
        WriteLn('');
        WriteLn('Wcisnij dowolny klawisz...');
        ReadKey();
    End
    Else
    Begin
        WriteLn('');
 
        WriteLn('Reszta z dzielenia wynosi: ', (a mod b));
        WriteLn('Czesc calkowita wynosi: ', (a div b));
 
        WriteLn('');
        WriteLn('Wcisnij dowolny klawisz...');
        ReadKey();
    End;
End.

KML-stalaStala

Program stalaSiaTaTa;
 
Uses Crt;
 
{
 
 Uzytkownik ma stala o wartosci 10, ma za zadanie stwierdzic, czy podana
 
 przez niego liczba jest mniejsza, badz rowna stalej, lub wieksza od niej.
 
 Nalezy wyswietlic stosowne komunikaty.
 
}
 
Const
    a=10;
 
Var
    b : Real;
 
Begin
    ClrScr();
 
    WriteLn('Super gierka stworzona przez mistrza w swoim gatunku');
    WriteLn('');
    WriteLn('Camelek.AmigaRulez prezentuje Wam najnowsze dzielo');
    WriteLn('graj, i nie daj sie zabic! :D');
    WriteLn('');
 
    WriteLn('Wcisnij dowolny klawisz...');
    ReadKey();
 
    ClrScr();
 
    WriteLn('Podaj dowolna wartosc z przedzialu Real dla jezyka Pascal:');
    ReadLn(b);
 
    If(b<=a) Then
    WriteLn('Podana wartosc jest mniejsza, badz rowna stalej.')
    Else
    WriteLn('Podana wartosc jest wieksza od stalej.');
 
    WriteLn('');
    WriteLn('Wcisnij dowolny klawisz...');
    ReadKey();
End.

KML-sumaJesliWtedyDzialanie

Program sumaJesliWtedyDzialanie;
 
Uses Crt;
 
{
 
 Uzytkownik ma zadanie podac dwie liczby z przedzialu od 0 do 255, jezeli
 
 suma tych liczb bedzie wieksza od 255, wtedy program powinien policzyc
 
 iloczyn tych liczb, wyswietlic wynik.
 
 Jezeli mniejsze, to policzyc wyrazenie:
 
 (a^2-b^2)/2
 
}
 
Var
    a, b : Byte;
 
Begin
    ClrScr();
 
    WriteLn('Podaj dwie nastepujace po sobie liczby, kazda z nich potwierdzajac klawiszem Return:');
    ReadLn(a, b);
 
    If((a+b)>255) Then
    Begin
        WriteLn('Iloczyn podanych przez Ciebie liczb wynosi: ', (a*b));
    End
    Else
    If((a+b)<255) Then
    Begin
        WriteLn('Dzialanie (', a, '^2-', b, '^2)/2 = ', ((SQR(a)-SQR(b))/2):0:2);
    End
    Else
    WriteLn('Ten komunikat nigdy nie powinien sie pojawic!');
 
    WriteLn('');
    WriteLn('Wcisnij dowolny klawisz, aby kontynuowac...');
    ReadKey();
End.

KML-wektory

Program wektory;
 
Uses Crt;
 
Var
    wektor : Array[1..10] of Integer;
    i : Integer;
 
Begin
    ClrScr();
    WriteLn('Demonstracja użycia wektorów.');
    WriteLn('');
 
    For i:=1 To 10 Do
        Begin
            wektor[i] := i+1;
            WriteLn('Pozycja w wektorze numer ', i, ' wynosi: ', wektor[i]);
        End;
 
    WriteLn('');
    WriteLn('Wciśnij dowolny klawisz, aby kontynuować...');
    ReadKey();
End.

KML-wyliczenia

Program wyliczenia;
 
{
 
 Prosze sprobowac napisac program, ktory wylicza nastepujace rownanie:
 
 (a^2-b+d)/f, gdzie a,b,d,f sa liczbami podawanymi przez uzytkownika i rownanie
 
 powinno byc wyliczone w przypadku, kiedy f jest rozne od 0, gdy jest
 
 rowne 0, to ma byc wydany stosowny komunuikat typu 'nie dziel przez 0'
 
}
 
Uses Crt;
 
Var
    a, b, d, f : Real;
 
Begin
    ClrScr();
 
    WriteLn('Program oblicza nastepujace dzialanie : ((a^2)-b+d)/f');
    WriteLn('Podaj nastepujace po sobie klawiszem Return wartosci dla a, b, d, f');
 
    ReadLn(a, b, d, f);
 
    If(f<>0) Then
    Begin
        WriteLn('Wynik dzialania wynosi:', (((SQR(a))-b+d)/f):0:2);
        WriteLn('Wcisnij dowolny klawisz, aby kontynuowac...');
        ReadKey();
    End
    Else
    If(f=0) Then
    Begin
        WriteLn('Nie dziel przez zero!');
        WriteLn('Wcisnij dowolny klawisz, aby kontynuowac...');
        ReadKey();
    End
End.

podajOdDo

Program podajOdDo;
Uses Crt;
 
{
 Uzytkownik ma podac liczbe od 2 do 12, jezeli poda inna, to wtedy program musi
 go poprawic wykorzystujc petle Repeat/Until
}
 
Var
    decyzja : Integer;
 
Begin
    Repeat
        ClrScr();
        Write('Podaj liczbe od 2 do 12: ');
        ReadLn(decyzja);
 
        WriteLn('Podaj liczbe ponownie');
    Until((decyzja>+2) and (decyzja<12));
 
WriteLn('Twoja decyzja to: ', decyzja);
WriteLn('');
WriteLn('Wcisnij dowolny klawisz...');
ReadKey();
End.

podzielnaWektory

Program podzielnaWektory;
Uses Crt;
 
{
 uzytkownik ma za zadanie podac 5 liczb, wyswietl te liczby jedna po drugiej,
 a nastepnie z tych liczb wyswietl te liczby, ktore sa podzielne przez 2,
 jesli nie ma liczb podzielnych przez 2, wtedy wyswietl stosowny komunikat
}
 
Const
    a = 2;
    pierwsza = 1;
    ostatnia = 5;
 
Var
    liczba : Array[pierwsza..ostatnia] of Integer;
    i, licznik : Integer;
 
Procedure oczekujNaKlawisz();
Begin
    WriteLn('');
    WriteLn('Wcisnij dowolny klawisz, aby kontynuowac...');
    ReadKey();
End;
 
Begin
    ClrScr();
 
    WriteLn('Podaj piec liczb, kazda z nich potwierdzajac klawiszem Return');
    For i:=pierwsza To ostatnia Do
    Begin
        Write('Podaj ', i, ' liczbe: ');
        Read(liczba[i]);
    End;
 
    WriteLn('');
 
    WriteLn('Teraz wyswietle liczby, ktore podales:');
    For i:=pierwsza To ostatnia Do
    Begin
        WriteLn('Dla ', i, ' liczby wybrales: ', liczba[i]);
    End;
 
    WriteLn('');
 
    licznik:=0;
    For i:=pierwsza To ostatnia Do
    Begin
    If((liczba[i] mod a)=0) Then
        Begin
            Write('Liczba ', liczba[i], ' jest podzielna przez ', a);
            WriteLn(', została podana jako ', i, ' liczba.');
            licznik:=licznik+1;
        End;
    End;
 
If(licznik=0) Then WriteLn('Brak liczb podzielnych przez ', a);
 
oczekujNaKlawisz();
End.

wyswietlajka

Program wyswietlajka;
 
{
 Program ma za zadanie wyświetlić liczby 
 Pierwszy: od 1 do 10
 Drugi: od 20 do 30
}
 
Var
    i, j : Integer;
 
Begin
    WriteLn('Pierwszy:');
    For i:=1 To 10 Do
    WriteLn('Liczba numer: ', i);
 
    WriteLn('');
 
    WriteLn('Drugi:');
    j:=19;
    For i:=1 To 11 Do
    Begin
    WriteLn('Liczba numer: ', (i+j));
    End;
End.

wyswietlWpisaneImie

Program wyswietlWpisaneImie;
 
{
 Wyświetl wpisane imię
}
 
Var
    wpisaneImie : String;
 
Begin
    Write('Podaj swoje imię: ');
    ReadLn(wpisaneImie);
    WriteLn('Twoje imię to: ', wpisaneImie);
End.

Zadania domowe

Działania

Program zadanieDomowe;
 
Uses crt;
 
{
program ma za zadanie pobrac odpowiednio do zmiennych a b c typu byte liczby
podane przez uzytkownika i ma za zadanie obliczyc sume tych liczb, iloczyn
tych liczb, oraz dzialanie:
((a+b)-c)*b/2
}
 
VAR
        a, b, c : Byte;
 
Begin
 
        // Pobieranie liczb
 
        ClrScr();
 
        Write('Podaj pierwsza liczbe : ');
        ReadLN(a);
 
        Write('Podaj druga liczbe : ');
        ReadLN(b);
 
        Write('Podaj trzecia liczbe : ');
        ReadLN(c);
 
        WriteLN('');
 
        WriteLN('a = ', a);
        WriteLN('b = ', b);
        WriteLN('c = ', c);
 
        WriteLN('');
 
        // Dzialania na liczbach
 
        // Suma liczb
        WriteLN('a', ' + ', 'b', ' + ', 'c', ' = ', (a+b+c));
 
        // Iloczyn liczb
        WriteLN(a, ' x ', b, ' x ', c, ' = ', (a*b*c));
 
        // Podstawianie liczb do wzoru ((a+b)-c)*b/2
        WriteLN('');
        WriteLN('Wzor:');
        WriteLN('[(a+b)-c]*b/2');
        WriteLN('[', '(', a, '+', b, ')', '-', c, ']', 'x', b, '/2', '=', (((a+b)-c)*(b/2)) );
End.

KML-bedzieTrojkat

Program bedzieTrojkat;
 
{
 Zadanie 5:
 Napisz program sprawdzający, czy z trzech dowolnych odcinków o długościach
 podanych przez użytkownika można utworzyć trójkąt. Po sprawdzeniu ma się
 wyświetlić odpowiedni komunikat. "Tak, można utworzyć trójkąt" lub
 "Utworzenie trójkąta jest niemożliwe".
 Podpowiedź: suma każdych dwóch boków musi być większa od trzeciego.
 
 Zadanie 6:
 Napisać program w taki sposób, aby pobierał tylko takie wartości, które są >=0
}
 
Uses Crt;
 
Var
    a, b, c : Integer;
 
Begin
    WriteLn('Podaj trzy długości boków. Wybór potwierdź klawiszem Return.');
    ReadLn(a, b, c);
 
//    If( (a>=0) and (b>=0) and (c>=0) ) Then
    Begin
    If( ((a+b)>c) or ((a+c)>b) or ((b+c)>a) ) Then
        WriteLn('Tak, można utworzyć trójkąt')
        Else
        WriteLn('Utworzenie trójkąta jest niemożliwe');
    End;
//    Else
//    WriteLn('Liczba mniejsza od 0');
End.

KML-wyrazenie

Program wyrazenie;
 
{
 Napisz program obliczający wartość wyrażenia x/(x²+1), gdzie x jest dowolną
 liczbą rzeczywistą. Następnie wynik obliczeń przypisać do zmiennej "wynik",
 która jest typu rzeczywistego i wyprowadzić go na ekran.
}
 
Uses Crt;
 
Var
    x, wynik : Real;
 
Begin
    ClrScr();
    Write('Podaj dowolną liczbę z zakresu liczb Real: ');
    ReadLn(x);
    wynik := ( x/(Sqr(x)+1) );
    WriteLn('Wynik działania x:(x²+1) wynosi: ', wynik:0:2);
 
    WriteLn('');
    WriteLn('Wciśnij dowolny klawisz, aby kontynuować...');
    ReadKey();
End.

Mnożenie wartości wektorów

Program mnozenieWektorow;
 
{
 Należy zadeklarować dwa wektory 15-elementowe, pierwszy wektor
 powinien przyjmować wartości od 0 do 14. Drugi wektor powinien
 przyjąć wartości od 30 w dół. Stworzyć trzeci wektor, który będzie
 iloczynem dwóch poprzednich wektorów. Wektory mają się nazywać a, b, c.
}
 
Var
    a, b, c : Array[0..14] of Integer;
    i : Integer;
 
Begin
    WriteLn('axb=c');
 
    For i:=0 To 14 Do
    Begin
        a[i]:=i;
        b[i]:=30-i;
        c[i]:=a[i]*b[i];
        WriteLn(a[i], 'x', b[i], '=', c[i]);
    End;
End.

Pole, obwód, menu, działanie, sprawdzacz

Program zadanieDomowe01;
Uses Crt;
 
Const
    usrMin = -128;
    usrMax = 127;
 
{
 
 Autor:        Camelek.AmigaRulez@wp.pl
 Licencja:    
     Rodzaj:    GNU GPL 3 lub nowsza
     Link:    http://www.gnu.org/licenses/gpl.txt
 
 Stwórz program z następującymi opcjami:
 01: oblicz pole i obwód kwadratu - użytkownik sam powinien podać długość boku
 02: oblicz pole i obwód prostokąta - dlugości podawane przez użytkownika
 03: oblicz pole i obwód trójkąta - dlugości podawane przez użytkownika
 04: ((a+b)/2)*0,75 (ułamek prosty, i ułamek dziesiętny)
}
 
Procedure infoEnter();
Begin
    WriteLn('[Wybór potwierdź klawiszem Return]');
End;
 
Procedure infoZakres(minimalny, maxymalny : Longint);
Begin
    WriteLn('[Zakres wynosi od <', minimalny, '> do <', maxymalny, '>]');
End;
 
Procedure oczekujNaKlawisz();
Begin
    WriteLn('');
    WriteLn('Wciśnij dowolny klawisz, aby kontynuować...');
    ReadKey();
End;
 
Procedure koniec();
Begin
    WriteLn('');
    WriteLn('Miłego dnia !');
    Halt();
End;
 
Procedure sprawdzacz(minimalna, maxymalna, podana : Longint);
Begin
    If(podana>maxymalna) Then
    Begin
        WriteLn('Podana wartość jest większa od ', maxymalna, ', podaj mniejszą.');
        oczekujNaKlawisz();
        koniec();
    End
    Else
    If(podana<minimalna) Then
    Begin
        WriteLn('Podana wartość jest mniejsza niż ', minimalna, ', podaj większą.');
        oczekujNaKlawisz();
        koniec();
    End;
End;
 
Procedure kwadrat();
Var
    a : Longint;
 
Begin
    WriteLn('Podaj długość boku dla kwadratu: ');
    infoZakres(usrMin, usrMax);
    infoEnter();
 
    Read(a);
    sprawdzacz(usrMin, usrMax, a);
 
    WriteLn('Pole kwadratu wynosi: ', (a*a));
    WriteLn('Obwód kwadratu wynosi: ', (4*a));
End;
 
Procedure prostokat();
Var
    a, b : Longint;
Begin
    WriteLn('Podaj szerokość i wysokość prostokąta: ');
    infoZakres(usrMin, usrMax);
    infoEnter();
 
    Read(a, b);
    sprawdzacz(usrMin, usrMax, a);
    sprawdzacz(usrMin, usrMax, b);
 
    WriteLn('Pole prostokąta wynosi: ', (a*b));
    WriteLn('Obwód prostokąta wynosi: ', ((2*a)+(2*b)));
 
End;
 
Procedure trojkat();
Var
    a, b, c, h : Longint;
 
Begin
    infoZakres(usrMin, usrMax);
    infoEnter();
    WriteLn('Podaj długość podstawy oraz wysokość: ');
 
    Read(a, h);
    sprawdzacz(usrMin, usrMax, a);
    sprawdzacz(usrMin, usrMax, h);
 
    WriteLn('Podaj długości dwóch pozostałych boków: ');
 
    Read(b, c);
    sprawdzacz(usrMin, usrMax, b);
    sprawdzacz(usrMin, usrMax, c);
 
    WriteLn('Pole trójkąta wynosi: ', ((a*h)/2):0:0);
    WriteLn('Obwód trójkąta wynosi: ', (a+b+c));
End;
 
Procedure dzialanie();
Var
    a, b : Byte;
Begin
    WriteLn('Podaj dwie wartości, które będą podstawione do następującego wzoru:');
    WriteLn('((a+b)/2)x0,75');
    infoZakres(0, 255);
    infoEnter();
 
    Read(a, b);
    sprawdzacz(0, 255, a);
    sprawdzacz(0, 255, b);
 
    WriteLn('');
    WriteLn('((', a, '+', b, ')/2)x0,75 = ', (((a+b)/2)*0.75):0:0);
End;
 
Function menu() : Longint;
Begin
    ClrScr();
    WriteLn('Wybierz czynność, którą chcesz wykonać :');
    WriteLn('1. Obliczanie pola i obwodu kwadratu');
    WriteLn('2. Obliczanie pola i obwodu prostokąta');
    WriteLn('3. Obliczanie pola i obwodu trójkąta');
    WriteLn('4. Podstawienie wartości do wzoru');
    WriteLn('');
    WriteLn('0. Wyjście');
 
    WriteLn('');
    infoEnter();
    Write('Twój wybór: ');
 
    Read(menu);
    sprawdzacz(0, 4, menu);
 
    Case(menu) of
        1:
        Begin
            ClrScr();
            kwadrat();
            oczekujNaKlawisz();
            menu();
        End;
 
        2:
        Begin
            ClrScr();
            prostokat();
            oczekujNaKlawisz();
            menu();
        End;
 
        3:
        Begin
            ClrScr();
            trojkat();
            oczekujNaKlawisz();
            menu();
        End;
 
        4:
        Begin
            ClrScr();
            dzialanie();
            oczekujNaKlawisz();
            menu();
        End;
 
        0:
        Begin
            koniec();
        End;
    End;
 
End;
 
Begin
    menu();
End.

[GPL]

O ile nie zaznaczono inaczej, treść tej strony objęta jest licencją GNU Free Documentation License.