Informatika2-2012/Gyakorlat03

A MathWikiből
(Változatok közti eltérés)
(Új oldal, tartalma: „== Típusok, tömbök, függvények == A lenti feladatokat a CodeLite-ban oldhatjátok meg legegyszerűbben (ne felejtsetek el minden feladathoz új projektet nyitni!)…”)
 
 
(egy szerkesztő 4 közbeeső változata nincs mutatva)
4. sor: 4. sor:
  
 
   
 
   
 
+
===== Miért nem fut végtelen ciklusba a következő kód? =====
===== Miért nem fut végtelen ciklusba a következõ kód? =====
+
  
 
<c>
 
<c>
18. sor: 17. sor:
 
Módosítsd úgy a kódot, hogy minden lépésnél írja ki a képernyőre ''i'' értékét, szóközökkel elválasztva! (Újsor jelet csak a ciklus után írj ki, egyszer!)
 
Módosítsd úgy a kódot, hogy minden lépésnél írja ki a képernyőre ''i'' értékét, szóközökkel elválasztva! (Újsor jelet csak a ciklus után írj ki, egyszer!)
 
   
 
   
 +
 
===== Adatlap =====
 
===== Adatlap =====
 +
 
Kérj be adatokat a felhasználótól egy emberről, mégpedig a következőket:
 
Kérj be adatokat a felhasználótól egy emberről, mégpedig a következőket:
 
* születési év
 
* születési év
25. sor: 26. sor:
  
 
Majd írd ki a képernyőre ugyanezeket, szépen formázva, egymás alá rendezve, így nézzen ki (használd a printf-ben a "\t"-t arra hogy tab-ot írj ki):
 
Majd írd ki a képernyőre ugyanezeket, szépen formázva, egymás alá rendezve, így nézzen ki (használd a printf-ben a "\t"-t arra hogy tab-ot írj ki):
   Kora:     19    ev
+
   Kora:       19    ev
   Magassag:  1.75  m
+
   Magassaga:  1.75  m
   Tomeg:    69    kg
+
   Tomege:    69    kg
  
 
Válaszd meg jól a változók típusait amiket használsz!
 
Válaszd meg jól a változók típusait amiket használsz!
34. sor: 35. sor:
 
A printf-ben "%1.8f" -fel jelölheted hogy egy float típusú változót úgy akarsz kiírni hogy az egész részt egy karakterrel írod ki, a tört részt pedig 8 karakterrel.
 
A printf-ben "%1.8f" -fel jelölheted hogy egy float típusú változót úgy akarsz kiírni hogy az egész részt egy karakterrel írod ki, a tört részt pedig 8 karakterrel.
  
===== Különbség tömbökkel =====
+
===== Hatvány függvény =====
Írj C programot, ami 5 darab egész értéket kér be a felhasználótól (scanf() függvénnyel), és kiírja a kapott legnagyobb és legkisebb szám különbségét ezzel a szöveggel: "A maximalis kulonbseg: ''x''", ahova persze x-et behelyettesíti.
+
 
Használj tömböt az értékek tárolására!
+
Írj hatvány függvényt ("hatvany" névvel), első paramétere az alap, második a kitevő (ne felejtsük el a negatív kitevőket, de elég ha csak egész kitevőkkel működik). A main() függvényben hívd meg a "hatvany()" függvényt néhányszor, és írd a képernyőre az eredményt.
 +
 
 +
 
 +
===== Két szám összege =====
 +
 
 +
Írj egy függvényt, mely összead két egész számot, és kiírja az összeget, de a túlcsordulást egy szöveges üzenettel jelzi. Többféle megoldás létezik. Ha az egyik szám pozitív (y > 0), akkor megnézheted, hogy a másik nagyobb-e, mint INT_MAX - y. Például használható a következő kód:
 +
 
 +
<c>
 +
((y > 0 && x > INT_MAX - y) || (y < 0 && x < INT_MIN - y))
 +
</c>
 +
 
 +
===== Minimum =====
 +
 
 +
Írj függvényt ami a beadott (double típusú elemeket tartalmazó) tömbnek visszaadja a legkisebb elemét (első paraméter a tömb, második a tömb mérete). Itt is (és a többi feladatnál is) a main() végezze az eredmény kiírását (és az esetleges beolvasást a felhasználótól az elején, de ez nem fontos, a main() függvény kódjában közvetlenül is definiálhatod az átadandó értékeket).
 
   
 
   
------ nincs kész, wip
+
 
 +
===== Számláló =====
 +
 
 +
Írj függvényt ami a beadott karaktereket tartalmazó tömbben megszámolja hányszor szerepel egy adott karakter (első paraméter a tömb, második a tömb mérete, harmadik a keresendő elem).
 +
 +
 
 +
===== Kereső =====
 +
 
 +
Módosítsd úgy az előző függvényt, hogy a keresendő elem első előfordulási indexét adja vissza.
 +
 
  
 
===== Medián =====
 
===== Medián =====
 +
 
Bemenet: maximum 30 pozitív egész szám, 0-val jelezzük ha vége a bemenetnek.
 
Bemenet: maximum 30 pozitív egész szám, 0-val jelezzük ha vége a bemenetnek.
Kimenet: a számsorozat mediánja (vagyis az az elem ami ha sorbarendeznénk a számokat, a középső lenne)
+
Kimenet: a számsorozat mediánja (vagyis a középső elem ha sorbarendezzük a számokat).
+
+
5.
+
Írjunk hatvány függvényt, elsõ paraméter az alap, második a kitevõ (ne felejtsük el a negatív kitevõket, de elég ha csak egész kitevõkkel mûködik).
+
+
6.
+
Írjunk függvényt ami a beadott tömbnek visszaadja a legkisebb elemét (elsõ paraméter a tömb, második a tömb mérete, vagy használhatunk valamilyen lezáró számot is).
+
+
7.
+
Írjunk függvényt ami a beadott tömbben megszámolja hányszor szerepel egy adott elem (elsõ paraméter a tömb, második a tömb mérete, harmadik a keresendõ elem).
+
+
8.
+
Módosítsuk az elõzõ függvényt, hogy a keresendõ elem elsõ elõfordulási indexét adja vissza.
+
  
 +
A feladat megoldásához előbb nagyság szerint sorba kell rendezni a számokat. Erre többféle algoritmus létezik. Ha szereted a kihívásokat, akkor ki is találhatsz egyet, ha viszont nem, vagy nincs már már idő a gyakorlat végén,
 +
akkor használd a buborék rendezést: http://wiki.prog.hu/wiki/Bubor%C3%A9krendez%C3%A9s_%28algoritmus%29 . De ebben az esetben se copy-paste-elj, hanem értsd meg az algoritmust és gépeld be a saját változóneveiddel.
  
===== Toplista - specifikáld és teszteld is =====
+
Legyen a ''main()''-en kívül két függvény is a programodban, az egyik a rendezést oldja meg, a másik egy rendezett tömbből visszaadja a medián értékét.
Írj C programot, ami bekér valamennyi számot a felhasználótól, amíg nullát nem kap. Utána adja vissza a toplistát, vagyis a legnagyobb valahány (''n'') számot a kapottak közül.
+

A lap jelenlegi, 2012. február 23., 10:07-kori változata

Tartalomjegyzék

Típusok, tömbök, függvények

A lenti feladatokat a CodeLite-ban oldhatjátok meg legegyszerűbben (ne felejtsetek el minden feladathoz új projektet nyitni!), de akinek a konzolos, gcc-s fordítás a szimpatikusabb úgy is csinálhatja.


Miért nem fut végtelen ciklusba a következő kód?
#include<stdio.h>
int main(void){
    char i;
    for(i = 1; i != 0; i++){}
    return 0;
}

Módosítsd úgy a kódot, hogy minden lépésnél írja ki a képernyőre i értékét, szóközökkel elválasztva! (Újsor jelet csak a ciklus után írj ki, egyszer!)


Adatlap

Kérj be adatokat a felhasználótól egy emberről, mégpedig a következőket:

  • születési év
  • magasság méterben
  • tömeg kilogrammban

Majd írd ki a képernyőre ugyanezeket, szépen formázva, egymás alá rendezve, így nézzen ki (használd a printf-ben a "\t"-t arra hogy tab-ot írj ki):

 Kora:       19     ev
 Magassaga:  1.75   m
 Tomege:     69     kg

Válaszd meg jól a változók típusait amiket használsz!

A tört érték kiírásának formázásához segítség: A printf-ben "%1.8f" -fel jelölheted hogy egy float típusú változót úgy akarsz kiírni hogy az egész részt egy karakterrel írod ki, a tört részt pedig 8 karakterrel.

Hatvány függvény

Írj hatvány függvényt ("hatvany" névvel), első paramétere az alap, második a kitevő (ne felejtsük el a negatív kitevőket, de elég ha csak egész kitevőkkel működik). A main() függvényben hívd meg a "hatvany()" függvényt néhányszor, és írd a képernyőre az eredményt.


Két szám összege

Írj egy függvényt, mely összead két egész számot, és kiírja az összeget, de a túlcsordulást egy szöveges üzenettel jelzi. Többféle megoldás létezik. Ha az egyik szám pozitív (y > 0), akkor megnézheted, hogy a másik nagyobb-e, mint INT_MAX - y. Például használható a következő kód:

((y > 0 && x > INT_MAX - y) || (y < 0 && x < INT_MIN - y))
Minimum

Írj függvényt ami a beadott (double típusú elemeket tartalmazó) tömbnek visszaadja a legkisebb elemét (első paraméter a tömb, második a tömb mérete). Itt is (és a többi feladatnál is) a main() végezze az eredmény kiírását (és az esetleges beolvasást a felhasználótól az elején, de ez nem fontos, a main() függvény kódjában közvetlenül is definiálhatod az átadandó értékeket).


Számláló

Írj függvényt ami a beadott karaktereket tartalmazó tömbben megszámolja hányszor szerepel egy adott karakter (első paraméter a tömb, második a tömb mérete, harmadik a keresendő elem).


Kereső

Módosítsd úgy az előző függvényt, hogy a keresendő elem első előfordulási indexét adja vissza.


Medián

Bemenet: maximum 30 pozitív egész szám, 0-val jelezzük ha vége a bemenetnek. Kimenet: a számsorozat mediánja (vagyis a középső elem ha sorbarendezzük a számokat).

A feladat megoldásához előbb nagyság szerint sorba kell rendezni a számokat. Erre többféle algoritmus létezik. Ha szereted a kihívásokat, akkor ki is találhatsz egyet, ha viszont nem, vagy nincs már már idő a gyakorlat végén, akkor használd a buborék rendezést: http://wiki.prog.hu/wiki/Bubor%C3%A9krendez%C3%A9s_%28algoritmus%29 . De ebben az esetben se copy-paste-elj, hanem értsd meg az algoritmust és gépeld be a saját változóneveiddel.

Legyen a main()-en kívül két függvény is a programodban, az egyik a rendezést oldja meg, a másik egy rendezett tömbből visszaadja a medián értékét.

Személyes eszközök