Egzamin z Podstaw Algorytmiki i Programowania 2010/2011

1

2

3

4

5

6

7

8

9

10

11

12

13

Razem

Imię i Nazwisko .............................................. Kierunek ..............................

1. (2 pkt.) Napisz definicję funkcji rekurencyjnej 3. (3 pkt.) Mając następujące typy: float Hermite(int n,float x);

struct TPomieszczenie

{

obliczającej wartość, w punkcie x ∈ R, wielo-float dlugosc;

mianu Hermite’a Hn (x) stopnia n określonego float szerokosc;

wzorem rekurencyjnym

};

H0 (x) = 1, H1 (x) = x,

oraz

n − 1

Hn (x) = xHn−1 (x) −

Hn−2 (x) ,

struct TMieszkanie

2

n = 2, 3, . . . .

{

string adres;

int liczba_pomieszczen;

TPomieszczenie pom[10];

};

napisz definicję funkcji

void Metraz(TMieszkanie m);

która wyświetla adres mieszkania i jego po-wierzchnię.

2. (2 pkt.) Zdefiniuj rekurencyjną funkcję o na-główku

bool CyfryPodzielnePrzez3(int d);

która zwraca wartość true, jeśli każda cyfra liczby nieujemnej całkowitej d dzieli się przez 3 oraz false, w przeciwnym wypadku.

1

4. (3 pkt.) Mając dany typ 6. (2 pkt.) Podaj definicję funkcji o nagłówku struct TStudent

int Max(int x, int &ile);

{

string imie;

która zwraca maksymalną cyfrę występującą string nazwisko;

w zapisie dziesiętnym liczby x, zaś w parame-int oceny[5];

trze ile przekazuje liczbę wystąpień tej cy-

};

fry. Na przykład, jeżeli x=-7076 to wynikiem napisz funkcję

funkcji ma być 7, zaś wartością parametru ile void ZaliczonaSesja(int n,TStudent s[]); 2.

która wyświetla listę studentów, którzy zali-czyli wszystkie 5 egzaminów.

5. (2 pkt.) Podaj definicję funkcji o nagłówku 7. (3 pkt.)

Napisz definicję funkcji, która dla

tablicy t zawierającej n liczb rzeczywistych void NazwyPlikow(string naz[],int ile); która dla zadanej tablicy nazw plików wraz

- obliczy średnią arytmetyczną,

z rozszerzeniami wyświetli nazwy plików bez

- poprzestawia elementy tablicy t tak, rozszerzeń oraz w nawiasach liczbę znaków żeby elementy mniejsze lub równe od

nazwy.

średniej poprzedzały elementy od niej Przykład: Jeżeli

większe (wsk. Quicksort),

naz = ["dane.txt", "art.tex",

- zwróci liczbę elementów mniejszych lub

"zdjecie.jpg", "strona.html"]; równych od średniej.

ile = 4;

to należy wyświetlić:

dane (4)

art (3)

zdjecie (7)

strona (6)

2

8. (2 pkt.) Napisz deklarację klasy TBilet o po-9. (4 pkt.) Zdefiniuj metody klasy TBilet.

lach prywatnych:

string skad;

//stacja poczatkowa,

string dokad; //stacja koncowa

float km;

//odleglosc wyrazona

//w kilometrach

double cenaJ; //cena przejazdu

//za jeden kilometr

int znizka;

//obnizka ceny biletu

//w procentach

oraz publicznych metodach:

- konstruktor bezparametrowy inicjujący pola skad i dokad pustymi łańcuchami oraz zerujący pozostałe pola,

- funkcja ustaw ustawiająca pola na pod-stawie swoich parametrów,

- funkcja oblicz zwracająca cenę biletu z uwzględnieniem przysługującej zniżki,

- funkcja drukuj wyświetlająca na ekranie stację początkową i końcową, zniżkę oraz cenę biletu.

10. (2 pkt.)

Zadeklaruj obiekty b1 i b2 typu

TBilet dla matki z dzieckiem w wieku szkolnym jadącej z Lublina do Warszawy.

Wy-

świetl na ekranie bilet osoby dorosłej i bilet dziecka oraz łączny koszt biletów.

Odległość między Lublinem i Warszawą wynosi 175 km, opłata za przejazd jednego kilometra jest równa 0.2 zł, zaś zniżka przysługująca dziecku w wieku szkolnym wynosi 33%.

3

11. (2 pkt.) Podaj definicję funkcji o nagłówku 12. (2 pkt.) W pliku tekstowym "srednie.txt"

zapisane są w kolejnych liniach dane studen-void LosujElem(int tab[], int n,

tów: numer indeksu, nazwisko, imię i średnia.

int a, int b);

która wypełni n pierwszych elementów tablicy 12233

Jan

Kowalski

3.5

tab losowo wybranymi liczbami całkowitymi 14263

Weronika

Nowak

3.85

z przedziału [a, b].

13267

Monika

Kwiatek

4.05

Uwaga. W rozwiązaniu należy użyć funkcji 12325

Marek

Malik

4.33

int losuj(int limit);

Napisz ciąg instrukcji wyświetlający ponume-która zwraca losowo wybraną liczbę z prze-rowaną listę osób, które mają średnią większą działu [0, limit].

lub równą 4.0.

13. (3 pkt.) Napisz definicję funkcji o nagłówku bool K(string zrodlo,string kopia);

która kopiuje zawartość pliku o nazwie przekazanej przez parametr zrodlo do pliku o nazwie przekazanej przez parametr kopia.

Podczas kopiowania zastąp wszystkie wielo-krotne spacje pojedynczą spacją.

Funkcja

ma zwracać true, gdy powiodły się wszystkie operacje plikowe lub false, w przeciwnym przypadku.

4