ďťż
Strona startowa Ludzie pragną czasami się rozstawać, Ĺźeby mĂłc tęsknić, czekać i cieszyć się z powrotem.Niektóre obowišzki pracodawcy, a wyjštkowo także i pracownika, majš charakter mieszany, to znaczy wišżšcy nie tylko wobec drugiej strony stosunku pracy, ale także i wobec...– A obrona?– Obrona to nie cel, to tylko przejściowa forma działań, wymuszona przez przeciwnika...- Szarzy - kontynuował - polują za pomocą zarĂłwno wzroku, jak i węchu, nocne ogary zaś tylko za pomocą węchu...poza tylko sam nie wiem gdzie i poza czym oni są tu ze KWIECIEŃ 2003 CZAPKA mną nie wiem kim są ale nienawidzę ich z całej duszy - Nie, na...Profilaktyka zaburzeń emocjonalnych to przede wszystkim uczenie dziecka róŸnych sposobów radzenia sobie w sytuacjach trudnych, a nie tylko ochrona dziecka przed...Twierdzenie o prawdopodobieDstwie logicznym zdania opiera si jednak nie tylko na owej konfrontacji zdaD, mówicej |e ze wzgldu na nie naszej hipotezie H przysBuguje prawdopodobieDstwo pGrace dała jej swĂłj numer i dodała:- Proszę mu powiedzieć, Ĺźe chce z nim mĂłwić doktor Grace Mitowski i Ĺźe zajmę mu tylko kilka minut..."Zarówno logicznie jak i metodologicznie - stwierdzajš Noah i Eckstein - pedagog porównawcza powinna zajmować się porównywaniem nie tylko na poziomie narodu, również i...124Odpowiadam wreszcie na drugie pytanie: Jaką korzyśćma z tego zły duch? Nie ma Ĺźadnej korzyści, on kieruje się tylko czystą perfidią...204nym, a nawet że odnoœnik taki jest denotowany w każdym języku przez jeden lub więcej leksemów (choć w pewnych wypadkach może tylko na najogólniejszym poziomie...
 

Ludzie pragną czasami się rozstawać, żeby móc tęsknić, czekać i cieszyć się z powrotem.

Zmienne
deklarowane w częœci opisowej programu, po deklaracji użycia pakietów nazy-
wamy zmiennymi globalnymi, gdyż ich wartoœci sš dostępne w każdym miej-
scu programu. Wyjštek stanowi sytuacja, gdy w definicji procedury lub funkcji
została zadeklarowana zmienna lokalna o tej samej nazwie co zmienna globalna,
Wówczas w treœci procedury jest dostępna tylko zmienna lokalna.
Poniżej zamieszczamy ostatniš już modyfikację programu drukujšcego wizy-
tówki.
PROGRAM Wizytowka5;
USES CRT,PRINTER;
VAR Licznik,Numer,Ile:INTEGER;
{W tym miejscu należy umieœcić definicje procedur:
Start z przykładu 4.2,
DrukujWizytowkel z programu Wizytowka3,
DrukujWizytowke2 z programu Wizytowka4,
JuzKoniec z przykładu 4.5.}
BEGIN
REPEAT
Start;
WRITE('Podaj numer wizytówki, która chcesz ');
WRITELNCwydrukować (1 lub 2).');
4.1. Podstawowe instrukcje
123
READLN(Numer);
WRITELNCPodaj liczbę potrzebnych Ci wizytówek.');
READLN(Ile);
IF Ile>0 THEN BEGIN
WRITELNCWlacz drukarkę i nacisnij ENTER.');
READLN
END;
IF Numer=1 THEN
FOR Licznik:=1 TO Ile DO DrukujWizytowkel
ELSE IF Numer=2 THEN
FOR Licznik:=Ile DOWNTO 1 DO DrukujWizytowke2;
UNTIL JuzKoniec
END. {Wizytowka5}
Uwaga: Tekst programu Wizytowka5 znajduje się na dyskietce w pliku WIZYT5.PAS
umieszczonym w kartotece R0ZDZ4.
Instrukcje powtarzania mogš spowodować powstanie w programie pętli nie-
skończonej, gdy wyrażenie logiczne opisujšce warunek zakończenia działania
instrukcji WHILE lub REPEAT stale przyjmuje wartoœć umożliwiajšcš powtarzanie
instrukcji (cišgu instrukcji) lub gdy w instrukcji FOR zaburzeniu uległy zmiany
wartoœci zmiennej sterujšcej. Taka sytuacja, jeœli nie panujemy nad niš, jest trak-
towana jako błšd programisty. Program, którego działania nie można œwiadomie
zakończyć, nie jest interesujšcy z praktycznego punktu widzenia. Ogromnie waż-
nš sprawš jest zatem uzyskanie pewnoœci, że napisany przez nas program jest
pozbawiony tego rodzaju błędów.
Na zakończenie tego punktu wymieńmy podstawowe instrukcje omówione do-
tychczas w tym rozdziale, służšce do zapisywania algorytmów w postaci progra-
mów w języku Pascal:
- instrukcja procedury, czyli wywołanie procedury,
- instrukcja przypisania,
- instrukcje warunkowe,
- instrukcja złożona,
- instrukcje powtarzania,
- instrukcja pusta.
Używaliœmy również procedur standardowych służšcych do wyprowadzania
wyników i wprowadzania danych oraz procedur i funkcji przez nas zdefiniowa-
nych, które ułatwiły opisanie często wykonywanych czynnoœci i uczyniły teksty
programów bardziej przejrzyste. Więcej informacji o procedurach i funkcjach
znajduje się w następnych punktach.
124
4. Elementy programowania w języku Pascal
4.2. Od problemu do programu
Poznaliœmy podstawowe instrukcje użyteczne przy formułowaniu algorytmów.
Spróbujmy teraz przeœledzić na wybranym przykładzie drogę od postawienia pro-
blemu do napisania gotowego do wykonania programu. Naszym przykładowym
problemem będzie znajdowanie największego wspólnego dzielnika dwóch niezero
wych liczb naturalnych. Oznaczmy te liczby przez a i b, a ich największy wspólny
dzielnik przez NWD(a,&).
Pierwszy i najprostszy pomysł to postępowanie w myœl reguły:
Sprawdzaj podzielnoœć liczb a i b przez kolejne liczby naturalne poczšwszy
od 1 aż do uzyskania największej, jednoczeœnie dzielšcej je obie. Zakończ
sprawdzanie po osišgnięciu mniejszej z liczb a i b.
Uœciœlijmy podany opis tak, by umożliwiał napisanie programu. Zastanówmyj
się, jakie informacje musimy pamiętać w programie. Na pewno sš to liczby a i i
dla których szukamy największego wspólnego dzielnika, ponadto bieżšca w danej
chwili liczba (oznaczmy jš przez d), dla której sprawdzamy podzielnoœć, i bieżš
największy wspólny dzielnik (oznaczmy go przez wsp). Sprawdzanie podzielnoœ|
polega na badaniu reszty z dzielenia - jeœli reszta jest zerem, to odpowiedŸ je
pozytywna. Zapiszmy teraz algorytm oparty na powyższych spostrzeżeniach.
Algorytm 4.3. Szukanie największego wspólnego dzielnika dwóch liczb.
Dane: niezerowe liczby naturalne a i b.
Wynik: NWD(a,6).
1. Czytaj liczby a i b.
2. Ustal wartoœć zmiennych d i wsp na 1.
3. Dopóki wartoœć d nie jest większa od wartoœci a lub 6, powtarzaj czynnoœ(j
opisane w krokach 4 i 5, następnie przejdŸ do kroku 6.
4. Jeżeli reszty z dzielenia a oraz b przez d sš równe zero, to nadaj zmiennej
wsp wartoœć zmiennej d.
5. Zwiększ wartoœć zmiennej d o jeden.
6. Drukuj wartoœć wsp.
Ponieważ program komputerowy jest jedynie formš zapisu algorytmu, ktÓ!
jest głównym ogniwem na drodze od problemu do programu, proponujemy zapis*
nie powyższego algorytmu w języku Pascal jako samodzielne ćwiczenie (zad. 4.1),
Dla nas bardziej interesujšcym zagadnieniem jest projektowanie, odkryw;
nie nowych algorytmów oraz ulepszanie już znanych. Kontynuujšc rozważani
nad algorytmem znajdowania największego wspólnego dzielnika dwóch liczb, za-'
uważmy, że w pewnych przypadkach algorytm 4.3 jest bardzo pracochłonny. Na
przykład dla liczb 12346 i 12348 zostanie wykonanych 2 • 12346 operacji obli-
czenia reszty z dzielenia. Pomimo dużej szybkoœci działania komputera zajmie
4.2. Od problemu do programu
125
to dłuższš chwilę. W praktyce, zwłaszcza w przypadku programów wielokrot-
nie uruchamianych, jest ważne, aby umożliwiały one wykonanie obliczeń w jak
najkrótszym czasie. Przedstawimy inny o wiele szybszy algorytm znajdowania
największego wspólnego dzielnika dwóch liczb. Jest to współczesna wersja zna-
nego już w starożytnoœci algorytmu, który został opisany przez Euklidesa w jego
fundamentalnym dziele Elementy.
Algorytm 4.4. Algorytm Euklidesa znajdowania największego wspólnego dziel-
nika dwóch liczb.
Dane: niezerowe liczby naturalne a i b.
Wynik: NWD(o,6).
1. Czytaj liczby a i b.
2. Dopóki a i b sš większe od zera, powtarzaj krok 3, a następnie przejdŸ do
kroku 4.
3. Jeœli a jest większe od b, to weŸ za a resztę z dzielenia a przez b, w prze-
ciwnym razie weŸ za b resztę z dzielenia b przez a.