Egzamin z „Podstaw informatyki i programowania” 2008/2009

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

1

2

3

4

5

6

7

8

9

10 11 12 13 suma

1. Dana jest funkcja o nagłówku

3. Dana jest funkcja

int RzutKostka();

float Funkcja(int m, int t[]) zwracająca liczbę oczek wyrzuconych przy rzucie

{

kostką do gry. Napisz funkcję, która dla danej float suma=0.0;

liczby dodatniej

for (int i=0; i<m; i++)

n, oznaczającej liczbę rzutów

{

kostką,

wyświetli

sześć

częstotliwości

suma = suma + t[i];

wyrzuconych oczek. Przykładowo dla wyników i++;

ośmiu rzutów 2, 1, 5, 2, 5, 2, 4, 3

}

funkcja powinna wyświetlić

return suma/m;

1 1

}

2 3

Podaj wartość zmiennej wynik po wykonaniu 3 1

instrukcji

4 1

int t[] = {1,2,3,4,5,6,7,8,9};

5 2

float wynik = Funkcja(5,t);

6 0

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

4. Napisz program, który dla danego pliku formula.txt obliczy i wyświetli ile razy wystąpił w nim łańcuch F1.

2. Napisz

definicję

funkcji

rekurencyjnej

o nagłówku int IleRazy(float tab[], int n, float szukana), która zwróci ilość wystąpień liczby szukana w tablicy tab[0..n-1].

5. Dana jest struktura

struct TSamochod

{

string marka; // nazwa modelu

int pojemnosc; // pojemność silnika int przebieg; // przebieg samochodu

};

Napisz funkcję Wczytaj typu void, która

pobierze z klawiatury informacje o samochodzie i zwróci je jako parametr typu TSamochod.

7. Wykorzystując struktury TSamochod oraz TKomis z poprzednich zadań, napisz funkcję o nagłówku

int zapisz(string dst, TKomis & k, int pmin, int pmax);

która zapisze do pliku o nazwie przekazanej jako parametr dst dane marka, pojemność i przebieg 6. Wykorzystując

strukturę

TSamochod

o wszystkich samochodach mających przebieg z poprzedniego zadania oraz strukturę

z zakresu

od

pmin

do

pmax,

gdzie

struct TKomis

{

pmin ≤ pmax. Wynikiem funkcji ma być ilość

int ilosc_sam;// ilość_sam<100

zapisanych do pliku samochodów.

TSamochod tab_sam[100];

};

napisz funkcję o nagłówku

void podaj_oc(TKomis & k);

która wyświetli na ekranie zestawienie marek samochodów będących w komisie przekazanym jako parametr k oraz kosztu ich ubezpieczenia OC określonego tabelą:

pojemność silnika koszt ubezpieczenia OC

do 1300

800,00 zł

od 1301 do 1600

1 200,00 zł

powyżej 1600

1 500,00 zł

8. Napisz funkcję o nagłówku

na ekranie numer najszybszego okrążenia

int * nowa_tablica(int n);

kierowcy kto oraz jego czas. Jeśli nie uda się która dla danej liczby naturalnej n utworzy otwarcie pliku, lub nazwisko szukanego kierowcy dynamicznie n-elementową tablicę i wypełni ją nie wystąpi w pliku, na ekranie należy wyświetlić ciągiem 0,1,0,1, ... . Wynikiem funkcji

informację o błędnych danych.

ma być adres nowo utworzonej tablicy lub NULL

w przypadku n<1.

9. Napisz funkcję zwracającą true, jeżeli każdy element

n-elementowej tablicy t, oprócz

pierwszego, jest większy od sumy elementów poprzedzających go w tej tablicy oraz wartość false w przeciwnym przypadku.

11. Napisz definicję funkcji rekurencyjnej, która dla danej parametrem naturalnej liczby n, zwróci n-ty wyraz ciągu określonego wzorem:

an 1

a

n =

−

, n =

3

,

2

(2 an− + a

1

n−2 )

,...,

gdzie a = ,

1 a = 2.

10. W pliku tekstowym w kolejnych liniach 0

1

pamiętane są następujące wyniki wszystkich okrążeń pewnego wyścigu:

nazwisko_kierowcy (string),

nr_okrążenia (int),

czas_okrążenia_w_sekundach (int).

Napisz funkcję o nagłówku

void NajlepszyCzas(string w,

string kto);

która na podstawie danych zawartych w pliku o nazwie przekazanej przez parametr w wyświetli

12. Napisz deklarację klasy TSkoczek z polami 13. Podaj

definicję

konstruktora,

metody

prywatnymi nazwisko, imie oraz skoki UstawOdl oraz Czy_lepszy dla klasy

będącym trzyelementową tablicą przechowującą TSkoczek z poprzedniego zadania.

długości

kolejnych

trzech

skoków

poszczególnych zawodników.

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

- konstruktor bezparametrowy przypisujący

polom imie i nazwisko puste łańcuchy

i zerujący tablicę długości skoków;

- metoda UstawOdl, o dwóch parametrach

i(int) oraz dlg (float), przypisująca współrzędnej

skoki[i]

wartość

dlg.

W przypadku niepoprawnej wartości indeksu

i lub ujemnej długości skoku metoda nie

wykonuje

żadnych operacji;

-

metoda

Pobierz _ dane

wczytująca

z klawiatury dane imię, nazwisko i 3 długości skoków danego zawodnika i zapisująca je

w części prywatnej;

- metoda Wyswietl wyświetlająca na ekranie wszystkie dane o skoczku;

- metoda Czy _ lepszy zwracająca wartość 1, jeśli najdłuższy skok obiektu, na rzecz którego zostanie wywołana, jest lepszy niż najdłuższy skok obiektu podanego jako parametr metody, zaś wartość -1, jeśli ten skok jest gorszy i 0 gdy oba skoki są takie same.