Egzamin z "Podstaw Algorytmiki i Programowania" 2009/2010
imię i nazwisko: .............................................
kierunek: INFORMATYKA
1
1
2
3
4
5
6
7
8
9
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.
2
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.
3
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ę.
4
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.