Informatika1-2007/Feladatok

A MathWikiből
A lap korábbi változatát látod, amilyen Wettl (vitalap | szerkesztései) 2007. október 9., 17:15-kor történt szerkesztése után volt.

Tartalomjegyzék

Feladatok

Logikai műveletek

  1. Írjuk fel az igazságtábláját az a \land (b \lor \lnot a) kifejezésnek (\land = AND, \lor = OR, \lnot = NOT, ).
  2. Ellenőrizzük, hogy az alábbi ábrán látható logikai áramkör egy összeadó áramkör, mely két összeadandó szám k-adik bitjét adja össze, hozzáadva a (k − 1)-edik bitek összeadásának "átviteli" bitjét.


Számábrázolás

  1. Írjuk át az alábbi számokat kettes számrendszerbe:
    (a) 15   (b) 100   (c) 15.4   (d) 1/3
  2. Számolás kettes számrendszerben: írjuk át az alábbi műveletekben megadott számokat kettes számrendszerbe, végezzük el a műveletet, majd alakítsuk vissza 10-es számrendszerbe.
    1. 1 3/4 + 5 13/16
    2. 1 1/3 + 2 2/3
  3. Konvertáljuk az alábbi 2-es komplemensben ábrázolt számokat 10-es számrendszerbe. Minden szám épp annyi bites ábrázolást használ ahány bitje meg van adva.
    (a) 00101011   (b) 1101   (c) 11010   (d) 10111111
  4. Konvertáljuk 2-es komplemens 8-bites alakba az alábbi számokat
    (a) 15   (b) -15 &nbsp (c) 100   (d) -100
  5. Melyik a legnagyobb és legkisebb ábrázolható szám 2-es komplemens ábrázolás esetén (a) négy, (b) nyolc biten?
  6. Végezzük el az alább megadott műveleteket a 2-es komplemens ábrázolással megadott számokkal, majd ellenőrizzük az eredményt 10-es számrendszerbe konvertálással. Figyeljünk az esetleges túlcsordulásra.
    1. 1011 + 0011
    2. 11100 + 01111
    3. 0110 + 0101
    4. 1010 + 1011
  7. ábrázoljuk lebegőpontos számábrázolással az az alábbi számokat a megadott bitfelosztás szerint
    1. 1.375 (1+3+4 biten)
    2. 2.375 (1+3+4 biten)
    3. -1.375 (1+3+4 biten)
    4. -1025.4 (1+8+23 biten)
  8. Írjuk át az alábbi lebegőpontosan ábrázolt számot 10-es számrendszerbe.
    1. 1 101 0111 (1+3+4)
    2. 0 10000011 01010110000000000000000 (1+8+23)

Karakterkódolás

A következő kérdésekben csak a megadott információk alapján adjuk meg a választ!

  1. Az "a" ASCII kódja #61. Mennyi "C" kódja?
  2. Az "Õ" (LATIN CAPITAL LETTER O WITH TILDE) latin-1 kódja #D5. Mennyi az "ő" (LATIN SMALL LETTER O WITH DOUBLE ACUTE) latin-2 kódja?
  3. Az "ű" (LATIN SMALL LETTER U WITH DOUBLE ACUTE) unicode kódja U+0171. Mennyi az UTF-8 kódja?

Mennyiségek

  1. Hány byte 1 KB - 1 KiB?
  2. Egy gibibyte hány gigabyte?

Gépek, programok

Mit csinálnak a kovetkező RAM-gépre írt programok?

1. Az első program a 2. rekeszbe tesz egy számot. Mire jut vele?

 1	LOAD  =	33
 2	STORE	2 
 3	DIV   =	2
 4	STORE	1
 5	MULT  =	2
 6	SUB	2
 7	JZERO	12
 8	LOAD	2
 9	MULT  =	3
10	ADD   =	1
11	JUMP	2
12	LOAD	1
13	STORE	2
14	SUB   =	1
15	JZERO	18
16	LOAD	1
17	JUMP	3
18	HALT	11

2. Az alábbi program az 1-es és 2-es rekeszbe teszi inputját, és a 6-ba az outputját. Mit csinál?

 0	LOAD  =	12
 1	STORE	1
 2	LOAD  =	16
 3	STORE	2
 4	LOAD	2
 5	JZERO	19
 6	LOAD	1
 7	DIV	2
 8	STORE	3
 9	MULT	2
10	STORE	4
11	LOAD	1
12	SUB	4
13	STORE	5
14	LOAD	2
15	STORE	1
16	LOAD	5
17	STORE	2
18	JUMP	4
19	LOAD	1
20	STORE	6
21	HALT	0

Pszeudokód, folyamatábra, struktogram

1. Mit csinál az alábbi Valami nevű eljárás a Valami(3) hívás után?

procedure Valami( n )
   print n
   if n > 0 then Valami( n-1 )
   print n

2. Írjuk át az alábbi programot repeat utasítással, majd készítsünk mindkét változatról struktogramot és folyamatábrát!

c <- 1
x <- 1
while x < 5 do
   c <- c*x
   x <- x+1

3. Legyen x és y két nemnegatív egész szám. Az alábbi program kiszámítja a szorzatukat. Ha hibás, javítsuk ki!

szorzat <- y
számláló <- 1
while számláló < x do
   szorzat <- szorzat + y
   számláló <- számláló + 1

Maple feladatok

1. Mi lesz rek(5) értéke?

rek := proc(x::integer)
local s,i;
  if x<3 then
    return x;
  end if;
  s := 0;
  for i from 1 to x-1 do
    s := s + rek(i);
  end do:
  s;
end proc;


2. Mi lesz az eredménye az alábbi kódnak?

select(i->isprime(i+2),[seq(i,i=1..20)]);

3. Mit ad vissza az alábbi program? L egy lista, amelyben sok 8 és 9 elem van (mindegyikből legalább 10).

k := 0;
for j from 1 to 3 do
  k := k+1;
  while(L[k] <> 8) do
    k := k+1;
  end do;
end do:
k;

Mit ad vissza az alábbi program?

lista := [1,5,4,6,3,2,2];
k := 1; q := lista[1];
for j from 2 to nops(lista) do
 if lista[j] > q then
  k := j;
  q := lista[j];
 end if;
end do;
k;
Személyes eszközök