Oldd meg a feladatokat C nyelven úgy, hogy a konkrét számítást egy (vagy több) függvény végezze. Írd meg a függvényt rekurzív és nem rekurzív módon is. Hasonlítsd össze a két megoldás idoigényét, vagyis azt, hogy a megoldás során hány függvényhívás történik. 1. Írj egy programot, ami kiszámolja n! értékét. 2. Írj egy programot, ami kiszámolja a Fibonacci sorozat n. elemét. A sorozat elemei: a[0]=1, a[1]=1 és n>1 esetén a[n] = a[n-1]+a[n-2]. 3. Általánosítsd a Fibonacci sorozatot: tekintsük azt a k-ad rendu Fibonacci sorozatot, melynek elso k eleme 1 (azaz a[0]=..a[k-1]=1), a többi elemét pedig az elozo k elem összegeként kapjuk, (azaz a[n]=a[n-1]+..+a[n-k]). Írj egy programot ami kiszámolja egy ilyen sorozat n. elemét. 4. Írj egy programot, ami új típusok bevezetése nélkül a leheto legpontosabban kiszámolja n!/((k+m)! * (n-k)!) értékét. Írj egy-egy függvényt az alábbi feladatok megoldására. Ne használj globális változókat, amit csak kell, paraméterként adj át. Ha úgy egyszerubb, az elozoleg megírt függvényelet felhasználhatod. 5. Cseréld meg két int típusú változó értékét. 6. Cseréld fel egy int tömb két elemét. 7. Írj egy függvényt, amely egy már rendezett int tömbbe beszúr egy új elemet úgy, hogy a tömbben az elem elott csak nála nem nagyobb elem marad. 8. Írj egy függvényt, amely egy tömbben tárolt számsorozatból kiszámítja egy síkidom súlypontját. A számsorozat a síkidom pontjainak koordinátáit tartalmazza x[0], y[0], x[1], y[1], ..., x[n-1], y[n-1] sorrendben. A következo feladatok megoldásaiban a foprogram csak az input/output muveleteket végezze, a számolást külön függvényekben oldd meg. Az adatok tárolására használj összetett adatszerkezetet, ha van értelme. 1. Írj egy programot, ami bekéri egy torta piskótájanak sugarát és magasságát, majd kiszámolja a torta 1cm vastag bevonásához szükseges krém terfogatát 5%-os ráhagyással dolgozva. (A torta alját nem kell bekrémezni, csak az oldalát és a tetejét.) 2. Írjunk egy programot, ami megmondja, hogy teljesítettük-e a félévet programozás alapjaiból. Készítsünk egy adatszerkezetet, amiben a hallgató a nevét, pontjait tároljuk. A program tároljon külön minden részpontszámot és a hianyzasokat is. 3. Bovítsük az elozo programot úgy, hogy eloször bekérjük a hallgatók számát, majd memóriát foglalunk az adataik számára, és ezzel a dinamikus tömbbel dolgozunk. 4. Írjuk meg a 2. feladatot láncolt listák felhasználásával is. 5. Add meg irányszöggel és nagysággal a hasonlóképpen megadott fizikai erok sorozatának eredojét a kétdimenziós térben. Az erok sorozatának végét egy 0 nagyságú ero jelzi. 6. Kérd be a tér 4 pontjának koordinátáit, és számítsd ki az általuk meghatározott test felszínét. Felteheto, hogy a 4 pont nem egy síkba esik. 7. Adott nehézségi gyorsulás (g=9,81 m/s^2) mellett szimuláld egy alfa kilövési szögben és v kezdosebességgel kilott test röppályáját légüres térben sík terepen. A felhasználó adja meg a kilövési paramétereken túl azt is, hogy milyen idoközönként kell meghatározni a test helyzetét (x,y koordinátáit). A kiírás akkor ér véget, ha a test földet ért. A földetérés helyét pontosan számítsd ki! 8. Adott két körszeru test a kétdimenziós síkon. A testek helyzetét a középpontjaikkal azonosítjuk. Kezdetben a felhasználó mindkét testhez megadja: (1) a középpontját x,y koordinátákkal, (2) sugarát, (3) kezdosebességét és annak irányát, valamint (4) a test tömegét. Megad továbbá egy dt és egy T idointervallumot. A feladat a két test kétdimenziós fizikai mozgásának szimulálása a 0..T idointervallumban dt idobeosztással. Ez azt jelenti, hogy a kezdo idopontban kiszámoljuk a testekre ható eroket, majd a test mozgását a következo dt idointervallumban úgy közelítjük, mintha a testre ebben az idointervallumban nem hatna egyéb ero. Ezután újra kiszámítjuk az eroket, majd újra közelítjük a mozgást, stb. A pálya szimulálása a T idopontig vagy a két test "ütközéséig" tart. A pontosság kedvéért a két test helyzetét (x,y koordinátáit) úgy írassuk ki, mintha az origo, azaz a koordinátarendszer középpontja a két test közös tömegközéppontja lenne, azaz a kiszámított koordinátaértékeket ezek szerint korrigáljuk minden lépésben. 9. Adottak pontok a síkban, határozzuk meg azokat a pontokat, amelyek a ponthalmaz konvex burkát alkotják. 10. Adottak síkidomok (kör, elipszis, háromszög, négyzet, téglalap) a jellemzo értékeikkel. Készíts egy tömböt ilyen alakzatok tárolására, olvasd be az adataikat, majd írd ki az összterületüket. Ezután írd ki mindegyik fajtából a legnagyobb területu síkidom kerületét.