Egzamin ze "Wstępu do Informatyki" 2008/ 2009
Imię i nazwisko:.................................................................
Kierunek.....................................................
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
1) (1 pkt) Podaj reprezentację dwójkową ułamka 5) (2 pkt) Napisz fragment programu, który oblicza dziesiętnego 0,5625.
i przypisuje zmiennej w wartość funkcji f(x) określonej wzorem
..........................
− ,
1
gdy x∈ (− ∞ ;− )
1 ,
2
1
2) (1 pkt) Podaj reprezentację szesnastkową f ( x) = x + , gdy x∈ [−
]
1
,
1 ,
liczby
2
(111101011010101)
2.
,
1
gdy x∈ ,
1
( ∞ ).
..........................
3) (1 pkt) Podaj ośmiobitową reprezentację uzupełnieniową liczby: -46.
..........................
4) (3 pkt) Napisz instrukcję switch, która dla danej liczby całkowitej dodatniej nr wyświetli jeden z komunikatów:
pierwsze miejsce
drugie miejsce
6) (3 pkt) Zapłata za dobę hotelową wynosi 50
trzecie miejsce
złotych, jeżeli pobyt w hotelu był dłuższy niż 7
miejsca 4 – 5
dni, 75 złotych dla pobytu od 4 do 6 dni i 100
miejsce niepunktowane
złotych, jeżeli pobyt nie przekroczył 3 dni.
Napisz ciąg instrukcji, który dla ilości dób hotelowych ile_dni obliczy wartość zmiennej do_zaplaty zgodnie z powyższym opisem.
W przypadku ujemnej wartości zmiennej ile_dni wartość zmiennej do_zaplaty ma wynosić 0.
1
7) (2 pkt) Wykorzystując pętlę do while, napisz 9) (3 pkt) Dana jest zmienna całkowita n oraz ciąg instrukcji, który ponawia wczytywanie z dwuwymiarowa tablica tab:
klawiatury liczby a, aż do chwili gdy będzie int n; //1<=n<=20
ona należała do przedziału (− ,
∞ − )
5 ∪
,
5
( ∞ ).
double tab[20][20];
Napisz ciąg instrukcji, który przypisze zmiennej logicznej w wartość true, jeżeli suma n elementów
tab[0][0], tab[1][1],..., tab[n-1][n-1]
tablicy tab jest większa od sumy n elementów tab[0][0], tab[0][1],..., tab[0][n-1]
tej tablicy, zaś false w przeciwnym przypadku.
8) (3 pkt) Dana jest zmienna całkowita n oraz wektor tab:
int n; //1<=n<=150
int tab[150];
Napisz instrukcje, które każdy element tablicy tab zastąpią sumą dwóch sąsiadujących z nim elementów, przy czym pierwszy i ostatni element w tablicy nie powinny zostać zmienione.
Przykład:
tablica początkowa : 2 4 3 5 1
tablica wynikowa: 2 5 9 4 1
10) (2 pkt) Napisz fragment programu, który dla danej liczby naturalnej h wyświetli
równoległobok liczb zgodnie z poniższym formatem (dla h = 5):
5 5 5 5 5
4 4 4 4 4
3 3 3 3 3
2 2 2 2 2
1 1 1 1 1
2
11) (3 pkt) Napisz fragment programu 13) (2 pkt) Napisz fragment programu zapisujący do wyświetlający na ekranie algorytm zapisu n-elementowej tablicy liczb t[0] ... t[n-1]
binarnego dla wczytanej z klawiatury liczby ciąg liczb 4, 8, 12, 16, ...
naturalnej x. Przykładowo dla x=149 należy wyświetlić
149| 1
74| 0
37| 1
18| 0
9| 1
4| 0
2| 0
1| 1
14) (4 pkt) Napisz program, który dla zadanej liczby 0| -
naturalnej n wyznacza i wyświetla największą cyfrę występującą w jej zapisie dziesiętnym.
12) (3 pkt) Napisz ciąg instrukcji, który oblicza przybliżoną wartość x
e , gdzie x jest zadaną
liczbą rzeczywistą, stosując algorytm Hornera y=1,
y=y*x/k+1 (dla k=n, n-1, ..., 1)
otrzymany z rozwinięcia
2
x
x
xn
e ≈ 1+ x +
+ ...+
.
2
!
n
3
15) (3 pkt) Mając deklaracje typów strukturalnych 16) (3 pkt) Zakładając, że książki z informatyki struct TKsiazka
charakteryzują się tym, że w polu kat mają
{
wartość 3, napisz fragment programu
string tytul;
//tytuł książki
wyświetlający tytuły i autorów wszystkich string autor;
//autor książki
int kat;
dostępnych książek informatycznych z biblioteki
//rodzaj książki
bool dostepna; //dostępność:
B z poprzedniego zadania.
//true, gdy jest dostępna,
//false w przeciwnym przypadku
};
struct TBiblioteka
{
int n;// liczba
// książek w bibliotece TKsiazka kat[1000];
};
napisz instrukcje wczytujące dane o k (1<=k<=1000) książkach z biblioteki do struktury TBiblioteka B;
Dla wszystkich wprowadzanych książek w polu dostepna ma być ustawiona wartość true.
4