background image

Egzamin z „Podstaw informatyki i programowania” 2007/2008

Imię i nazwisko:..................................................

1. Napisz funkcję logiczną, która dla zadanej 
parametrem wartości rzeczywistej 

x

, oblicza 

parametr 

 

y=

2x

x−15.5

x−4

oraz zwraca 

true

 dla każdego 

x>4 i x≠15.5. 

W przeciwnym wypadku, funkcja ma zwrócić 
false.

2. Podaj definicję funkcji rekurencyjnej o 
nagłówku

void Odwr(float a[],int l,int p);

odwracającej kolejność elementów 

a[l],

a[l+1],…,a[p]

 tablicy 

a

 w przypadku, gdy 

l<p

.

3. Struktura 

bz

 typu

struct BZnaki{

int ileS;

//ilość spacji 

int ileT;

//ilość tabulacji

int ileN;

//ilość znaków nowej linii

};

jest parametrem funkcji 

BialeZnaki

 typu 

logicznego, której zadaniem jest obliczanie pól tej 
struktury dla pliku tekstowego, którego nazwa jest 
drugim parametrem tej funkcji. Wartością funkcji 
ma być 

true

 w przypadku, gdy wszystkie 

operacje na pliku powiodły się i 

false

 w 

przeciwnym wypadku. Podaj definicję funkcji 

BialeZnaki

.

1

1

2

3

4

5

6

7

8

9

10 11 12 13 14 suma

background image

4. Dana jest funkcja

int f(int a, int & b, int c){

c = a;
a = b;

b = c;
cout<< b<<' '<<c<<endl;

return a/c;

}

Co   zostanie   wyświetlone   na   ekranie   w   wyniku 

wykonania poniższych instrukcji?

int x = 3, y = 1, z = 2;

cout<<f(z,x,y)<<endl;

   cout<<”x=”<<x<<”\ny=”<<y

       <<”\nz=”<<z<<endl;

-----------------------------------

-----------------------------------
-----------------------------------

-----------------------------------
-----------------------------------

-----------------------------------

5. Dla danej deklaracji 

enum TPrzedmioty{mat, jpol, jang, 

przyr, hist};

napisz funkcję o nagłówku

string PrzedToStr(TPrzedmioty p);

która zwraca jako wynik pełną nazwę przedmiotu 
odpowiadającego parametrowi 

p

. Wykorzystaj 

instrukcję 

switch

.

6. Dla typu wyliczeniowego 

TPrzedmioty

 z 

poprzedniego zadania napisz funkcję o nagłówku

void Drukuj_plan_zajec(

     TPrzedmioty plan[], int n,
     int g, int m);

która   wyświetli   nazwy   przedmiotów 

PrzedToStr(plan[k])

,

0kn

, oraz godziny 

ich   prowadzenia   przy   założeniu,   że   pierwsza 
godzina   lekcyjna   rozpoczyna   się   o   czasie  g:m 
podanym   jako   parametry   funkcji   oraz,   że 
wszystkie przerwy są 5-minutowe. Przykładowe 
wyświetlenie:

8:05 – 8:50 jezyk polski
8:55 – 9:40 jezyk polski

9:45 – 10:30 przyroda
...

7. Dany jest typ strukturalny postaci

struct TUczen {

  string imie, nazwisko; 
  int numer;  //nr identyfikacyjny ucznia
  int punkty; //ilość punktów z testu 
};

oraz typ strukturalny 

struct TKlasa {
  int ilu_uczniow; 
  TUczen tab[40]; //tablica zawiera dane o
                              // wszystkich uczniach w klasie 

};

2

background image

Napisz funkcję o nagłówku

void Lista(TKlasa& klasa, 

int limit);

wyświetlającą   uczniów   ze   struktury  

klasa

którzy uzyskali liczbę punktów nie mniejszą od 
parametru 

limit

 zgodnie ze schematem

Lista przyjętych

1. Nazwisko1

Imie1

2. Nazwisko2

Imie2

3. Nazwisko3

Imie3

Koniec zestawienia

8. Wykorzystując typy strukturalne z 
poprzedniego zadania, podaj definicję funkcji o 
nagłówku

int Zdali(TKlasa& klasa, 

int limit);

modyfikującą   parametr  

klasa

  typu  

TKlasa

  w 

ten   sposób,   żeby   zawierał   on   jedynie   uczniów, 
którzy zaliczyli test. Wynikiem funkcji jest ilość 
uczniów, którzy nie zaliczyli testu.

9. Dany jest plik fizyczny o następującej 
strukturze:

Nowak Jan       2   39

Majewska Ola    3   2
Kowal Karol     1   59 
                   

zawierający   dane   o   wynikach   marszobiegu: 
nazwisko,   imię,   liczbę   minut   i   sekund   z   jaką 
uczestnik   pokonał   trasę.   Napisz   funkcję   o 
nagłówku 

bool Zapisz(string zrodlo,
            string wynik, int s);

która zapisze do pliku 

wynik

 imiona i nazwiska 

tych   uczestników   marszobiegu,   którzy   pokonali 
trasę   w   czasie   krótszym   od  

s

.   Plik  

wynik 

powinien mieć następującą postać:

1 Jan Nowak
2 Karol Kowal

                       

gdzie w każdym wierszu najpierw występuje 
liczba porządkowa, potem imię i nazwisko. 
Ponadto funkcja ma dodatkowo zwracać wartość 

true

, jeśli udały się operacje plikowe i 

false

 w 

przeciwnym wypadku.

3

background image

10. Podaj definicje 2 typów strukturalnych o 
nazwach 

TPara

 i 

TZawody

 do rejestrowania 

ocen wszystkich zawodników w konkursie tańca. 
Pierwszy z nich ma zawierać pola: 

nazwa_tanca

numer_pary

  i oceny 3 sędziów 

w skali od 1 do 6, zaś drugi winien zawierać pola 
przechowujące ilość par i dane o wynikach 
kolejnych par. Następnie napisać funkcję typu 

void

, która wczytuje informację o wynikach 

wszystkich par.

11.Napisz funkcję typu 

int

 zapisującą do pliku, 

którego nazwa zadana jest jako parametr funkcji, 
numery tych wszystkich par i nazwy tańców 
przez nie zaprezentowanych, które otrzymały od 
sędziów średnią wyższą od 5.5 punktów. Funkcja 
powinna zwracać ilość takich par. Zestawienie 
powinno być postaci:

Lista najlepszych
Para nr … Nazwa_tańca1

Para nr … Nazwa_tańca2

Koniec zestawienia

12. Podaj definicję funkcji rekurencyjnej o 
nagłówku

int Parzyste(unsigned int n);

obliczającej ilość cyfr parzystych liczby 

n

.

(

0

 jest liczbą parzystą).

4

background image

13. Napisz deklarację klasy 

TWaga

 z 2 polami 

prywatnymi:

int kg; //ilość kilogramów
int g; //ilość gramów mniejsza od 1000. 

Ponadto w klasie tej powinny znaleźć się metody:

-  konstruktor ustalający pola prywatne klasy 

na podstawie wartości jego parametrów, 
których wartościami domyślnymi mają być 
zera;

-  metoda 

Ustaw

 ustalająca pola prywatne 

klasy zgodnie z wartościami jej parametrów;

-  2 metody 

Kilogramy

 i 

Gramy

 typu 

int

zwracające wartości pól prywatnych;

-  metoda 

Wyswietl

 wyświetlająca na ekranie 

wagę w postaci dziesiętnej; 

-  metoda 

CzyWiększa

  zwracająca wartość 

1

jeśli waga obiektu, na rzecz którego zostanie 
wywołana metoda, jest większa niż waga 
obiektu podanego jako parametr, wartość 

–1

jeśli ta waga jest mniejsza i 

0

 gdy obie wagi 

są takie same,

-  przeciążony operator 

==

14. Napisz część implementacyjną klasy 

TWaga

.

5