Egzamin z „Podstaw informatyki i programowania” 2007/2008
Imię i nazwisko:..................................................
1. Napisz funkcję logiczną, która dla zadanej
parametrem wartości rzeczywistej
x
, oblicza
parametr
y=
2x
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.
2. Podaj definicję funkcji rekurencyjnej o
nagłówku
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
.
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
.
1
1
2
3
4
5
6
7
8
9
10 11 12 13 14 suma
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;
-----------------------------------
-----------------------------------
-----------------------------------
-----------------------------------
-----------------------------------
-----------------------------------
5. Dla danej deklaracji
enum TPrzedmioty{mat, jpol, jang,
przyr, hist};
napisz funkcję o nagłówku
string PrzedToStr(TPrzedmioty p);
która zwraca jako wynik pełną nazwę przedmiotu
odpowiadającego parametrowi
p
. Wykorzystaj
instrukcję
switch
.
6. Dla typu wyliczeniowego
TPrzedmioty
z
poprzedniego zadania napisz funkcję o nagłówku
void Drukuj_plan_zajec(
TPrzedmioty plan[], int n,
int g, int m);
która wyświetli nazwy przedmiotów
PrzedToStr(plan[k])
,
0kn
, 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
...
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 nagłówku
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
nagłówku
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
nagłówku
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.
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:
Lista najlepszych
Para nr … Nazwa_tańca1
Para nr … Nazwa_tańca2
…
Koniec zestawienia
12. Podaj definicję funkcji rekurencyjnej o
nagłówku
int Parzyste(unsigned int n);
obliczającej ilość cyfr parzystych liczby
n
.
(
0
jest liczbą parzystą).
4
13. Napisz deklarację klasy
TWaga
z 2 polami
prywatnymi:
int kg; //ilość kilogramów
int g; //ilość gramów mniejsza od 1000.
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
==
.
14. Napisz część implementacyjną klasy
TWaga
.
5