Programowanie w języku TURBO PASCAL TEMAT Prezentacja algorytmu w języku programowania Budowa programu w języku TURBO PASCAL PROGRAM nazwa programu

Document Sample
Programowanie w języku TURBO PASCAL TEMAT Prezentacja algorytmu w języku programowania Budowa programu w języku TURBO PASCAL PROGRAM nazwa programu Powered By Docstoc
					Programowanie w języku
TURBO PASCAL
       TEMAT:
Prezentacja algorytmu w
języku programowania.
            Budowa programu w języku
                       TURBO PASCAL:
PROGRAM nazwa_programu;               NAGŁÓWEK PROGRAMU
VAR
........; {nie występuje zawsze}      BLOK DEKLARACYJNY
BEGIN
........; {instrukcja do wykonania}
........; {instrukcja do wykonania}   BLOK WYKONAWCZY
........; {instrukcja do wykonania}
END.
       Zasady pisania programu.

•nazwa programu nie może rozpoczynać się od liczby;
•spacja w tekście traktowana jest jak każdy inny znak;
•w treści programu nie używamy polskich znaków
diaktrycznych;
•po każdej instrukcji jest umieszczony separator w postaci
średnika;
•po słowach kluczowych BEGIN i END nie stawiamy średnika;
•objaśnienia i komentarze ujmujemy w { }.
                 Instrukcje wyjścia.
WRITELN – instrukcja służąca do wypisywania informacji na
ekranie. Po wykonaniu tej instrukcji kursor zostaje przeniesiony do
następnej linii. Samotna instrukcja writeln powoduje przejście do
nowego wiersza.
Przykład:
writeln (‘Jak się masz?’);
WRITE - instrukcja służąca do wypisywania informacji na
ekranie. Po wykonaniu tej instrukcji kursor nie zostaje
przeniesiony do następnej linii.
Przykład:
write (‘Jak się masz?’);
Tekst, który ma być wypisany na ekranie należy ująć w nawiasy i
apostrofy.
            Skróty klawiszowe

 W celu uruchomienia programu należy:

•skompilować (przetłumaczyć) program - F9
•uruchomić program - Ctrl+F9
•podgląd wyników działania programu - Alt+F5
•koniec pracy i wyjście z programu - Alt+x.
                        PRZYKŁAD
program cytat;
begin
writeln (‘Doprawdy, jak to miło coś umieć.’);
writeln (‘          Molier.              ’);
end.
Efekt na monitorze:
Doprawdy, jak to miło coś umieć.
                    Molier.

program cytat;
begin
write (‘Doprawdy, jak to miło coś umieć.’);
writeln (‘Molier.’);
end.
Efekt na monitorze:
Doprawdy, jak to miło coś umieć. Molier.
           Instrukcja czyszczenia ekranu.
 ClrScr - powoduje skasowanie z ekranu wyników działania
poprzednio uruchamianych programów.
Umieszczamy ją posłowie kluczowym BEGIN.
W bloku deklaracyjnym trzeba zadeklarować moduł Crt
odpowiedzialny za obsługę klawiatury i ekranu.
Do deklaracji modułów służy słowo kluczowe USES, np.
program cytat;
USES crt;
Begin
Clrscr;
writeln (‘Doprawdy, jak to miło coś umieć.’);
writeln (‘Molier.’);
end.
                       Zadanie 1.
Napisać program wyświetlający napis:
      ZAGRANICZNA FIRMA HANDLOWA
             EURO - 2001
                            Zadanie 2.
Napisz program, który będzie wyświetlał na monitorze następujący
rysunek:

                    xxxxxxxxxxxx
               xx                       xx
                    x       x   x       x
                    x                   x
                    x       xxxx        x
                        x           x
                            xxxx
           TEMAT:
Podstawowe operacje arytmetyczne.
       Formatowanie liczb.

W instrukcjach write i writeln:
• liczby do wypisania możemy podawać bez apostrofów
writeln ( 34 );
• zamiast liczby można podać wyrażenie, którego wynik zostanie
obliczony i wypisany
writeln ( 3 + 4 );
W ramach jednej instrukcji write lub writeln można podawać
zarówno tekst, jak i liczby oraz wyrażenia.
writeln ( ‘3 + 4 = ‘, 3 + 4 );



 jest ujęte w apostrofy,         w miejsce wyrażenia 3 + 4
 czyli zostanie dosłownie        komputer wstawi obliczony
 wypisane na monitorze.          wynik



Efekt na monitorze:
3+4=7
W liczbie zawierającej części dziesiętne, oddzielamy je kropką, np.
4.78


Podstawowe operacje arytmetyczne:
+ dodawanie
- odejmowanie
* mnożenie
/ dzielenie
SQRT        pierwiastek kwadratowy, np. SQRT (4) = 2
SQR         kwadrat, np. SQR (3) = 9
DIV         dzielenie całkowite bez reszty, np. 5 DIV 2 = 2
MOD         reszta z całkowitego dzielenia, np. 5 MOD 2 = 1
ABS         wartość bezwzględna, np. ABS (-54) = 54
                                  Zadanie


Podane wyrażenia zapisz w postaci zrozumiałej dla TP:

  3 4                  3                         3: 4
                    7                                               32  6 4
  48                  48                        48

(4  7)  (5  8)    ( x  3) 2  (5  6) 2                 ( x  2  x  y  y) 2


  x  y2  x          4  x  5 y                        4 x


                                                z  x2                 z 4
      56               5x   2

                                                      3               1,5 : 6,5
     3 2              3: 7                    1,5 :
                                                      4
Formatowanie liczb:
 W celu określenia sposobu wypisywania liczby na monitorze
    należy podać szerokość pola, a w nim liczbę miejsc po kropce.
    : szerokość pola: liczba miejsc po kropce
np. write (-4567.378912:12:4)
efekt na monitorze: -4567.3789
UWAGA:
W skład pola wchodzi znak i kropka dziesiętna.
                                    Przykład
                                                    2  3  17
Napisać program obliczający wyrażenie algebraiczne:
Dla obliczanego wyniku przyjąć format:                   9
4 cyfry po kropce dziesiętnej w polu 7- znakowym.
Program ma tytuł „Dzielenie”. Program po uruchomieniu ma wyświetlić zapis
działania oraz przedstawić obliczony wynik.
Rozwiązanie:
PROGRAM Dzielenie;
USES Crt;
BEGIN
  ClrScr;
  Write (‘ (2*3+17) / 9 =’ , (2*3+17)/9 :7:4 ) ;
END.
                          Zadanie 1.


                                                   42  2 47  72
Napisz program obliczający wyrażenie algebraiczne:    5  37 : 4
Dla obliczanego wyniku przyjmij format:
4 cyfry po kropce dziesiętnej w polu 12- znakowym.
Program ma mieć tytuł „Oblicz”.
Program po uruchomieniu ma wyświetlić zapis działania oraz
przedstawić obliczony wynik.
                                  Zadanie 2.
Napisz program obliczający powierzchnię całkowitą i objętość
 sześcianu o boku 5.875 cm.
Dla obliczanego wyniku przyjmij format:
3 cyfry po kropce dziesiętnej w polu 8- znakowym.
 Program ma mieć tytuł „Szesc_1”.
Program po uruchomieniu ma wyświetlić napisy:
          Sześcian ma bok 5.875 cm
          Obliczone pole powierzchni całkowitej = ……
          Obliczona objętość = …….
rozmieszczone w kolejnych wierszach, a w każdym z nich odpowiednie wyniki
obliczeń.
 Zapisz program na dysku w pliku o nazwie szesc_1.pas.
                 TEMAT:
      Zmienne i wprowadzanie danych.

Zmienna - wyrażenie wprowadzone z zewnątrz, np. z klawiatury.
Zmienna ma dwie podstawowe cechy: nazwę i typ.
Nazwa pozwala odróżnić jedna zmienną od drugiej.
Typ określa, jakiego rodzaju informację ma przechowywać zmienna
– czy liczbę, czy znak ...
Jeżeli chcemy w programie użyć zmiennych, należy je
zadeklarować. Oznacza to, że zaraz po nagłówku programu, przed
częścią główną podajemy jakich zmiennych użyjemy w programie –
nazwę i typ.
Do zadeklarowania zmiennych służy słowo VAR .

 Przykładowe typy zmiennych:
string: łańcuch znaków;
char: pojedynczy znak;
integer: liczba całkowita z przedziału <-32768;32767>
byte: liczba całkowita z przedziału <0;255>
real: liczba wymierna z przedziału <-2.9e-39;1.7e38>.

Uwaga!
Duża i mała litera to dla komputera dwa różne znaki.
READ oraz READLN – instrukcje służące do wczytywania z
klawiatury wartości zmiennych. Wykonując tę instrukcję komputer
wstrzyma realizację programu i będzie czekał na znaki wpisane
przez użytkownika. Po wykonaniu readln lub read zmienna
otrzymuje wartość, do której można się wielokrotnie odwoływać
w programie, podając jej nazwę.


Read - nie powoduje przejścia kursora do nowej linii
Readln - powoduje przejście kursora do nowej linii
PRZYKŁAD 1:
program powitanie;
uses crt;
var
imie: string;
begin
clrscr;
writeln (‘Jak masz na imię? ’);
readln (imie);
writeln (‘Cześć ‘, imie);
writeln (‘Jak się czujesz ‘, imie);
readkey;
end.                                  Polecenie z modułu obsługi ekranu.
                                      Powoduje zatrzymanie wykonywania
                                      programu do chwili naciśnięcia
                                      dowolnego klawisza.
PRZYKŁAD 2:
program kwadrat;
uses crt;
var
a: real;
begin
clrscr;
writeln (‘Podaj długość boku kwadratu’);
readln (a);
writeln (‘Pole kwadratu wynosi ‘,a*a:10:2);
readkey;
end.

                            PROGRAM
                    TEMAT:
             Instrukcja przypisania.

Zmiennej można nadać wartość wprost w programie. Służy do
tego instrukcja przypisania :=
(Symbol przypisania piszemy bez spacji.)
PRZYKŁAD:
program kwadrat;
uses crt;
var
a, P: real;
begin
clrscr;
writeln (‘Podaj długość boku kwadratu’);
readln (a);
P := a*a ;
writeln (‘Pole kwadratu wynosi ‘,P:10:2);
readkey;
end.
Wykonanie tej instrukcji powoduje przypisanie (podstawienie)
wartości wyrażenia zapisanego po prawej stronie symbolu :=
zmiennej stojącej po lewej jego stronie.
Wyrażenie musi być tego samego typu co zmienna.
PRZYKŁAD:
Napisz program obliczający obwód trójkąta, którego długości
boków są liczbami naturalnymi.

program trojkat;
uses crt;
var
a, b, c, O: integer;
begin
clrscr;
writeln (‘Podaj długości boków trójkąta’);
readln (a,b,c);
O := a+b+c ;
writeln (‘Obwód = ‘, O:6);
readkey;
end.
Zadanie 1.
Napisz program obliczający pole trapezu. Długości boków i
wysokość trapezu mają długości, będące liczbami naturalnymi.
Zadanie 2.
Napisz program obliczający pole trójkąta. Długości boków i
wysokość trójkąta mają długości, będące liczbami naturalnymi.
                    TEMAT:
             Instrukcja warunkowa.

Jeśli zachodzi warunek, to wykonaj instrukcję.
IF … THEN …


Zamiast pojedynczej instrukcji, wolno po THEN wstawić ciąg
instrukcji. Wówczas wstawiamy je pomiędzy słowa
BEGIN i END
W wyrażeniach logicznych używamy operatory relacji:
= równa się
> większy
< mniejszy
>= większy lub równy
<= mniejszy lub równy
<> różny


Warunek jest wyrażeniem logicznym, przyjmującym wartość
PRAWDA lub FAŁSZ.
Na zmiennych typu logicznego można wykonywać następujące
operacje:
and (iloczyn logiczny)
or (suma logiczna)
Iloczyn logiczny ma wartość prawda, jeśli oba wyrażenia logiczne
są prawdziwe.
Suma logiczna ma wartość prawda, jeśli przynajmniej jedno
wyrażenie logiczne jest prawdziwe.
program dorosly;
uses crt;
var
a: integer;
begin
clrscr;
writeln (‘Podaj (liczbą naturalną) ile masz lat.’);
readln (a);
if a>= 18 then writeln (‘ Jesteś pełnoletni’);
writeln (‘Fajnie jest mieć’, a, ’lat’);
readkey;
end.
program dorosly2;
uses crt;
var
a: integer;
begin
clrscr;
writeln (‘Podaj (liczbą naturalną) ile masz lat.’);
readln (a);
if (a>= 7) and (a<= 18) then writeln (‘ Chodzisz już do szkoły’);
if (a>= 14) and (a<= 16) then writeln (‘ Jesteś gimnazjalistą’);
writeln (‘Fajnie jest mieć’, a, ’lat’);
readkey;
end.
Instrukcja warunkowa może mieć również postać:


Jeśli zachodzi warunek, to wykonaj instrukcję 1, w przeciwnym
wypadku wykonaj instrukcję 2
IF warunek THEN instrukcja 1 ELSE instrukcja 2

Zamiast pojedynczej instrukcji, wolno po THEN i po ELSE
wstawić ciąg instrukcji. Wówczas wstawiamy je pomiędzy słowa
BEGIN i END
Program rownanie;
uses crt;
                                                            ax + b = 0
var
a,b,x: real;
begin
clrscr;
writeln (‘Podaj parametry a i b. ‘);
readln (a,b);
if a<> 0 then     begin
                  x:= -b/a;
                  writeln (‘x= ‘, x);
                  end
          else    begin
                  if b = 0 then writeln (‘Równanie ma nieskończenie wiele
                                           rozwiązań’)
                            else writeln (‘Równanie nie ma rozwiązań’);
                  end;
readkey;
end.
Zadanie
Napisz program obliczający wartość bezwzględną podanej
liczby „x”
program dzieli;
uses crt;
var a,b : integer;
begin
clrscr;
write (‘Program sprawdza, czy liczba „a” dzieli się przez „b”’);
write (‘ Podaj liczby a i b.’);
readln (a,b);
if b = 0 then writeln (‘Nie wolno dzielić przez 0’)
else
begin
if (a mod b =0) then writeln (‘a jest podzielne przez b ‘)
else writeln (‘a nie jest podzielne przez b’);
end;
readkey;
end.
Zadanie
Napisz program sprawdzający, czy wczytana liczba jest parzysta.
            TEMAT: Liczby losowe

RANDOMIZE – procedura uruchamiania generatora liczb
losowych
RANDOM (zakres) – funkcja losująca liczby z przedziału
od 0 do zakres – 1
Przykłady:
random (100) wylosuje liczbę z przedziału od 0 do 99
random (1000) wylosuje liczbę z przedziału od 0 do 999
random (49) + 1 wylosuje liczbę z przedziału od 1 do 49
random (90) + 10 wylosuje liczbę z przedziału od 10 do 99
program lotek;
uses crt;
begin
clrscr;
write (‘Program TOTO LOTEK’);
randomize;
write (‘ ‘,random (49) + 1);
write (‘ ‘,random (49) + 1);
write (‘ ‘,random (49) + 1);
write (‘ ‘,random (49) + 1);
write (‘ ‘,random (49) + 1);
write (‘ ‘,random (49) + 1);
readkey;
end.
                                program LOTEK
           TEMAT: liczba π (pi)


Funkcja pi nie ma argumentów i zwraca zawsze
przybliżoną wartość liczby pi.
Wzory wykorzystujące liczbę pi, a pisane w języku TP
będą miały postać:
Pole koła:         pi * sqr ( r )
Obwód okregu:      2 * pi * r
Objętość kuli:     4 / 3 * pi * r * r * r
Objetość walca:    pi * sqr ( r ) * H
Objetość stożka:   1 / 3 * pi * sqr ( r ) * H
Zadanie 1
Napisz program obliczający objętości brył obrotowych.
Program ma kolejno pytać o właściwe dane, obliczać i wypisywać
wyniki.

Zadanie2
Napisz program obliczający pole i obwód koła.

Zadanie3
Napisz program symulujący rzut kostką do gry.

Zadanie4
Napisz program symulujący rzut monetą.
                 TEMAT: kolory.

Do zmiany koloru tekstu służy polecenie textcolor (…)
Do zmiany koloru tła tekstu służy polecenie textbackground
(…)
W nawiasie podajemy numer koloru 0-15 lub wpisujemy jego
nazwę w języku angielskim, np. red, blue, green, yellow.
UWAGA:
W bloku deklaracyjnym trzeba zadeklarować moduł Crt
odpowiedzialny za obsługę klawiatury i ekranu.
Zadanie 1
Napisz program, który wypisze na monitorze 16 zdań, a każde
będzie miało kolor, odpowiadający numerowi.
 numer koloru = 0
 …..
 numer koloru = 9
 numer koloru = 10
 numer koloru = 11
 numer koloru = 12
 numer koloru = 13
 numer koloru = 14
 numer koloru = 15
Zadanie 2
Napisz program, który wypisze na monitorze 16 zdań, a każde
będzie napisane na tle innego koloru, np



            tło numer 0




            tło numer 14
     TEMAT: rozszerzenie exe.

Aby zapisać program TurboPascala jako plik z rozszerzeniem
   exe, a tym samym uczynić go samodzielnym programem,
   należy:
1. W menu COMPILE – DESTINATION MEMORY
   zamienić na DESTINATION DISC
2. W menu OPTION –kliknąć COMPILER prawym
   przyciskiem myszy, wybrać OPTIONS i dopisać *.exe
3. Skompilować program
4. W menu FILE wybrać SAVE ALL i zapisać.
            TEMAT: Instrukcja pętli
               for… to… do…
Typ porządkowy zmiennej jest to taki typ, w którym dla
dowolnego elementu można określić element poprzedni i
następny.
Typy porządkowe:
• integer
• char
for i:=1 to 10 do …

            i - zmienna sterująca
lub


for i:=1 to 10 do     begin
                      …
                      end;
for i:=‘a’ to ‘k’ do …

             i - zmienna sterująca
lub


for i:=‘a’ to ‘k’ do     begin
                         …
                         end;
Przykład pętli for… to… do….
Program wypisujący alfabet.


program alfabet;
uses crt;
var
c: char;
begin
clrscr;
for c:= ‘a’ to ‘z’ do write (c);
readkey;
end.
Przykład pętli for… to… do….
Program wypisujący alfabet od z do a


program alfabet;
uses crt;
var
c: char;
begin
clrscr;
for c:= ‘z’ downto ‘a’ do write (c);
readkey;
end.
Przykład pętli for… to… do….
Program wypisujący 10 razy zdanie: kocham wakacje.

program wakacje;
uses crt;
var
i: integer;
begin
clrscr;
for i:= 1 to 10 do
                begin
                textcolor (i);
                write (‘kocham wakacje’);
                end;
readkey;
end.
Przykład
Napisz program, obliczający i wypisujący 10 kolejnych potęg liczby 2.

program potega2;
uses crt;
var
i, x: integer;
begin
clrscr;
x := 1
for i:= 1 to 10 do
                begin
                x := x * 2
                writeln (‘2 do potęgi ’,i,’ = ‘, x );
                end;
readkey;
end.
Zadanie
Napisz program, obliczający i wypisujący 20 kolejnych potęg
liczby 2.




Przy tego typu programach bardzo często zachodzi potrzeba użycia
zmiennej typu longint.
Typ integer obejmuje bowiem liczby całkowite z małego zakresu.
integer to liczby z przedziału [ -32768; 32767]
longint to liczby z przedziału [-2147483648; 2147483647]
Przykład
Napisz program obliczający silnię dowolnej liczby.
program silnia;
uses crt;
var
i, s, k, n: longint;
begin
clrscr;
writeln (‘Program oblicza silnię zadanej liczby.’);
writeln (‘Podaj liczbę k. ‘);
readln (k);
if k=0 then writeln (‘silnia z liczby 0 wynosi 1’);
if k<0 then writeln (‘silnia z liczby ujemnej nie istnieje’);
if k>0 then
begin
i := 1;
s := 1;
for n:= 1 to k do
                     begin
                     s := s*i
                     i := i+1
                     end;
writeln (‘Silnia liczby ‘, k,’ wynosi ‘, s);
end;
readkey;
end.
Zadanie (do pracy samodzielnej)
Korzystając z poznanej pętli napisz program obliczający:
a) Sumę pięciu kolejnych liczb naturalnych.
b) Sumę n kolejnych liczb naturalnych
program suma5;
uses crt;
var
i, k, a, S: longint;
begin
clrscr;
writeln (‘Program oblicza sumę 5 kolejnych liczb, poczynając od a.’);
writeln (‘Podaj liczbę a. ‘);
readln (a);
S:= 0;
k:=a;
for i:= 1 to 5 do
begin
S := S +k;
k := k +1;
end;
writeln (‘Suma = ‘, S);
readkey;
end.
Zadanie1
Napisz program obliczający:
•Sumę liczb naturalnych od 1 do n
•Iloczyn liczb naturalnych od 1 do n
•Średnią arytmetyczną n dowolnych liczb naturalnych
         TEMAT: Instrukcja pętli
           repeat … until …
w tłumaczeniu:
powtarzaj … dopóki …


Możemy tu wstawić            Pętla będzie powtarzana,
dowolną ilość instrukcji,    dopóki podany tu warunek
których nie trzeba ujmować   nie będzie spełniony
w begin … end.
 Instrukcję tą można używać na przykład do wymuszania na
 użytkowniku wpisywania poprawnych danych.


Przykład
repeat
writeln (‘Podaj liczbę dodatnią’);
readln (x);
until x>0 ;

Program będzie pytał aż do skutku, czyli aż użytkownik poda
liczbę dodatnią.
Czym różnią się poznane pętle?
Pętla for… to… do… powtarzana jest z góry
określoną ilość razy.
Pętla repeat … until … powtarzana jest dopóki
warunek nie zostanie spełniony. Za każdym razem
może to być inna ilość razy.


Niektóre problemy można rozwiązać za pomocą obu pętli.
Zawsze powinno się dostosować rodzaj pętli do problemu.
Przykład pętli repeat … until … w znanym już nam przykładzie:
Program wypisujący 10 razy zdanie: kocham wakacje.

program wakacje;
uses crt;
var
i: byte;
begin
clrscr;
i:=1;
repeat
textcolor (i);
writeln (‘kocham wakacje’);
i:= i + 1 ;
until i = 11;
readkey;
end.
 PORÓWNAJMY PROGRAMY:

program wakacje;              program wakacje;
uses crt;                     uses crt;
var                           var
i: byte;                      i: byte;
begin                         begin
clrscr;                       clrscr;
for i:= 1 to 10 do            i:=1;
begin                         repeat
textcolor (i);                textcolor (i);
writeln (‘kocham wakacje’);   writeln (‘kocham wakacje’);
end;                          i:= i + 1 ;
readkey;                      until i = 11;
end.                          readkey;
                              end.
Zadanie 1
Poniższy program oblicza i wypisuje 10 kolejnych potęg liczby 2.
Zamień pętlę for…to…do… na repeat…until…

program potega2;
uses crt;
var
i, x: integer;
begin
clrscr;
x := 1
for i:= 1 to 10 do
                begin
                x := x * 2
                writeln (‘2 do potęgi ’,i,’ = ‘, x );
                end;
readkey;
end.
Zadanie 2.
Napisz program liczący silnię. Program ma wymuszać na
użytkowniku wpisywanie poprawnych danych.
 Instrukcję tą można używać również do pytania użytkownika,
 czy chce jeszcze raz policzyć daną wielkość.
Przykład
program cosik;
var
odp: char;
begin
repeat
{ tu piszemy wszystkie polecenia prowadzące do obliczenia
zadanej wielkości- czyli cały program}
writeln (‘Jeszcze raz? t/n’);
readln (odp);
until odp = ‘n’
end.
Program będzie liczył zadaną wielkość aż użytkownik wpisze n
Zadanie 1.
Do stworzonych w bieżącym temacie programów dopisz
polecenia, dzięki którym użytkownik będzie mógł obliczać
zadaną wielkość wielokrotnie.

Zadanie 2.
Napisz program obliczający:
- Sumę liczb naturalnych od 1 do n
- Iloczyn liczb naturalnych od 1 do n
- Średnią arytmetyczną n dowolnych liczb naturalnych
Do stworzonych programów dopisz polecenia, dzięki którym
użytkownik będzie mógł obliczać zadaną wielkość wielokrotnie.
Zadanie 3.
Napisz program –test, składający się z trzech pytań.
Program ma dopóty zadawać pytanie, aż użytkownik da poprawną
odpowiedź. Dopiero wówczas ma przejść do następnego pytania.
Użyj instrukcji repeat…. until…
     TEMAT: Instrukcja wyboru CASE.
Instrukcja CASE służy do wyboru jednej z kilku możliwości. Ma
ona postać:
                                       case- przypadek
case wyrażenie of                      Najpierw sprawdzana jest wartość
wartość1: instrukcja1;                 wyrażenia. Potem wynik jest
wartość2: instrukcja2;                 porównywany z kolejnymi
wartość3: instrukcja3; …               wartościami. Gdy znaleziona zostanie
                                       wartość równa wyrażeniu, to
end;
                                       wykonywana jest instrukcja po
                                       dwukropku.


Cała instrukcja case musi kończyć się słowem end;
Co należałoby zrobić, jeśli po dwukropku chcielibyśmy, aby komputer
wykonał więcej niż jedną instrukcję?
program PoleCzyObwod;
uses crt;
var                                                    PRZYKŁAD
a,b, P, O, : real;
odp: integer;                                          Pole czy
begin
clrscr;
                                                       obwód
writeln (‘Program oblicza pole i obwód prostokąta’);   prostokąta?
writeln (‘ Podaj wymiary prostokąta’);
readln (a,b);
writeln (‘Chcesz policzyć pole czy obwód?’)
writeln (‘wciśnij 1, jeśli chcesz obliczyć pole’);
writeln (‘wciśnij 2, jeśli chcesz obliczyć obwód’);
readln (odp);
case odp of
1:          begin
            P:= a*b;
            writeln (‘P=‘ , P:10:2);
            end;
2:          begin
            O:= 2*a+2*b;
            writeln (‘O:=‘ , O:10:2);
            end;
end;
readkey;
end.
program KwadratCzyProstokat;
uses crt;
var
a,b, P : real;
                                                                PRZYKŁAD:
odp: integer;
begin                                                           Pole kwadratu czy
clrscr;
writeln (‘Program oblicza pole prostokąta i kwadratu’);
                                                                prostokąta?
writeln (‘Chcesz policzyć pole kwadratu czy prostokąta?’)
writeln (‘wciśnij 1, jeśli chcesz obliczyć pole kwadratu’);
writeln (‘wciśnij 2, jeśli chcesz obliczyć pole prostokąta’);
readln (odp);
case odp of
1:           begin
             writeln (‘ Podaj wymiary kwadratu’);
             readln (a);
             P:= a*a;
             writeln (‘P=‘ , P:10:2);
             end;
2:           begin
             writeln (‘ Podaj wymiary prostokąta’);
             readln (a,b);
             P:= a*b;
             writeln (‘P=‘ , P:10:2);
             end;
end;
readkey;
end.
Zadanie1. (zaczynamy od punktu a)
Napisz program liczący:
a) pola trójkąta i trapezu (użytkownik wybiera pole której figury ma być
policzone)

b) pola 4 dowolnych figur płaskich (użytkownik wybiera pole której figury
ma być policzone)

c) pola i obwody 4 dowolnych figur płaskich (użytkownik wybiera pole i
obwód której figury ma być policzone)
Instrukcja CASE może mieć również postać:

                               Najpierw sprawdzana jest wartość
case wyrażenie of              wyrażenia. W przypadku, gdy
                               wyrażenie przyjmie wartość1,
wartość1: instrukcja1;         wykonywana jest instrukcja1; gdy
wartość2: instrukcja2;         wyrażenie przyjmie wartość2,
wartość3: instrukcja3; …       wykonywana jest instrukcja2;,…
else                           Jeżeli żadna wartość nie odpowiada
instrukcja0                    wyrażeniu, to wykonywana jest
end;                           instrukcja po else.
program PoleCzyObwod;
uses crt;
var                                                    PRZYKŁAD
a,b, P, O, : real;
odp: integer;
begin
clrscr;
writeln (‘Program oblicza pole i obwód prostokąta’);
writeln (‘ Podaj wymiary prostokąta’);
readln (a,b);
writeln (‘Chcesz policzyć pole czy obwód?’)
writeln (‘wciśnij 1, jeśli chcesz obliczyć pole’);
writeln (‘wciśnij 2, jeśli chcesz obliczyć obwód’);
readln (odp);
case odp of
1:            begin
              P:= a*b;
              writeln (‘P=‘ , P:10:2);
              end;
2:            begin
              O:= 2*a+2*b;
              writeln (‘O:=‘ , O:10:2);
              end
else
writeln (‘ Mogłeś wybrać tylko 1 lub 2’);
end;
readkey;
end.

				
DOCUMENT INFO
Shared By:
Stats:
views:177
posted:5/1/2010
language:Polish
pages:79