[ Pobierz całość w formacie PDF ]
Wstęp teoretyczny
oprac. Robert Tomaszewski
Program zapisany w dowolnym języku programowania określa sposób
przekształcania danych (w ogólności - informacji) zadany przez
programistę.
Na wstępie operujemy na danych następujących typów:
1. Liczby całkowite (w nawiasach zakresy wartości): Byte (0-
255), Word (0-65 tys.), Integer (-32 tys. - +32 tys.)
2. Liczby rzeczywiste: Real (zadanie - zakres sprawdzić w Helpie
Turbo Pascala)
3. Znaki: Char (zmienna tego typu przechowuje znak z 255
pozycyjnej tabeli ASCII, możliwe jest stosowanie znaków
narodowych), stałe tego typu ujmuje się w apostrofy, np.
'A','4'(to nie liczba lecz znak!)
4. Łańcuchy (teksty): String[n], gdzie n to liczba z zakresu 1-
255, oznaczająca maksymalną dozwoloną liczbę znaków w
tekście. Deklaracja String jest identyczna z deklaracją
String[255], stałe tego typu ujmuje się w apostrofy, np.
'tekst przykładowy 123'.
UWAGA!
W przypadku próby przypisania do zmiennej danego typu wartości
przekraczającej jej dozwolony zakres (np. do Byte przypisanie
wartości 300) w najlepszym wypadku spowodujemy ostrzeżenie
kompilatora, w najgorszym utratę nadmiarowej informacji (np. próba
przypisania do zmiennej String[3] tekstu '1a2b3c' spowoduje
przypisanie jedynie znaków '1a2', reszta zostanie utracona).
Tekst programu znajdujący się pomiędzy znakami {} to komentarz.
Nie jest on brany pod uwagę podczas kompilacji.
Poniżej przykład prostego programu. Proszę zwrócić uwagę na
wcięcia tekstu (2 spacje) zwiększające czytelność kodu.
!!! Tego typu wcięcia należy stosować !!!
program przyklad; {nieobowiązkowy element opisujący program}
const {sekcja stałych i zmiennych wstępnie zainicjowanych - sekcja
nieobowiązkowa}
PI = 3.14; {deklaracja stałej typu rzeczywistego - uwaga na kropkę
dziesiętną!}
tekst: String[5] = 'Pole'; {przykład deklaracji zmiennej wstępnie
zainicjowanej}
var {sekcja zmiennych}
r:real; {deklaracja zmiennej typu rzeczywistego}
pole_kola, obwod_kola: real; {jak wyżej, ale deklaracja od razu dwóch
zmiennych typu Real}
begin {blok główny programu}
{praktycznie każda instrukcja - jest kilka wyjątków - musi kończyć się znakiem
średnika}
writeln('Podaj promien kola'); {wyświetla tekst umieszczony w apostrofach}
readln(r); {wczytaj wartość do zmiennej, wartość podaje użytkownik}
pole_kola:=PI*r*r; {lub pole_kola:=PI*sqr(r); - sprawdź co robi funkcja 'sqr'}
obwod_kola:=2*PI*r;
writeln(tekst,': ',pole_kola); {wyświetl wartość zmiennej 'tekst', stałą ': '
oraz wartość drugiej zmiennej - 'pole_kola'}
tekst:='Obwod'; {zmieniamy wartość przypisaną do predefinowanej zmiennej}
writeln(tekst,obwod_kola);
readln; {pusta instrukcja 'readln;' wstrzymuje działanie programu do czasu
naciśnięcia jakiegoś klawisza przez użytkownika, instrukcja podobna w działaniu
to 'repeat until keypressed;'}
end. {po ostatniej instrukcji końca bloku - end- obowiązkowo stawiamy kropkę}
>>>> Zadanie 1
Przepisz powyższy program, skompiluj i uruchom. Następnie wykonaj
kilka modyfikacji treści programu:
●
Zamień instrukcje 'writeln' na 'write' - sprawdź działanie
programu
●
Wprowadź formatowanie wyświetlanych instrukcją 'writeln' lub
'write' LICZB RZECZYWISTYCH wg ogólnego wzoru:
writeln(zmienna1:x:y,zmienna2:z:w,...);
zapis zmienna1:x:y (lub podobne) oznacza wyświetlenie liczby
rzeczywistej reprezentowanej zmienną1 na x pozycjach
(wliczając kropkę i znak minus) z y miejscami po przecinku,
np:
zm:=-123.3456;
writeln(zm:0:2);
spowoduje wyświetlenie w postaci '-123.34'. Wpis '0' oznacza
wyświetl na minimalnej liczbie pozycji, ALE TAK BY NIE
UTRACIĆ NIC Z WARTOŚCI LICZBY!
writeln(zm:10:2);
spowoduje wyświetlenie w postaci ' -123.34'. Nadmiarowa
liczba pozycji zostaje uzupełniona
spacjami.
UWAGA!
Analogicznie formatuje się zmienne całkowite oraz
tekstowe z jednym wyjątkiem - nie ma formatowania pozycji po
przecinku dziesiętnym (postać ogólna wygląda więc
'writeln(zmienna:x)')!
>>>> Zadanie 2
Napisz program pobierający od użytkownika dwie liczby całkowite,
wykonujący na nich 4 podstawowe działania (+,-,*,/) i
wyświetlający sformatowany wg własnego uznania wynik.
UWAGA!
Proszę zwrócić uwagę na różnicę pomiędzy dzieleniem typu 'a/b'
dającym wynik rzeczywisty, a dzieleniem 'a div b' dającym wynik
całkowity. Operacja 'a mod b' daje w wyniku resztę z dzielenia
całkowitego. Sprawdź w Helpie Turbo Pascala informacje o
operatorach 'div' i 'mod'.
>>>> Zadanie 3
Napisz program łączący ciągi tekstowe (teksty) operatorem '+'.
Sprawdź wynik operacji:
var
a, b, c: String[20];
begin
a:='tekst1';
Readln(b); {lub b:=a+'tekst2';}
c:=a+b; {lub c:=b+a;}
Sprawdź, co się stanie w przypadku, gdy zmienna 'c' ma zbyt mały
rozmiar, by pomieścić łańcuchy 'a' i 'b'.
[ Pobierz całość w formacie PDF ]
© 2009 Po zniszczeniu przeszłości przyszedł czas na budowanie przyszłości. - Ceske - Sjezdovky .cz. Design downloaded from free website templates