Egzamin ze "Wstępu do Informatyki" 2005 / 2006r Grupa A
Imię i nazwisko:................................................................. Ocena z ćwiczeń...........................
1) (1 pkt) Podać 8-bitową reprezentację
4) (2 pkt) Napisać ciąg instrukcji równoważny uzupełnieniową liczby –90.
poniższemu, zastępując pętlę do while pętlą
while.
........................................................................................
do
{
2) (1pkt) Poda
cin>>x;
ć reprezentację dwójkową ułamka
if (x>=10)
dziesiętnego 0,625.
cout<<"co najmniej"
........................................................................................
<<"dwucyfrowa";
else if(x>=0)
cout<<"jednocyfrowa";
3) (3 pkt) Dokończyć ciąg instrukcji, który dla
}while (x>=0);
wczytywanej liczby całkowitej dodatniej x
cout<<”|”<<x<<”|=”<<-x;
tworzy liczbę y według następującej reguły: y
jest liczbą x czytaną od tyłu, przy czym każda z
cyfr 1,2,...,9 jest pomniejszona o 1, cyfrę 0
zastępujemy cyfrą 9. Np. dla x=230456,
y=543921.
int x,y;
do
{
cout<<"Podaj liczbę całkowitą"
<<"dodatnią";
cin>>x;
}while(…………………………………);
5) (2 pkt) Dla danej liczby h wyświetlić na ekranie używając zagnieżdżonej pętli for następujący
ciąg liczb, poprzedzony odpowiednią ilością
gwiazdek, np. dla h=5 ciąg gwiazdek i liczb
wygląda następująco:
5
*4
**3
***2
****1
1A
6) (2 pkt) W programie zadeklarowana jest
8) (3 pkt) Napisać funkcję int sumdziel(int n), całkowita zmienna n:
która zwraca sumę liczb naturalnych będących
int n;
dzielnikami liczby całkowitej podanej jako
i nadana jest jej już jakaś dodatnia, parzysta
argument. Należy uwzględnić 1 i n jako dzielniki
wartość z zakresu od 2 do 20.
liczby n.
Ponadto dane są dwie tablice:
double a[20],b[10];
z których pierwsza, w kolejnych wyrazach
zaczynając od początku, zawiera już n liczb.
Napisać fragment programu, który oblicza
średnie arytmetyczne kolejnych par liczb
z tablicy a i wpisuje je do kolejnych wyrazów
tablicy b.
9) (2 pkt) Napisać ciąg instrukcji, który:
7) (4 pkt) W programie jest zadeklarowana
a) pobiera od użytkownika liczbę całkowitą do
zmienna całkowitoliczbowa n. Jest już do niej
zmiennej x;
wpisana pewna wartość z zakresu od 1 do 25.
b) jeśli pobrana liczba jest mniejsza lub równa 0,
Zadeklarowana jest także tablica tab
próbuje ją pobrać ponownie;
dwudziestu pięciu liczb całkowitych. Jej n
c) w przypadku trzech nieudanych prób przerywa
pierwszych kolejnych wyrazów zaczynając od
dalsze pobieranie liczb i ustawia wartość
początku wypełnione jest liczbami.
zmiennej x na 1.
Napisać fragment programu, który odrzuca
W zadaniu należy wykorzystać pętlę do while i spośród tych n liczb wszystkie większe lub
instrukcję warunkową if, zaś można pominąć
równe 6, przesuwa pozostałe do początku
instrukcje wypisujące komunikaty dla
tablicy nie zmieniając ich kolejności, i wpisuje
użytkownika wprowadzającego liczby.
do zmiennej n ile liczb pozostało.
2A
10) (2 pkt) Napisać funkcję, która oblicza i zwraca 12) (4 pkt) Napisać funkcję o nagłówku wartość funkcji f(x) dla liczby rzeczywistej x
float Horner(float x, int n, int a[]); podanej jako parametr, według wzoru:
która oblicza przy pomocy schematu Hornera
−
n
2
x +
dl
,
4
a x ≤ −2
a (
x 2
)
1
.
k
− k k
wartość sumy ∑
k =0
f ( x) = 1
x +
dl
,
1
a -
2 < x ≤ 2
2
,
2
dl
a
x > 2
11) (2 pkt) Napisać instrukcję selekcji if, która dla okręgu S o środku w punkcie o współrzędnych
s1, s2 i promieniu r oraz dla danego punktu P
o współrzędnych x, y wyświetli jedną
13) (3 pkt) Dana jest reprezentacja binarna liczby z poniższych informacji:
zapisana w tablicy b:
a) "Punkt P jest środkiem okręgu S"
b[n-1]b[n-2]...b[0].
b) "Punkt P leży na okręgu S"
Napisać ciąg instrukcji obliczający reprezentację
c) "Punkt P leży wewnątrz okręgu S i nie jest
szesnastkową tej liczby i zapisujący ją w wektorze
jego środkiem"
h o wyrazach całkowitych, np. jeżeli b[0]=1,
d) "Punkt P leży na zewnątrz okręgu S."
b[1]=0, b[2]=0, b[3]=1, b[4]=1, b[5]=1,
b[6]=0, b[7]=1, to h[0]=9, h[1]=11.
Założyć, że n jest liczbą podzielną przez 4.
3A
14) (3 pkt) Napisać funkcję ReprHex, która dla zadanej liczby całkowitej podanej w
pierwszym parametrze umieści w tablicy
podanej jako drugi parametr jej reprezentację
szesnastkową, przy czym tab[0] jest najmniej
znaczącą cyfrą. Funkcja ma wykorzystywać
instrukcję switch postaci:
switch(x%16)
{
case 15: tab[i]=’F’;
…
case 9: tab[i]=’9’;
…
}
Wartością funkcji ma być liczba cyfr
heksadecymalnych liczby x.
int ReprHex(int x, char tab[])
15) (3 pkt) Dokończyć funkcję DataPoprawna, która
{
zwraca wartość true dla poprawnej daty z XX i
XXI wieku, zaś wartość false w przeciwnym
przypadku.
bool DataPoprawna(int d, int m, int r)
{
if(d<1…………………………………………………………)
return false;
switch(
4A