background image

 

 

Programowanie w 

języku 

TURBO 

PASCAL

background image

 

 

TEMAT:

Prezentacja algorytmu 

w języku 

programowania.

background image

 

 

Programowanie to inaczej 

rozwiązywanie problemów przy użyciu 

komputera. Zanim przejdziemy do 

tajników języka programowania, 

przedstawię pokrótce etapy 

programowania wyjaśniając przy okazji 

podstawowe pojęcia

background image

 

 

Problem

Program źródłowy

Algorytm

Wykonanie programu

Dane

Wyniki

Etapy 

programowania

Kompilacja

Program wynikowy

background image

 

 

Podstawowe pojęcia

Kod źródłowy

 – programu w Pascalu 

składa się z części opisowej oraz 
części wykonawczej. Część opisowa 
to nagłówek programu (

program 

nazwa

;), deklaracja modułów (po 

słowie 

uses

), definicje stałych (po 

słowie 

const

), definicje typów (po 

type

) oraz deklaracje zmiennych (po 

var

). Część wykonawcza zaczyna się 

po słowie 

begin

    i kończy 

end

.

background image

 

 

• Słowo Kluczowe

 - samo w sobie nie robi nic, 

ale w połączeniu z innymi pozwala nam na 

grupowanie procedur i funkcji w jedną całość, 

używanie pętli... a z resztą sami później 

zobaczycie to w praktyce ;-) 

• Stała

 - jest to pewna wartość przypisana 

znakowi/wyrazowi której nie można zmienić 

np: stałej PI jest przyporządkowana liczba 

3.1415... 

• Zmienna

 - Jak sama nazwa wskazuje zmienna 

jest to wyraz, któremu jest przypisana pewna 

wartość, którą w czasie działania programu 

możemy swobodnie zmieniać w zakresie 

danego typu. 

Podstawowe pojęcia

background image

 

 

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

.

Budowa programu w języku

 TURBO PASCAL:

background image

 

 

Budowa programu w 

języku

 TURBO PASCAL:

• W części wykonawczej programu 

używamy poleceń-instrukcji języka. Do 
podstawowych poleceń zaliczamy 

instrukcję wejścia (readln(zmienna)),

 

instrukcję wyjścia (writeln(zmienna)),

 

oraz 

instrukcję przypisania 

(zmienna:=wartość lub 
zmienna:=wyrażenie).

 Każda instrukcja 

kończy się znakiem średnika.

background image

 

 

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;

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 

{  }.

Zasady pisania programu.

background image

 

 

• Stosowanie Komentarzy

Komentarze w programie nie są niezbędne, ale 

bardzo upraszczają późniejszą poprawę/modyfikację 

programu i to dzięki komentarzom nasz program 

staje się bardziej czytelny również dla innych osób. 

W Pascalu ujmuje się je pomiędzy nawiasy klamrowe 

"{","}" 

• Stosowanie Wcięć

Wcięcia stosowane są do łatwiejszego zorientowania 

się w programie źródłowym, dla programisty jest to 

bardzo przydatne gdyż natychmiast widzi, które 

fragmenty programu są ze sobą bardziej powiązane 

a które mniej. 

Zasady pisania programu.

background image

 

 

Przykład

Program bez wcięć: 

Var
s:string;
b:byte;
Begin
ReadLn(s);
If s='pi' Then
Begin
For b:=1 To 10 Do
Begin
WriteLn(PI);
WriteLn(b);
End;
End Else
WriteLn('Pozostale');
End. 

Program z wcięciami:

 

Var  

s:string;  
b:byte;

Begin  

ReadLn(s);  
If s='pi' Then  
Begin    
For b:=1 To 10 Do    
Begin      
WriteLn(PI);      

WriteLn(b);    
End;  
End Else

WriteLn('Pozostale');
End. 

background image

 

 

Naprawdę gorąco zachęcam do stosowania 
wcięć od początku nauki gdyż później o 
wiele trudniej się przestawić na taki zapis, a 
jak program ma na dodatek kilka tysięcy 
linii to bez tego naprawdę można się 
pogubić uwierzcie mi :) 
Błędy pojawiające się podczas wykonywania 
programu powodują przerwanie działania 
programu i wyświetlenie komunikatu:
Run-time error nnn at xxxx:yyyy gdzie nnn 
przedstawia numer błędu, natomiast 
xxxx:yyyy adres wystąpienia błędu ( adres 
segmentu : offset )

background image

 

 

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.

Instrukcje wyjścia.

background image

 

 

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.

W celu uruchomienia 
programu należy:

Skróty klawiszowe

background image

 

 

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.

PRZYKŁAD

background image

 

 

   

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

.

Instrukcja czyszczenia ekranu.

background image

 

 

Napisać program wyświetlający napisy:

ZAGRANICZNA FIRMA HANDLOWA

EURO – 2012

Zadanie 1.

background image

 

 

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

Zadanie 2.

background image

 

 

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 );

background image

 

 

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, czyli 
zostanie dosłownie 
wypisane na 
monitorze.

w miejsce wyrażenia 3 
+ 4 komputer wstawi 
obliczony wynik

Efekt na monitorze:

3 + 4 = 7

background image

 

 

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

CHR

               zwraca znak ASCII na podstawie jego 

kodu, np:                

CHR(109)=‘g’

ORD

                zwraca numer porządkowy elementu 

w swoim 

typie (np. 

ORD(g)=109)

background image

 

 

Zadanie

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

8

4

4

3

8

4

4

:

3

8

4

3

7

)

8

5

(

)

7

4

(

4

2

6

3 

2

2

)

6

5

(

)

3

(

x

x

4

y

x

5

4

x

y

x

2

2

3

6

5 

7

:

3

5

2

x

4

3

:

5

,

1

2

x

z

2

)

2

(

y

y

x

x

5

,

6

:

5

,

1

4

z

background image

 

 

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.

background image

 

 

Przykład

Napisać program obliczający wyrażenie 
algebraiczne:
Dla obliczanego wyniku przyjąć format: 
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.

9

17

3

2 

background image

 

 

Zadanie 1.

Napisz program obliczający wyrażenie 
algebraiczne:

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.

4

:

37

5

7

7

4

2

4

2

2

background image

 

 

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.

background image

 

 

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. 

background image

 

 

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.

background image

 

 

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

background image

 

 

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.

background image

 

 

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

background image

 

 

TEMAT:

 

Instrukcja przypisania.

Zmiennej można nadać wartość wprost w 
programie. Służy do tego instrukcja przypisania 

 

:= 

(Symbol przypisania piszemy bez spacji.)

background image

 

 

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.

background image

 

 

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. 

background image

 

 

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.

background image

 

 

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.

background image

 

 

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

background image

 

 

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

.

background image

 

 

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.

background image

 

 

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.

background image

 

 

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.

background image

 

 

Instrukcja warunkowa może mieć również postać:

Jeśli

 zachodzi warunek, 

to

 wykonaj instrukcję 1, 

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

background image

 

 

Program rownanie;

uses crt;

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.

ax + b = 0

background image

 

 

Zadanie

Napisz program obliczający wartość bezwzględną 
podanej liczby „x”

background image

 

 

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.

background image

 

 

Zadanie

Napisz program sprawdzający, czy wczytana liczba 
jest parzysta.

background image

 

 

TEMAT

Liczby losowe

RANDOMIZE

 – procedura uruchamiania 

generatora liczb losowych

RANDOM (zakres)

 – funkcja losująca liczby z 

przedziału 

od 0 do zakres – 1

background image

 

 

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

background image

 

 

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

background image

 

 

TEMAT: 

liczba π (pi)

Funkcja 

pi

 nie ma argumentów i zwraca 

zawsze przybliżoną wartość liczby 

pi.

background image

 

 

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

background image

 

 

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ą. 

background image

 

 

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. 

background image

 

 

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

background image

 

 

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

background image

 

 

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ć.

background image

 

 

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

background image

 

 

for 

i:=1

 to 

10 

do 

lub

for 

i:=1

 to 

10

 do 

begin

end;

i

  - zmienna 

sterująca

background image

 

 

for 

i:=‘a’

 to 

‘k’ 

do 

lub

for 

i:=‘a’

 to 

‘k’

 do 

begin

end;

i

  - zmienna 

sterująca

background image

 

 

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.

background image

 

 

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.

background image

 

 

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.

background image

 

 

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.

background image

 

 

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]

background image

 

 

Przykład
Napisz program obliczający silnię dowolnej liczby.

background image

 

 

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.

background image

 

 

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

background image

 

 

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.

background image

 

 

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

background image

 

 

TEMAT: 

Instrukcja pętli

repeat … until …

w tłumaczeniu:

powtarzaj … dopóki …

Możemy tu wstawić 
dowolną ilość 
instrukcji, których nie 
trzeba ujmować w 
begin … end.

Pętla będzie 
powtarzana, dopóki 
podany tu warunek 
nie będzie spełniony

background image

 

 

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ą.

background image

 

 

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.

background image

 

 

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.

background image

 

 

PORÓWNAJMY PROGRAMY:

program wakacje;

uses crt;

var
i: byte;

begin

clrscr;

for

 i:= 1 

to

 10 

do

 

begin
textcolor (i);
writeln (‘kocham 
wakacje’);
end;

readkey;

end.

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.

background image

 

 

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.

background image

 

 

Zadanie 2.
Napisz program liczący silnię. Program ma 
wymuszać na użytkowniku wpisywanie poprawnych 
danych.

background image

 

 

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

background image

 

 

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.

background image

 

 

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…

background image

 

 

TEMAT: 

Instrukcja wyboru 

CASE.

Instrukcja CASE służy do wyboru jednej z kilku 
możliwości. Ma ona postać:

case

 

wyrażenie

 

of

wartość1: instrukcja1;
wartość2: instrukcja2;
wartość3: instrukcja3;

 

end;

case

- przypadek

Najpierw sprawdzana jest 
wartość 

wyrażenia

. Potem 

wynik jest porównywany z 
kolejnymi 

wartościami.

 Gdy 

znaleziona zostanie wartość 
równa 

wyrażeniu

, to 

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ę?

 

background image

 

 

program PoleCzyObwod;

uses crt;

var
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;

end;

readkey;

end.

PRZYKŁAD

Pole czy 
obwód 
prostokąta?

background image

 

 

program KwadratCzyProstokat;

uses crt;

var
a,b, P  : real;
odp: integer;

begin

clrscr;

writeln (‘Program oblicza pole prostokąta i 
kwadratu’);
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.

PRZYKŁAD:

Pole kwadratu 
czy 
prostokąta?

background image

 

 

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)

background image

 

 

background image

 

 

Instrukcja CASE może mieć również postać:

case

 

wyrażenie

 

of

wartość1: instrukcja1;
wartość2: instrukcja2;
wartość3: instrukcja3;

 

else

instrukcja0

end;

Najpierw sprawdzana jest 
wartość 

wyrażenia

. W 

przypadku, gdy 

wyrażenie

 

przyjmie 

wartość1,

 

wykonywana jest 

instrukcja1

gdy wyrażenie przyjmie 

wartość2,

 wykonywana jest 

instrukcja2;

,…

Jeżeli żadna wartość nie 
odpowiada wyrażeniu, to 
wykonywana jest 

instrukcja

 po 

else.

 

background image

 

 

program PoleCzyObwod;

uses crt;

var
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.

PRZYKŁAD

background image

 

 


Document Outline