?01Czy nastepujace stwierdzenia dotyczace funkcji i procedur w jezyku Pascal sa prawdziwe? *Funkcje i procedury roznia sie sposobem ich deklaracji. *Funkcje i procedury deklaruje sie identycznie. *Funkcje i procedury roznia sie sposobem ich uzycia w programie. *Sposob uzycia funkcji i procedur w programie jest identyczny. *Sposoby przekazania prametrow do funkcji i procedur sa takie same. *Funkcje i procedury roznia sie sposobem przekazywania prametrow.
?02Czy nastepujace stwierdzenia dotyczace funkcji w jezyku Pascal sa prawdziwe? *Funkcja zawsze zwraca wartosc. *Funkcja moze, ale nie musi zwracac wartosc. *Funkcja moze byc bezparametrowa. *Funkcja musi posiadac parametry. *Funkcje uzywane sa w wyrazeniach. *Funkcja moze byc uzywana jako samodzielna instrukcja. *Parametry moga byc przekazywane do funkcji zarowno w postaci VAR, jak i w postaci zwyklej (bez VAR). *Parametry moga byc przekazywane do funkcji tylko w postaci VAR.
?03Czy nastepujace stwierdzenia dotyczace procedur w jezyku Pascal sa prawdziwe? *Procedura nie zwraca wartosci. *Procedura zawsze zwraca wartosc. *Procedura moze byc bezparametrowa. *Procedura musi posiadac parametry. *Procedura moze byc uzywana jako samodzielna instrukcja. *Procedura moze wystapic jedynie jako czesc wyrazenia. *Parametry moga byc przekazywane do procedury zarowno w postaci VAR, jak i w postaci zwyklej (bez VAR). *Parametry moga byc przekazywane do procedury tylko w postaci VAR.
?04Czy funkcja Rowne, zdeklarowana jak ponizej,
FUNCTION Rowne( a,b :INTEGER): BOOLEAN;
BEGIN
Rowne := a = b;
END;
*jest poprawna ? *jest bledna? *sprawdza czy argumenty wywolania sa rowne ? *przypisuje zmiennej a wartosc zmiennej b ? *zawiera wyrazenie? *jest funkcja rekurencyjna?
?05Czy ponizsze wyrazenie jest prawdziwe (ma wartosc TRUE), jesli funkcja s zostala zadeklarowana nastepujaco:
FUNCTION s(n:INTEGER) : INTEGER;
IF n<=1
THEN s:=1
ELSE s:=n*s(n-1)
*s(3) + s(4) = 30 *s(-5) * s(5) = 5 *s(8) DIV s(7) = 8 *s(5) MOD s(4) = 1
?06Dana jest procedura:
PROCEDURE Zmien( a :INTEGER; VAR b :INTEGER);
BEGIN a := a + 2 * b; b := a - b; END;
oraz ciag instrukcji:
x := 1; y := 2; Zmien(x,y);
Przyjmujac, ze zmienne x i y sa typu INTEGER, czy jest prawda ze:
*Wartosc zmiennej x nie ulegnie zmianie. *Wartosc zmiennej y na pewno nie ulegnie zmianie. *x = 1, y = 3 *x = 5, y = 2
?07Rozwaz nastepujaca funkcje: FUNCTION s(k: INTEGER): INTEGER; BEGIN s := ((k MOD 6) DIV 2 )+1 END; *Dla k z przedzialu 0..5 funkcja s przyjmie wartosci 1 1 2 2 3 3. *Dla k z przedzialu 1..6 funkcja s przyjmie wartosci 1 2 2 3 3 4. *Funkcja s jest okresowa. *Funkcja s dziala poprawnie tylko dla nieujemnych wartosci argumentu k.
&08Rekurencyjne implementacje funkcji roznia sie od iteracyjnych tym ze: *zwykle wymagaja mniej pamieci niz implementacje iteracyjne *zwykle wymagaja wiecej pamieci niz implementacje iteracyjne *sa z reguly wolniejsze niz implementacje iteracyjne *sa z reguly szybsze niz implementacje iteracyjne *zwykle wykonuja te same operacje wieksza liczbe razy *wykonuja zawsze te same operacje lecz w innej kolejnosci *zwykle sa bardziej czytelne i latwiejsze do weryfikacji *zwykle sa mniej czytelne i trudniejsze do weryfikacji
&09Pojecie "alias" okresla sytuacje gdy: *parametry formalne i aktualne procedury maja takie same nazwy *dwie zmienne odwoluja sie do tego samego miejsca w pamieci *programista podpisal program cudzym nazwiskiem *dwoch (wielu) programistow napisalo taki sam program *zmienna lokalna ma taka sama nazwe jak zmienna globalna *istnieja dwie rozne zmienne o tej samej nazwie
&0APojecie "asercja" wiaze sie z: *koniecznoscia zachowania optymistycznego spojrzenia na zycie *przestrzeganiem charakterystycznych dla Pascal'a "wciec" w programie *wykrywaniem przez program niepoprawnych wartosci zmiennych *umieszczaniem komentarzy w tresci programu *sprawdzaniem poprawnosci wywolania procedury lub funkcji *umieszczeniem warunkow PRE w opisie programu
?0BO uzyciu parametrow VAR w Pascalu mozna powiedziec, ze: *zastepuja w uzyciu parametry CONST *pozwalaja deklarowac pomocnicze zmienne lokalne w procedurach i funkcjach *sa mniej bezpieczne w uzyciu niz zwykle parametry *sa bardziej bezpieczne w uzyciu niz zwykle parametry
?0CO uzyciu parametrow VAR w Pascalu mozna powiedziec, ze: *mozna je zastapic przez uzycie zmiennych globalnych *mozna je zastapic przez uzycie zmiennych lokalnych *pozwalaja przesylac wartosci zmiennych z procedury do programy glownego *daja wieksze mozliwosci przez co sa bezpieczniejsze w uzyciu niz zwykle parametry
&0DDyrektywa FORWARD sluzy w Pascalu do: *deklarowania funkcji wywolywanej w programie przed jej pelna deklaracja *wskazania funkcji, ktora w programie nie bedzie zadeklarowana *przejscia programu do nastepnej partii danych *wykonania w programie skoku o okreslona liczbe linii
&0ERola dyrektywy FORWARD w Pascalu jest nastepujaca: *zastepuje blok w deklaracji procedury lub funkcji *zastepuje naglowek w deklaracji procedury lub funkcji *chroni przed przeslanianiem nazw globalnych przez nazwy lokalne *powoduje wysuniecie papieru przy wydruku programu na drukarce
?0FSpecyfikacja funkcji lub procedury w Pascalu ... *... to czesc jej deklaracji miedzy slowami BEGIN i END. *... jest okreslona przez jej naglowek. *... zawiera informacje o sposobie poprawnego jej wywolania. *... wymienia wszystkie "drivery", ktore jej uzywaja.
?10Specyfikacja funkcji lub procedury w Pascalu ... *... to czesc jej deklaracji miedzy naglowkiem a blokiem. *... opisuje znaczenie wszystkich parametrow. *... musi wymieniac te procedury i/lub funkcje, ktore ja wywoluja. *... musi wymieniac procedury i/lub funkcje wywolywane przez nia.
?11Celem pisania specyfikacji funkcji i procedur w programie jest, m.in.: *skrocenie czasu kompilacji programu *skrocenie czasu pracy programisty nad dana funkcja lub procedura *ulatwienie ponownego wykorzystania funkcji lub procedury, na przyklad w innym programie *ulatwienie kompilatorowi wykrywanie ewentulanych bledow zawartych w programie. *zmniejszenie szansy wystapienia w programie bledow *zwiekszenie efektywnosci dzialania funkcji i procedur
?12Zjawisko przeslaniania odnosi sie do sytuacji gdy ... *... nazwa globalna jest przeslaniana przez nazwe lokalna. *... nazwa lokalna jest przeslaniana przez nazwe globalna. *... w procedurze jest brak dostepu do zmiennej globalnej bo istnieje zmienna lokalna o tej samej nazwie. *... nazwa wbudowana Pascala jest przeslaniana przez nazwe zadeklarowana w programie. *... w procedurze jest wykorzystywana zmienna globalna. *... zmienna o tej samej nazwie wystepuje w procedurze i programie glownym.
?13Jesli w procedurze zadeklarujemy zmienna lokalna o takiej samej nazwie jak istniejaca w programie zmienna globalna to ... *... nie wystapi konflikt tylko wtedy gdy zmienne te beda roznych typow. *... wystapi konflikt bez wzgledu na typy obu zmiennych. *... zmienna lokalna przyjmie wartosc globalnej. *... zmienna lokalna stanie sie aliasem zmiennej globalnej. *... za pomoca zmiennej lokalnej mozna przesylac wartosci globalne. *... za pomoca zmiennej globalnej mozna przesylac wartosci lokalne.
?14Czy sluszne jest nastepujace stwierdzenie? *Uzycie modulow przy tworzeniu programow polega na czestym lecz umiejetnym stosowaniu konstrukcji MODULE w programach. *Mowimy, ze procedura jest eksportowana, jesli godzimy sie i zezwalamy na jej wykorzystanie w innych modulach. *Aby wykorzystac w tworzonym programie jakis gotowy modul, nie jest nam potrzebny dostep do zrodlowej postaci jego implementacji. *Aby wykorzystac w tworzonym programie jakis gotowy modul, jest nam potrzebny dostep do zrodlowej postaci jego implementacji.
?15Czy sluszne jest nastepujace stwierdzenie? *Uzycie modulow przy tworzeniu programow polega na tworzeniu zbiorow konstrukcji programowych (na przyklad funkcji i procedur), ktore moga byc wykorzystane w roznych programach bez potrzeby ich kopiowania do tych programow. *Uzycie modulow przy tworzeniu programow polega na tworzeniu zbiorow konstrukcji programowych (na przyklad funkcji i procedur), ktore moga byc wykorzystane w roznych programach przez ich skopiowanie do tych programow. *Driver to jest procedura, ktora kieruje wykonaniem programu glownego. *Driver to jest program pomocniczy, ulatwiajacy przetestowanie procedur/funkcji z modulu.
?16Czy sluszne jest nastepujace stwierdzenie? *Uzycie modulow przy tworzeniu programow polega na podziale programu na kilka czesci, ktore sa tworzone oddzielnie i nastepnie laczone przed kompilacja. *Driver to jest program zastepujacy program uzytkowy, stworzony dla testowania procedur z modulow. *Mowimy, ze jakas konstrukcja programowa (na przyklad procedura) jest importowana jesli jakis modul ja wykorzystuje bez okreslania jej implementacji. *Mowimy, ze jakas konstrukcja programowa (na przyklad procedura) jest importowana jesli nie potrafimy napisac jej sami, i potrzebujemy pomocy z zewnatrz.
?17Czy sluszne jest nastepujace stwierdzenie? *Uzycie modulow przy tworzeniu programow polega na podziale programu na kilka czesci, ktore moga byc tworzone i kompilowane oddzielnie. *Mowimy, ze procedura jest eksportowana, jesli wywoluje ja inny program wykonywany w jakims innym kraju. *Aby wykorzystac w tworzonym programie jakis gotowy modul, potrzebujemy tylko jego skompilowanej postaci, znajomosc czesci zrodlowej jest nam niepotrzebna. *Aby wykorzystac w tworzonym programie jakis gotowy modul, potrzebujemy tylko jego skompilowanej postaci i informacji o zawartych w nim funkcjach/procedurach.
?18Czy prawda jest ze: *wywolanie procedury moze wystapic jako samodzielna instrukcja? *wartoscia procedury jest wyliczona wartosc jednego z jej parametrow? *wywolanie funkcji stanowi wyrazenie? *wywolanie funkcji stanowi instrukcje?
?19Czy prawda jest ze: *wywolanie procedury moze wystapic jako samodzielna instrukcja? *wywolanie funkcji moze wystapic jako samodzielna instrukcja? *w wyniku wywolania funkcji zostaje wyliczona jej wartosc ? *w wyniku wywolania procedury zostaje wyliczona jej wartosc ? *wywolanie funkcji stanowi wyrazenie? *wywolanie procedury stanowi wyrazenie?
?1ACzy prawda jest ze *parametry formalne wymienione w naglowku procedury i nie poprzedzone zadnym slowem kluczowym pozwalaja na wprowadzanie danych do procedury? *parametry formalne wymienione w naglowku funkcji i nie poprzedzone zadnym slowem kluczowym pozwalaja na wprowadzanie danych do funkcji? *parametry formalne wymienione w naglowku procedury i poprzedzone slowem kluczowym VAR pozwalaja na wyprowadzanie danych z procedury? *parametry formalne wymienione w naglowku procedury i nie poprzedzone zadnym slowem kluczowym pozwalaja na wyprowadzanie danych z procedury? *parametry formalne wymienione w naglowku procedury i poprzedzone slowem kluczowym VAR pozwalaja na wprowadzanie danych do procedury? *parametry formalne wymienione w naglowku funkcji i poprzedzone slowem kluczowym VAR zwracaja wartosc funkcji?
?1BW programie zadeklarowano:
VAR x,y,v,z : INTEGER;
PROCEDURE Proc(VAR a,b : INTEGER; c,d : INTEGER);
b:=2*b; c:=2*c; a:=b+c; d:=b;
WRITELN('a=',a, 'b=',b, 'c=',c, 'd=',d)
Zmienne x,y,v,z zostaly zainicjowane wartosciami niezerowymi, po czym wykonano instrukcje:
Proc(x,y,v,z);
WRITELN('x=',x, 'y=',y, 'v=',v, 'z=',z).
Czy pomiedzy danymi wyprowadzonymi przez WRITELN wystapi relacja: *a = x *c = v *d = y *b = 2 * y
?1CW programie zadeklarowano:
VAR a,b,c : INTEGER;
PROCEDURE Proc(VAR a : INTEGER; b,c : INTEGER);
BEGIN b := b+c; a := b END;
Czy po wykonaniu instrukcji
a := 5; b := 3; c := 10; Proc(a,b,c);
zmienne a, b i c przyjma nastepujace wartosci? *b = 3 *a = 5 *c = 10 *b = 13
?1DW programie zadeklarowano:
PROCEDURE Proc(VAR a,b : INTEGER; c : INTEGER);
IF c > 10 THEN BEGIN a:=c; c:=b; b:=2*c END
a := 5; b := 15; c := 12; Proc(b,c,a);
zmienne a, b i c przyjma nastepujace wartosci: *c = 12 *c = 5 *a = 5 *a = 15 *b = 15 *b = 12
?1EW programie zadeklarowano:
FUNCTION nsum(a,b,n : INTEGER): INTEGER;
VAR i : INTEGER;
BEGIN FOR i := 1 TO n DO a := a+b; nsum := a END;
FUNCTION ndif(a,b,n : INTEGER): INTEGER;
BEGIN FOR i := 1 TO n DO a := a-b; ndif := a END;
Czy jest prawda, ze *nsum(5,3,2) + ndif(10,2,3) = 15 *nsum(5,3,2) + ndif(10,2,3) = 25 *nsum(4,1,nsum(2,2,2)) = 10 *nsum(4,1,nsum(2,2,2)) = 8 *ndif(nsum(10,5,5),6,6) = -1 *ndif(nsum(10,5,5),6,6) = 10
?1FW programie zadeklarowano:
...
robson_swdn