1) Mi az OULIPO?
Az OULIPO, az "Ouvroir de Littérature Potentielle" (Potenciális Irodalom Műhelye) rövidítése, egy francia irodalmi mozgalom. Azon az elképzelésen alapul, hogy bizonyos korlátok alkalmazása katalizátorként hathat az irodalomban a kreativitásra.
A mozgalmat 1960-ban alapította Raymond Queneau író és François Le Lionnais matematikus. Egy nagyobb avantgárd csoport, a Collège de 'Pataphysique alcsoportjaként jött létre, amely a 'patafizika - a képzeletbeli megoldások és a kivételekre vonatkozó törvények tudománya - kutatásának szentelte magát.
Back to top2) Az OULIPO prominens személyiségei
François Le Lionnais: Matematikus, akinek látásmódja nagyban hozzájárult az OULIPO egyedi identitásának kialakításához, ahol a matematikai fogalmak összefonódtak az irodalmi alkotással. Le Lionnais a strukturált korlátok irodalomban való alkalmazása mellett érvelt, mivel úgy vélte, hogy ezek a korlátok a kreativitás új területeit nyitják meg. Hatása túlmutatott a csoport megalakulásán; írók egy egész generációját inspirálta arra, hogy felfedezzék a matematikai struktúrák és az irodalmi kifejezésmód közötti gazdag kölcsönhatást. Le Lionnais öröksége tükröződik az OULIPO folyamatos kutatásában a tudomány és a művészet határainak feltárásában.
Raymond Queneau: A szellemességéről és kreatív érzékéről híres Queneau regényíró és költő volt. Legismertebb műve a "Stílusgyakorlatok" című egyedülálló műve, amelyben egyetlen történetet 99 különböző módon mesél el, bemutatva a stilisztikai megközelítések figyelemre méltó skáláját.
Georges Perec: Perec a "La Disparition" (angolul: "A Void") című regényével szerzett elismerést, amely egy olyan jellegzetes mű, amelyben teljesen elhagyja az "e" betűt. Ez a regény kiváló példája annak, hogy az OULIPO a nyelvi korlátokra és a kreatív szójátékra helyezi a hangsúlyt.
Jacques Roubaud: Matematikus és költő, Roubaud munkásságát a matematikai struktúrák és a költői forma egyedülálló ötvözése jellemzi. Az OULIPO-hoz való hozzájárulásai azt mutatják, hogy mélyen foglalkozik a matematikai korlátozásokban rejlő lehetőségekkel az irodalmi kifejezés fokozására.
Más neves tagok közé tartozik Italo Calvino, Marcel Duchamp és Harry Mathews.
Back to top3) A korlátozások megértése
A korlátozások típusai
- Lipogramok: Egy vagy több betűt kizáró írásmód. Perec "La Disparition" című műve híres példa erre, melyből kimarad az "e" betű.
- Palindromok: Olyan szövegek, melyeket előre és hátrafelé is ugyanúgy olvasnak.
- N+7 módszer: Olyan eljárás, melynek során egy szövegben minden főnevet a szótárban az azt követő hetedik főnévvel helyettesítünk. Ez gyakran meglepő és szeszélyes eredményekhez vezet.
- Hógolyó: Olyan költői forma, ahol minden sor egy-egy szóból áll, és minden egymást követő szó egy betűvel hosszabb. Ez a vers előrehaladtával "hógolyóhatást" eredményez.
- Univokalizmus: Ez olyan szöveg megírását jelenti, amelyben csak egy magánhangzót használnak, míg az ábécé többi betűje normálisan használható. Ez a megkötés az író azon képességét teszi próbára, hogy kreatívan használja a nyelvet, miközben betart egy szigorú korlátozást.
- Tautogrammok: Ennél a megkötésnél a szövegben minden szónak ugyanazzal a betűvel kell kezdődnie. Ez vonatkozhat egyetlen mondatra, egy bekezdésre vagy egy egész műre.
- Bouts-rimés: Egy francia irodalmi játékból ered, és lényege, hogy adott végrímekből, előírt sorrendben verset kell alkotni. A kihívás abban rejlik, hogy egy összefüggő és értelmes verset alkossunk, miközben betartjuk ezeket a rímkényszereket.
- Börtönkényszer (vagy Makaó-kényszer): Olyan szövegek írását jelenti, amelyekben bizonyos betűk szavakon belül "be vannak zárva", és nem jelenhetnek meg önállóan. Például az "e" betű csak egy szón belül használható, első vagy utolsó betűként soha.
- Szép törvényen kívüli: A lipogrammához hasonlóan ez a megkötés az ábécé egy vagy több betűjének használatát jelenti, de azzal a kiegészítő szabállyal, hogy a betiltott betűk megjelenhetnek a szövegben, amíg nem látszanak. Ez azt jelenti, hogy más szavakba rejtve vagy valamilyen módon álcázva lehetnek.
- S + 7: Ez az N+7 módszer egy változata, ahol nem csak a főneveket, hanem egy adott beszédrészben lévő bármely szót (például igéket vagy mellékneveket) a szótárban az azt követő hetedik szóval helyettesítik.
- Homoszintaktikai fordítás: Ez egy szöveg más nyelvre történő fordítását jelenti, de az eredeti nyelv szintaktikai szerkezetét megtartva. Az eredmény gyakran kiemeli az egyes nyelvek egyedi nyelvtani és szintaktikai sajátosságait.
- Permutáció: Ez egy olyan szöveg létrehozását jelenti, amely a szavak vagy mondatok átrendezésével többféleképpen is olvasható. Ez magában foglalhat anagrammákat, akrosztichonokat vagy a szöveg alkotóelemeinek átrendezésének más formáit.
4) Programozás OULIPIánus módban
Az OULIPIánus technikák hatékony eszközt jelenthetnek oktatási célokra, és egyedülálló módokat kínálnak a nyelvvel és a számítási gondolkodással való foglalkozásra. Az alábbi OULIPIánus technikák különböző, az OULIPO által inspirált programozási gyakorlatokat vázolnak fel, mindegyiknek megvan a maga oktatási aspektusa. Ezek a gyakorlatok nem csak az alapvető programozási fogalmak megtanítására szolgálnak, hanem arra is, hogy az OULIPO filozófiáját tükrözve korlátok között ösztönözzék a kreatív gondolkodást.

- Scratch Implementation: Készítsen egy programot, amely lehetővé teszi egy szöveg bevitelét. Egy szkript segítségével vizsgáljon át minden szót, és távolítsa el a tiltott betűt (például "e"-t) tartalmazó szavakat.
- Értékelési szempont: Ez egy nagyszerű gyakorlat lehet a karakterlánc-kezelés és a feltételes karakterláncok megértéséhez. A karakterlánc-manipuláció magában foglalja az információk szövegből történő módosítását és kinyerését, megtanítva a tanulókat a hosszú szövegek tokenizálására, önállóan történő feldolgozására, valamint a karakterláncok összekapcsolására, hogy új szöveges kimenetet alkossanak. A feltételes szerkezetek mint programozási konstrukciók lehetővé teszik a tanulók számára, hogy bizonyos feltételek alapján hozzanak döntéseket, beleértve az "if" utasítások használatát a szavakon belüli tiltott betű ("e") ellenőrzésére, valamint az "else" utasítások végrehajtását az alternatív kimenetel érdekében. Az iteratív feldolgozás lehetővé teszi a tanulók számára, hogy a bemeneti szöveg minden egyes szavára ismétlődően műveleteket hajtsanak végre ciklusok létrehozásával és változók alkalmazásával az aktuálisan feldolgozott szó nyomon követésére. A problémamegoldás kiemelkedő jelentőségűvé válik, mivel a tanulók azonosítják, megtervezik, végrehajtják és tesztelik a valós kihívást jelentő megoldásokat, amelyek az "e" betűket tartalmazó szavak eltávolítására irányulnak egy szövegből. Ez a feladat a logikus gondolkodást élesíti azáltal, hogy a tanulóknak meg kell határozniuk a szavakban lévő korlátozott betűk azonosításának logikáját, és logikusan kell megtervezniük és megszervezniük a kódjukat. Továbbá ösztönzi a visszajelzésvezérelt hibakeresést és a felhasználói interfészen keresztül bemutatja a felhasználói interakciót, elősegítve a felhasználói élmény (UX) megértését a szoftverfejlesztésben.
- Scratch implementáció: Írj egy szkriptet, amelyben beírsz egy szöveget, és a program ellenőrzi, hogy a szöveg előre és hátrafelé ugyanazt olvassa-e.
- Edukációs szempont: Ennek során meg kell tanulnod a ciklusokat és a karakterláncok megfordítását. A tanulók megértik az iteratív folyamatok bonyolultságát azáltal, hogy ciklusok segítségével végigjárják a szöveg karaktereit előre és hátrafelé is, hogy elvégezzék az összehasonlítást. Emellett elmélyednek a karakterlánc-fordítás fogalmában, amely a szövegadatok manipulációját jelenti a sorrendjük megfordítása érdekében, ami elengedhetetlen készség a palindróma ellenőrzéséhez. Összességében ez a feladat nemcsak a tanulók programozási készségeit fejleszti, hanem elősegíti a ciklusok és a karakterlánc-manipuláció mélyebb megértését is, miközben gyakorlati kontextusban fedezi fel a palindrómák érdekes világát.
- Python implementáció: Pythonban könnyen dolgozhatunk listákkal és szótárakkal a főnevek és N+7 megfelelőik tárolására, így egyszerűbbé válik az N+7 helyettesítési logika megvalósítása. Ez a megközelítés intuitívabb és hatékonyabb, mintha a Scratch listaszerű struktúráiban próbálnánk kezelni az ilyen adatokat.
- Oktatási szempont: Lehetővé teszi a tanulók számára, hogy olyan alapvető programozási fogalmakkal ismerkedjenek meg, mint az olyan adatszerkezetek, mint a listák és szótárak, amelyek alapvető fontosságúak az adatok hatékony szervezéséhez és visszakereséséhez. Emellett a diákok gyakorlati betekintést nyernek a tömbökbe, megtanulják, hogyan hozzanak létre, manipuláljanak és töltsenek fel listákat - ez alapvető készség a programozásban. Elmélyednek a karakterlánc-manipulációs és -helyettesítési technikákban is, és így csiszolják a szöveg feldolgozására és átalakítására vonatkozó képességeiket. Az algoritmikus gondolkodásra ösztönzik őket, amikor szisztematikus megközelítéseket terveznek a főnevek azonosítására, szótári kereséseket végeznek a helyettesítésekhez, és rekonstruálják a szöveget.
- Scratch Implementation: Hozzon létre egy felületet a szavak beviteléhez, majd egy szkript segítségével jelenítse meg őket növekvő sorozatban, minden egyes betűvel hosszabb az előzőnél.
- Oktatási aspektus: A feladat oktatási aspektusa elsősorban arra irányul, hogy a tanulókat a Scratch-en belül a ciklusokra és a karakterláncok hosszára vonatkozó tulajdonságokra oktassa. Az "örökké" hurok segítségével a tanulók jártasságot szereznek az ismétlődő programozási műveletekben, miközben folyamatosan kérik a felhasználói bemenetet és bemutatnak egy bővülő szósorozatot. A sztringmanipuláció hangsúlyozása elősegíti a sztringhossz-keresés megértését a Scratch "length of [string]" blokkjának használatával és a sztringek fokozatos bővítésével, ahol minden szó egy-egy betűvel növekszik. A tanulók ezenfelül a bemenet elfogadására és a dinamikus kimeneti megjelenítésre szolgáló felhasználói felülettel rendelkező interaktív programok készítésére való alkalmasságukat is fejlesztik. Ez a gyakorlat harmonikusan ötvözi a gyakorlati programozási készségeket a Snowball fantáziadús korlátaival, növelve a tanulók kompetenciáját a ciklusok, a karakterláncok jellemzői és a felhasználói interakció terén a Scratch környezetben.
- Scratch megvalósítás: Tervezzen egy szkriptet egy szöveg bevitelére, majd annak átvizsgálására, a kiválasztottól eltérő magánhangzókat tartalmazó szavak eltávolítására.
- Tanulási szempont: Ehhez a sztringkeresés és a feltételes logika megértése szükséges. A tanulók megtanulják ügyesen átvizsgálni és megkeresni egy adott szövegen belül a meghatározott mintákat, különös tekintettel a kiválasztottól eltérő magánhangzókat tartalmazó szavak azonosítására, ezáltal fejleszti a szövegelemzési és mintafelismerési készségeiket. A gyakorlat továbbá kiemeli a feltételes utasítások, különösen az "if" utasítás fontosságát a programozási logikában, lehetővé téve a tanulók számára, hogy gyakorlati tapasztalatot szerezzenek olyan logika kidolgozásában, amely előre meghatározott kritériumok alapján szelektíven eltávolítja vagy megtartja a szavakat. A tanulók emellett aktívan részt vesznek egy olyan interaktív program létrehozásában, amely felhasználóbarát beviteli felületet tartalmaz, ezáltal gyakorlati kontextusban alkalmazzák és erősítik meg a felhasználói interakcióval kapcsolatos fogalmak megértését.
- Scratch implementáció: Engedélyezi a szöveg bevitelét, majd kiszűri azokat a szavakat, amelyek nem a kiválasztott betűvel kezdődnek.
- Edukációs szempont: Ez a feladat jelentősen hozzájárul ahhoz, hogy a tanulók megértsék az alapvető programozási fogalmakat, elsősorban a karakterlánc-kezelésre és a listakezelésre összpontosítva. A tanulók gyakorlati tapasztalatot szereznek a karakterláncok ügyes manipulálásában, miközben kiértékelik minden szó kezdő karakterét annak megállapítása érdekében, hogy az egyezik-e a kiválasztott betűvel, ami végső soron erősíti a szövegelemzés és -manipuláció terén szerzett kompetenciájukat. A gyakorlat továbbá kiemeli a feltételes logika kritikus szerepét, amit az "if" utasítások végrehajtása példáz, elősegítve a tanulók jártasságát olyan logika megtervezésében, amely meghatározott kritériumok alapján szelektíven beépíti vagy kizárja a szavakat. A tanulók a listás adatszerkezetekkel is foglalkoznak, mivel a bemeneti szöveget hatékonyan bontják egyes szavakra, és az egyes szavakat aprólékosan feldolgozzák az iteráción keresztül, ezzel is erősítve a listakezelésben való jártasságukat. Végül egy felhasználóbarát felülettel rendelkező interaktív program létrehozásával a tanulók a felhasználói interakció fogalmaival kapcsolatos ismereteiket alkalmazzák, tovább bővítve gyakorlati programozási készségeiket.
- Scratch implementáció: Scratchben nagyobb kihívást jelent, de be lehet adni egy rímkészletet, majd ezekkel a szavakkal végződő sorokat lehet létrehozni.
- Educational Aspect: A tanulók arra ösztönözhetők, hogy a Bout-rímek megkötésének strukturált kereteit betartva szabadjára engedjék fantáziájukat, és olyan sorokat állítsanak össze, amelyek nemcsak az előírt rímkészlethez igazodnak, hanem koherenciát és jelentést is közvetítenek, ezáltal megmutatva kreatív képességeiket. A feladat jól példázza a korlátokon alapuló kreativitás koncepcióját, ahol az előírt korlátok, mint például a rímképletre vonatkozó követelmények, katalizátorként szolgálnak a leleményes problémamegoldáshoz és a művészi kifejezéshez. A tanulók továbbá megismerkednek a programozási logikával, mivel a Scratch vizuális blokkjain belül is szisztematikus megközelítést dolgoznak ki a Bout-rímek megkötésének megfelelő költői sorok megalkotására, ezzel is fejlesztve logikus gondolkodásukat és problémamegoldó készségüket. Emellett a rímes szavak beviteli mechanizmusainak beépítésével a felhasználói interakció tervezésébe is belemerülnek, gazdagítva ezzel a gyakorlati felhasználói interakciós koncepciók megértését.
- Python implementáció: készítsen egy függvényt, amely paraméterként elfogad egy bemeneti szöveget és egy bebörtönzött betűt, majd a szavak ellenőrzésével és megfelelő módosításával alkalmazza a korlátozást, végül pedig visszaadja az érvényes szöveget. Tesztelje a korlátozást különböző bemeneti szövegekkel és bebörtönzött betűkkel, hogy megfigyelhesse az eredményeket.
- Edukációs szempont: A Python programozásban alkalmazott fogolykorlátozás (vagy Macao-kényszerítés) középpontjában a tanulók karakterlánc-kezelési és feltételes logikai készségeinek csiszolása áll. Ez a kényszer arra készteti a tanulókat, hogy kreatív megoldásokat találjanak ki olyan szabályok érvényesítésére, amelyek korlátozzák, hogy bizonyos betűk ne jelenhessenek meg egy adott szövegen belül a szavak első vagy utolsó betűjeként. Gyakorlati feladatot nyújt a problémamegoldásban, ahol a tanulóknak kódot kell tervezniük és implementálniuk a korlátozásokkal való megbirkózáshoz, elősegítve ezzel a logikus gondolkodást és a programozási jártasságot.
- Python megvalósítás: tervezzenek olyan programot, amely lehetővé teszi a felhasználók számára a szöveg bevitelét és tiltott betűk megadását. A program ezután helyettesítse a tiltott betűket a szavakon belül, elősegítve ezzel a gyakorlati sztringmanipulációs készségeket és a felhasználói interakció kialakítását.
- Oktatási szempont: A "Szép törvényen kívüli" korlátozás Python programozásban való alkalmazásának oktatási szempontja elsősorban a tanulók sztringmanipuláció, ciklusok és sztringindexelés megértésének fokozására irányul. Bár a teljes kényszer túl bonyolult lehet a Scratch programhoz, egy egyszerűsített változat Pythonban való megvalósítása lehetőséget nyújt a tanulóknak, hogy elmélyedjenek a bonyolult karakterláncműveletekben. A tanulók gyakorlati tapasztalatot szereznek a karakterláncok kreatív manipulálásában, különösen a szavakon belüli konkrét betűkre összpontosítva. Továbbá ez a feladat megerősíti a ciklusok megértését, ahogy a szavakon végigmennek, valamint a karakterláncok indexelését, ahogy a szavakon belüli egyes karakterekhez hozzáférnek és módosítják azokat. Összességében a "Szép törvényen kívüli" korlátozás a Pythonban elősegíti a gyakorlati tanulást, a logikus gondolkodást és a problémamegoldást a karakterlánc-manipuláció és a programozás területén.
- Python megvalósítás: Olyan program készítése, amely bemeneti szöveget vesz, azonosítja a főneveket (vagy más megadott szófajokat), és a szótárban a hetedik, őket követő szóval helyettesíti őket, listák és karakterlánc-helyettesítési technikák felhasználásával.
- Oktatási szempont: Egy olyan program megépítésével, amely azonosítja és egy szótárból származó szavakkal helyettesíti a meghatározott beszédrészeket, például főneveket, a tanulók bővítik a természetes nyelvi feldolgozás és a számítógépes nyelvészet ismereteit. Ezzel párhuzamosan megerősítik programozási jártasságukat a listákkal való munka és a karakterlánc-helyettesítési technikák alkalmazása révén, elősegítve a nyelvészeti és programozási ismeretek gyakorlati kombinációját egy kreatív, korlátokon alapuló kontextusban
- Python implementáció: olyan program tervezése, amely bemeneti szöveget és egy fordítószótárt fogad, majd fejlett karakterlánc-manipulációs és tokenizációs technikákat alkalmaz szavak vagy kifejezések helyettesítésére, az eredeti szintaktikai szerkezet és nyelvtan megőrzése mellett. T
- oktatási szempont: Először is, a diákok értékes betekintést nyernek a szintaxissal, nyelvtannal és nyelvi szerkezettel kapcsolatos nyelvészeti fogalmakba, mivel a fordítás során megőrzik az eredeti szöveg szintaktikai elemeit. Másodszor, komplex karakterlánc-kezelési technikák és tokenizálás alkalmazásával fejlesztik programozási készségeiket, ezáltal javítják nyelvi alapú alkalmazások fejlesztésének képességét, és elmélyítik a nyelv és a technológia metszéspontjának megértését.
- Python implementáció: Készítsen olyan programot, amely egy bemeneti szöveget fogad, és különböző módokat kínál fel az alkotóelemek átrendezésére, például anagrammák, akrosztichonok vagy szófordítások készítésére, listamanipulációs és karakterlánc-manipulációs technikákat használva a kreatív szövegátalakítások felfedezéséhez. Ez a gyakorlat gyakorlati tapasztalatot nyújt a tanulóknak a szöveg változatos módon történő manipulálásáról, és programozási kontextusban megerősíti a fejlett lista- és karakterláncműveletek megértését.
- Educational Aspect: A "Permutation" Python nyelven történő megvalósításának oktatási szempontja a tanulók kreatív szövegmanipulációs készségeinek fokozására és a fejlett lista- és karakterláncműveletek megértésének elmélyítésére összpontosít. A különböző átrendezési technikák, például az anagrammák, akrosztichonok vagy szófordítások felfedezésével a diákok nemcsak kreatív gondolkodásukat fejlesztik, hanem a szöveg változatos módon történő manipulálásában szerzett programozási jártasságukat is erősítik.
- 1. lépés: Nyisd meg a Scratch programot és hozz létre egy új projektet
- 2. lépés: Hozzuk létre a felhasználói felületet
- 3. lépés: A lista inicializálása
- 4. lépés: Az eltávolítandó betű felhasználói bemenetének lekérdezése
- 5. lépés: Az index változó beállítása
- 6. lépés: Minden karakter ellenőrzése és a módosított lista összeállítása
- 7. lépés: Index visszaállítása és új karakterlánc előkészítése
- 8. lépés: A módosított lista összekapcsolása az új karakterlánc kialakításához
- 9. lépés: Az eredmény megjelenítése
- 1. lépés
- 2. lépés: Inicializálás
- A "index" értékét állítsa 0-ra.
- A "temp"értékét állítsa üres stringre.
- A "string"ot állítsa a kívánt bemeneti mondatra vagy szóra (válasz).
- A "pass" és a "swaps" értékeket állítsa 0-ra.
- 3. lépés: Kezdeti beállítási ciklus
- 4. lépés: Következő ciklus
- 5. lépés: Végső kimeneti ciklus
- 1. lépés: A cél megértése
- 2. lépés: Szövegbevitel
- 4. lépés: Szövegtranszformációk
- 5. lépés: A program végrehajtása











5) Lépésről lépésre példák: OULIPO programozási projekt Scratch &Pythonban
5.1) Lipogram példa
A "Sprites" szakaszban töröljük az alapértelmezett sprite-ot, ha jobb gombbal kattintunk rá és kiválasztjuk a "Delete."
Válasszon egy meglévő sprite-ot, amely a program felületeként szolgálhat
Lépjen a "Változók" szakaszba.
A blokk segítségével törölje a listát "modiyfiedverse".
Menjen a "Érzékelés" szakaszba, és keresse meg azt a blokkot, amely megkéri a felhasználót, hogy írjon be egy kifejezést.
Majd menjen a "Változók" szakaszba, hogy a választ a verse változóban tárolja.
Az "Változók" szakaszban keresse meg azt a blokkot, amely az eltávolítandó betű megadására kérdez rá.
Egy másik blokk segítségével tárolja ezt a bemenetet az eltávolítandó betű változóban.
A "Változók" szakaszban található blokk segítségével állítsuk be az indexet a vers hosszára.
Eltávolítási hurok indítása
A "Vezérlés" szakaszban indítsunk el egy hurkot, amely addig tart, amíg az index el nem éri a 0 értéket.
A cikluson belül a "Operátorok" és a "Változók" szakaszokból származó blokkok segítségével ellenőrizze, hogy a versszakban az indexen található karakter különbözik-e az eltávolítandó betűtől.
Ha nem az eltávolítandó betű, akkor a "Változók" részleg egyik blokkjával illesszük be a "modiyfiedverse" lista elejére.
Az indexet csökkentsük 1-gyel a "Operátorok" részleg egyik blokkjával.
A ciklus után a "Változók" szakasz blokkjainak segítségével állítsa az indexet 0-ra, a vers2-t pedig üres karakterláncra.
A "Control" szakasz egyik blokkját használjuk a "modiyfiedverse" szakasz minden egyes elemére vonatkozó ciklus lefuttatásához.
Ebben a ciklusban növelje az indexet 1-gyel a "Operátorok" szakaszból származó blokk segítségével, és a "Változók" és "Operátorok" szakaszokból származó blokkokkal kösse össze az elemeket a vers2-vel.
Végül keresse meg a "Looks" szakaszban azt a blokkot, amellyel a program "say""vers2", ami az eredeti mondatot fogja megjeleníteni úgy, hogy az adott betűt minden előforduló pozícióból eltávolítja.
Itt az OULIPO lipogram példájához készült Scratch program, amely lehetővé teszi a szöveg bevitelét, majd eltávolítja a tiltott betűt tartalmazó szavakat, pl. "e".

1. ábra. : Egy OULIPO lipogramhoz tervezett Scratch program illusztrációja
5.2) Hófehérke példák
A szkript elindításához használjuk a "amikor [zöld zászló] kattint" blokkot az "Események" kategóriából
Elkészít egy "teszt" nevű listát a "listát készíteni" lehetőséggel a "Változók" kategóriában.
Hozzon létre "index", "temp", "string", "pass" és "swaps" változókat a "Variables" kategória "make a variable" opciójának használatával, és állítsa be őket a következőképpen:
A ciklus a "repeat (string hossza)" blokkal kezdődik. Ez a ciklus annyiszor fut le, ahányszor a felhasználó által beírt karakterlánc hossza.
A kezdeti beállítás után egy ciklus következik, amely a "repeat until (pass > 0 and swaps = 0)" lépéssorozattal kezdődik. Ez egy rendezési algoritmust valósít meg. Ennek a ciklusnak minden egyes iterációja egy-egy átjárást jelent a rendezendő listán.
A cikluson belül a "item" értékét 0-ra és a "swaps" értékét 0-ra állítjuk, amelyekkel nyomon követhetjük a rendezés előrehaladását és azt, hogy egy átjárás során történt-e bármilyen csere.
Egy beágyazott ciklus "repeat (szöveg hossza - 1)". Ez a ciklus végigmegy a lista szövegének minden egyes elemén, és összehasonlítja a szomszédos elemeket, hogy ellenőrizze, kell-e cserélni őket. Ezt tipikusan a buborékos rendezési algoritmusokban használják, ahol a folyamat addig ismétlődik, amíg a lista rendezett nem lesz, amikor nincs szükség cserére (ezért "swaps = 0").
A végén található egy "repeat (length of text)" ciklus. Ez a ciklus úgy tűnik, hogy végigmegy a rendezett listán, hogy létrehozzon egy végeredményt, amelyet a Scratch program a "say result" blokk segítségével mond ki.

2. ábra. : Egy OULIPO Hógolyóhoz tervezett Scratch program illusztrációja
5.3) Permutációs példa
Készíts egy olyan programot, amely a szöveget különböző módon alakítja át.
Gondold át, hogyan tudnád átrendezni egy szöveg betűit vagy szavait, hogy új szövegformákat hozz létre.
Funkció: get_input_text()
Gondolatmenet: Szükségünk van egy olyan metódusra, amellyel szöveget kapunk a felhasználótól. A input() függvény egy egyszerű módja ennek.
3. lépés: Az opciók menü megjelenítése
Funkció: A input()Funkció: A input() függvény egy egyszerű módja ennek: display_menu()
Gondolatmenet: A felhasználó számára a szöveg átalakításának típusára vonatkozó lehetőségek biztosítása. Itt egyszerű nyomtatási utasításokat és egy bemenetet használunk.
Funkciók: generate_anagrams(), generate_acrostics(),reverse_words()
Gondolatmenet: Minden függvény más típusú átalakítást végez. A split() segítségével szavakra bontjuk a szöveget, majd a megfelelő transzformációs módszereket alkalmazzuk.
Funkció: main()
Gondolatmenet: Ez a függvény vezérli a program áramlását. Fogadja a szöveget, megjeleníti a menüt, megkapja a felhasználó választását, és meghívja a megfelelő átalakító függvényt.
import random
def get_input_text():
return input("Adja meg a szöveget: ")
def display_menu():
print("Válasszon egy szövegkezelési lehetőséget:")
print("1: Anagrammák")
print("2: Akrosztichonok")
print("3: Szófordítások")
return input("Az Ön választása: ")
def generate_anagrams(text):
words = text.split()
anagrams = [''.join(random.sample(word, len(word))) for word in words]
return ' '.join(anagrams)
def generate_acrostics(text):
words = text.split()
akrosztichon = ''.join([word[0] for word in words])
return acrostic
def reverse_words(text):
words = text.split()
reversed_words = [word[::-1] for word in words]
return ' '.join(reversed_words)
def main():
text = get_input_text()
choice = display_menu()
if choice == '1':
print("Anagrammák:", generate_anagrams(text))
elif choice == '2':
print("Akrosztichonok:", generate_acrostics(text))
elif choice == '3':
print("Szófordítások:", reverse_words(text))
else:
print("Érvénytelen választás")
if _ _ _name_ _ == "_ _ _main_ _":
Back to top
6) Javasolt irodalomjegyzék
Bellos, D. (2010). Matematika, költészet, fikció: Az Oulipo kalandja. BSHM Bulletin, 25(2), 104-118.
Berkman, N. (2018). Digitális Oulipo: Programozási potenciál irodalom. DHQ: Digital Humanities Quarterly, 11(3), 1-16.
Despeaux, S. E. (2015). Oulipo: matematikai kényszerek alkalmazása az irodalomra és a művészetekre a matematika a bölcsészettudományok tantermében. PRIMUS, 25(3), 238-247.
Matuszyk, Ł. (2016). Az Oulipo könyvtári matematikája. In Proceedings of the International Conference on Studies in Humanities and Social Sciences (SHSS-2016) (pp. 86-92). Párizs, Franciaország: University of Silesia in Katowice.
Reig, C. (2021). Les "Temps mêlés" de l'Oulipo. Contemporary French and Francophone Studies, 25(5), 566-574.
Reig, C., Andrews, C., Reggiani, C., & Salceda, H. (2021). Les Effets de l'OuLiPo. SITES The Journal of Contemporary French Studies, 25(5,(Dec 2021)).
Wolff, M. (2007). Az olvasási potenciál: Az oulipo és az algoritmusok jelentése. Digital Humanities Quarterly, 1(1). Digital Humanities Quarterly. Keresve https://www.proquest.com/docview/2555208716?pq-origsite=gscholar&fromopenview=true&sourcetype=Scholarly Journals