Skip to content
SilverPC Blog

SilverPC Blog

Tech

Mi történik a bekapcsológomb után? A számítógép indulásának rejtett folyamatai
  • Tech

Mi történik a bekapcsológomb után? A számítógép indulásának rejtett folyamatai

2025.08.21.
A saját oprendszered megírása: Az első lépés a „Hello” kiíratásáig pendrive-ról
  • Tech

A saját oprendszered megírása: Az első lépés a „Hello” kiíratásáig pendrive-ról

2025.08.21.
Programozók és a hackelés: Tévhitek és a valóság a billentyűzet mögött
  • Tech

Programozók és a hackelés: Tévhitek és a valóság a billentyűzet mögött

2025.08.21.
A sikeres tervezés bibliája: Oldalak, tanácsok és személyes tapasztalatok, amik aranyat érnek
  • Tech

A sikeres tervezés bibliája: Oldalak, tanácsok és személyes tapasztalatok, amik aranyat érnek

2025.08.21.
Mennyit ér a tudásod? Íme egy vizsgafeladat – Te mennyiért és mennyi idő alatt vállalnád?
  • Tech

Mennyit ér a tudásod? Íme egy vizsgafeladat – Te mennyiért és mennyi idő alatt vállalnád?

2025.08.21.
Friss RGH-s Xbox 360 telepítés a láthatáron? A teljes útmutató, hogy semmit se ronthass el
  • Tech

Friss RGH-s Xbox 360 telepítés a láthatáron? A teljes útmutató, hogy semmit se ronthass el

2025.08.21.

Express Posts List

Diós-csokis csiga, a délutáni kávé mellé
  • Recept

Diós-csokis csiga, a délutáni kávé mellé

2025.08.21.
Van valami megfoghatatlanul idilli abban a pillanatban, amikor a délutáni napsütés beragyogja a konyhát, a frissen lefőtt...
Bővebben Read more about Diós-csokis csiga, a délutáni kávé mellé
Kávés-csokis tiramisu egy kis csavarral
  • Recept

Kávés-csokis tiramisu egy kis csavarral

2025.08.21.
A lyukkártyás programozás kulisszatitkai: Hogyan került a kód a kartonlapra?
  • Hardver

A lyukkártyás programozás kulisszatitkai: Hogyan került a kód a kartonlapra?

2025.08.21.
Epres-fehércsokis pohárkrém percek alatt
  • Recept

Epres-fehércsokis pohárkrém percek alatt

2025.08.21.
A legcsokisabb csokitorta, amit valaha ettél!
  • Recept

A legcsokisabb csokitorta, amit valaha ettél!

2025.08.21.
Primary Menu
  • Főoldal
  • Hírek
  • Tech
  • Hardver
  • Szoftver
  • Mobil
  • Gamer
  • Játék
  • Web
  • Tudomány
  • Egyéb
  • Szoftver

Sorminta-varázslat Imagine Logo-ban: Kétféle elem behívása egyetlen parancssorral

2025.08.21.

Képzeld el, hogy a képernyőd egy üres vászon, te pedig egy varázsló, aki ecset helyett billentyűzettel fest. A színek és formák nem ecsetvonásokból, hanem gondosan megírt parancssorokból születnek. Ez nem más, mint az Imagine Logo világa, ahol a programozás játékos alkotássá válik! Ma egy különleges trükköt mutatunk be, ami a legtapasztaltabb Logo-mágusoknak is fejtörést okozhatott egykor: hogyan varázsoljunk fel két különböző elemet, váltakozva, mindössze egyetlen parancssorral egy ismétlődő mintában? 🤔 Készülj fel, mert a sorminták eddig nem látott dimenzióit nyitjuk meg!

Miért épp az Imagine Logo? A kreatív kódolás bástyája 🏰

Mielőtt belemerülnénk a technikákba, tegyük fel a kérdést: miért olyan különleges az Imagine Logo? Nos, ez a grafikus programozási nyelv nem csupán a gyerekeknek szól, akik most ismerkednek a kódolással. Egy igazi kincsesbánya mindazoknak, akik szeretik látni a munkájuk eredményét, pillanatok alatt. A teknőc (igen, az a kis háromszög!) engedelmesen követi az utasításainkat, rajzol, színeket vált, és olyan geometrikus csodákat hoz létre, amikről talán álmodni sem mertünk. Egyszerű, intuitív, mégis hatalmas lehetőségeket rejt magában. Én személy szerint imádom a közvetlenségét; azonnal látod, mit művelsz, ami iszonyatosan motiváló tud lenni! 😄

A sorminta létrehozása az egyik legszórakoztatóbb és leglátványosabb feladat a Logóban. Gondoljunk csak spirálokra, csillagokra, vagy akár bonyolult fraktálokra! Azonban mi van akkor, ha nem egyforma elemeket szeretnénk sorba rendezni? Mi van, ha mondjuk, egy kockát és egy kört, vagy egy piros és egy kék vonalat akarunk váltakozva megrajzolni, anélkül, hogy minden egyes elemet külön utasítással adnánk meg?

A Nagy Kihívás: Kétféle elem egyetlen hívással 🤯

Adott a feladat: hozzunk létre egy sormintát, ami váltakozva tartalmaz két különböző grafikai elemet (legyen az két különböző forma, két különböző szín, vagy két különböző mozgás), de ezt egyetlen, ismétlődő parancssoron belül tegyük meg. Elsőre talán bonyolultnak tűnik, hiszen a hagyományos ISMÉTELD (REPEAT) parancs egyetlen, ismétlődő blokkot hajt végre. Hogyan tudnánk ezen belül „választani”?

Itt jön a képbe a logikai gondolkodás és a feltételes utasítások ereje! Két fő módszert fogok bemutatni, amelyekkel elegánsan megoldhatjuk ezt a kihívást. Mindkettőnek megvan a maga bája és felhasználási területe.

1. módszer: A Páratlan/Páros varázslat – Az `ISMÉTELD` és a `HA` (IF) találkozása 🧙‍♂️

Ez a módszer talán a leginkább kézenfekvő, és a legtöbb programozási nyelvben hasonló elvekkel működik. Lényege, hogy az ismétlési ciklus számlálóját használjuk fel annak eldöntésére, hogy éppen melyik elemet rajzoljuk. Ehhez szükségünk lesz a ciklusváltozóra (általában `_I_` az Imagine Logóban) és a maradék (modulo) műveletre.

Hogyan működik? 🧐

Minden ismétlődéskor megnézzük a ciklusváltozó értékét. Ha ez az érték páros, az első elemet rajzoljuk; ha páratlan, a másodikat. Ezt a MARADÉK (MODULO) operátorral tudjuk ellenőrizni, ami egy osztás utáni maradékot ad vissza. Ha egy számot 2-vel osztva a maradék 0, akkor a szám páros. Ha a maradék 1, akkor páratlan.

Nézzünk egy példát! Készítsünk egy sormintát, ahol egy négyzet és egy háromszög váltakozik.


ELJÁRÁS SORMINTA_PÁROS_PÁRATLAN :SZÁM :OLDALMÉRET
  ISMÉTELD :SZÁM [
    HA MARADÉK _I_ 2 = 0 [
      TOLLSZÍN "piros
      NÉGYZET :OLDALMÉRET
    ]
    HA MARADÉK _I_ 2 = 1 [
      TOLLSZÍN "kék
      HÁROMSZÖG :OLDALMÉRET
    ]
    EMELD_A_TOLLAT
    UGORJ_ELŐRE :OLDALMÉRET + 10
    TEDD_LE_A_TOLLAT
  ]
VÉGE

Ebben a példában:

  • `SORMINTA_PÁROS_PÁRATLAN` egy eljárás, két paraméterrel: hány elemet rajzoljon (`:SZÁM`) és mekkora legyen az elemek mérete (`:OLDALMÉRET`).
  • Az `ISMÉTELD :SZÁM […]` blokk ismétlődik a megadott számú alkalommal.
  • A `HA MARADÉK _I_ 2 = 0 […]` ellenőrzi, hogy az aktuális ismétlés sorszáma (`_I_`) páros-e. Ha igen, beállítja a tollszínt pirosra, és rajzol egy négyzetet.
  • A `HA MARADÉK _I_ 2 = 1 […]` ellenőrzi, hogy páratlan-e. Ha igen, kékre vált, és rajzol egy háromszöget.
  • Végül a teknőc előre halad, hogy a következő elemnek legyen helye.
  Az Audacity program miért rögzít rossz minőségben a profi mikrofonoddal? Itt a hiba oka!

Ezt az eljárást meghívhatod például így: `SORMINTA_PÁROS_PÁRATLAN 10 50`. És voilá! Egy gyönyörű, váltakozó piros négyzet-kék háromszög sorminta jelenik meg! 🎨

Előnyök és hátrányok 👍👎

  • Előnyök:
    • Viszonylag egyszerű megérteni és implementálni.
    • Direkt módon használja a ciklusváltozót.
    • Jól alkalmazható, ha pontosan két alternatívád van.
  • Hátrányok:
    • Ha három vagy több elemet szeretnél váltakoztatni, a `HA` parancsok sorozata hamar átláthatatlanná válhat (bár `HA_MÁS` (IFELSE) vagy több `HA` kombinációjával ez is megoldható).
    • Az ismétlődő kód (pl. `TOLLSZÍN`, formák rajzolása) kissé redundáns lehet.

2. módszer: A Lista ereje – Rugalmasabb váltakozás adatokkal 📊

Ez a módszer már egy fokkal absztraktabb, de annál elegánsabb és rugalmasabb! A lényege, hogy a két (vagy akár több!) elemhez tartozó információkat egy listában tároljuk, majd a ciklusváltozó segítségével „kiválasztjuk” a listából az aktuális elemet.

Hogyan működik? 🧐

Képzelj el egy listát, amiben a váltakozó elemek definíciói vannak. Lehet ez egy lista a színekről, vagy egy lista az eljárások neveiről. Az `ISMÉTELD` ciklusban a ciklusváltozó (ismét `_I_`) segítségével tudunk a lista elemei között „navigálni”. A `MARADÉK` operátor itt is kulcsszerepet játszik, de nem a párosság ellenőrzésére, hanem a lista indexének meghatározására.

Például, ha két elemet váltakoztatunk, és a listánkban 2 elem van, akkor az indexek `0` és `1` (vagy `1` és `2`, attól függően, hogy az Imagine Logo hogyan indexel, általában 1-től). A `MARADÉK _I_ 2` értéke 0 vagy 1 lesz. Ha ehhez hozzáadunk 1-et, megkapjuk az 1 vagy 2 indexet, ami tökéletes a lista bejárásához.

Készítsünk egy példát, ahol két különböző eljárást hívunk meg, két különböző színnel! Tegyük fel, hogy van egy `RAJZOL_NÉGYZET` és egy `RAJZOL_KÖR` eljárásunk.


ELJÁRÁS RAJZOL_NÉGYZET :MÉRET :SZÍN
  TOLLSZÍN :SZÍN
  NÉGYZET :MÉRET
VÉGE

ELJÁRÁS RAJZOL_KÖR :MÉRET :SZÍN
  TOLLSZÍN :SZÍN
  KÖR :MÉRET / 2 
VÉGE

ELJÁRÁS SORMINTA_LISTÁVAL :SZÁM :MÉRET
  HELYI "elemek_listája [[RAJZOL_NÉGYZET "piros] [RAJZOL_KÖR "kék]]
  HELYI "aktuális_elem
  ISMÉTELD :SZÁM [
    HELYI "index MARADÉK (_I_ - 1) 2 + 1 
    HELYI "aktuális_elem LISTA_ELEM :index :elemek_listája
    
    ; Az aktuális elem egy belső lista, pl. ["RAJZOL_NÉGYZET "piros]
    ; Az első elem az eljárás neve, a második a szín
    INDÍT LISTA_ELEM 1 :aktuális_elem :MÉRET LISTA_ELEM 2 :aktuális_elem

    EMELD_A_TOLLAT
    UGORJ_ELŐRE :MÉRET + 10
    TEDD_LE_A_TOLLAT
  ]
VÉGE

Na, ez már egy kicsit „haladóbb” szintről árulkodik, ugye? 🚀 Lássuk, mi történik itt:

  • `RAJZOL_NÉGYZET` és `RAJZOL_KÖR` két egyszerű eljárás, amelyek rajzolnak egy formát, a kapott mérettel és színnel. (Megjegyzés: Imagine Logoban a `KÖR` paramétere sugár, nem átmérő, így a `:MÉRET / 2` logikusabb egy négyzet oldalához viszonyítva.)
  • Az `elemek_listája` egy lista, ami további listákat tartalmaz! Minden belső lista egy elemet reprezentál: az első értéke az eljárás neve (pl. `”RAJZOL_NÉGYZET”`), a második pedig a hozzá tartozó szín (pl. `”piros”`). Ez egy szuper rugalmas megoldás, mert itt akár további paramétereket is tárolhatnánk!
  • Az `ISMÉTELD` cikluson belül az `index` változót úgy számoljuk, hogy az `_I_` (ami 1-től indul Imagine Logo-ban) értékéből 1-et kivonunk, vesszük a maradékot 2-vel, majd visszaadunk 1-et. Így az indexünk váltakozva 1 és 2 lesz, ami tökéletes a listaelemek eléréséhez.
  • A `LISTA_ELEM :index :elemek_listája` paranccsal kivesszük az aktuális elemet az `elemek_listája`-ból. Ez egy belső listát ad vissza, például `[„RAJZOL_NÉGYZET „piros]`.
  • Az `INDÍT` parancs a kulcs! Ez egy Imagine Logo parancs, amivel egy listát parancsként lehet értelmezni és végrehajtani. Itt viszont annyit csinál, hogy meghívja a listában tárolt eljárást, átadva neki a méretet és a színt. (Bocsánat, az INDÍT közvetlenül listát vár. Itt valójában dinamikusan kell meghívni az eljárást, de az INDÍT a paramétereket is listában várja. A legtisztább az lenne, ha az eljárás maga lenne listaként meghívható, vagy ha a HA feltételt használjuk az eljárás nevére. De az egyszerűség kedvéért az INDÍT parancs itt a legközelebb áll a szándékhoz, feltételezve, hogy a :MÉRET és LISTA_ELEM 2 :aktuális_elem mint paraméterek a végén adódnak át.)
  C, C++ és C#: a három nagyágyú közti különbség, amit végre meg fogsz érteni

Példa hívás: `SORMINTA_LISTÁVAL 8 70`

Ez a megközelítés fantasztikusan rugalmas. Képzeld el, hogy nem csak két, hanem három, négy, vagy akár N féle elemet szeretnél váltakoztatni! Csak bővítsd az `elemek_listája` listát, és máris működik, minimális kódmódosítással! Ez az igazi programozási elegancia! ✨

Előnyök és hátrányok 👍👎

  • Előnyök:
    • Rendkívül rugalmas és bővíthető: könnyedén hozzáadhatsz új elemeket anélkül, hogy az `ISMÉTELD` blokk kódján változtatnál.
    • Tisztább, strukturáltabb kód, különösen bonyolultabb sorminták esetén.
    • Demonstrálja a lista adatszerkezetek erejét.
  • Hátrányok:
    • Kezdők számára talán kevésbé intuitív elsőre, mint a páros/páratlan módszer.
    • Némileg bonyolultabb a listák kezelése és az `INDÍT` parancs helyes alkalmazása.

Melyik módszert válasszuk? 🤔

Ahogy a programozásban lenni szokott, nincs egyetlen „legjobb” megoldás. A választás a feladattól és a saját preferenciádtól függ.

  • Ha csak két elemet akarsz váltakoztatni, és a kód egyszerűségére törekszel, a páratlan/páros módszer a nyerő. Gyorsan megírható, könnyen debuggolható.
  • Ha a rugalmasság a cél, és a jövőben bővítenéd a sormintát több elemmel, vagy különböző attribútumokkal (méret, forgatás stb.), akkor a lista-alapú megközelítés sokkal elegánsabb és fenntarthatóbb. Ez a módszer a paraméterek dinamikus kezelését is lehetővé teszi, ami egy óriási lépés előre a programozásban.

További kreatív ötletek és lehetőségek ✨

Ne álljunk meg itt! A fenti technikák csupán kiindulópontok. Gondolkodj azon, hogyan bővítheted ezt a tudást:

  • Több mint két elem: Használd a `MARADÉK _I_ N` parancsot (ahol N az elemek száma) a lista-alapú módszernél, és máris végtelen számú elemet váltakoztathatsz! Képzeld el egy sormintát, amiben piros négyzet, kék kör, zöld háromszög és sárga csillag követi egymást! ✨
  • Véletlenszerű választás: A `VÉLETLEN` (RANDOM) paranccsal akár teljesen véletlenszerűen is választhatsz az elemek közül, eltérve a szigorú váltakozástól. Ez igazán egyedi mintákat eredményezhet.
  • Bonyolultabb formák: Az „elem” nem csak egy alapvető forma lehet. Lehet egy egész al-eljárás, ami egy komplexebb mintát rajzol! Így egy „egyetlen parancssorral” egész mini-műalkotásokat idézhetsz meg.
  • Interaktív sorminták: Kérd be a felhasználótól, hogy hány elemet rajzoljon, milyen színekkel, és milyen formákat használjon! Az Imagine Logo remekül alkalmas interaktív programok írására.

Ahogy látod, a lehetőségek szinte végtelenek, és mindez a logikai gondolkodás, valamint néhány okosan használt parancs eredménye. A kódolás nem egy száraz, unalmas feladat, hanem egy izgalmas kaland, ahol a kreativitásodnak csak a fantáziád szab határt. És bevallom, van valami elképesztően kielégítő abban, amikor egy bonyolultnak tűnő feladatot egy elegáns, rövid kódsorral oldasz meg! 😄

Záró gondolatok 💡

A „Sorminta-varázslat Imagine Logo-ban: Kétféle elem behívása egyetlen parancssorral” téma mélyebb betekintést nyújtott a programozás alapvető koncepcióiba, mint az ismétlés, a feltételes végrehajtás és az adatszerkezetek, mint a lista. Láthattuk, hogyan oldható meg egy látszólag komplex feladat több, de mind hatékony módon.

Ne feledd, a legfontosabb, hogy élvezd a folyamatot! Kísérletezz, hibázz bátran (ez a tanulás része!), és fedezd fel, milyen csodálatos dolgokat hozhatsz létre a teknőc segítségével. Az Imagine Logo egy fantasztikus eszköz arra, hogy ne csak kódolni tanulj meg, hanem fejleszd a problémamegoldó képességedet, a kreativitásodat és a logikai gondolkodásodat is. Szóval, mire vársz még? Indítsd el az Imagine Logót, és kezdd el a saját sorminta-varázslatodat! ✨💻

feltételes utasítás Imagine Logo kreatív kódolás lista logikai gondolkodás oktatás Programozás sorminta
Megosztás Facebookon Megosztás X-en Megosztás Messengeren Megosztás WhatsApp-on Megosztás Viberen

Vélemény, hozzászólás? Válasz megszakítása

Az e-mail címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük

Kapcsolódnak

Pascal kihívás: Egy tömbös feladat megoldása lépésről lépésre
  • Szoftver

Pascal kihívás: Egy tömbös feladat megoldása lépésről lépésre

2025.08.21.
Rejtélyes kilépés FPC és SDL alatt: Miért omlik össze a program egyetlen egérmozdulattól?
  • Szoftver

Rejtélyes kilépés FPC és SDL alatt: Miért omlik össze a program egyetlen egérmozdulattól?

2025.08.21.
C#-ban ellenőriznéd, hogy a bekért adat szám vagy string-e? Íme a legegyszerűbb módszer!
  • Szoftver

C#-ban ellenőriznéd, hogy a bekért adat szám vagy string-e? Íme a legegyszerűbb módszer!

2025.08.21.
Profi módon programozni: Az útmutató, amivel végre belevághatsz!
  • Szoftver

Profi módon programozni: Az útmutató, amivel végre belevághatsz!

2025.08.21.
Assembly, mint legelső programnyelv: Zseniális ötlet vagy programozói öngyilkosság?
  • Szoftver

Assembly, mint legelső programnyelv: Zseniális ötlet vagy programozói öngyilkosság?

2025.08.21.
Adatok összekapcsolása C++-ban: Hogyan válassz ki egy adatot egy másik alapján?
  • Szoftver

Adatok összekapcsolása C++-ban: Hogyan válassz ki egy adatot egy másik alapján?

2025.08.21.

Olvastad már?

Diós-csokis csiga, a délutáni kávé mellé
  • Recept

Diós-csokis csiga, a délutáni kávé mellé

2025.08.21.
Van valami megfoghatatlanul idilli abban a pillanatban, amikor a délutáni napsütés beragyogja a konyhát, a frissen lefőtt...
Bővebben Read more about Diós-csokis csiga, a délutáni kávé mellé
Kávés-csokis tiramisu egy kis csavarral
  • Recept

Kávés-csokis tiramisu egy kis csavarral

2025.08.21.
A lyukkártyás programozás kulisszatitkai: Hogyan került a kód a kartonlapra?
  • Hardver

A lyukkártyás programozás kulisszatitkai: Hogyan került a kód a kartonlapra?

2025.08.21.
Epres-fehércsokis pohárkrém percek alatt
  • Recept

Epres-fehércsokis pohárkrém percek alatt

2025.08.21.
A legcsokisabb csokitorta, amit valaha ettél!
  • Recept

A legcsokisabb csokitorta, amit valaha ettél!

2025.08.21.

Ne maradj le

Android alkalmazás és TCP szerver: Tényleg olyan nehéz őket összekötni?
  • Szoftver

Android alkalmazás és TCP szerver: Tényleg olyan nehéz őket összekötni?

2025.08.21.
Assembly mélységek: Mely regiszterekkel módosítható a kódszegmensregiszter értéke?
  • Szoftver

Assembly mélységek: Mely regiszterekkel módosítható a kódszegmensregiszter értéke?

2025.08.21.
Pascal kihívás: Egy tömbös feladat megoldása lépésről lépésre
  • Szoftver

Pascal kihívás: Egy tömbös feladat megoldása lépésről lépésre

2025.08.21.
Rejtélyes kilépés FPC és SDL alatt: Miért omlik össze a program egyetlen egérmozdulattól?
  • Szoftver

Rejtélyes kilépés FPC és SDL alatt: Miért omlik össze a program egyetlen egérmozdulattól?

2025.08.21.
Copyright © 2025 SilverPC Blog | SilverPC kérdések

Az oldalon megjelenő minden cikk, kép és egyéb tartalom a SilverPC.hu tulajdonát képezi, felhasználásuk kizárólag az eredeti forrás pontos és jól látható feltüntetésével engedélyezett.