Egzamin z Podstaw informatyki i programowania 2007/2008 Imię i nazwisko:... 1 2 3 4 5 6 7 8 9 10 11 12 13 14 suma 1. Napisz funkcję logiczną, która dla zadanej parametrem wartości rzeczywistej x, oblicza parametr 2x y= x 15.5 x 4 oraz zwraca true dla każdego x>4 i x 15.5. W przeciwnym wypadku, funkcja ma zwrócić false. 3. Struktura bz typu struct BZnaki{ int iles;//ilość spacji int ilet;//ilość tabulacji int ilen;//ilość znaków nowej linii jest parametrem funkcji BialeZnaki typu logicznego, której zadaniem jest obliczanie pól tej struktury dla pliku tekstowego, którego nazwa jest drugim parametrem tej funkcji. Wartością funkcji ma być true w przypadku, gdy wszystkie operacje na pliku powiodły się i false w przeciwnym wypadku. Podaj definicję funkcji BialeZnaki. 2. Podaj definicję funkcji rekurencyjnej o void Odwr(float a[],int l,int p); odwracającej kolejność elementów a[l], a[l+1],,a[p] tablicy a w przypadku, gdy l<p. 1
4. Dana jest funkcja int f(int a, int & b, int c){ c = a; a = b; b = c; cout<< b<<' '<<c<<endl; return a/c; } Co zostanie wyświetlone na ekranie w wyniku wykonania poniższych instrukcji? int x = 3, y = 1, z = 2; cout<<f(z,x,y)<<endl; cout<< x= <<x<< \ny= <<y << \nz= <<z<<endl; 6. Dla typu wyliczeniowego TPrzedmioty z poprzedniego zadania napisz funkcję o void Drukuj_plan_zajec( TPrzedmioty plan[], int n, int g, int m); która wyświetli nazwy przedmiotów PrzedToStr(plan[k]), 0 k n, oraz godziny ich prowadzenia przy założeniu, że pierwsza godzina lekcyjna rozpoczyna się o czasie g:m podanym jako parametry funkcji oraz, że wszystkie przerwy są 5-minutowe. Przykładowe wyświetlenie: 8:05 8:50 jezyk polski 8:55 9:40 jezyk polski 9:45 10:30 przyroda... 5. Dla danej deklaracji enum TPrzedmioty{mat, jpol, jang, przyr, hist napisz funkcję o string PrzedToStr(TPrzedmioty p); która zwraca jako wynik pełną nazwę przedmiotu odpowiadającego parametrowi p. Wykorzystaj instrukcję switch. 7. Dany jest typ strukturalny postaci struct TUczen { string imie, nazwisko; int numer; //nr identyfikacyjny ucznia int punkty; //ilość punktów z testu oraz typ strukturalny struct TKlasa { int ilu_uczniow; TUczen tab[40]; //tablica zawiera dane o // wszystkich uczniach w klasie 2
Napisz funkcję o void Lista(TKlasa& klasa, int limit); wyświetlającą uczniów ze struktury klasa, którzy uzyskali liczbę punktów nie mniejszą od parametru limit zgodnie ze schematem Lista przyjętych 1. Nazwisko1 Imie1 2. Nazwisko2 Imie2 3. Nazwisko3 Imie3 Koniec zestawienia 8. Wykorzystując typy strukturalne z poprzedniego zadania, podaj definicję funkcji o int Zdali(TKlasa& klasa, int limit); modyfikującą parametr klasa typu TKlasa w ten sposób, żeby zawierał on jedynie uczniów, którzy zaliczyli test. Wynikiem funkcji jest ilość uczniów, którzy nie zaliczyli testu. 9. Dany jest plik fizyczny o następującej strukturze: Nowak Jan 2 39 Majewska Ola 3 2 Kowal Karol 1 59 zawierający dane o wynikach marszobiegu: nazwisko, imię, liczbę minut i sekund z jaką uczestnik pokonał trasę. Napisz funkcję o bool Zapisz(string zrodlo, string wynik, int s); która zapisze do pliku wynik imiona i nazwiska tych uczestników marszobiegu, którzy pokonali trasę w czasie krótszym od s. Plik wynik powinien mieć następującą postać: 1 Jan Nowak 2 Karol Kowal gdzie w każdym wierszu najpierw występuje liczba porządkowa, potem imię i nazwisko. Ponadto funkcja ma dodatkowo zwracać wartość true, jeśli udały się operacje plikowe i false w przeciwnym wypadku. 3
10. Podaj definicje 2 typów strukturalnych o nazwach TPara i TZawody do rejestrowania ocen wszystkich zawodników w konkursie tańca. Pierwszy z nich ma zawierać pola: nazwa_tanca, numer_pary i oceny 3 sędziów w skali od 1 do 6, zaś drugi winien zawierać pola przechowujące ilość par i dane o wynikach kolejnych par. Następnie napisać funkcję typu void, która wczytuje informację o wynikach wszystkich par. Lista najlepszych Para nr Nazwa_tańca1 Para nr Nazwa_tańca2 Koniec zestawienia 12. Podaj definicję funkcji rekurencyjnej o int Parzyste(unsigned int n); obliczającej ilość cyfr parzystych liczby n. (0 jest liczbą parzystą). 11.Napisz funkcję typu int zapisującą do pliku, którego nazwa zadana jest jako parametr funkcji, numery tych wszystkich par i nazwy tańców przez nie zaprezentowanych, które otrzymały od sędziów średnią wyższą od 5.5 punktów. Funkcja powinna zwracać ilość takich par. Zestawienie powinno być postaci: 4
13. Napisz deklarację klasy TWaga z 2 polami prywatnymi: int kg; //ilość kilogramów int g; //ilość gramów mniejsza od 1000. 14. Napisz część implementacyjną klasy TWaga. Ponadto w klasie tej powinny znaleźć się metody: - konstruktor ustalający pola prywatne klasy na podstawie wartości jego parametrów, których wartościami domyślnymi mają być zera; - metoda Ustaw ustalająca pola prywatne klasy zgodnie z wartościami jej parametrów; - 2 metody Kilogramy i Gramy typu int, zwracające wartości pól prywatnych; - metoda Wyswietl wyświetlająca na ekranie wagę w postaci dziesiętnej; - metoda CzyWiększa zwracająca wartość 1, jeśli waga obiektu, na rzecz którego zostanie wywołana metoda, jest większa niż waga obiektu podanego jako parametr, wartość 1, jeśli ta waga jest mniejsza i 0 gdy obie wagi są takie same, - przeciążony operator ==. 5