{"id":40208,"date":"2020-02-01T06:04:35","date_gmt":"2020-02-01T03:04:35","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/kak-nauchit-preodolevat-trudnosti-a-zaodno-i-pisat-czikly"},"modified":"2020-02-01T06:04:35","modified_gmt":"2020-02-01T03:04:35","slug":"kak-nauchit-preodolevat-trudnosti-a-zaodno-i-pisat-czikly","status":"publish","type":"post","link":"https:\/\/prohoster.info\/hu\/blog\/kak-nauchit-preodolevat-trudnosti-a-zaodno-i-pisat-czikly","title":{"rendered":"Hogyan tan\u00edtsuk meg a neh\u00e9zs\u00e9gekkel val\u00f3 megk\u00fczd\u00e9st, \u00e9s k\u00f6zben ciklusokat \u00edrni","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>B\u00e1r az egyik alapvet\u0151 t\u00e9m\u00e1r\u00f3l lesz sz\u00f3, ez a cikk tapasztalt szakembereknek k\u00e9sz\u00fclt. A c\u00e9l az, hogy bemutassuk, milyen t\u00e9vk\u00e9pzetek mer\u00fclhetnek fel az \u00fajoncokban a programoz\u00e1s ter\u00e9n. A gyakorl\u00f3 fejleszt\u0151k ezek a probl\u00e9m\u00e1k m\u00e1r r\u00e9g\u00f3ta megoldottak, elfeledtek vagy egyszer\u0171en figyelmen k\u00edv\u00fcl hagyj\u00e1k \u0151ket. A cikk hasznos lehet, ha esetleg seg\u00edtenie kell valakinek e t\u00e9ma elsaj\u00e1t\u00edt\u00e1s\u00e1ban. A cikk p\u00e1rhuzamokat von a programoz\u00e1ssal foglalkoz\u00f3 k\u00fcl\u00f6nb\u00f6z\u0151 k\u00f6nyvek, p\u00e9ld\u00e1ul Schilde, Stroustrup \u00e9s Okulov m\u0171veivel.<\/p>\n<p>A ciklusokr\u00f3l val\u00f3 t\u00e9ma v\u00e1laszt\u00e1sa az\u00e9rt t\u00f6rt\u00e9nt, mert ezen a ter\u00fcleten sok ember elakad a programoz\u00e1s elsaj\u00e1t\u00edt\u00e1sa sor\u00e1n.<\/p>\n<p>Ez a m\u00f3dszer gyenge di\u00e1kok sz\u00e1m\u00e1ra k\u00e9sz\u00fclt. \u00c1ltal\u00e1ban a er\u0151sebb di\u00e1kok nem akadnak el ezen a t\u00e9m\u00e1n, \u00e9s nem sz\u00fcks\u00e9ges sz\u00e1mukra k\u00fcl\u00f6n m\u00f3dszert kidolgozni. A cikk m\u00e1sodlagos c\u00e9lja, hogy ezt a m\u00f3dszert \u00e1ttranszform\u00e1lja a \"m\u0171k\u00f6dik minden di\u00e1kn\u00e1l, de csak egy tan\u00e1r eset\u00e9ben\" kateg\u00f3ri\u00e1b\u00f3l a \"m\u0171k\u00f6dik minden di\u00e1kn\u00e1l, minden tan\u00e1r sz\u00e1m\u00e1ra\" kateg\u00f3ri\u00e1ba. Nem ig\u00e9nyel teljes eredetis\u00e9get. Ha m\u00e1r hasonl\u00f3 m\u00f3dszert alkalmaz, k\u00e9rj\u00fck, ossza meg, miben k\u00fcl\u00f6nb\u00f6zik az \u00d6n v\u00e1ltozata. Ha alkalmazni k\u00edv\u00e1nja, k\u00e9rj\u00fck, sz\u00e1moljon be az eredm\u00e9nyekr\u0151l. Ha hasonl\u00f3 m\u00f3dszert tal\u00e1l a k\u00f6nyvek valamelyik\u00e9ben, k\u00e9rj\u00fck, \u00edrja meg a c\u00edm\u00e9t.<\/p>\n<p><noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nEzt a m\u00f3dszert n\u00e9gy \u00e9vig dolgoztam ki, mik\u00f6zben k\u00fcl\u00f6nb\u00f6z\u0151 szint\u0171 hallgat\u00f3kkal foglalkoztam. \u00d6sszesen k\u00f6r\u00fclbel\u00fcl \u00f6tven di\u00e1k \u00e9s k\u00e9tezer \u00f3r\u00e1nyi foglalkoz\u00e1s. Kezdetben a di\u00e1kok \u00f6r\u00f6kre elakadtak ezen a t\u00e9m\u00e1n, \u00e9s t\u00e1voztak. Minden egyes di\u00e1k ut\u00e1n a m\u00f3dszert \u00e9s az anyagokat kiigaz\u00edtott\u00e1k. Az utols\u00f3 \u00e9vben a di\u00e1kok m\u00e1r nem akadtak el ezen a t\u00e9m\u00e1n, ez\u00e9rt \u00fagy d\u00f6nt\u00f6ttem, hogy megosztom az eredm\u00e9nyeimet.<\/p>\n<h4>Mi\u00e9rt ennyi bet\u0171? A ciklusok pedig alapvet\u0151 dolgok!<\/h4>\n<p>\nAhogy m\u00e1r eml\u00edtettem, a gyakorl\u00f3 fejleszt\u0151k \u00e9s a er\u0151sebb di\u00e1kok sz\u00e1m\u00e1ra a ciklusok koncepci\u00f3j\u00e1nak bonyolults\u00e1g\u00e1t alul\u00e9rt\u00e9kelhetj\u00fck. P\u00e9ld\u00e1ul tarthatunk egy hossz\u00fa el\u0151ad\u00e1st, l\u00e1thatjuk a b\u00f3lint\u00f3 fejeket \u00e9s az \u00e9rtelmes szemeket. De amikor pr\u00f3b\u00e1lj\u00e1k megoldani a feladatokat, hirtelen meg\u00e1ll\u00e1s \u00e9s megmagyar\u00e1zhatatlan probl\u00e9m\u00e1k mer\u00fclnek fel. Az el\u0151ad\u00e1s ut\u00e1n a di\u00e1kok biztosan csak r\u00e9szleges meg\u00e9rt\u00e9ssel rendelkeznek. A helyzetet s\u00falyosb\u00edtja, hogy a di\u00e1kok nem tudj\u00e1k pontosan megfogalmazni, miben t\u00e9vedtek.<br \/>\nEgyszer \u00e9szrevettem, hogy a di\u00e1kjaim a p\u00e9ld\u00e1imat hieroglifak\u00e9nt \u00e9rtelmezik. Vagyis olyan sz\u00f6vegdarabokk\u00e9nt, amelyekbe bele kell \u00edrni egy \"var\u00e1zslatos\" bet\u0171t, \u00e9s akkor m\u0171k\u00f6dni fog.<br \/>\nN\u00e9ha azt vettem \u00e9szre, hogy a di\u00e1kok azt gondolj\u00e1k, hogy egy adott feladat megold\u00e1s\u00e1hoz sz\u00fcks\u00e9g van <i>valami m\u00e1s<\/i> szerkezetre, amit egyszer\u0171en m\u00e9g nem mondtam el. Holott a megold\u00e1shoz csak annyit kellett volna m\u00f3dos\u00edtani a p\u00e9ld\u00e1n.<\/p>\n<p>Ez\u00e9rt arra az \u00f6tletre jutottam, hogy a f\u0151 figyelmet nem az kifejez\u00e9sek szintaxis\u00e1ra, hanem a ciklusokkal val\u00f3 ism\u00e9tl\u0151d\u0151 k\u00f3d refaktor\u00e1l\u00e1s\u00e1nak koncepci\u00f3j\u00e1ra kell helyezni. Amint a tanul\u00f3k elsaj\u00e1t\u00edtj\u00e1k ezt a gondolatot, b\u00e1rmilyen szintaxis a megfelel\u0151 gyakorl\u00e1s seg\u00edts\u00e9g\u00e9vel azonnal elsaj\u00e1t\u00edthat\u00f3.<\/p>\n<h4>Kinek \u00e9s mi\u00e9rt tan\u00edtok<\/h4>\n<p>\nMivel nincsenek felv\u00e9teli vizsg\u00e1k, az \u00f3r\u00e1kon lehetnek er\u0151s \u00e9s nagyon gyenge di\u00e1kok egyar\u00e1nt. R\u00e9szletesebben a di\u00e1kjaimr\u00f3l a cikkben lehet olvasni <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/350360\/\">Az esti kurzusok hallgat\u00f3inak portr\u00e9ja<\/a><\/noindex><br \/>\nAz volt a c\u00e9lom, hogy a programoz\u00e1st mindenki elsaj\u00e1t\u00edthassa, aki ezt szeretn\u00e9.<br \/>\nAz \u00f3r\u00e1im egy\u00e9niek, \u00e9s a di\u00e1k saj\u00e1t p\u00e9nz\u00e9t fizeti minden alkalommal. L\u00e1tsz\u00f3lag a di\u00e1kok optimaliz\u00e1lni fogj\u00e1k a k\u00f6lts\u00e9geket \u00e9s minimumot fognak k\u00f6vetelni. Azonban az emberek nem csak a tud\u00e1s\u00e9rt j\u00e1rnak szem\u00e9lyes oktat\u00f3val tartott \u00f3r\u00e1kra, hanem az\u00e9rt a bizalom\u00e9rt, hogy amit elsaj\u00e1t\u00edtottak, val\u00f3ban \u00edgy van, a fejl\u0151d\u00e9s \u00e9rz\u00e9se \u00e9s az oktat\u00f3 (szak\u00e9rt\u0151) j\u00f3v\u00e1hagy\u00e1sa miatt. Ha a di\u00e1kok nem \u00e9rzik a fejl\u0151d\u00e9st a tanulm\u00e1nyi el\u0151rehalad\u00e1sukban, el fognak menni. \u00c1ltal\u00e1noss\u00e1gban az \u00f3r\u00e1kat \u00fagy lehet fel\u00e9p\u00edteni, hogy a di\u00e1kok a megismert szerkezetek sz\u00e1m\u00e1nak n\u00f6veked\u00e9s\u00e9t \u00e9rz\u00e9kelj\u00e9k. El\u0151sz\u00f6r r\u00e9szletesen tanulm\u00e1nyozzuk a while-t, azt\u00e1n a for-t, majd a do while-t, \u00e9s \u00edgy l\u00e9trehozunk egy ezer \u00e9s egy \u00e9jszaka kurzust, amely k\u00e9t h\u00f3napig foglalkozik csak a ciklusokkal, m\u00edg a v\u00e9g\u00e9n a di\u00e1k egy standard k\u00f6nyvt\u00e1rat \u00edrt le dikt\u00e1l\u00e1sra. Azonban a gyakorlati probl\u00e9m\u00e1k megold\u00e1s\u00e1hoz nemcsak az anyag ismerete sz\u00fcks\u00e9ges, hanem a f\u00fcggetlens\u00e9g az alkalmaz\u00e1s\u00e1ban \u00e9s az \u00faj inform\u00e1ci\u00f3k keres\u00e9s\u00e9ben. Ez\u00e9rt az egy\u00e9ni kurzusok eset\u00e9ben helyesnek tartom azt az elvet, hogy minim\u00e1lis ismereteket adjak \u00e1t \u00e9s \u00f6szt\u00f6n\u00f6zzem a r\u00e9szletek \u00e9s kapcsol\u00f3d\u00f3 t\u00e9m\u00e1k \u00f6n\u00e1ll\u00f3 tanulm\u00e1nyoz\u00e1s\u00e1t. A ciklusokr\u00f3l sz\u00f3l\u00f3 t\u00e9m\u00e1ban a minim\u00e1lis ismeretnek a while szerkezet\u00e9t tartom. Ezen kereszt\u00fcl meg\u00e9rthet\u0151 az elv. Az elv ismeret\u00e9ben pedig a for- \u00e9s do-while szerkezeteket \u00f6n\u00e1ll\u00f3an is elsaj\u00e1t\u00edthatj\u00e1k.<\/p>\n<p>A gyeng\u00e9bb di\u00e1kok anyag\u00e1nak elsaj\u00e1t\u00edt\u00e1s\u00e1hoz nem elegend\u0151 a szintaxis le\u00edr\u00e1sa. T\u00f6bb egyszer\u0171, de v\u00e1ltozatos feladatot kell adni, \u00e9s r\u00e9szletesebben kell p\u00e9ld\u00e1kat bemutatni. V\u00e9gs\u0151 soron az elsaj\u00e1t\u00edt\u00e1s sebess\u00e9g\u00e9t a di\u00e1k kifejez\u00e9sek \u00e1talak\u00edt\u00e1si k\u00e9pess\u00e9ge \u00e9s az \u00f6sszef\u00fcgg\u00e9sek keres\u00e9se korl\u00e1tozza. Az \u00e9lesesz\u0171 di\u00e1kok sz\u00e1m\u00e1ra a legt\u00f6bb feladat unalmas lesz. Vel\u00fck egy\u00fctt dolgozva nem sz\u00fcks\u00e9ges a 100%-os feladatmegold\u00e1sra ragaszkodni. Az anyagomat megtekintheti <noindex><a rel=\"nofollow\" href=\"https:\/\/github.com\/AKryukov92\/programming-basics\">a GitHubomon<\/a><\/noindex>. Igaz, a t\u00e1rol\u00f3 ink\u00e1bb egy fekete k\u00f6nyv grimuarj\u00e1ra hasonl\u00edt \u2014 senki m\u00e1s, csak \u00e9n nem \u00e9rtem, hogy mi hol tal\u00e1lhat\u00f3, \u00e9s ha az ellen\u0151rz\u00e9s megbukik, az \u0151r\u00fcletbe kergethet.<\/p>\n<h4>A m\u00f3dszer a gyakorlatra \u00f6sszpontos\u00edt.<\/h4>\n<p>\nA teor\u00e1t a feladatok megold\u00e1s\u00e1nak p\u00e9ld\u00e1j\u00e1n magyar\u00e1zz\u00e1k el. A programoz\u00e1s alapjain csup\u00e1n egy \u00f3r\u00e1s el\u0151ad\u00e1s keretein bel\u00fcl nem lehet hasznos el\u0151ad\u00e1st tartani egy adott t\u00e9m\u00e1r\u00f3l. 15-20 perc elegend\u0151 a koncepci\u00f3 elmagyar\u00e1z\u00e1s\u00e1hoz. A legnagyobb neh\u00e9zs\u00e9gek a gyakorlati feladatok elv\u00e9gz\u00e9sekor mer\u00fclnek fel.<br \/>\nA kezd\u0151 pedag\u00f3gusok egy el\u0151ad\u00e1son elmondhatj\u00e1k az oper\u00e1torokat, \u00e1gonk\u00e9nti el\u00e1gaz\u00e1sokat, ciklusokat \u00e9s t\u00f6mb\u00f6ket. De a di\u00e1kok ezzel a tud\u00e1ssal szembes\u00fclnek az inform\u00e1ci\u00f3 megszerz\u00e9s\u00e9nek probl\u00e9m\u00e1j\u00e1val.<br \/>\nNemcsak elmondani kell az anyagot, hanem meg is gy\u0151z\u0151dni r\u00f3la, hogy a hallgat\u00f3k meg\u00e9rtett\u00e9k azt.<\/p>\n<p>A t\u00e9ma elsaj\u00e1t\u00edt\u00e1s\u00e1nak t\u00e9nye az alapj\u00e1n d\u0151l el, hogy a di\u00e1k \u00f6n\u00e1ll\u00f3an hogyan oldja meg a feladatot. <br \/>\nHa a di\u00e1k sikeresen megoldja a probl\u00e9m\u00e1t a t\u00e9ma alapj\u00e1n tan\u00e1r seg\u00edts\u00e9ge n\u00e9lk\u00fcl, akkor a t\u00e9ma elsaj\u00e1t\u00edtva van. Az \u00f6n\u00e1ll\u00f3 ellen\u0151rz\u00e9s biztos\u00edt\u00e1sa \u00e9rdek\u00e9ben minden feladathoz teszt-forgat\u00f3k\u00f6nyv t\u00e1bl\u00e1zatot tartalmaz. A feladatoknak kifejezett sorrendje van. A feladatok kihagy\u00e1sa nem aj\u00e1nlott. Ha a jelenlegi feladat t\u00fal neh\u00e9z, akkor a k\u00f6vetkez\u0151 feladat megold\u00e1s\u00e1ra l\u00e9pni felesleges, mert az m\u00e9g nehezebb. Ahhoz, hogy a di\u00e1k meg tudja oldani a jelenlegi neh\u00e9z feladatot, n\u00e9h\u00e1ny praktik\u00e1t kell elmagyar\u00e1znunk az els\u0151 feladat p\u00e9ld\u00e1j\u00e1n. Tulajdonk\u00e9ppen a t\u00e9ma \u00f6sszes tartalma a neh\u00e9zs\u00e9gek lek\u00fczd\u00e9s\u00e9re \u00f6sszpontos\u00edt. A ciklusok ink\u00e1bb mell\u00e9khat\u00e1sok.<\/p>\n<p>Az els\u0151 feladat mindig p\u00e9lda. A m\u00e1sodik csak kis m\u00e9rt\u00e9kben k\u00fcl\u00f6nb\u00f6zik, \u00e9s azonnal az els\u0151 ut\u00e1n \u201e\u00f6n\u00e1ll\u00f3an\u201d k\u00e9sz\u00fcl el a tan\u00e1r fel\u00fcgyelete alatt. Minden tov\u00e1bbi feladat c\u00e9lja, hogy felh\u00edvja a figyelmet azokra a k\u00fcl\u00f6nf\u00e9le apr\u00f3s\u00e1gokra, amelyek f\u00e9lre\u00e9rt\u00e9seket okozhatnak.<\/p>\n<p>A p\u00e9lda magyar\u00e1zata egy p\u00e1rbesz\u00e9d, ahol a di\u00e1knek visszafel\u00e9 terjesztenie \u00e9s keresztellen\u0151rz\u00e9seket kell v\u00e9geznie, hogy biztosan elsaj\u00e1t\u00edtsa az anyagr\u00e9szletet.<\/p>\n<p>Banalit\u00e1s lesz, ha azt mondom, hogy az els\u0151 p\u00e9lda a t\u00e9m\u00e1ban nagyon fontos. Ha van anyag a jelent\u0151s \u00f6n\u00e1ll\u00f3 munk\u00e1hoz, az els\u0151 p\u00e9lda hi\u00e1nyoss\u00e1gait lehet p\u00f3tolni. Ha csak p\u00e9lda van, val\u00f3sz\u00edn\u0171leg a di\u00e1k nem fogja elsaj\u00e1t\u00edtani a t\u00e9m\u00e1t.<\/p>\n<h4>While vagy for?<\/h4>\n<p>\nAz egyik vitatott k\u00e9rd\u00e9s a p\u00e9ld\u00e1ban a szerkezet v\u00e1laszt\u00e1sa: while vagy for. Egyszer egy ismer\u0151s\u00f6m, aki gyakorl\u00f3 fejleszt\u0151, de nincs tan\u00edt\u00e1si tapasztalata, egy \u00f3r\u00e1n kereszt\u00fcl gy\u0151zk\u00f6d\u00f6tt, hogy a for ciklus a leg\u00e9rthet\u0151bb. Az \u00e9rvei az voltak, hogy \"minden vil\u00e1gos benne, \u00e9s mindent a hely\u00e9re rakott\". Azonban a val\u00f3di \u00fajoncok neh\u00e9zs\u00e9geinek alapja a ciklus \u00f6tlet\u00e9ben rejlik, nem pedig a meg\u00edr\u00e1s\u00e1ban. Ha valaki nem \u00e9rti ezt az \u00f6tletet, akkor a szintaxisban is neh\u00e9zs\u00e9gei lesznek. Amint az \u00f6tlet meg\u00e9rt\u00e9sre ker\u00fcl, a k\u00f3dform\u00e1z\u00e1ssal kapcsolatos probl\u00e9m\u00e1k magukt\u00f3l megsz\u0171nnek.<\/p>\n<p>Az \u00e9n anyagaimban a ciklusokr\u00f3l sz\u00f3l\u00f3 t\u00e9ma a el\u00e1gaz\u00e1sokkal foglalkoz\u00f3 t\u00e9ma ut\u00e1n k\u00f6vetkezik. Az if \u00e9s while k\u00fcls\u0151 hasonl\u00f3s\u00e1ga k\u00f6zvetlen p\u00e1rhuzamot vonhat: \"amikor a felt\u00e9tel igaz a fejl\u00e9cben, akkor a test v\u00e9grehajt\u00f3dik\". A ciklus k\u00fcl\u00f6nbs\u00e9ge csup\u00e1n annyi, hogy a test sokszor v\u00e9grehajt\u00f3dik.<\/p>\n<p>A m\u00e1sodik \u00e9rvem az, hogy a while kevesebb form\u00e1z\u00e1st ig\u00e9nyel, mint a for. Kevesebb form\u00e1z\u00e1s \u2014 kevesebb buta hiba a kihagyott vessz\u0151k \u00e9s z\u00e1r\u00f3jelek miatt. Az \u00fajoncok figyelme \u00e9s r\u00e9szletess\u00e9ge m\u00e9g nem el\u00e9gg\u00e9 fejlett ahhoz, hogy automatikusan elker\u00fclj\u00e9k a szintaktikai hib\u00e1kat.<br \/>\nA harmadik \u00e9rvem az, hogy sok j\u00f3 k\u00f6nyvben a while-t el\u0151sz\u00f6r magyar\u00e1zz\u00e1k el.<\/p>\n<p>Ha a di\u00e1k k\u00f6nnyen tudja \u00e1talak\u00edtani a kifejez\u00e9seket, akkor megeml\u00edthetj\u00fck a for-t fut\u00f3lag. A di\u00e1k k\u00e9s\u0151bb mag\u00e1nak v\u00e1lasztja ki, mi tetszik neki. Ha azonban az \u00e1talak\u00edt\u00e1sok neh\u00e9zs\u00e9get okoznak, akkor jobb nem elvonni a figyelm\u00e9t. El\u0151sz\u00f6r n\u00e9zze meg mindent while-lal. Amikor a ciklusok t\u00e9m\u00e1ja elsaj\u00e1t\u00edtva van, \u00e1t\u00edrhatjuk a megold\u00e1sokat, hogy gyakorolhassuk a while-b\u00f3l for-ra val\u00f3 \u00e1talak\u00edt\u00e1st.<br \/>\nA posztfelt\u00e9teles ciklusok meglehet\u0151sen ritka jelens\u00e9g. Erre egy\u00e1ltal\u00e1n nem vesztegetek id\u0151t. Ha a di\u00e1k elsaj\u00e1t\u00edtotta a mint\u00e1k felfedez\u00e9s\u00e9nek \u00e9s a kifejez\u00e9sek \u00e1talak\u00edt\u00e1s\u00e1nak \u00f6tleteit, akkor k\u00e9pes lesz \u00f6n\u00e1ll\u00f3an is eld\u00f6nteni.<\/p>\n<p>Amikor bemutatom az els\u0151 p\u00e9ld\u00e1t a tehets\u00e9ges di\u00e1koknak, felh\u00edvom a figyelmet arra, hogy az els\u0151 p\u00e9ld\u00e1ban nemcsak a megold\u00e1s, hanem az \u00f6sszes l\u00e9p\u00e9s is fontos, amely az eredm\u00e9nyhez vezetett. A lust\u00e1bb di\u00e1kok hajlamosak elhagyni a r\u00e9szletes le\u00edr\u00e1st, \u00e9s csak a v\u00e9gs\u0151 algoritmust \u00e1tkonvert\u00e1lni maguknak. Meg kell gy\u0151zni \u0151ket arr\u00f3l, hogy egyszer nekik is szembe kell n\u00e9zni\u00fck egy neh\u00e9z feladattal. Annak megold\u00e1s\u00e1hoz l\u00e9p\u00e9sr\u0151l l\u00e9p\u00e9sre kell haladni, mint ebben a p\u00e9ld\u00e1ban. Ez\u00e9rt fontos, hogy minden l\u00e9p\u00e9st r\u00f6gz\u00edts\u00fcnk. A k\u00f6vetkez\u0151 feladatokn\u00e1l m\u00e1r csak a v\u00e9gs\u0151 megold\u00e1st lehet bemutatni.<\/p>\n<p>Az automatiz\u00e1l\u00e1s alapgondolata az, hogy a g\u00e9pre b\u00edzzuk a rutinszer\u0171 munk\u00e1k elv\u00e9gz\u00e9s\u00e9t az ember helyett. Az egyik alapvet\u0151 technika a ciklusok \u00edr\u00e1sa. Ezt alkalmazzuk, amikor a programban egym\u00e1s ut\u00e1n t\u00f6bb azonos, ism\u00e9tl\u0151d\u0151 l\u00e9p\u00e9st \u00edrunk le.<\/p>\n<h4>Az egy\u00e9rtelm\u0171 jobb, mint a hom\u00e1lyos<\/h4>\n<p>\nJ\u00f3nak t\u0171nhet, ha az els\u0151 ciklusokkal kapcsolatos feladatban t\u00f6bbsz\u00f6r kinyomtatunk egy azonos kifejez\u00e9st. P\u00e9ld\u00e1ul:<\/p>\n<blockquote><p>Hurr\u00e1, m\u0171k\u00f6dik!<br \/>\nHurr\u00e1, m\u0171k\u00f6dik!<br \/>\nHurr\u00e1, m\u0171k\u00f6dik!<br \/>\nHurr\u00e1, m\u0171k\u00f6dik!<br \/>\nHurr\u00e1, m\u0171k\u00f6dik!<br \/>\nHurr\u00e1, m\u0171k\u00f6dik!<br \/>\nHurr\u00e1, m\u0171k\u00f6dik!<br \/>\nHurr\u00e1, m\u0171k\u00f6dik!\n<\/p><\/blockquote>\n<p>\nEz a megold\u00e1s azzal a h\u00e1tr\u00e1nnyal b\u00edr, hogy a kimenetben nem l\u00e1tszik a sz\u00e1ml\u00e1l\u00f3 \u00e9rt\u00e9ke. Ez kezd\u0151k sz\u00e1m\u00e1ra probl\u00e9m\u00e1t jelent. Ezt nem szabad al\u00e1becs\u00fclni. Eleinte ez a feladat volt az els\u0151, m\u00edg a sz\u00e1mok n\u00f6vekv\u0151 sorrendj\u00e9nek ki\u00edr\u00e1sa a m\u00e1sodik. Be kellett vezetnem a kifejez\u00e9seket: \u201eciklus N alkalommal\u201d \u00e9s \u201eciklus A-t\u00f3l B-ig\u201d, amelyek l\u00e9nyeg\u00e9ben ugyanazt jelentik. Hogy ne teremts\u00fcnk felesleges entit\u00e1sokat, \u00fagy d\u00f6nt\u00f6ttem, hogy csak a sz\u00e1mok sorozat\u00e1nak ki\u00edr\u00e1s\u00e1val kapcsolatos p\u00e9ld\u00e1t mutatom be. Kevesen tudnak felk\u00e9sz\u00fcl\u00e9s n\u00e9lk\u00fcl megtanulni a sz\u00e1ml\u00e1l\u00f3 fejben tart\u00e1s\u00e1t \u00e9s a program viselked\u00e9s\u00e9nek modellez\u00e9s\u00e9t. N\u00e9h\u00e1ny di\u00e1k el\u0151sz\u00f6r a ciklusok t\u00e9m\u00e1j\u00e1n\u00e1l tal\u00e1lkozik a \u201efejben v\u00e9gzett\u201d modellez\u00e9ssel.<br \/>\nN\u00e9h\u00e1ny gyakorl\u00e1s ut\u00e1n az azonos sz\u00f6veg ism\u00e9tl\u00e9s\u00e9re vonatkoz\u00f3 feladatot \u00f6n\u00e1ll\u00f3 megold\u00e1sra adom. Ha el\u0151sz\u00f6r l\u00e1that\u00f3 sz\u00e1ml\u00e1l\u00f3t adunk, majd l\u00e1thatatlant, akkor a di\u00e1koknak kevesebb probl\u00e9m\u00e1juk van. N\u00e9ha elegend\u0151 a \u201ene \u00edrd ki a sz\u00e1ml\u00e1l\u00f3t a k\u00e9perny\u0151re\u201d utas\u00edt\u00e1s.<\/p>\n<h4>Hogyan magyar\u00e1zz\u00e1k m\u00e1sok?<\/h4>\n<p>\nAz internetes oktat\u00e1si anyagok t\u00f6bbs\u00e9g\u00e9ben a ciklus szintaxis\u00e1t \"el\u0151ad\u00e1s\" keret\u00e9ben mutatj\u00e1k be. P\u00e9ld\u00e1ul a developer.mozilla.org-on (jelenleg) a while ciklussal egy\u00fctt t\u00f6bb m\u00e1s konstrukci\u00f3t is t\u00e1rgyalnak. Kiz\u00e1r\u00f3lag a konstrukci\u00f3kat adj\u00e1k meg sablon form\u00e1j\u00e1ban. Az ind\u00edt\u00e1suk eredm\u00e9ny\u00e9t szavakkal \u00edrj\u00e1k le, \u00e9s a szeml\u00e9ltet\u00e9s hi\u00e1nyzik. V\u00e9lem\u00e9nyem szerint egy ilyen t\u00e9ma prezent\u00e1ci\u00f3ja teljesen \u00e9rt\u00e9ktelenn\u00e9 teszi az ilyen anyagokat. A tanul\u00f3 \u00e1tkonvert\u00e1lhatja a k\u00f3dot \u00e9s futtathatja mag\u00e1t, de a megfelel\u0151 referencia m\u00e9g \u00edgy is sz\u00fcks\u00e9ges. Hogyan \u00e9rthetj\u00fck meg, hogy a p\u00e9lda helyesen van \u00e1t\u00edrva, ha nincs mivel \u00f6sszehasonl\u00edtani az eredm\u00e9nyt?<br \/>\nAmikor csak egy sablont kapunk p\u00e9lda n\u00e9lk\u00fcl, a di\u00e1knak m\u00e9g nehezebb dolga van. Hogyan lehet meg\u00e9rteni, hogy a k\u00f3ddarabok helyesen vannak-e elhelyezve a sablonban? Megpr\u00f3b\u00e1lhatunk \u00edrni <i>valahogyan<\/i>, majd futtatni. De ha nincs referencia az eredm\u00e9ny \u00f6sszehasonl\u00edt\u00e1s\u00e1ra, akkor a futtat\u00e1s sem seg\u00edt.<\/p>\n<p>A C++ kurzus sor\u00e1n a ciklus szintaxisa a 4. el\u0151ad\u00e1s 3. oldal\u00e1n tal\u00e1lhat\u00f3 a \"m\u0171veletek\" t\u00e9mak\u00f6r\u00e9ben. A ciklusok szintaxis\u00e1nak magyar\u00e1zatakor k\u00fcl\u00f6n hangs\u00falyt fektetnek a \"m\u0171velet\" kifejez\u00e9sre. Ez a kifejez\u00e9s olyan t\u00e9nyek halmazak\u00e9nt jelenik meg, mint p\u00e9ld\u00e1ul \"szimb\u00f3lum; ez egy m\u0171velet\", \"{} egy \u00f6sszetett m\u0171velet\", \"a ciklus t\u00f6rzs\u00e9nek m\u0171veletnek kell lennie\". Sz\u00e1momra ez a megk\u00f6zel\u00edt\u00e9s az\u00e9rt nem tetszik, mert l\u00e1tsz\u00f3lag elrejti a fontos \u00f6sszef\u00fcgg\u00e9seket egyetlen kifejez\u00e9s m\u00f6g\u00e9. A forr\u00e1sk\u00f3d programokra val\u00f3 bont\u00e1sa ilyen szinten a ford\u00edt\u00f3programok fejleszt\u0151i sz\u00e1m\u00e1ra sz\u00fcks\u00e9ges a nyelv specifik\u00e1ci\u00f3j\u00e1nak megval\u00f3s\u00edt\u00e1s\u00e1hoz, de nem a hallgat\u00f3k sz\u00e1m\u00e1ra az els\u0151 l\u00e9p\u00e9sekben. A programoz\u00e1sban \u00fajonnan \u00e9rkez\u0151k ritk\u00e1n rendelkeznek elegend\u0151 figyelmess\u00e9ggel ahhoz, hogy ilyen prec\u00edzen viszonyuljanak a kifejez\u00e9sekhez. Nagyon kevesen eml\u00e9keznek \u00e9s \u00e9rtenek meg \u00faj szavakat els\u0151re. Gyakorlatilag senki sem tudja helyesen alkalmazni a kifejez\u00e9st, amelyet \u00e9pp most tanult meg. Ez\u00e9rt a hallgat\u00f3kban sok hiba mer\u00fcl fel, mint p\u00e9ld\u00e1ul \"while(a&lt;7);{ \u00edrtam, \u00e9s a program nem m\u0171k\u00f6dik&quot;.<br \/>\nV\u00e9lem\u00e9nyem szerint el\u0151sz\u00f6r jobb lenne az \u00f6sszeszerel\u00e9s szintaxis\u00e1t azonnal z\u00e1r\u00f3jelekkel bemutatni. A z\u00e1r\u00f3jelek n\u00e9lk\u00fcli v\u00e1ltozatot csak akkor \u00e9rdemes magyar\u00e1zni, ha a di\u00e1knak konkr\u00e9t k\u00e9rd\u00e9se van, mint p\u00e9ld\u00e1ul \u201emi\u00e9rt m\u0171k\u00f6dik \u00edgy z\u00e1r\u00f3jelek n\u00e9lk\u00fcl\u201d.<\/p>\n<p>Okulov k\u00f6nyv\u00e9ben, \"Programoz\u00e1s alapjai\", 2012-b\u0151l, a ciklusok bemutat\u00e1sa a for sablonnal kezd\u0151dik, majd aj\u00e1nl\u00e1sok k\u00f6vetkeznek a haszn\u00e1lat\u00e1ra, \u00e9s ezt k\u00f6veti az \u00f3r\u00e1k k\u00eds\u00e9rleti r\u00e9sze. \u00dagy \u00e9rtem, a k\u00f6nyvet azok sz\u00e1m\u00e1ra \u00edrt\u00e1k, akik rendk\u00edv\u00fcl tehets\u00e9gesek, \u00e9s ritk\u00e1n j\u00e1rnak az \u00f3r\u00e1imra.<\/p>\n<p>A n\u00e9pszer\u0171 k\u00f6nyvekben mindig szerepel a k\u00f3d t\u00f6red\u00e9kek kimenetele. P\u00e9ld\u00e1ul Schilde \"Java 8. Teljes \u00fatmutat\u00f3\", 2015-\u00f6s kiad\u00e1s\u00e1ban. El\u0151sz\u00f6r megadj\u00e1k a sablont, majd a program p\u00e9ld\u00e1j\u00e1t, \u00e9s azonnal ut\u00e1na \u2014 a v\u00e9grehajt\u00e1s eredm\u00e9ny\u00e9t.<\/p>\n<blockquote><p>P\u00e9ldak\u00e9nt vizsg\u00e1ljuk meg a while ciklust, amelyben visszafel\u00e9 sz\u00e1molunk,<br \/>\nkezdve a 10-t\u0151l, \u00e9s pontosan 10 sort \"\u00fct\u00e9st\" \u00edrunk ki: <\/p>\n<pre><code class=\"java\">\/\/\u041f\u0440\u043e\u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u043f\u0440\u0438\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u043e\u043f\u0435\u0440\u0430\u0442\u043e\u0440\u0430 \u0446\u0438\u043a\u043b\u0430 while\nclass While {\n    public static void main(String args []) {\n        int n = 10;\n        while (n &gt; 0) {\n            System.out.println(&quot;\u0442\u0430\u043a\u0442 &quot; + n);\n            n--;\n        }\n    }\n}<\/code><\/pre>\n<p>\nA program elind\u00edt\u00e1sa ut\u00e1n t\u00edz \"\u00fct\u00e9st\" az al\u00e1bbi m\u00f3don \u00edr ki:<br \/>\n<code>takt 10<br \/>\ntakt 9<br \/>\ntakt 8<br \/>\ntakt 7<br \/>\ntakt 6<br \/>\ntakt 5<br \/>\ntakt 4<br \/>\ntakt 3<br \/>\ntakt 2<br \/>\ntakt 1<\/code><\/p><\/blockquote>\n<p>\nA sablon le\u00edr\u00e1s\u00e1val, a program p\u00e9ld\u00e1j\u00e1val \u00e9s a program eredm\u00e9ny\u00e9vel kapcsolatos megk\u00f6zel\u00edt\u00e9st haszn\u00e1lj\u00e1k a \"JavaScript gyerekeknek\" c\u00edm\u0171 k\u00f6nyvben, valamint a w3schools.com js tanfolyam\u00e1n. A weboldal form\u00e1tuma lehet\u0151v\u00e9 teszi, hogy ez a p\u00e9lda interakt\u00edv legyen.<\/p>\n<p>A Stroustrup \"C++ haszn\u00e1lat\u00e1nak alapelvei \u00e9s gyakorlata\", 2016-os k\u00f6nyv\u00e9ben az \u00edr\u00f3 m\u00e9g tov\u00e1bb ment. El\u0151sz\u00f6r is elmagyar\u00e1zza, hogy milyen eredm\u00e9nyt kell el\u00e9rni, \u00e9s csak ut\u00e1na mutatja be a program sz\u00f6veg\u00e9t. R\u00e1ad\u00e1sul nem csup\u00e1n egy v\u00e9letlenszer\u0171 programot v\u00e1lasztanak, hanem t\u00f6rt\u00e9neti \u00e1ttekint\u00e9st adnak. Ez seg\u00edt felh\u00edvni r\u00e1 a figyelmet: \"N\u00e9zd, ez nem csup\u00e1n egy haszontalan sz\u00f6veg. Valami jelent\u0151s\u00e9get l\u00e1tsz benne.\"<\/p>\n<blockquote><p>P\u00e9ldak\u00e9nt vegy\u00fck a programoz\u00e1s els\u0151 iter\u00e1ci\u00f3j\u00e1t, amelyet t\u00e1rolt programmal rendelkez\u0151 g\u00e9pen (EDSAC) hajtottak v\u00e9gre. Ezt David Wheeler \u00edrta a Cambridge-i Egyetem sz\u00e1m\u00edt\u00f3g\u00e9pes laborat\u00f3rium\u00e1ban, 1949. m\u00e1jus 6-\u00e1n. Ez a program egyszer\u0171 n\u00e9gyzetlist\u00e1t sz\u00e1mol ki \u00e9s nyomtat ki.<br \/>\n<code>0 0<br \/>\n1 1<br \/>\n2 4<br \/>\n3 9<br \/>\n4 16<br \/>\n...<br \/>\n98 9604<br \/>\n99 9801<\/code><br \/>\nItt minden sor egy sz\u00e1mot tartalmaz, amelyet egy tabul\u00e1tor jel (&#8216;t&#8217;) \u00e9s a sz\u00e1m n\u00e9gyzete k\u00f6vet. Ennek a programnak a verzi\u00f3ja C++ nyelven a k\u00f6vetkez\u0151k\u00e9ppen n\u00e9z ki:<\/p>\n<pre><code class=\"cpp\">\/\/\u0412\u044b\u0447\u0438\u0441\u043b\u044f\u0435\u043c \u0438 \u0440\u0430\u0441\u043f\u0435\u0447\u0430\u0442\u044b\u0432\u0430\u0435\u043c \u0442\u0430\u0431\u043b\u0438\u0446\u0443 \u043a\u0432\u0430\u0434\u0440\u0430\u0442\u043e\u0432 \u0447\u0438\u0441\u0435\u043b 0-99\nint main()\n{\n    int i = 0; \/\/ \u041d\u0430\u0447\u0438\u043d\u0430\u0435\u043c \u0441 \u043d\u0443\u043b\u044f\n    while(i &lt; 100){\n        cout &lt;&lt; i &lt;&lt; 't' &lt;&lt; square(i) &lt;&lt; 'n';\n        ++i;\n    }\n}<\/code><\/pre>\n<\/blockquote>\n<p>\n\u00c9rdekes, hogy a k\u00f6nyvben a szintaxis sablonja nincs le\u00edrva. Stroustrup az oktat\u00f3i \u00fatmutat\u00f3ban (<noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/349342\/\">ford\u00edt\u00e1s<\/a><\/noindex>) hangs\u00falyozza, hogy tiszteletben tartja a di\u00e1kjai intelligenci\u00e1j\u00e1t. Tal\u00e1n a sablonok azonos\u00edt\u00e1sa t\u00f6bb p\u00e9lda alapj\u00e1n val\u00f3ban a intelligencia megnyilv\u00e1nul\u00e1s\u00e1nak sz\u00e1m\u00edt.<\/p>\n<h4>Ahogyan \u00e9n magam magyar\u00e1zom<\/h4>\n<p>\nA Stroustrup-approach: describing the result, then solving the problem, and then having the student analyze it independently \u2014 seems the most thought-out. That\u2019s why I decided to base my explanation on it, but to illustrate it with a less historical example \u2014 the task of outputting a 'table of contents'. It creates a recognizable anchor so that later I can say, 'remember the task about the table of contents' and the students will recall it specifically. In my example, I aimed to address two of the most common misconceptions as well. I will discuss them in more detail below.<\/p>\n<blockquote><p>In this task, we familiarize ourselves with methods for solving complex problems. The initial solution should be primitive and straightforward. Then we can think about how to improve that solution.<br \/>\n<code>Bevezet\u00e9s<br \/>\n1. fejezet<br \/>\n2. fejezet<br \/>\n3. fejezet<br \/>\n4. fejezet<br \/>\n5. fejezet<br \/>\n6. fejezet<br \/>\n7. fejezet<br \/>\nZ\u00e1r\u00e1s<\/code><\/p><\/blockquote>\n<p>\nA megfigyel\u00e9seim szerint a \"sablon-p\u00e9lda-eredm\u00e9ny\" megk\u00f6zel\u00edt\u00e9s k\u00fcl\u00f6nb\u00f6z\u0151 kombin\u00e1ci\u00f3kban is ahhoz vezet, hogy a hallgat\u00f3k a ciklust hieroglifak\u00e9nt \u00e9rz\u00e9kelik. Ez abban jelentkezett, hogy nem \u00e9rtett\u00e9k, mi\u00e9rt kell felt\u00e9telt \u00edrni, hogyan v\u00e1lasszanak az i++ \u00e9s i-- k\u00f6z\u00f6tt, \u00e9s hasonl\u00f3, \u00fagy t\u0171n\u0151 nyilv\u00e1nval\u00f3 dolgok. Az ilyen f\u00e9lre\u00e9rt\u00e9sek elker\u00fcl\u00e9se \u00e9rdek\u00e9ben a ciklusokkal kapcsolatos besz\u00e9dnek hangs\u00falyoznia kell az azonos m\u0171veletek megism\u00e9tl\u00e9s\u00e9nek jelent\u00e9s\u00e9t, \u00e9s csak ezut\u00e1n az azok konstrukci\u00f3val val\u00f3 megform\u00e1l\u00e1s\u00e1t. Ez\u00e9rt a ciklus szintaxis\u00e1nak megad\u00e1sa el\u0151tt meg kell oldani a \"cs\u00fany\u00e1n\" a feladatot. A tartalomjegyz\u00e9k egyszer\u0171 megold\u00e1sa a k\u00f6vetkez\u0151k\u00e9ppen n\u00e9z ki:<\/p>\n<pre><code class=\"cs\">Console.WriteLine(\"Bevezet\u00e9s\");\nConsole.WriteLine(\"1. fejezet\");\nConsole.WriteLine(\"2. fejezet\");\nConsole.WriteLine(\"3. fejezet\");\nConsole.WriteLine(\"4. fejezet\");\nConsole.WriteLine(\"5. fejezet\");\nConsole.WriteLine(\"6. fejezet\");\nConsole.WriteLine(\"7. fejezet\");\nConsole.WriteLine(\"K\u00f6vetkeztet\u00e9s\");\n<\/code><\/pre>\n<p>\nHow can it be improved?<br \/>\nReplace repetitive actions with a loop.<br \/>\nWhich actions are repeated here consecutively without changes?<br \/>\nThere are none in this fragment. However, the commands for outputting the word 'Chapter' with a number are very similar to each other.<br \/>\nTherefore, the next step is to find the differences between the fragments. It's only in this task that everything is obvious; later, not single commands will repeat, but blocks of code with five lines or more. Searching will have to be done not just in a list of commands, but in branching or loop constructs.<br \/>\nIn the example, the difference between the commands is the number after the word 'Chapter'.<br \/>\nOnce the difference is found, it is necessary to understand the pattern of change. Is the differing fragment a number? Does it consistently increase or decrease? How does the value of the number change between two commands next to each other?<br \/>\nA p\u00e9ld\u00e1ban a \u00abFejezet\u00bb sz\u00f3 ut\u00e1ni sz\u00e1m 1-es l\u00e9p\u00e9sekben n\u00f6vekszik. A k\u00fcl\u00f6nbs\u00e9g felfedezve, a szab\u00e1lyoss\u00e1g azonos\u00edtva. Most kicser\u00e9lhetj\u00fck a k\u00fcl\u00f6nb\u00f6z\u0151 r\u00e9szt egy v\u00e1ltoz\u00f3ra.<br \/>\nEgy ilyen v\u00e1ltoz\u00f3t a repetit\u00edv r\u00e9szek els\u0151 megjelen\u00e9se el\u0151tt kell deklar\u00e1lni. Ezt a v\u00e1ltoz\u00f3t \u00e1ltal\u00e1ban i-nek vagy j-nek nevezik, vagy valamilyen b\u0151vebb n\u00e9vvel. Kezdeti \u00e9rt\u00e9ke legyen megegyez\u0151 az els\u0151 megjelen\u00edtett \u00e9rt\u00e9kkel. A p\u00e9ld\u00e1ban az els\u0151 \u00e9rt\u00e9k 1. <br \/>\nMilyen kezdeti \u00e9rt\u00e9ket kell venni a \u201e100, 101, 102, 103, 104, 105\u201d sz\u00e1mok sorozat\u00e1nak megjelen\u00edt\u00e9s\u00e9hez?<br \/>\nEbben a sorozatban az els\u0151 sz\u00e1m 100.<br \/>\nMinden ki\u00edr\u00e1s ut\u00e1n ezt a v\u00e1ltoz\u00f3t 1-gyel kell n\u00f6velni. Ez az egys\u00e9g a v\u00e1ltoztat\u00e1s l\u00e9p\u00e9se.<br \/>\nMilyen l\u00e9p\u00e9s lesz a \u201e100, 102, 104, 106\u201d sz\u00e1mok sorozat\u00e1ban?<br \/>\nEbben a sorozatban a l\u00e9p\u00e9s 2.<br \/>\nA k\u00fcl\u00f6nb\u00f6z\u0151 r\u00e9sz kicser\u00e9l\u00e9se ut\u00e1n a k\u00f3d a k\u00f6vetkez\u0151k\u00e9ppen fog kin\u00e9zni:<\/p>\n<pre><code class=\"cs\">Console.WriteLine(\"Bevezet\u00e9s\");\nint i;\ni = 0;\nConsole.WriteLine(\"Fejezet \" + i);\ni = i + 1;\nConsole.WriteLine(\"Fejezet \" + i);\ni = i + 1;\nConsole.WriteLine(\"Fejezet \" + i);\ni = i + 1;\nConsole.WriteLine(\"Fejezet \" + i);\ni = i + 1;\nConsole.WriteLine(\"Fejezet \" + i);\ni = i + 1;\nConsole.WriteLine(\"Fejezet \" + i);\ni = i + 1;\nConsole.WriteLine(\"Fejezet \" + i);\ni = i + 1;\nConsole.WriteLine(\"K\u00f6vetkeztet\u00e9s\");\n<\/code><\/pre>\n<p>\nA \u00abszab\u00e1lyoss\u00e1g v\u00e1ltoz\u00f3k\u00e9nt kifejez\u00e9se\u00bb m\u00f3dszer alkalmaz\u00e1sa ut\u00e1n a k\u00f3dban t\u00f6bb azonos cselekv\u00e9scsoport k\u00f6vetkezik egym\u00e1s ut\u00e1n. Most a repetit\u00edv cselekv\u00e9seket ciklussal helyettes\u00edthetj\u00fck.<\/p>\n<p>A feladat megold\u00e1s\u00e1nak folyamata, ahol ciklusokat kell haszn\u00e1lni, a k\u00f6vetkez\u0151 l\u00e9p\u00e9sekb\u0151l \u00e1ll:<\/p>\n<ol>\n<li>Megoldani \u00abny\u00edltan\u00bb sok k\u00fcl\u00f6n parancs \u00e1ltal<\/li>\n<li>Felfedezni a szab\u00e1lyoss\u00e1got<\/li>\n<li>Kifejezni a szab\u00e1lyoss\u00e1got v\u00e1ltoz\u00f3k\u00e9nt<\/li>\n<li>Ciklusba foglalni<\/li>\n<\/ol>\n<p>Ezut\u00e1n \u00faj kifejez\u00e9sek ker\u00fclnek bevezet\u00e9sre, hogy a hallgat\u00f3 ne ker\u00fclj\u00f6n abba a helyzetbe, hogy \u00abmindent \u00e9rtek, de nem tudom elmondani\u00bb:<br \/>\n \u2014 sz\u00e1ml\u00e1l\u00f3 \u2014 mindig egy v\u00e1ltoz\u00f3, amely a ciklus l\u00e9p\u00e9seinek sz\u00e1m\u00e1t nyomon k\u00f6veti. \u00c1ltal\u00e1ban egy eg\u00e9sz sz\u00e1m, amelyet egy hat\u00e1rral \u00f6sszehasonl\u00edtanak.<br \/>\n \u2014 sz\u00e1ml\u00e1l\u00f3 l\u00e9p\u00e9se \u2014 a sz\u00e1ml\u00e1l\u00f3 v\u00e1ltoz\u00e1s\u00e1nak szab\u00e1lyoss\u00e1g\u00e1t le\u00edr\u00f3.<br \/>\n \u2014 hat\u00e1r \u2014 sz\u00e1m vagy v\u00e1ltoz\u00f3, amellyel a sz\u00e1ml\u00e1l\u00f3t \u00f6sszem\u00e9rj\u00fck, hogy az algoritmus v\u00e9ges legyen. A sz\u00e1ml\u00e1l\u00f3 \u00e9rt\u00e9ke \u00fagy v\u00e1ltozik, hogy k\u00f6zel\u00edt a hat\u00e1rhoz.<br \/>\n \u2014 ciklus teste \u2014 a parancsok halmaza, amelyek ism\u00e9tl\u0151dnek. Amikor azt mondj\u00e1k, hogy \u00aba parancs a cikluson bel\u00fcl van meg\u00edrva\u00bb, akkor a testre gondolnak.<br \/>\n \u2014 ciklus iter\u00e1ci\u00f3 \u2014 a ciklus test\u00e9nek egyszeri v\u00e9grehajt\u00e1sa.<br \/>\n \u2014 a ciklus felt\u00e9tele \u2014 logikai kifejez\u00e9s, amelyt\u0151l f\u00fcgg, hogy v\u00e9grehajt\u00f3dik-e egy \u00faj iter\u00e1ci\u00f3. (Itt zavar keletkezhet az \u00e1gaz\u00f3 szerkezetekkel kapcsolatban)<br \/>\nK\u00e9szen kell \u00e1llni arra, hogy az els\u0151 id\u0151szakban a di\u00e1kok nem a megfelel\u0151 \u00e9rtelemben haszn\u00e1lj\u00e1k a kifejez\u00e9seket. Ez mind a er\u0151s, mind a gyenge di\u00e1kokra vonatkozik. A k\u00f6z\u00f6s nyelv kialak\u00edt\u00e1sa teljes m\u0171v\u00e9szet. Most r\u00f6viden \u00edrom: fel kell tenni a feladatot \u201eemeld ki a k\u00f3d egy darabj\u00e1t a \u201d \u00e9s saj\u00e1t magunknak helyesen kell haszn\u00e1lnunk ezeket a kifejez\u00e9seket a besz\u00e9lget\u00e9s sor\u00e1n.<br \/>\nA ciklussal t\u00f6rt\u00e9n\u0151 \u00e1talak\u00edt\u00e1s ut\u00e1n a k\u00f6vetkez\u0151 k\u00f3dmaradv\u00e1ny keletkezik:<\/p>\n<pre><code class=\"cs\">Console.WriteLine(\"Bevezet\u00e9s\");\nint i = 0;\nwhile (i &lt; 7) {\n    Console.WriteLine(&quot;Fejezet &quot; + i);\n    i = i + 1;\n}\nConsole.WriteLine(&quot;K\u00f6vetkeztet\u00e9s&quot;);<\/code><\/pre>\n<h4>A legf\u0151bb t\u00e9vhit<\/h4>\n<p>\nEgy n\u00e9pszer\u0171 t\u00e9vhit a di\u00e1kok k\u00f6r\u00e9ben, hogy a ciklus szerkezet\u00e9n bel\u00fcl olyan tev\u00e9kenys\u00e9geket helyeznek el, amelyeket egyszer kell csak megtenni. P\u00e9ld\u00e1ul \u00edgy:<\/p>\n<pre><code class=\"cs\">;\nint i = 0;\nwhile (i &lt; 7) {\n    Console.WriteLine(&quot;Bevezet\u00e9s&quot;)\n    Console.WriteLine(&quot;Fejezet &quot; + i);\n    i = i + 1;\n    Console.WriteLine(&quot;K\u00f6vetkeztet\u00e9s&quot;);\n}\n<\/code><\/pre>\n<p>\nA di\u00e1kok folyamatosan tal\u00e1lkoznak ezzel a probl\u00e9m\u00e1val, mind a kezdeti, mind a bonyolultabb feladatok sor\u00e1n.<br \/>\nA koron\u00e1s tipp ebben az esetben:<\/p>\n<blockquote><p>H\u00e1nyszor sz\u00fcks\u00e9ges a parancs \u00edr\u00e1s\u00e1t megism\u00e9telni: egyszer vagy t\u00f6bbsz\u00f6r?\n<\/p><\/blockquote>\n<p>\nA \"Bevezet\u00e9s\" \u00e9s \"Z\u00e1r\u00f3 gondolat\" szavak ki\u00edr\u00e1sa, valamint az i v\u00e1ltoz\u00f3 deklar\u00e1ci\u00f3ja \u00e9s inicializ\u00e1l\u00e1sa nem hasonl\u00edt a t\u00f6bbi ism\u00e9tl\u0151d\u0151 tev\u00e9kenys\u00e9gre. Ezeket egyszer hajtjuk v\u00e9gre, teh\u00e1t azokat a ciklus testen k\u00edv\u00fcl kell \u00edrni.<\/p>\n<p>A k\u00f3dban mindh\u00e1rom l\u00e9p\u00e9snek meg kell maradnia a megold\u00e1s \u00e9rdek\u00e9ben, hogy ut\u00f3lag hivatkozhassunk r\u00e1juk. Az els\u0151 k\u00e9t vari\u00e1ci\u00f3t el\u00e9g komment\u00e1lni, hogy ne zavarj\u00e1k a folyamatot.<br \/>\nA di\u00e1k figyelm\u00e9t az al\u00e1bbi t\u00e9nyekre kell ir\u00e1ny\u00edtani:<br \/>\n \u2014 A ciklus felt\u00e9tel\u00e9ben \u00e1ltal\u00e1ban a sz\u00e1ml\u00e1l\u00f3 \u00e9s a hat\u00e1r\u00e9rt\u00e9k \u00f6sszehasonl\u00edt\u00e1sa t\u00f6rt\u00e9nik. A sz\u00e1ml\u00e1l\u00f3 m\u00f3dosulhat a ciklus testen bel\u00fcl, a hat\u00e1r\u00e9rt\u00e9k azonban nem. E szab\u00e1ly megs\u00e9rt\u00e9s\u00e9hez komoly okokat kell megfogalmazni.<br \/>\n \u2014 A \"Bevezet\u00e9s\" \u00e9s \"Z\u00e1r\u00f3 gondolat\" testi ki\u00edr\u00e1sai a ciklus testen k\u00edv\u00fcl helyezkednek el. Ezeket egyszer kell v\u00e9grehajtanunk. A \"Bevezet\u00e9s\" \u2014 a tev\u00e9kenys\u00e9gek megism\u00e9tl\u00e9se el\u0151tt, a \"Z\u00e1r\u00f3 gondolat\" \u2014 pedig az ut\u00e1n.<br \/>\nA t\u00e9ma meg\u00e9rt\u00e9se, a k\u00f6vetkez\u0151ek elsaj\u00e1t\u00edt\u00e1sa, valamint a neh\u00e9zs\u00e9gek tiszt\u00e1z\u00e1sa sor\u00e1n m\u00e9g a er\u0151s di\u00e1koknak is hasznos feltenni a k\u00e9rd\u00e9st: \u201eEz a tev\u00e9kenys\u00e9g h\u00e1nyszor sz\u00fcks\u00e9ges? Egyszer vagy t\u00f6bbsz\u00f6r?\u201d.<\/p>\n<h4>Tov\u00e1bbi k\u00e9szs\u00e9gek fejleszt\u00e9se<\/h4>\n<p>\nA ciklusok tanulm\u00e1nyoz\u00e1sa sor\u00e1n a di\u00e1kok tov\u00e1bbra is gyakorolj\u00e1k a diagnosztiz\u00e1l\u00e1s \u00e9s a probl\u00e9mamegold\u00e1s k\u00e9pess\u00e9g\u00e9t. A diagn\u00f3zis fel\u00e1ll\u00edt\u00e1s\u00e1hoz a di\u00e1koknak el kell k\u00e9pzelni\u00fck a k\u00edv\u00e1nt eredm\u00e9nyt, \u00e9s \u00f6ssze kell hasonl\u00edtaniuk azt a t\u00e9nyleges eredm\u00e9nnyel. A kett\u0151 k\u00f6z\u00f6tti elt\u00e9r\u00e9s hat\u00e1rozza meg a sz\u00fcks\u00e9ges l\u00e9p\u00e9seket a hiba korrig\u00e1l\u00e1s\u00e1hoz.<br \/>\nMivel ebben a szakaszban a di\u00e1kok m\u00e9g nem rendelkeznek j\u00f3l megform\u00e1lt elk\u00e9pzel\u00e9sekkel a k\u00edv\u00e1nt eredm\u00e9nyr\u0151l, gyakran tesztadatokra t\u00e1maszkodhatnak. \u00c1ltal\u00e1ban ezen a szakaszon senki sem \u00e9rti, hogy mi mehet rosszul, \u00e9s hogyan kell ezzel megbirk\u00f3zni. Ez\u00e9rt \u00edr\u00e1sban megadom a leggyakoribb probl\u00e9m\u00e1k le\u00edr\u00e1s\u00e1t \u00e9s n\u00e9h\u00e1ny megold\u00e1si m\u00f3dot. A legmegfelel\u0151bb kiv\u00e1laszt\u00e1sa a di\u00e1k feladata.<br \/>\nAz \u00edr\u00e1s sz\u00fcks\u00e9ges ahhoz, hogy a di\u00e1kok megk\u00e9rdezhess\u00e9k: \"Az elv\u00e1rt eredm\u00e9ny megval\u00f3sult?\", \"Melyik helyzet \u00e1llt el\u0151 most?\", \"Seg\u00edtett-e az alkalmazott megold\u00e1s?\".<\/p>\n<ol>\n<li>Egy l\u00e9p\u00e9s v\u00e9grehajt\u00e1sa egyel kevesebb vagy t\u00f6bb, mint ami v\u00e1rhat\u00f3. Megold\u00e1si lehet\u0151s\u00e9gek:<br \/>\n \u2014 n\u00f6velje a sz\u00e1ml\u00e1l\u00f3 kezdeti \u00e9rt\u00e9k\u00e9t 1-gyel.<br \/>\n \u2014 cser\u00e9lje le a szigor\u00fa \u00f6sszehasonl\u00edt\u00f3 oper\u00e1tort (&lt; vagy &gt;) egy nem szigor\u00fa oper\u00e1torra (&lt;= vagy &gt;=).<br \/>\n \u2014 m\u00f3dos\u00edtsa a korl\u00e1toz\u00e1s \u00e9rt\u00e9k\u00e9t 1-gyel.<\/li>\n<li>A cikluson bel\u00fcli cselekv\u00e9sek meg\u00e1ll\u00e1s n\u00e9lk\u00fcl, v\u00e9gtelens\u00e9gig hajt\u00f3dnak v\u00e9gre. Megold\u00e1si lehet\u0151s\u00e9gek:<br \/>\n \u2014 adja hozz\u00e1 a sz\u00e1ml\u00e1l\u00f3 v\u00e1ltoztat\u00e1s\u00e1ra szolg\u00e1l\u00f3 parancsot, ha az hi\u00e1nyzik.<br \/>\n \u2014 jav\u00edtsa ki a sz\u00e1ml\u00e1l\u00f3 v\u00e1ltoztat\u00e1s\u00e1ra szolg\u00e1l\u00f3 parancsot, hogy az \u00e9rt\u00e9ke k\u00f6zelebb ker\u00fclj\u00f6n a hat\u00e1r\u00e9rt\u00e9khez.<br \/>\n \u2014 t\u00e1vol\u00edtsa el a hat\u00e1r\u00e9rt\u00e9k m\u00f3dos\u00edt\u00e1s\u00e1ra vonatkoz\u00f3 parancsot, ha az a ciklus t\u00f6rzs\u00e9ben van.<\/li>\n<li>A ciklusban v\u00e9grehajtott l\u00e9p\u00e9sek sz\u00e1ma t\u00f6bb, mint 1-gyel kevesebb vagy t\u00f6bb, mint ami v\u00e1rhat\u00f3. A ciklusban egyetlen l\u00e9p\u00e9s sem val\u00f3sult meg. El\u0151sz\u00f6r a v\u00e1ltoz\u00f3k t\u00e9nyleges \u00e9rt\u00e9keit kell felt\u00e1rni k\u00f6zvetlen\u00fcl a ciklus megkezd\u00e9se el\u0151tt. Megold\u00e1si lehet\u0151s\u00e9gek:<br \/>\n \u2014 m\u00f3dos\u00edtsa a korl\u00e1toz\u00e1s kezdeti \u00e9rt\u00e9k\u00e9t<br \/>\n \u2014 m\u00f3dos\u00edtsa a sz\u00e1ml\u00e1l\u00f3 kezdeti \u00e9rt\u00e9k\u00e9t<\/li>\n<\/ol>\n<p>\n\u00c1ltal\u00e1ban a 3. probl\u00e9ma azzal f\u00fcgg \u00f6ssze, hogy nem a megfelel\u0151 v\u00e1ltoz\u00f3t haszn\u00e1lj\u00e1k, vagy a sz\u00e1ml\u00e1l\u00f3 nincs null\u00e1zva.<\/p>\n<p>E magyar\u00e1zat ut\u00e1n a di\u00e1koknak tov\u00e1bbra is lehetnek t\u00e9ves elk\u00e9pzel\u00e9seik a ciklusok m\u0171k\u00f6d\u00e9s\u00e9r\u0151l.<br \/>\nA leggyakoribb k\u00e9telyek eloszlat\u00e1s\u00e1ra feladatokat adok:<\/p>\n<ol>\n<li>Amelyben a korl\u00e1toz\u00e1st, a sz\u00e1ml\u00e1l\u00f3 kezdeti \u00e9rt\u00e9k\u00e9t vagy a sz\u00e1ml\u00e1l\u00f3 l\u00e9p\u00e9s\u00e9t a felhaszn\u00e1l\u00f3 adja meg.<\/li>\n<li>Amelyben a sz\u00e1ml\u00e1l\u00f3 \u00e9rt\u00e9k\u00e9t valamilyen aritmetikai kifejez\u00e9sben kell haszn\u00e1lni. Lehet\u0151leg a sz\u00e1ml\u00e1l\u00f3 legyen a nevez\u0151ben, hogy a k\u00fcl\u00f6nbs\u00e9g nemline\u00e1ris legyen.<\/li>\n<li>Amelyben a sz\u00e1ml\u00e1l\u00f3 \u00e9rt\u00e9ke nem jelenik meg a ciklus fut\u00e1sa alatt. P\u00e9ld\u00e1ul a sz\u00fcks\u00e9ges sz\u00e1m\u00fa azonos sz\u00f6vegr\u00e9szlet kibocs\u00e1t\u00e1sa vagy figura rajzol\u00e1sa tekn\u0151s grafik\u00e1val.<\/li>\n<li>Amelyben el\u0151sz\u00f6r egyes ism\u00e9tl\u0151d\u0151 feladatokat kell elv\u00e9gezni, majd m\u00e1sokat.<\/li>\n<li>Amelyben m\u00e1s feladatokat kell elv\u00e9gezni az ism\u00e9tl\u0151d\u0151k el\u0151tt \u00e9s ut\u00e1n.<\/li>\n<\/ol>\n<p>\nMinden feladathoz tesztadatokat \u00e9s v\u00e1rt eredm\u00e9nyt kell megadni.<\/p>\n<p>Ahhoz, hogy meg\u00e9rts\u00fck, milyen gyorsan lehet haladni, meg kell adni az adott feladatok felt\u00e9teleit, \u00e9s megk\u00e9rdezni: \u201emiben k\u00fcl\u00f6nb\u00f6znek a p\u00e9ld\u00e1t\u00f3l?\u201d, \u201emit kell megv\u00e1ltoztatni a p\u00e9ld\u00e1ban, hogy megoldhat\u00f3ak legyenek?\u201d Ha a di\u00e1k \u00e9rtelmesen v\u00e1laszol, akkor pr\u00f3b\u00e1ljon megoldani legal\u00e1bb egyet az \u00f3r\u00e1n, a t\u00f6bbit pedig otthon \u00f6n\u00e1ll\u00f3an. Ha a megold\u00e1s sikeres, akkor lehet elkezdeni a ciklusok bels\u0151 felt\u00e9teleinek magyar\u00e1zat\u00e1t.<br \/>\nHa a \u00f6n\u00e1ll\u00f3 megold\u00e1ssal neh\u00e9zs\u00e9gek mer\u00fclnek fel, akkor mindent az \u00f3r\u00e1n kell gyakorolni. Annak \u00e9rdek\u00e9ben, hogy a feladat megold\u00e1sa ne hasonl\u00edtson a baglyot rajzol\u00e1s\u00e1ra, javaslom, hogy el\u0151sz\u00f6r ne \u00e1ltal\u00e1nos megold\u00e1st tal\u00e1ljunk. Azaz \u00fagy, hogy a megold\u00e1s megfeleljen az els\u0151 tesztnek, \u00e9s ne haszn\u00e1lja a ciklus szerkezet\u00e9t. Majd k\u00e9s\u0151bb alkalmazzunk \u00e1talak\u00edt\u00e1sokat az \u00e1ltal\u00e1nos megold\u00e1s el\u00e9r\u00e9s\u00e9hez.<\/p>\n<h4>Ciklusok \u00e9s el\u00e1gaz\u00e1sok<\/h4>\n<p>\nSzerintem hasznos lenne a \u201eciklusok el\u00e1gaz\u00e1sokon bel\u00fcl\u201d t\u00e9m\u00e1t k\u00fcl\u00f6n bemutatni. \u00cdgy k\u00e9s\u0151bb l\u00e1that\u00f3v\u00e1 v\u00e1lik a k\u00fcl\u00f6nbs\u00e9g a felt\u00e9telek t\u00f6bbsz\u00f6ri ellen\u0151rz\u00e9se \u00e9s egyszeri ellen\u0151rz\u00e9se k\u00f6z\u00f6tt.<br \/>\nA gyakorl\u00f3 feladatok a felhaszn\u00e1l\u00f3 \u00e1ltal megadott A \u00e9s B k\u00f6z\u00f6tti sz\u00e1mok kinyomtat\u00e1s\u00e1ra vonatkoznak:<br \/>\n \u2014 mindig n\u00f6vekv\u0151 sorrendben.<br \/>\n \u2014 n\u00f6vekv\u0151 vagy cs\u00f6kken\u0151 sorrendben A \u00e9s B \u00e9rt\u00e9k\u00e9t\u0151l f\u00fcgg\u0151en.<\/p>\n<p>A \"ciklusokban v\u00e9gzett el\u00e1gaz\u00e1sokr\u00f3l\" csak azut\u00e1n lehet sz\u00f3, hogy a hallgat\u00f3 elsaj\u00e1t\u00edtotta a \"mint\u00e1zat v\u00e1ltoz\u00f3v\u00e1 cser\u00e9l\u00e9se\" \u00e9s a \"megism\u00e9telhet\u0151 tev\u00e9kenys\u00e9gek cikluss\u00e1 alak\u00edt\u00e1sa\" technik\u00e1kat.<br \/>\nA ciklusokon bel\u00fcli el\u00e1gaz\u00e1sok alkalmaz\u00e1s\u00e1nak f\u0151 oka \u2014 a szab\u00e1lyszer\u0171s\u00e9gek anom\u00e1li\u00e1i. K\u00f6z\u00e9pen ez megszakad a bemeneti adatok f\u00fcggv\u00e9ny\u00e9ben.<br \/>\nAzoknak a di\u00e1koknak, akik k\u00e9pesek arra, hogy egyszer\u0171 m\u00f3dszerek kombin\u00e1l\u00e1s\u00e1val keressenek megold\u00e1sokra, elegend\u0151 azt mondani, hogy \u201eaz el\u00e1gaz\u00e1sokat lehet ciklusokba \u00edrni\u201d, \u00e9s adni kell egy mintafeladatot, amelyet teljesen \u00f6n\u00e1ll\u00f3an kell megoldani.<br \/>\nMinta feladat:<\/p>\n<blockquote><p>A felhaszn\u00e1l\u00f3 be\u00edr egy X sz\u00e1mot. \u00cdrja ki az oszlopban 0-t\u00f3l 9-ig a sz\u00e1mokat, \u00e9s helyezzen el egy '+' jelet azon sz\u00e1m mellett, amelyik egyenl\u0151 X-szel.<\/p><\/blockquote>\n<p>\n<b class=\"spoiler_title\">Ha 0-t adtak meg<\/b>0+<br \/>\n1<br \/>\n2<br \/>\n3<br \/>\n4<br \/>\n5<br \/>\n6<br \/>\n7<br \/>\n8<br \/>\n9<\/p>\n<p><b class=\"spoiler_title\">Ha 6 szerepelt<\/b>0<br \/>\n1<br \/>\n2<br \/>\n3<br \/>\n4<br \/>\n5<br \/>\n6+<br \/>\n7<br \/>\n8<br \/>\n9<\/p>\n<p><b class=\"spoiler_title\">Ha 9 szerepelt<\/b>0<br \/>\n1<br \/>\n2<br \/>\n3<br \/>\n4<br \/>\n5<br \/>\n6<br \/>\n7<br \/>\n8<br \/>\n9+<\/p>\n<p><b class=\"spoiler_title\">Ha 777 szerepelt<\/b>0<br \/>\n1<br \/>\n2<br \/>\n3<br \/>\n4<br \/>\n5<br \/>\n6<br \/>\n7<br \/>\n8<br \/>\n9<\/p>\n<p>Ha hi\u00e1nyzik a r\u00f6vid magyar\u00e1zat ahhoz, hogy ciklussal \u00edrhassuk meg, akkor el kell \u00e9rn\u00fcnk ezt a feladatot ciklus n\u00e9lk\u00fcl egy univerz\u00e1lis megold\u00e1ssal.<br \/>\nAz al\u00e1bbi k\u00e9t vari\u00e1ci\u00f3 k\u00f6z\u00fcl az egyik fog megval\u00f3sulni:<br \/>\n<b class=\"spoiler_title\">K\u00edv\u00e1nt<\/b><\/p>\n<pre><code class=\"cs\">string temp;\ntemp = Console.ReadLine();\nint x;\nx = int.Parse(temp);\nif (x==0) {\n    Console.WriteLine(0 + \"+\");\n} else {\n    Console.WriteLine(0);\n}\nif (x==1) {\n    Console.WriteLine(1 + \"+\");\n} else {\n    Console.WriteLine(1);\n}\nif (x==2) {\n    Console.WriteLine(2 + \"+\");\n} else {\n    Console.WriteLine(2);\n}\nif (x==3) {\n    Console.WriteLine(3 + \"+\");\n} else {\n    Console.WriteLine(3);\n}\nif (x==4) {\n    Console.WriteLine(4 + \"+\");\n} else {\n    Console.WriteLine(4);\n}\nif (x==5) {\n    Console.WriteLine(5 + \"+\");\n} else {\n    Console.WriteLine(5);\n}\nif (x==6) {\n    Console.WriteLine(6 + \"+\");\n} else {\n    Console.WriteLine(6);\n}\nif (x==7) {\n    Console.WriteLine(7 + \"+\");\n} else {\n    Console.WriteLine(7);\n}\nif (x==8) {\n    Console.WriteLine(8 + \"+\");\n} else {\n    Console.WriteLine(8);\n}\nif (x==9) {\n    Console.WriteLine(9 + \"+\");\n} else {\n    Console.WriteLine(9);\n}\n<\/code><\/pre>\n<p><b class=\"spoiler_title\">Lehets\u00e9ges<\/b><\/p>\n<pre><code class=\"cs\">string temp;\ntemp = Console.ReadLine();\nint x;\nx = int.Parse(temp);\nif (x==0) {\n    Console.WriteLine(\"0+n1n2n3n4n5n6n7n8n9\");\n}\nif (x==1) {\n    Console.WriteLine(\"0n1+n2n3n4n5n6n7n8n9\");\n}\nif (x==2) {\n    Console.WriteLine(\"0n1n2+n3n4n5n6n7n8n9\");\n}\nif (x==3) {\n    Console.WriteLine(\"0n1n2n3+n4n5n6n7n8n9\");\n}\nif (x==4) {\n    Console.WriteLine(\"0n1n2n3n4+n5n6n7n8n9\");\n}\nif (x==5) {\n    Console.WriteLine(\"0n1n2n3n4n5+n6n7n8n9\");\n}\nif (x==6) {\n    Console.WriteLine(\"0n1n2n3n4n5n6+n7n8n9\");\n}\nif (x==7) {\n    Console.WriteLine(\"0n1n2n3n4n5n6n7+n8n9\");\n}\nif (x==8) {\n    Console.WriteLine(\"0n1n2n3n4n5n6n7n8+n9\");\n}\nif (x==9) {\n    Console.WriteLine(\"0n1n2n3n4n5n6n7n8n9+\");\n}\n<\/code><\/pre>\n<p>Hasonl\u00f3 feladatot el\u0151re adok, mik\u00f6zben a felt\u00e9teles utas\u00edt\u00e1sokr\u00f3l tanulunk.<br \/>\nHa a hallgat\u00f3nak a \"lehets\u00e9ges\" vari\u00e1ci\u00f3 j\u00f6tt ki, akkor el kell mondani, hogy ugyanannak a feladatnak sz\u00e1mos megold\u00e1sa lehet. Azonban ezek elt\u00e9rnek a k\u00f6vetelm\u00e9nyek v\u00e1ltoz\u00e1saival szembeni ellen\u00e1ll\u00f3s\u00e1gt\u00f3l. K\u00e9rdezd meg: \"H\u00e1ny helyet kell majd jav\u00edtani a k\u00f3dban, ha m\u00e9g egy sz\u00e1mot kell hozz\u00e1adni?\" A \"lehets\u00e9ges\" vari\u00e1ci\u00f3hoz egy \u00faj \u00e1gat kell hozz\u00e1adni, \u00e9s 10 m\u00e1sik helyen fel kell t\u00fcntetni az \u00faj sz\u00e1mot. A \"k\u00edv\u00e1nt\" vari\u00e1ci\u00f3hoz el\u00e9g egy \u00faj \u00e1gat hozz\u00e1adni.<br \/>\n\u00c1ll\u00edtsd fel a feladatot reproduk\u00e1lni a \"k\u00edv\u00e1nt\" vari\u00e1ci\u00f3t, majd tal\u00e1ld meg a k\u00f3dban a szab\u00e1lyoss\u00e1got, v\u00e9gezz el egy v\u00e1ltoz\u00f3 cser\u00e9t \u00e9s \u00edrj egy ciklust.<br \/>\nHa van \u00f6tletem arra, hogyan lehetne ezt a feladatot ciklus n\u00e9lk\u00fcl m\u00e1s m\u00f3don megoldani, k\u00e9rlek, \u00edrd meg a megjegyz\u00e9sekben.<\/p>\n<h4>Ciklusok ciklusokon bel\u00fcl<\/h4>\n<p>\nEbben a t\u00e9m\u00e1ban figyelni kell arra, hogy:<br \/>\n \u2014 a bels\u0151 \u00e9s k\u00fcls\u0151 ciklus sz\u00e1ml\u00e1l\u00f3inak k\u00fcl\u00f6nb\u00f6z\u0151 v\u00e1ltoz\u00f3knak kell lenni\u00fck.<br \/>\n \u2014 a bels\u0151 ciklus sz\u00e1ml\u00e1l\u00f3j\u00e1t t\u00f6bbsz\u00f6r is null\u00e1zni kell (azaz a k\u00fcls\u0151 ciklus t\u00f6rzs\u00e9ben).<br \/>\n A feladatokban nem lehet el\u0151sz\u00f6r egy bet\u0171t t\u00f6bb sorba \u00edrni, majd a m\u00e1sodikat. El\u0151sz\u00f6r az els\u0151 sor \u00f6sszes bet\u0171j\u00e9t kell ki\u00edrni, majd a m\u00e1sodik sor \u00f6sszes bet\u0171j\u00e9t, \u00e9s \u00edgy tov\u00e1bb.<\/p>\n<p>A ciklusokba \u00e1gyazott ciklusok t\u00e9m\u00e1j\u00e1nak magyar\u00e1zat\u00e1t a sz\u00e1ml\u00e1l\u00f3 null\u00e1z\u00e1s\u00e1nak fontoss\u00e1g\u00e1val \u00e9rdemes kezdeni.<br \/>\nMinta feladat:<\/p>\n<blockquote><p>A felhaszn\u00e1l\u00f3 be\u00edr k\u00e9t sz\u00e1mot: R \u00e9s T. \u00cdrjon ki k\u00e9t sor '#' karaktert. Az els\u0151 sorban R karakternek kell lennie. A m\u00e1sodik sorban pedig T karakternek. Ha b\u00e1rmelyik sz\u00e1m negat\u00edv, \u00edrjon ki egy hiba\u00fczenetet.<\/p><\/blockquote>\n<p>\n<b class=\"spoiler_title\">R=5, T=11<\/b>#####<br \/>\n###########<\/p>\n<p><b class=\"spoiler_title\">R=20, T=3<\/b>####################<br \/>\n###<\/p>\n<p><b class=\"spoiler_title\">R=-1, T=6<\/b>Az R \u00e9rt\u00e9ke nem lehet negat\u00edv.<\/p>\n<p><b class=\"spoiler_title\">R=6, T=-2<\/b>A T \u00e9rt\u00e9ke nem lehet negat\u00edv.<\/p>\n<p>Nyilv\u00e1nval\u00f3, hogy ennek a feladatnak is legal\u00e1bb k\u00e9t megold\u00e1si lehet\u0151s\u00e9ge van.<br \/>\n<b class=\"spoiler_title\">K\u00edv\u00e1nt<\/b><\/p>\n<pre><code class=\"cs\">string temp;\nint R;\nint T;\ntemp = Console.ReadLine();\nR = int.Parse(temp);\ntemp = Console.ReadLine();\nT = int.Parse(temp);\nint i = 0;\nwhile (i &lt; R)\n{\n    Console.Write(&quot;#&quot;);\n    i = i + 1;\n}\nConsole.WriteLine();\ni = 0;\nwhile (i &lt; T)\n{\n    Console.Write(&quot;#&quot;);\n    i = i + 1;\n}\n<\/code><\/pre>\n<p><b class=\"spoiler_title\">Lehets\u00e9ges \u21161<\/b><\/p>\n<pre><code class=\"cs\">string temp;\nint R;\nint T;\ntemp = Console.ReadLine();\nR = int.Parse(temp);\ntemp = Console.ReadLine();\nT = int.Parse(temp);\nint i = 0;\nwhile (i &lt; R)\n{\n    Console.Write(&quot;#&quot;);\n    i = i + 1;\n}\nConsole.WriteLine();\nint j = 0;\nj = 0;\nwhile (j &lt; T)\n{\n    Console.Write(&quot;#&quot;);\n    j = j + 1;\n}\n<\/code><\/pre>\n<p>A k\u00fcl\u00f6nbs\u00e9g az, hogy a \"lehets\u00e9ges\" megold\u00e1sban a m\u00e1sodik sor ki\u00edr\u00e1s\u00e1hoz egy m\u00e1sodik v\u00e1ltoz\u00f3t haszn\u00e1ltak. Ki kellene tartani amellett, hogy ugyanazt a v\u00e1ltoz\u00f3t haszn\u00e1ljuk mindk\u00e9t ciklushoz. Ezt a korl\u00e1toz\u00e1st azzal lehet \u00e9rvelni, hogy a k\u00e9t ciklushoz egy sz\u00e1ml\u00e1l\u00f3val t\u00f6rt\u00e9n\u0151 megold\u00e1s illusztr\u00e1lja a \"sz\u00e1ml\u00e1l\u00f3 null\u00e1z\u00e1s\u00e1nak\" fogalm\u00e1t. Ennek a fogalomnak a meg\u00e9rt\u00e9se sz\u00fcks\u00e9ges a k\u00f6vetkez\u0151 feladatok megold\u00e1s\u00e1hoz. Kompromisszumk\u00e9nt mindk\u00e9t megold\u00e1st lehet\u0151v\u00e9 lehet tenni.<\/p>\n<p>A tipikus probl\u00e9ma, amely egy sz\u00e1ml\u00e1l\u00f3 v\u00e1ltoz\u00f3 egy ciklusban val\u00f3 haszn\u00e1lat\u00e1b\u00f3l ad\u00f3dik, \u00edgy jelentkezik:<br \/>\n<b class=\"spoiler_title\">R=5, T=11<\/b>#####<br \/>\n######<\/p>\n<p>A m\u00e1sodik sorban a karakterek sz\u00e1ma nem felel meg a T \u00e9rt\u00e9k\u00e9nek. Ha ebben a probl\u00e9m\u00e1ban seg\u00edts\u00e9gre van sz\u00fcks\u00e9g, akkor \"r\u00e1 kell mutatni\" a ciklusokkal kapcsolatos tipikus probl\u00e9m\u00e1k jegyzet\u00e9re. Ez a 3. t\u00fcnet. Diagnosztiz\u00e1lhat\u00f3, ha k\u00f6zvetlen\u00fcl a m\u00e1sodik ciklus el\u0151tt ki\u00edrjuk a sz\u00e1ml\u00e1l\u00f3 \u00e9rt\u00e9k\u00e9t. Null\u00e1z\u00e1ssal jav\u00edthat\u00f3. De ezt jobb azonnal nem elmondani. A hallgat\u00f3nak meg kell pr\u00f3b\u00e1lnia legal\u00e1bb egy hipot\u00e9zist megfogalmazni.<\/p>\n<p>Term\u00e9szetesen van m\u00e1s megold\u00e1si lehet\u0151s\u00e9g is. De ezt a hallgat\u00f3imn\u00e1l m\u00e9g sosem l\u00e1ttam. A ciklusok tanulm\u00e1nyoz\u00e1s\u00e1nak szakasz\u00e1ban r\u00f3la val\u00f3 besz\u00e9lget\u00e9s elvonhatja a figyelmet. K\u00e9s\u0151bb visszat\u00e9rhet\u00fcnk r\u00e1, a karakterm\u0171veletek tanulm\u00e1nyoz\u00e1sakor.<br \/>\n<b class=\"spoiler_title\">Lehets\u00e9ges \u21162<\/b><\/p>\n<pre><code class=\"cs\">string temp;\nint R;\nint T;\ntemp = Console.ReadLine();\nR = int.Parse(temp);\ntemp = Console.ReadLine();\nT = int.Parse(temp);\nConsole.WriteLine(new String('#', R));\nConsole.WriteLine(new String('#', T));\n<\/code><\/pre>\n<p>\nA k\u00f6vetkez\u0151 k\u00f6telez\u0151 feladat:<\/p>\n<blockquote><p>\u00cdrja ki a k\u00e9perny\u0151re a 0-t\u00f3l 9-ig terjed\u0151 sz\u00e1mokat. Minden sz\u00e1m \u00faj sorban jelenjen meg. A sorokban l\u00e9v\u0151 sz\u00e1mok sz\u00e1ma (W) a billenty\u0171zetr\u0151l van be\u00edrva.<\/p><\/blockquote>\n<p>\n<b class=\"spoiler_title\">W=1<\/b>0<br \/>\n1<br \/>\n2<br \/>\n3<br \/>\n4<br \/>\n5<br \/>\n6<br \/>\n7<br \/>\n8<br \/>\n9<\/p>\n<p><b class=\"spoiler_title\">W=10<\/b><code>0000000000<br \/>\n1111111111<br \/>\n2222222222<br \/>\n3333333333<br \/>\n4444444444<br \/>\n5555555555<br \/>\n6666666666<br \/>\n7777777777<br \/>\n8888888888<br \/>\n9999999999<\/code><\/p>\n<p>Ha a di\u00e1k megtanulta a v\u00e1ltoz\u00f3cser\u00e9t, akkor viszonylag gyorsan boldogulni fog. A lehets\u00e9ges probl\u00e9ma ism\u00e9t a v\u00e1ltoz\u00f3 null\u00e1z\u00e1sa lesz. Ha nem boldogul a konvert\u00e1l\u00e1ssal, akkor t\u00fal gyorsan haladt, \u00e9s egyszer\u0171bb feladatokat kell megoldania.<\/p>\n<p>K\u00f6sz\u00f6n\u00f6m a figyelmet. L\u00e1jkoljon, iratkozzon fel a csatorn\u00e1ra.<\/p>\n<p>P.S. Ha hib\u00e1t vagy elg\u00e9pel\u00e9st \u00e9szlel a sz\u00f6vegben, k\u00e9rem, \u00e9rtes\u00edtsen. Ezt megteheti, ha kijel\u00f6l egy sz\u00f6vegr\u00e9szt, \u00e9s Mac-en megnyomja a \u201e\u2318 + Enter\u201d billenty\u0171t, klasszikus billenty\u0171zeteken pedig a \u201eCtrl \/ Enter\u201d kombin\u00e1ci\u00f3t, vagy szem\u00e9lyes \u00fczenetben is. Ha ezek a lehet\u0151s\u00e9gek nem el\u00e9rhet\u0151k, k\u00e9rj\u00fck, jelezze a hib\u00e1kat a megjegyz\u00e9sekben. K\u00f6sz\u00f6n\u00f6m!<\/p>\n<p class=\"for_users_only_msg\">Csak a regisztr\u00e1lt felhaszn\u00e1l\u00f3k vehetnek r\u00e9szt a szavaz\u00e1son. <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/auth\/login\/\">K\u00e9rem, jelentkezzen be.<\/a><\/noindex>, k\u00e9rem.<\/p>\n<h2 class=\"default-block__polling-title\">K\u00e9rd\u0151\u00edv karma n\u00e9lk\u00fcli olvas\u00f3knak<\/h2>\n<ul class=\"poll-result\">\n<li class=\"poll-result__item\">\n<p>                <strong class=\"poll-result__data-percent\">20,0%<\/strong>Szakmai oktat\u00e1st tartok, +12<\/p>\n<\/li>\n<li class=\"poll-result__item\">\n<p>                <strong class=\"poll-result__data-percent\">10,0%<\/strong>Szakmai oktat\u00e1st tartok, -11<\/p>\n<\/li>\n<li class=\"poll-result__item\">\n<p>                <strong class=\"poll-result__data-percent  poll-result__data-percent_winner\">70,0%<\/strong>Nem tartok oktat\u00e1st, +17<\/p>\n<\/li>\n<li class=\"poll-result__item\">\n<p>                <strong class=\"poll-result__data-percent\">0,0%<\/strong>Nem tartok oktat\u00e1st, -10<\/p>\n<\/li>\n<li class=\"poll-result__item\">\n<p>                <strong class=\"poll-result__data-percent\">0,0%<\/strong>M\u00e1s0<\/p>\n<\/li>\n<\/ul>\n<p>    10 felhaszn\u00e1l\u00f3 szavazott. 5 felhaszn\u00e1l\u00f3 tart\u00f3zkodott.<br \/>\n<br \/>Forr\u00e1s: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/post\/456500\/\">habr.com<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u0440\u0435\u0447\u044c \u043f\u043e\u0439\u0434\u0435\u0442 \u043e\u0431 \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0431\u0430\u0437\u043e\u0432\u044b\u0445 \u0442\u0435\u043c, \u0434\u0430\u043d\u043d\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430 \u0434\u043b\u044f \u043e\u043f\u044b\u0442\u043d\u044b\u0445 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u043e\u0432. \u0426\u0435\u043b\u044c \u2014 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043a\u0430\u043a\u0438\u0435 \u0437\u0430\u0431\u043b\u0443\u0436\u0434\u0435\u043d\u0438\u044f \u0431\u044b\u0432\u0430\u044e\u0442 \u0443 \u043d\u043e\u0432\u0438\u0447\u043a\u043e\u0432 \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438. \u0414\u043b\u044f \u043f\u0440\u0430\u043a\u0442\u0438\u043a\u0443\u044e\u0449\u0438\u0445 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u043e\u0432 \u044d\u0442\u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b \u0443\u0436\u0435 \u0434\u0430\u0432\u043d\u043e \u0440\u0435\u0448\u0435\u043d\u044b, \u043f\u043e\u0437\u0430\u0431\u044b\u0442\u044b \u0438\u043b\u0438 \u0432\u043e\u043e\u0431\u0449\u0435 \u043d\u0435 \u0437\u0430\u043c\u0435\u0447\u0435\u043d\u044b. \u0421\u0442\u0430\u0442\u044c\u044f \u043c\u043e\u0436\u0435\u0442 \u043f\u0440\u0438\u0433\u043e\u0434\u0438\u0442\u044c\u0441\u044f, \u0435\u0441\u043b\u0438 \u0432\u0434\u0440\u0443\u0433 \u0432\u0430\u043c \u043f\u0440\u0438\u0434\u0435\u0442\u0441\u044f \u043f\u043e\u043c\u043e\u0433\u0430\u0442\u044c \u0441 \u044d\u0442\u043e\u0439 \u0442\u0435\u043c\u043e\u0439 \u043a\u043e\u043c\u0443-\u043d\u0438\u0431\u0443\u0434\u044c. \u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u043f\u0440\u043e\u0432\u043e\u0434\u044f\u0442\u0441\u044f [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[],"tags":[],"class_list":["post-40208","post","type-post","status-publish","format-standard","hentry"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u0440\u0435\u0447\u044c \u043f\u043e\u0439\u0434\u0435\u0442 \u043e\u0431 \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0431\u0430\u0437\u043e\u0432\u044b\u0445 \u0442\u0435\u043c, \u0434\u0430\u043d\u043d\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430 \u0434\u043b\u044f \u043e\u043f\u044b\u0442\u043d\u044b\u0445 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u043e\u0432. \u0426\u0435\u043b\u044c \u2014 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043a\u0430\u043a\u0438\u0435 \u0437\u0430\u0431\u043b\u0443\u0436\u0434\u0435\u043d\u0438\u044f \u0431\u044b\u0432\u0430\u044e\u0442 \u0443 \u043d\u043e\u0432\u0438\u0447\u043a\u043e\u0432 \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/hu\/blog\/kak-nauchit-preodolevat-trudnosti-a-zaodno-i-pisat-czikly\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"hu_HU\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041a\u0430\u043a \u043d\u0430\u0443\u0447\u0438\u0442\u044c \u043f\u0440\u0435\u043e\u0434\u043e\u043b\u0435\u0432\u0430\u0442\u044c \u0442\u0440\u0443\u0434\u043d\u043e\u0441\u0442\u0438, \u0430 \u0437\u0430\u043e\u0434\u043d\u043e \u0438 \u043f\u0438\u0441\u0430\u0442\u044c \u0446\u0438\u043a\u043b\u044b | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u0440\u0435\u0447\u044c \u043f\u043e\u0439\u0434\u0435\u0442 \u043e\u0431 \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0431\u0430\u0437\u043e\u0432\u044b\u0445 \u0442\u0435\u043c, \u0434\u0430\u043d\u043d\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430 \u0434\u043b\u044f \u043e\u043f\u044b\u0442\u043d\u044b\u0445 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u043e\u0432. \u0426\u0435\u043b\u044c \u2014 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043a\u0430\u043a\u0438\u0435 \u0437\u0430\u0431\u043b\u0443\u0436\u0434\u0435\u043d\u0438\u044f \u0431\u044b\u0432\u0430\u044e\u0442 \u0443 \u043d\u043e\u0432\u0438\u0447\u043a\u043e\u0432 \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/hu\/blog\/kak-nauchit-preodolevat-trudnosti-a-zaodno-i-pisat-czikly\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-02-01T03:04:35+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-01T03:04:35+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Hogyan tan\u00edtsuk meg lek\u00fczdeni a neh\u00e9zs\u00e9geket, mik\u00f6zben ciklusokat is \u00edrnunk kell | ProHoster","description":"Annak ellen\u00e9re, hogy egy alapvet\u0151 t\u00e9m\u00e1r\u00f3l lesz sz\u00f3, ez a cikk tapasztalt szakemberek sz\u00e1m\u00e1ra k\u00e9sz\u00fclt. A c\u00e9l, hogy bemutassa, milyen t\u00e9vhitek l\u00e9teznek a programoz\u00e1sban.","canonical_url":"https:\/\/prohoster.info\/hu\/blog\/kak-nauchit-preodolevat-trudnosti-a-zaodno-i-pisat-czikly","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"hu_HU","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041a\u0430\u043a \u043d\u0430\u0443\u0447\u0438\u0442\u044c \u043f\u0440\u0435\u043e\u0434\u043e\u043b\u0435\u0432\u0430\u0442\u044c \u0442\u0440\u0443\u0434\u043d\u043e\u0441\u0442\u0438, \u0430 \u0437\u0430\u043e\u0434\u043d\u043e \u0438 \u043f\u0438\u0441\u0430\u0442\u044c \u0446\u0438\u043a\u043b\u044b | ProHoster","og:description":"\u041d\u0435\u0441\u043c\u043e\u0442\u0440\u044f \u043d\u0430 \u0442\u043e, \u0447\u0442\u043e \u0440\u0435\u0447\u044c \u043f\u043e\u0439\u0434\u0435\u0442 \u043e\u0431 \u043e\u0434\u043d\u043e\u0439 \u0438\u0437 \u0431\u0430\u0437\u043e\u0432\u044b\u0445 \u0442\u0435\u043c, \u0434\u0430\u043d\u043d\u0430\u044f \u0441\u0442\u0430\u0442\u044c\u044f \u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0430 \u0434\u043b\u044f \u043e\u043f\u044b\u0442\u043d\u044b\u0445 \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u0438\u0441\u0442\u043e\u0432. \u0426\u0435\u043b\u044c \u2014 \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u043a\u0430\u043a\u0438\u0435 \u0437\u0430\u0431\u043b\u0443\u0436\u0434\u0435\u043d\u0438\u044f \u0431\u044b\u0432\u0430\u044e\u0442 \u0443 \u043d\u043e\u0432\u0438\u0447\u043a\u043e\u0432 \u0432 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0438.","og:url":"https:\/\/prohoster.info\/hu\/blog\/kak-nauchit-preodolevat-trudnosti-a-zaodno-i-pisat-czikly","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-02-01T03:04:35+00:00","article:modified_time":"2020-02-01T03:04:35+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"40208","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 00:43:24","updated":"2022-09-29 01:18:32","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/40208","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/comments?post=40208"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/posts\/40208\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/media?parent=40208"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/categories?post=40208"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/hu\/wp-json\/wp\/v2\/tags?post=40208"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}