Oldd meg az alábbi feladatokat úgy, hogy egy függvényben dinamikusan foglalsz helyet egy 2d-s tömbnek, majd ugyanebben a függvényben fel is töltöd a feladatkiírásnak megfelelően. A fügvény visszatérési értéke legyen a lefoglalt memóriatereületre mutató pointer. Minden esetben készíts egy kiir nevű függvényt is, amely parméterben a lefoglalt területre mutató pointert kapja és táblázatos formában megjeleníti a mátrixot. Az elékészített függvényeket hívd meg a main-ben tesztelés céljából, végül szabadítsd fel a lefoglalt memóriát. A memóriafogalalást kétféleképpen is meg kell valósítani: A: soronként foglalva memóriát a mátrixnak B: a mátrixot sorfolytonasan egy vektorban tárolva 1. Készíts sakktabla néven függvényt, amely dinamikusan foglal helyet egy 8x8-as táblának, majd a sakktábla színeinek megfelelően feltölti azt úgy, hogy a fehér mezők értéke 1, a feketéké pedig 2 legyen. A (0,0) indexű mező fehér. 2. Oldd meg az előző feladatot úgy, hogy a tábla 10x10-es és a szélén szereplejenek az oszlop- és sorjelölések, ahogy egy valódi sakktáblán is: 'A'-'H', '1'-'8', a sarkokban egy-egy szóköz, mint karakter szerepeljen. Kiíratásnál figyelj, hogy a sor- és oszlopjelöléseket karakterként írd ki, magán a táblán pedig az 1 és 2 érték szerepeljen. 3. Készíts függvényt kereszt néven, amely egy NxN-es int mátrixot foglal dinamikusan és egy keresztet "rajzol" bele. A kereszt úgy áll elő, hogy a táblázat vízszintes és függőleges felénél egy vízszintes és egy függőleges vonalat készítünk 1-es értékekből. A mátrix többi eleme (a háttér) 0 legyen. N-t, a négyzetes mátrix méretét a függvény paraméterben kapja. 4. Készíts függvényt iksz néven, ami egy NxN-es char mátrixot foglal dinamikusan és egy X jelet "rajzol" bele úgy, hogy a '#' karakterekből készítünk két átlós vonalat, ami a mátrix két sarkát köti össze. A mátrix többi elemének (a háttér) értéke '_' karakter legyen. N-t, a négyzetes mátrix méretét a függvény paraméterben kapja. 5. Készíts függvényt lnkotabla néven, ami először egy NxM-es unsigned mátrixot foglal dinamikusan, majd azt feltölti úgy, hogy az (i,j) indexű elem értéke a két index szorzatának, i*j-nek, valamint a praméterben kapott p egszész szám legnagyobb közös osztója legyen. A tábla méretiet, N-t és M-et a függvény paraméterben kapja. 7. Készíts függvényt negyzetszamok néven, amely először egy NxM-es 2d-s tömböt foglal dinamikusan, majd feltölti azt négyzetszámokkal sorfolyotnosan, de úgy, hogy csak minden p-edik négyzetszám szerepeljen növekvő sorrendben. p-t a függvény praméterben kapja. A (0,0) indexű elem mindig 1. N=2, M=3 és p=2 esetén a mátrix így fest: 1 9 25 49 81 121 A mátrix méreteit a függvény praméterben kapja. 8. Készíts függvényt primtabla néven, amely dinamikusan foglal egy NxM-es int mátrixot, amelyet prímszámokkal tölt fel. A prímszámokat növekvő sorrendben szerepeljenek oszlopfolytonosan. Például N=2, M=3 esetén a mátrix így nézzen ki: 2 5 11 3 7 13 N-t és M-et a függvény paraméterben kapja. Old meg az alábbi feladatokat struktúrák felhasználásával. A feladat lényegi része mindig egy külön függvényben legyen, a függvény meghívásához és az eredmény megjelenítéséhez mindig készíts egy main függvényt is. Ha a megvalósítandó függvény tömbbel dolgozik, akkor minden esetben megkapja a tömb méreteit is paraméterben, még ha a feladat készítője ezt el is felejtete külön leírni. 9. Készíts egy Komplex nevű struktúrát komplex számok tárolására. A struktúrának két double típusú adattagja legyen: re és im, a valós és a képzetes résznek megfelelően. Írj egy siknegyed nevű függvényt, amely paraméterben kap egy Komplex struktúrákból álló tömböt (pointert) és összeszámolja, hogy hány db komplex szám esik az 1. vagy a 3. síknegyedbe ha a komplex számokat a 2d-s valós koordinátarendszerben ábrázoljuk. A függvény visszatérési értéke ez a darabszám legyen. 10. Készíts egy Komplex nevű struktúrát az előző feladat leírásának megfelelően. Írj egy komplexosszeg nevű függvényt, ami két paraméterrel rendelkezik: kap egy Komplex számot, valamint Komplex számok egy tömbjét. A feladat, hogy a tömbben lévő komplex számok közül összegezzük azokat, amelyek abszolútértéke (normája) kisebb, mint a paramtéreben kapott komplex számé. Ez az összeg nyilván szintén egy komplex szám. A függvény visszatérési értéke ez a szám legyen. 10,5. Írj egy Kor nevű struktúrát, ami tartalmazza a kör sugarát és egy 2d-s valós koordinátát, ami a kör középpontja. Ez útóbbi egy pont2D nevű struktúra legyen. Ezután írj egy korok nevű függvényt, ami két ilyen Kor típusú parmétert kap, és a feladata eldönteni, hogy a két kör metszi-e egymást, az egyik tartalmazza-e a másikat, vagy teljesen függetlenek. A függvény a döntés szerint térjen vissza 0-val, 1-gyel, vagy 2-vel. 11. Írj egy Gomb nevű struktúrát, ami tartalmazza a gömb sugarát és egy 3d-s valós koordinátát, ami a gömb középpontja. Ez útóbbi egy pont3D nevű struktúra legyen. Ezután írj egy gombok nevű függvényt, ami két ilyen Gomb típusú parmétert kap, és a feladata eldönteni, hogy a két gömb metszi-e egymást, az egyik tartalmazza-e a másikat, vagy teljesen függetlenek. A függvény a döntés szerint térjen vissza 0-val, 1-gyel, vagy 2-vel. Oldd meg az alábbi feladatokat string.h használata nélkül. Az elkészített függvény mellett, mindig legyen egy main is, ami meghívja azt, és kiírja az eredményt. 12. Készíts függvényt kodol néven. A függvénynek 4 paramétere van: str, a kódolandó string; maszk, ami egy unsigned tömb; eredmeny, amiben az eredményt kell eltárolni, és n a tömbök mérete. A feladat az, hogy az str stringet kell kódolni, úgy hogy minden karaterét a maszk annyiadik számú elemében található számmal kell eltolni az ASCII tábla szerint, ahanyadik az adott betű az str stringben. Tehát az str[i]-t a maszk[i] értékkel kell eltolni. FeltételezhezĹ‘, hogy a stringben csak az angol abc kis és nagybetűi szerepelnek. Figyelj arra, hogy az eltolással kapott eredmény túllóghat az abc-n, ekkor az abc elejétől kell folytatni a betűk léptetését. Pl. ha str[i] == 'a' és maszk[i]==3, akkor az új karakter, eredmeny[i] == 'd', de ha str[i] == 'z' és maszk[i]==3, akkor eredmeny[i] == 'c'. Figyelj arra is, hogy a a maszkban nagy számok is lehetnek, lehet, hogy többször is túlhalad a léptetés az abc-n. 13. Készíts függvényt kodol neven, ami paraméterben kap egy stringet, amiben szavak vannak egy, vagy több szóközzel elválasztva, a szavak csak az angol abc kis- és nagybetűit valamint a decimális számjegyeket tartalmazzák. A feladat az, hogy minden szót kódoljunk úgy, hogy hagyjuk meg az első betűjét, majd utánna egy szám szerepeljen, az, hogy hány nagybetű van a szó maradék részében. Írd meg az alábbi függvényeket C-ben. Minden estben készíts egy main függvényt is, ami meghivja a feladatban szereplőt, és kiírja az eredményt. Ha a megvalósítandó függvény tömbbel dolgozik, akkor minden esetben megkapja a tömb méreteit is, még ha a feladat készítője ezt el is felejtete külön leírni. 14. Készíts maxmin néven függvényt, amely paraméterben kap egy unsigned kétdimenziós tömböt (pointert). A feladat meghatározni a mátrix azon elemét, ami a sorában maximális és az oszlopában minimális. Elég az első ilyen mátrixelemet maghatározni, ha nincs ilyen a visszatérési érték -1. A függvény ezzel az értékkel térjen vissza. A mátrix méreteit paraméterben kapjuk. 15. Készíts minmax néven függvényt, amely paraméterben kap egy unsigned kétdimenziós tömböt (pointert). A feladat meghatározni a mátrix azon elemét, ami a sorában minimális és az oszlopában maximális. Elég az első ilyen mátrixelemet maghatározni, ha nincs ilyen a visszatérési érték -1. A függvény ezzel az értékkel térjen vissza. A mátrix méreteit paraméterben kapjuk. 16. Írj függvényt varos néven. A függvény praméterben kap egy kétdimenziós double tömböt, ami egy város térképét szimbolizálja úgy, hogy a mátrix elemei egy-egy magasségértéket jelentenek, azt, hogy a térkép azon (x,y) pontján milyen magas felhőkarcoló áll. A függvény további paraméterben kap egy (i,j) indexet, azt, hogy Anna a térképen jelenleg hol áll, ennek a mezőnek a magasságértékét tekinthetjük 0-nak, még ha a tömb szerint nem is az.(Anna tériszonyos.) A feladat meghatározni, hogy a jelenlegi (i,j) pozícióban a 4 fő irány felé tekintve (előre, hátra, jobbra, balra) melyik a legmagasabb épület, amit Anna láthat, és az milyen messze van a megadott (i,j) pozíciójától (1 mező 1 egységnyi távolságot jelent). Az eredményt egy struktúrában kell visszaadni, aminek 3 komponenese van: melyik irányban van a legmagasabb épület ('E','H', 'J', 'B'), mekkora ez a magassság, és hogy milyen messze van ez az épület Annától. 17. Készíts függvényt város néven, ami az előző feladathoz hasonlóan egy 2d-s double tömböt kap, ami a város térképe, azt mondja meg, hogy az adott (x,y) pozíción milyan magas felhőkarcoló található. További paraméter Béla (i,j) pozíciója. Béla viszont nem tériszonyos, egy épület tetején áll. A kérdés, hogy Béla a 4 fő irányba (előre, hátra, jobbra, balra) elnézve milyen messzire lát el. Ügyelj arra, hogy az egy irányba eső épületek közül a közelebbi magasabb felhőkarcoló eltakarja a mögötte lévő alcsonyabbakat, ilyenkor Béla nyilván nem lát messzebb. Ha el lehet látni a város szélléig, akkor, az eredmény Béla aktuális pozíciója és a város széle közötti távolság. A függvény egy 4 elemű int tömbbel térjen vissza, hogy a négy irány felé milyen messze lát Béla. 1 mező 1 egységyni távolságot jelent. Gondold át, hogy ezt a tömböt hol és hogy érdemes létrehozni. 18. Írj függvényt, aminek neve yamakasi. Az előző feladatokhoz hasonlóan, egy 2d-s tömböt kap parméterben, ami a város térképe, azt mondja meg, hogy az egyes épületek milyen magasak az adott (i,j) pozíción. A feladatban Cecil kezdetben a város észak-nyugati sarkában van, az ott lévő épület tetején (a tömb bal felső sarka, (0,0)) és épületről épületre ugrálva halad. Mindig egy a 4 főirány felé található szomszédos épületre ugrik át, de csak akkor, ha annak magasságkülönbsége ahhoz az épülethez képest, amin jelenleg áll nem nagyobb mint 6 egység (max. ekkorát tud ugrani). Cecil mindig először a vele szemben, előre található épületre szeretne, ugrani, de ha ez nagyon magas, vagy nagyon alacsony, akkor jobbra (negatív írányba) fordul egyet (90°-ot), és az arra lévő épülettel próbálkozik, ha az sem megfelelő, tovább fordul, de azt az épületet sem választja, ahonnan érkezett a jelenlegire. A feladat leírni Cecil útvonalát, azzal, hogy az egyes épületeken hányat fordul, amíg meg nem találja az első alkalmas szomszédos épületet, amire át tud ugrani. Az útvonal akkor ér véget, ha nem tud tovább hova ugrani, a nem megfelelő magasságok, amiatt, hogy abban az irányban nincs épület (a tömb széle), vagy amiatt, hogy arról az épületről érkezett a jelenlegire. Ekkor az útvonal 3-as számmal zárul, hiszen ekkor körbefordult. Az útvonal hossza legfeljebb 100 hosszú lehet, ekkor Cecil elfárad, nem megy tovább. Ezt az útvonalat kell egy stringben kódolni a '0', '1', '2', '3' karakterekkel.