4.

labor
2009. október 5. Karcsics Tibor mycroft84@gmail.com http://www.pizzicato.hu/c_gyak/

1. Írassa ki egy egész szám bitmintáját tetszőleges sorrendben a képernyőre.

Tipp: a)Vizsgáljuk meg, hogy a szám osztható-e kettővel. b) Ha igen, írjunk ki egy nullát, ha nem akkor egyet. c)Osszuk a számot kettővel. d) Ha a szám nagyobb, mint nulla, akkor folytassuk az 1. Lépéssel, különben végeztünk a feladattal. Megjegyzés: - Mivel egészosztás történik, a szám végül nullával lesz egyenlő - Ez az algoritmus fordított sorrendben írja ki a számjegyeket. Ez is jó megoldás, de érdemes elgondolkodni azon, hogy miként lehet helyes sorrendben kiíratni a bitminta elemeit.
2. A fordítóval készítsük el az előző program assembly nyelvű forrását is.

Visual Studioban: jobb klikk a Solution Explorerben a projekten, majd a felbukkanó nemüben: Properties / C/C++ / Output files / Assambler Output / {No listing, Assembly-Only Listing, Assembly Machine Code and Source,…} Érdemes az Assembly Machine Code and Source opciót választani, amivel megfigyelhető, hogy az egyes C utasítások mivé fordulnak. GCC-vel: gcc –S main.c –o m, ahol a forrás kód a main.c állományban van és az assembly nyelvű kód az m nyelvű fájlban kerül.
3. Írassa ki egy double típusú valós szám bitmintáját (opcionális) 4. Írjon függvényt, amely két számról el tudja dönteni, hogy azok barátságos számok-e?

Két szám akkor barátságos, ha az egyik szám önmagánál kisebb osztóinak összege a másik számmal egyenlő (és fordítva). Pl. a 220 és a 284 barátságos számok.
5. Készítsen programot, amely egy valós számot (Celsius fok), az eredményt átváltja

Farenheitbe és kiírja az eredményt. 0 C = 32 F, 40 C = 104 F (Fahrenheit = 1.8*Celsius + 32) 6. Bővítse ki az előző feladatot úgy, hogy a számokat a felhasználótól kérje be.
7. Készítsen el egy faktoriálist számító függvényt, amely unsigned char típussal dolgozik.

Írassa ki a számok faktoriálisát 1-től 10-ig. Magyarázza meg az eredményt!
8. Tegye meg ugyanezt előjeles esetben is (signed char). 9. Írjon programot, amely az (x-1)*(x-10n)=0 egyenlet gyökeit meghatározza. Ehhez

alakítsa át az egyenletet a következő alakra: x2-(1+10n)*x+10n=0 és a három konstanst helyetetsítse be a megoldóképletbe. Állítsa elő a megoldást n=1,2,4,8 esetekre és magyarázza meg az eredményt! A megoldást próbálja ki float és double típussal is.

Sign up to vote on this title
UsefulNot useful