Egzamin z "Podstaw Algorytmiki i Programowania" 2009/2010

1

2

3

4

5

6

7

8 9

10 11 12

suma

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

kierunek: INFORMATYKA

1) (2 pkt) Podaj definicję funkcji rekurencyjnej o 3) (4 pkt) Wykorzystując strukturę TPilkarz nagłówku

z poprzedniego zadania oraz struktury

int ileC(unsigned int n,

unsigned int p);

struct TDruzyna

obliczającej ilość cyfr liczby n w systemie o

{

podstawie p (p>=2).

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);

2) (2 pkt) Dana jest struktura

która wyświetli na ekranie listę wszystkich

struct TPilkarz

piłkarzy (imię, nazwisko, druŜyna), którzy

{

zdobyli przynajmniej jedną bramkę. Wynikiem

string imie,nazwisko;

funkcji jest średnia ilość goli przypadających na

int ileB; //ilość zdobytych

jedno spotkanie.

//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.

1

4) (3 pkt) Podaj definicję funkcji o nagłówku 6) (3 pkt) Napisz funkcję rekurencyjną

bool srednia(double T[],int n,

void repr2Slownie(unsigned int n);

double granica,

która wyświetla zapis słowny kolejnych cyfr

double& srednia);

reprezentacji dwójkowej liczby n, np. dla liczby

obliczającej średnią arytmetyczną tych

n=6 wyświetli

elementów tablicy T[0], T[1],..., T[n-1],

jeden jeden zero

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.

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.

5) (2 pkt) Napisz funkcję logiczną, która dla zadanej parametrem wartości rzeczywistej x,

oblicza parametr

(

x x − )

3

y = (

x + )

3

x − 5

.

0

oraz zwraca

true dla kaŜdego x>0.5.

W przeciwnym wypadku, funkcja ma zwróci

ć

false.

2

8) (3 pkt) Napisz funkcję logiczną, która dla pliku 9) (4 pkt) W pliku wyniki.txt podane są w o nazwie podanej jako parametr funkcji,

kolejnych linijkach odpowiednio: nazwy

zapisze wszystkie występujące w nim litery do

krajów (w przypadku nazw wieloczłonowych

pliku litery.txt, cyfry do pliku cyfry.txt, a inne zakładamy, Ŝe są one połączone za pomocą

znaki do pliku inne.txt. Funkcja zwraca true podkreślenia), ilość zwycięstw, remisów,

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

poraŜek oraz ilość strzelonych goli. W linijce

false w przeciwnym razie.

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ę.

3

10) (3 pkt) Napisz deklarację klasy TKsiazka o 11) (4 pkt) Podaj definicję konstruktora, metod: polach prywatnych:

przecena, zwrocTytul oraz operatora

tytul (typu string)

= = z klasy TKsiazka, zdefiniowanej w

autor (typu string)

poprzednim zadaniu, zgodnie z zasadami

rok_wyd (typu int)

obowiązującymi w plikach implementacyjnych

cena (typu float)

klas.

oraz publicznych metodach:

• konstruktor inicjujący pola klasy na

podstawie swoich parametrów

•

funkcja ustaw 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 przecena 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.

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.

4