tanszek:oktatas:szamitastechnika:blokkok_-_ciklusok
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revision | |||
| tanszek:oktatas:szamitastechnika:blokkok_-_ciklusok [2025/10/29 07:45] – knehez | tanszek:oktatas:szamitastechnika:blokkok_-_ciklusok [2026/11/03 19:16] (current) – knehez | ||
|---|---|---|---|
| Line 148: | Line 148: | ||
| Megoldás: extern int x; a globális változóra vonatkozik | Megoldás: extern int x; a globális változóra vonatkozik | ||
| + | |||
| + | ---- | ||
| + | |||
| + | ==== Ciklusok a C nyelvben ==== | ||
| + | |||
| + | A ciklus segítségével egy utasítást vagy egy egész blokkot többször is végrehajthatunk. Az ismételt részt **ciklusmagnak** nevezzük. A C nyelvben három ciklusutasítás van: '' | ||
| + | |||
| + | **Feladat 1:** Milyen számokat ír ki a program? Figyeljük meg, mikor vizsgálja meg a feltételt, és mikor növeli az //i// értékét. | ||
| + | |||
| + | <sxh c> | ||
| + | #include < | ||
| + | int main(void) | ||
| + | { | ||
| + | for (int i = 1; i <= 4; i++) { | ||
| + | printf(" | ||
| + | } | ||
| + | return 0; | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | Megoldás: a kimenet '' | ||
| + | |||
| + | ---- | ||
| + | |||
| + | **Feladat 2:** A programnak az 1-től 5-ig terjedő egész számok összegét kellene kiszámítania. Miért csak 10-et ír ki? Javítsuk ki a ciklust egyetlen jel hozzáadásával! | ||
| + | |||
| + | <sxh c> | ||
| + | #include < | ||
| + | int main(void) | ||
| + | { | ||
| + | int osszeg = 0; | ||
| + | |||
| + | for (int i = 1; i < 5; i++) { | ||
| + | osszeg += i; | ||
| + | } | ||
| + | printf(" | ||
| + | return 0; | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | Megoldás: az '' | ||
| + | |||
| + | ---- | ||
| + | |||
| + | **Feladat 3:** Egy tartályban 12 liter víz van. Minden lépésben 3 litert engedünk ki belőle. Milyen értékeket ír ki a program? Megjelenik-e a 0 is? | ||
| + | |||
| + | <sxh c> | ||
| + | #include < | ||
| + | int main(void) | ||
| + | { | ||
| + | int liter = 12; | ||
| + | |||
| + | while (liter > 0) { | ||
| + | printf(" | ||
| + | liter -= 3; | ||
| + | } | ||
| + | return 0; | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | Megoldás: a kimenet '' | ||
| + | |||
| + | ---- | ||
| + | |||
| + | **Feladat 4:** Mindkét ciklus ugyanazt a feltételt vizsgálja, és az //n// értéke végig 0. Melyik szöveg jelenik meg a képernyőn? | ||
| + | |||
| + | <sxh c> | ||
| + | #include < | ||
| + | int main(void) | ||
| + | { | ||
| + | int n = 0; | ||
| + | |||
| + | while (n > 0) { | ||
| + | printf(" | ||
| + | } | ||
| + | |||
| + | do { | ||
| + | printf(" | ||
| + | } while (n > 0); | ||
| + | |||
| + | return 0; | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | Megoldás: csak a '' | ||
| + | |||
| + | ---- | ||
| + | |||
| + | **Feladat 5:** A programnak addig kellene növelnie a hőmérsékletet, | ||
| + | |||
| + | <sxh c> | ||
| + | #include < | ||
| + | int main(void) | ||
| + | { | ||
| + | int homerseklet = 20; | ||
| + | |||
| + | while (homerseklet < 25) | ||
| + | printf(" | ||
| + | homerseklet++; | ||
| + | |||
| + | return 0; | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | Megoldás: kapcsos zárójelek nélkül csak a közvetlenül következő utasítás tartozik a ciklushoz. A behúzás megtévesztő: | ||
| + | |||
| + | <sxh c> | ||
| + | while (homerseklet < 25) { | ||
| + | printf(" | ||
| + | homerseklet++; | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | **Feladat 6:** Három mérési ponton két-két mérést végzünk. Hányszor fut le a '' | ||
| + | |||
| + | <sxh c> | ||
| + | #include < | ||
| + | int main(void) | ||
| + | { | ||
| + | for (int pont = 1; pont <= 3; pont++) { | ||
| + | for (int meres = 1; meres <= 2; meres++) { | ||
| + | printf(" | ||
| + | } | ||
| + | printf(" | ||
| + | } | ||
| + | return 0; | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | Megoldás: a mérés azonosítóját kiíró '' | ||
| + | |||
| + | < | ||
| + | P1/M1 P1/M2 | ||
| + | P2/M1 P2/M2 | ||
| + | P3/M1 P3/M2 | ||
| + | </ | ||
| + | |||
| + | ---- | ||
| + | |||
| + | **Feladat 7:** Az alábbi programban mit ír ki a ciklus, és mi lesz az //i// értéke a ciklus után? | ||
| + | |||
| + | <sxh c> | ||
| + | #include < | ||
| + | int main(void) | ||
| + | { | ||
| + | int i; | ||
| + | |||
| + | for (i = 1; i <= 10; i++) { | ||
| + | if (i == 4) { | ||
| + | break; | ||
| + | } | ||
| + | printf(" | ||
| + | } | ||
| + | printf(" | ||
| + | return 0; | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | Megoldás: az első sorban '' | ||
| + | |||
| + | ---- | ||
| + | |||
| + | **Feladat 8:** Mi változik, ha a '' | ||
| + | |||
| + | <sxh c> | ||
| + | #include < | ||
| + | int main(void) | ||
| + | { | ||
| + | for (int i = 1; i <= 6; i++) { | ||
| + | if (i == 4) { | ||
| + | continue; | ||
| + | } | ||
| + | printf(" | ||
| + | } | ||
| + | return 0; | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | Megoldás: a kimenet '' | ||
tanszek/oktatas/szamitastechnika/blokkok_-_ciklusok.txt · Last modified: by knehez
