4pp t2

background image

PODST AWY PROGRAM OWANIA

Procedury i funkcje – przekazywanie parametrów przez zmienną

1

Parametry formalne służą do przekazywania danych. Deklaracje parametrów są oddzielane średnikami, każda
deklaracja składa się z listy zmiennych i nazwy typu. Poprzedzające listę słowo var określa przekazanie danych
przez zmienną, jego brak – przekazanie danych przez wartość.

Przekazanie przez zmienną może przenieść wartość do procedury (wejście), po jej zakończeniu powoduje zwrot
nowej wartości do programu wywołującego procedurę. Parametry aktualne przekazujące przez zmienną muszą
być identyfikatorami (nazwami) zmiennych.

Ćwiczenie 1

Uruchom poniższy program.

Program rachunki;
var x, y, s: Integer;

procedure suma(a, b, c: Integer);
begin
c := a + b;
writeln('suma ', c:4);
end;

begin
randomize;
x := random(10);
y := random(10);
suma(x, y, s);
writeln('suma wynosi ', s);
end.

Zinterpretuj wyniki.

Uwagi

Parametry w procedurze przekazywane są przez wartość, tzn. traktowane są jako wartości początkowe

zmiennych lokalnych. W momencie zakończenia procedury parametr formalny przestaje istnieć,
dlatego wartość parametru aktualnego (zmienna

c

) nie została zmieniona.

Aby wartość wyliczona w procedurze została zwrócona do programu po zakończeniu procedury, trzeba

ten parametr przekazać przez zmienną.

Wprowadź modyfikacje aby wyniki były poprawne.

Parametr

c

trzeba przekazać do procedury przez zmienną. Zmodyfikuj nagłówek procedury do postaci:

Procedure suma(a, b: Integer; var c: Integer);

Zmodyfikuj program tak aby wczytywał z klawiatury cztery liczby

a, b, x, y

, obliczał sumę

a + b

i

x + y

, sprawdzał, która suma jest większa i wyświetlał stosowny komunikat.

Napisz funkcję, która oblicza sumę dwóch liczb podanych jako parametry (robi dokładnie to samo co
procedura

suma

), wykonaj punkt poprzedni wykorzystując napisaną funkcję.


Ćwiczenie 2

Napisz następujące procedury i funkcje:

Procedurę wypełniającą tablicę jednowymiarową liczbami losowymi z zakresu (0, 50) z dwoma
parametrami n – rozmiar tablicy, naz – nazwa tablicy (zastanów się jak przekazać parametry do
procedury).

Funkcję, która oblicza sumę wszystkich elementów tablicy.

Funkcję logiczną, która przyjmie wartość True, gdy w tablicy wystąpi liczba podana jako parametr
funkcji.

W programie zadeklaruj dwie tablice:

A

o rozmiarze

l

B

o rozmiarze

m

Zadeklaruj zmienną

k.

Zmienne

l, m

i

k

wprowadź z klawiatury.

Wypełnij i wyświetl obie tablice.
Sprawdź czy liczba

k

występuje w tablicach i wyświetl stosowne komunikaty.

background image

PODST AWY PROGRAM OWANIA

Procedury i funkcje – przekazywanie parametrów przez zmienną

2

Program tablica;
uses crt;
const n = 30;
type t = array[1..n] of integer;
var l, m, k: Integer;

A,B: t;

procedure wypelnij(n: Integer; var naz: t);
var i: Integer;
begin

for i := 1 to n do naz[i] := random(100);

end;

procedure wyswietl(n: Integer; naz: t);
var i:integer;
begin

for i := 1 to n do write(naz[i]:3);
writeln;

end;

function suma(n: Integer; naz: t): Integer;
var i: Integer;
begin

s := 0;
for i := 1 to n do s := s + naz[i];
suma := s;

end;

function szukaj(n, k: Integer; naz: t): Boolean;
var i: Integer;
begin

szukaj := False;
for i := 1 to n do

if naz[i] = k then begin

szukaj := true;
exit;

end;

end;

begin

clrscr;
randomize;
writeln(‘W

prowadź rozmiar tablicy A

: ’);

readln(l);
writeln(‘W

prowadź rozmiar tablicy B

: ’);

readln (m);
writeln(‘W

prowadź liczbę k

: ’);

readln(k);
wypelnij(l, A);
wypelnij(m, B);
writeln(‘Tablica A: ’);
wyswietl(l, A);
writeln(‘Tablica B: ’);
wyswietl(m, B);
writeln(‘Suma elementów tablicy A wynosi: ‘, suma(l, A));
writeln(‘Suma elementów tablicy B wynosi: ‘, suma(m, B));
if szukaj(l, k, A) then writeln(‘Liczba ‘, k, ’ wyst

ę

puje w tablicy

A’)

else writeln(‘Liczba ‘, k, ‘ nie wyst

ę

puje w tablicy A’);

if szukaj(m, k, B) then writeln(‘Liczba ‘, k, ’ wyst

ę

puje w tablicy

B’)

else writeln(‘Liczba ‘, k, ‘ nie wyst

ę

puje w tablicy B’);

end;

background image

PODST AWY PROGRAM OWANIA

Procedury i funkcje – przekazywanie parametrów przez zmienną

3

Uwagi

Parametry formalne deklarowane w procedurze muszą mieć określony typ, dlatego typ

t

musi być

zdefiniowany przed definicją procedury.

Procedura

wypelnij

przypisuje wartości elementom tablicy i wypełnioną tablicę przekazuje do

programu głównego, dlatego parametr

naz

musi być przekazany przez zmienną.

W funkcji

szukaj

została wykorzystana procedura standardowa

exit

, która powoduje

zakończenie wykonywania funkcji lub procedury i przekazanie sterowania do programu głównego.
Zastosowanie w tym miejscu procedury

break

(przerwanie pętli) przyniosłoby taki sam efekt.

Napisz funkcję

szukaj1

, która odpowiada na pytanie ile razy w tablicy wystąpiła podana jako parametr

liczba

k

.

Napisz procedurę (lub funkcję)

spr

, która wprowadza z klawiatury liczbę całkowitą, która jest

z zadanego w parametrach zakresu. Wykorzystaj tę procedurę lub funkcję do wprowadzenia liczby

l

i

m

(rozmiar macierzy musi być zgodny z typem

t

) oraz liczby

k

(musi być z zakresu podanego w funkcji

random

, którą wykorzystujemy do wypełnienia tablicy).



Zadania

1. Napisz następujące procedury i funkcje:

Procedurę wypełniającą liczbami losowymi tablicę dwuwymiarową o rozmiarze

N

na

M

z parametrami

n

– rozmiar,

m

– rozmiar tablicy,

naz

– nazwa tablicy,

l

– zakres wprowadzanych

liczb).

Procedurę wyświetlającą tablicę (sam dobierz parametry).

Funkcję obliczającą sumę elementów w dowolnej (parametr funkcji) kolumnie tablicy.

2. W programie zadeklaruj dwie tablice:

A

o rozmiarze 5 na 10.

B

o rozmiarze 7 na 7.

Wypełnij i wyświetl obie tablice.

Wprowadź z klawiatury liczbę

k

i wylicz sumę elementów w kolumnie

k

obu tablic.

3. Napisz program, który będzie obliczał sumę elementów na głównej przekątnej (funkcja), a następnie zerował

główną przekątną macierzy kwadratowej (procedura). Wykorzystaj procedury z zadania poprzedniego.




Wyszukiwarka

Podobne podstrony:
4pp t2
T2 1
T2 Układ rzutni Mongea
Mazowieckie Studia Humanistyczne r1996 t2 n1 s165 173
grobnieczui t2
Mazowieckie Studia Humanistyczne r1996 t2 n1 s113 126
T2, Kulturoznawstwo UAM, Tożsamości kulturowe (W)
T2 geodynamika
T2 dr Naplocha
Mazowieckie Studia Humanistyczne r1996 t2 n1 s223 232
Mazowieckie Studia Humanistyczne r1996 t2 n2 s203 207
Mazowieckie Studia Humanistyczne r1996 t2 n1 s255 258
Mazowieckie Studia Humanistyczne r1996 t2 n2 s218 220
Mazowieckie Studia Humanistyczne r1996 t2 n2 s161 170
Mazowieckie Studia Humanistyczne r1996 t2 n2 s149 159
Mazowieckie Studia Humanistyczne r1996 t2 n2 s55 63
T2.OGÓLNY MODEL PROCESU POZNANIA NAUKOWEGO, LICENCJAT
978 3 468 47441 5 LOG2 T2

więcej podobnych podstron