background image

Egzamin z "Podstaw Algorytmiki i Programowania"   2009/2010   

 

 
 

imię i nazwisko: .............................................  

 

 

 

kierunek: INFORMATYKA 

 

10  11  12 

suma 

 

 

 

 

 

 

 

 

 

 

 

 

 

1)  (2 pkt) Podaj definicję funkcji rekurencyjnej o 

nagłówku 

int ileC(unsigned int n, 

 

   

    unsigned int p); 

obliczającej ilość cyfr liczby 

n

 w systemie o 

podstawie 

p (p>=2)

.

 

 
 
 
 
 
 
 
 
 
 
 
 
 

2)  (2 pkt) Dana jest struktura  

struct TPilkarz

  

{  

 

string  imie,nazwisko; 
int  ileB;   

//ilo

ść

 zdobytych 

             //bramek    

int ileM; 

//ilo

ść

 minut sp

ę

dzonych 

 

 

 

//na boisku 

  };

 

Napisz funkcję o nagłówku 

void Wczytaj(TPilkarz& p); 

która pobierze z klawiatury informacje o 
piłkarzu. Zadbaj o to, by w polach całkowitych 
znalazły się wartości nieujemne. 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 

3)  (4 pkt) Wykorzystując strukturę 

TPilkarz

 

z poprzedniego zadania oraz struktury 
 

struct  TDruzyna

 

{   

string panstwo; 
string trener;  
TPilkarz d[23]; 

}; 
 

struct  TMistrzostwa 
{  

int mecze; /

/ilo

ść

 rozegranych 

  

 

 

//spotka

ń

 

TDruzyna ucz[32]; 

  }; 

 
napisz funkcję o nagłówku 

double Gole(TMistrzostwa& M); 

która wyświetli na ekranie listę wszystkich 
piłkarzy (imię, nazwisko, druŜyna), którzy 
zdobyli przynajmniej jedną bramkę. Wynikiem 
funkcji jest średnia ilość goli przypadających na 
jedno spotkanie. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 

 
 
 
 
 

background image

 

 

4)  (3 pkt) Podaj definicję funkcji o nagłówku 

bool srednia(double T[],int n, 
 

 

 

 

double granica,  

 

 

 

 

double& srednia); 

obliczającej średnią arytmetyczną tych 
elementów tablicy 

T[0], T[1],..., T[n-1]

których wartość jest większa od parametru 

granica

. Wynikiem funkcji jest prawda, jeśli 

moŜna policzyć średnią takich elementów i fałsz 
w przeciwnym wypadku. 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

5)  (2 pkt) Napisz funkcję logiczną, która dla 

zadanej parametrem wartości rzeczywistej 

x

oblicza parametr 

(

)

(

)

5

.

0

3

3

+

=

x

x

x

x

y

 

oraz zwraca 

true

 dla kaŜdego 

x>0.5

W przeciwnym wypadku, funkcja ma zwrócić 

false

6)  (3 pkt) Napisz  funkcję rekurencyjną 

 

 void repr2Slownie(unsigned int n); 

która wyświetla zapis słowny kolejnych cyfr 
reprezentacji dwójkowej  liczby 

n

,

 

np. dla liczby 

n=6 

wyświetli

  

jeden jeden zero 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

7)  (3 pkt) Napisz definicję funkcji 

Dzielniki

która dla  liczby całkowitej 

n

 podanej jako 

parametr, zwróci przez parametr 

ileDziel

 

ilość liczb całkowitych dodatnich będących 
dzielnikami tej liczby. Wynikiem tej funkcji

 

ma być

 

suma tych dzielników. 

 
 
 
 
 
 
 
 
 

background image

 

 

8)  (3 pkt) Napisz funkcję logiczną, która dla pliku 

o nazwie podanej jako parametr funkcji, 
zapisze  wszystkie występujące w nim litery do 
pliku litery.txt, cyfry do pliku cyfry.txt, a inne 
znaki do pliku inne.txt.  Funkcja zwraca 

true

 

jeśli operacje plikowe się powiodły, oraz 

false 

w przeciwnym razie. 

 
 
 
 
 

9)  (4 pkt) W pliku wyniki.txt podane są w 

kolejnych linijkach odpowiednio: nazwy 
krajów (w przypadku nazw wieloczłonowych 
zakładamy, Ŝe są one połączone za pomocą 
podkreślenia), ilość zwycięstw, remisów, 
poraŜek oraz ilość strzelonych goli. W linijce 
poszczególne dane są oddzielone spacjami.  

Napisz funkcję 

IleGoli

, która dla nazwy kraju 

zadanej parametrem zwraca ilość zdobytych 
goli. W przypadku wystąpienia niepoprawnych 
operacji plikowych funkcja zwraca -1. Ponadto 
wynikiem funkcji ma być –2, jeśli podanego 
kraju nie ma w pliku wyniki.txt

 

Napisz fragment programu, który 
wykorzystując funkcję 

IleGoli

 wyświetli na 

ekranie ilość goli strzelonych przez Hiszpanię i 
Anglię. 

background image

 

 

10) (3 pkt) Napisz deklarację klasy 

TKsiazka

 o 

polach prywatnych:  
  

tytul

   (typu   

string

)  

 

autor

   (typu   

string

 

rok_wyd

  

 (typu   

int

)

  

  

cena

    (typu   

float

)

  

oraz publicznych metodach: 

• 

konstruktor inicjujący pola klasy na 
podstawie swoich parametrów 

• 

funkcja u

staw

 ustalająca pola klasy na 

podstawie wartości swoich parametrów 

• 

funkcje 

zwrocTytul, zwrocAutor, 

zwrocRok_wyd, zwrocCena 

zwracające 

wartości poszczególnych pól klasy 

• 

funkcja  

p

rzecena

     obniŜająca cenę 

towaru o procent przekazany jako parametr 
metody 

• 

przeciąŜony operator

 

=

 

sprawdzający, czy 

dwie ksiąŜki są identyczne, tzn. mają ten sam 
tytuł i tego samego autora. 

11) (4 pkt)Podaj

 

definicję konstruktora,  metod: 

przecena, zwrocTytul 

oraz

 

 operatora

 

=

 

=  

z klasy 

TKsiazka

, zdefiniowanej w 

poprzednim zadaniu, zgodnie z zasadami 
obowiązującymi w plikach implementacyjnych 
klas. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

12) (2 pkt) Wykorzystując konstruktor, podaj 

deklarację obiektu 

ks

 typu 

TKsiazka

, o 

kolejnych polach zawierających dane o ksiąŜce

 

Adama Mickiewicza

 pt. 

Pan Tadeusz

wydanej w 

2000

 roku w cenie 

29.99

 złotego. 

Następnie napisz instrukcję przeceniającą 
ksiąŜkę o 

10%

 oraz wyświetl na ekranie 

uaktualnione informacje o tej ksiąŜce.