01 lekcja 01,02 pascal

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,

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

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 COMPILEDESTINATION

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


Wyszukiwarka

Podobne podstrony:
01 02 tytulowa
ei 2005 01 02 s078
LKM cw 01 02
01 02 2013
01 02 (3)
01 02 Projektstruktur Step7 Funktionen S7
2010 01 02, str 106 110
O Czym Lekarze Ci Nie Powiedzą 01 02 2014
312[01] 02 112

więcej podobnych podstron