1) Ce este OULIPO?
OULIPO, acronim pentru "Ouvroir de Littérature Potentielle" (Atelier de Literatură Potențială), este o mișcare literară franceză. Se bazează pe ideea că aplicarea unor constrângeri specifice poate acționa ca un catalizator pentru creativitatea în literatură.
Mișcarea a fost fondată în 1960 de scriitorul Raymond Queneau și matematicianul François Le Lionnais. A apărut ca un subgrup al unui grup avangardist mai mare, Collège de 'Pataphysique, care era dedicat explorării 'patafizicii - știința soluțiilor imaginare și a legilor care guvernează excepțiile.
Back to top2) Personalități proeminente în OULIPO
François Le Lionnais: Un matematician a cărui viziune a contribuit decisiv la făurirea identității unice a OULIPO, în care conceptele matematice erau împletite cu creația literară. Le Lionnais a pledat pentru utilizarea constrângerilor structurate în literatură, crezând că aceste limitări ar putea debloca noi tărâmuri ale creativității. Influența sa s-a extins dincolo de formarea grupului; el a inspirat o generație de scriitori să exploreze interacțiunea bogată dintre structurile matematice și expresia literară. Moștenirea lui Le Lionnais se reflectă în explorarea continuă de către OULIPO a limitelor dintre știință și artă.
Raymond Queneau: Celebru pentru spiritul și flerul său creativ, Queneau a fost romancier și poet. El este cunoscut mai ales pentru "Exerciții de stil", o lucrare unică în care povestește o singură poveste în 99 de moduri diferite, prezentând o gamă remarcabilă de abordări stilistice.
Georges Perec: Perec a câștigat recunoaștere pentru romanul său "La Disparition" (cunoscut în engleză ca "A Void"), o lucrare distinctivă care omite în întregime litera "e". Acest roman este un prim exemplu al accentului pus de OULIPO pe constrângerile lingvistice și pe jocurile de cuvinte creative.
Jacques Roubaud: Matematician și poet, opera lui Roubaud se caracterizează printr-o fuziune unică a structurilor matematice și a formei poetice. Contribuțiile sale la OULIPO demonstrează un angajament profund față de potențialul constrângerilor matematice de a îmbunătăți expresia literară.
Alți membri notabili includ Italo Calvino, Marcel Duchamp și Harry Mathews.
Back to top3) Înțelegerea constrângerilor
Tipuri de constrângeri
- Lipograme: Scrieri care exclud una sau mai multe litere. "La Disparition" a lui Perec este un exemplu celebru, omițând litera "e".
- Palindromuri: Texte care se citesc la fel înainte și înapoi.
- Metoda N+7: Un proces prin care fiecare substantiv dintr-un text este înlocuit cu al șaptelea substantiv care îl urmează într-un dicționar. Acest lucru duce adesea la rezultate surprinzătoare și capricioase.
- Snowball: O formă poetică în care fiecare rând este un singur cuvânt, iar fiecare cuvânt succesiv este cu o literă mai lung. Acest lucru creează un efect de "bulgăre de zăpadă" pe măsură ce poemul progresează.
- Univocalism: Aceasta implică scrierea unui text care utilizează o singură vocală, în timp ce toate celelalte litere ale alfabetului pot fi utilizate în mod normal. Această constrângere testează capacitatea scriitorului de a utiliza creativ limbajul, aderând în același timp la o limitare severă.
- Tautograme: În această constrângere, fiecare cuvânt dintr-un text trebuie să înceapă cu aceeași literă. Aceasta poate fi aplicată unei singure propoziții, unui paragraf sau unei întregi lucrări.
- Bouts-rimés: Provenind dintr-un joc literar francez, implică crearea unui poem dintr-un set dat de rime finale într-o ordine prescrisă. Provocarea constă în crearea unui poem coerent și semnificativ, respectând în același timp aceste constrângeri de rimă.
- Constrângerea prizonierului (sau constrângerea Macao): Aceasta presupune scrierea de texte în care anumite litere sunt "întemnițate" în interiorul cuvintelor și nu pot apărea singure. De exemplu, litera "e" poate fi folosită doar în interiorul unui cuvânt, niciodată ca prima sau ultima literă.
- Beautiful Outlaw: Asemănătoare unei lipograme, această constrângere implică evitarea folosirii uneia sau mai multor litere din alfabet, dar cu o regulă suplimentară conform căreia literele interzise pot apărea în text, atâta timp cât nu sunt văzute. Aceasta înseamnă că ele pot fi ascunse în cadrul altor cuvinte sau deghizate într-un anumit fel.
- S + 7: Aceasta este o variație a metodei N + 7, în care nu doar substantivele, ci orice cuvânt dintr-o anumită parte de vorbire (cum ar fi verbele sau adjectivele) este înlocuit cu al șaptelea cuvânt care îl urmează într-un dicționar.
- Traducerea homosintactică: Aceasta implică traducerea unui text într-o altă limbă, dar păstrarea structurii sintactice a originalului. Rezultatul evidențiază adesea caracteristicile gramaticale și sintactice unice ale fiecărei limbi.
- Permutație: Aceasta implică crearea unui text care poate fi citit în mai multe moduri prin rearanjarea cuvintelor sau a propozițiilor. Aceasta poate implica anagrame, acrostihuri sau alte forme de rearanjare a elementelor constitutive ale unui text.
4) Programarea în modul OULIPIAN
Tehnicile OULIPIAN pot fi un instrument puternic în scopuri educaționale, oferind modalități unice de a se angaja cu limbajul și gândirea computațională. Următoarele tehnici oulipiene prezintă diverse exerciții de programare inspirate de OULIPO, fiecare având propriul său aspect educațional. Aceste exerciții sunt concepute nu numai pentru a preda concepte fundamentale de programare, ci și pentru a încuraja gândirea creativă în cadrul constrângerilor, oglindind filosofia OULIPO.

- Implementarea grațierii: Creați un program care vă permite să introduceți un text. Utilizați un script pentru a scana fiecare cuvânt și pentru a elimina orice cuvânt care conține litera interzisă (cum ar fi "e").
- Aspect educațional: Acesta poate fi un exercițiu excelent în înțelegerea manipulării șirurilor și a condiționalelor. Manipularea șirurilor implică modificarea și extragerea informațiilor din text, învățând elevii să tokenizeze textul lung în cuvinte individuale, să le proceseze independent și să concateneze șiruri pentru a forma o nouă ieșire textuală. Condiționalele, ca construcții de programare, permit elevilor să ia decizii pe baza unor condiții specifice, implicând utilizarea instrucțiunilor "if" pentru a verifica dacă există o literă interzisă ("e") în cuvinte și implementarea instrucțiunilor "else" pentru rezultate alternative. Procesarea iterativă le oferă elevilor capacitatea de a efectua acțiuni repetitive pentru fiecare cuvânt din textul de intrare prin crearea de bucle și utilizarea de variabile pentru a urmări cuvântul curent procesat. Rezolvarea problemelor devine primordială pe măsură ce elevii identifică, elaborează strategii, implementează și testează soluții la provocarea reală de a elimina cuvintele care conțin "e" dintr-un text. Acest exercițiu ascute gândirea logică, solicitând elevilor să stabilească logica identificării literelor restricționate în cuvinte și să își planifice și să își organizeze codul în mod logic. În plus, acesta încurajează depanarea bazată pe feedback și introduce interacțiunea cu utilizatorul prin intermediul unei interfețe utilizator, favorizând înțelegerea experienței utilizatorului (UX) în dezvoltarea de software.

- Implementarea Scratch: Scrieți un script în care introduceți un text, iar acesta verifică dacă textul citește la fel înainte și înapoi.
- Aspect educațional: Aceasta va implica învățarea despre bucle și inversarea șirurilor. Elevii înțeleg complexitatea proceselor iterative prin utilizarea buclelor pentru a parcurge caracterele textului, atât înainte, cât și înapoi, pentru a face comparația. În plus, ei aprofundează conceptul de inversare a șirurilor, care implică manipularea datelor textului pentru a inversa ordinea acestora, o abilitate esențială pentru verificarea palindromului. În general, acest exercițiu nu numai că îmbunătățește abilitățile de programare ale elevilor, dar favorizează și o înțelegere mai profundă a buclelor și a manipulării șirurilor de caractere, totul în timp ce explorează lumea intrigantă a palindromurilor într-un context practic.

- Implementare Python: În Python, puteți lucra cu ușurință cu liste și dicționare pentru a stoca substantivele și omologii lor N+7, ceea ce face mai simplă implementarea logicii de înlocuire N+7. Această abordare este mai intuitivă și mai eficientă decât încercarea de a gestiona astfel de date în structurile de tip listă din Scratch.
- Aspect educațional: Aceasta permite elevilor să exploreze concepte esențiale de programare, cum ar fi structurile de date precum listele și dicționarele, care sunt fundamentale pentru organizarea și recuperarea eficientă a datelor. În plus, elevii dobândesc perspective practice asupra array-urilor, învățând cum să creeze, să manipuleze și să populeze liste - o abilitate esențială în programare. De asemenea, studiază manipularea șirurilor de caractere și tehnicile de înlocuire, perfecționându-și abilitățile de a procesa și transforma textul. Gândirea algoritmică este încurajată pe măsură ce proiectează abordări sistematice pentru a identifica substantive, a efectua căutări în dicționar pentru înlocuiri și a reconstrui textul.

- Implementarea Scratch: Creați o interfață pentru a introduce cuvinte, apoi utilizați un script pentru a le afișa într-o secvență în creștere, fiecare cu o literă mai lungă decât precedenta.
- Aspect educațional: Aspectul educațional al acestui exercițiu se concentrează în primul rând pe instruirea elevilor cu privire la buclele și proprietățile lungimii șirurilor în Scratch. Prin bucla "forever", elevii dobândesc competență în acțiuni repetitive de programare, solicitând în același timp în mod continuu contribuția utilizatorului și prezentând o secvență de cuvinte în expansiune. Accentul pus pe manipularea șirurilor de caractere favorizează înțelegerea recuperării lungimii șirurilor de caractere utilizând blocul "length of [string]" din Scratch și extinderea treptată a șirurilor de caractere, fiecare cuvânt crescând cu câte o literă. În plus, elevii își dezvoltă aptitudinile pentru crearea de programe interactive cu o interfață utilizator pentru acceptarea intrărilor și prezentarea dinamică a ieșirilor. Acest exercițiu amalgamează armonios abilitățile practice de programare cu constrângerile imaginative ale Snowball, sporind competența elevilor în ceea ce privește buclele, caracteristicile șirurilor și interacțiunea cu utilizatorul în cadrul mediului Scratch.

- Implementare Scratch: Proiectați un script pentru a introduce un text și apoi să-l scanați, eliminând cuvintele care conțin vocale, altele decât cea aleasă.
- Aspect educațional: Aceasta necesită o înțelegere a căutării șirurilor de caractere și a logicii condiționale. Elevii învață să scaneze și să caute cu pricepere modele specifice într-un text dat, cu un accent deosebit pe identificarea cuvintelor care conțin vocale diferite de cea aleasă, sporindu-și astfel abilitățile de analiză a textului și de recunoaștere a modelelor. În plus, exercițiul subliniază importanța declarațiilor condiționale, în special a declarației "if", în logica de programare, permițând elevilor să dobândească experiență practică în elaborarea unei logici care elimină sau reține selectiv cuvinte pe baza unor criterii predefinite. În plus, elevii se implică activ în crearea unui program interactiv care prezintă o interfață ușor de utilizat pentru intrare, aplicând și consolidând astfel înțelegerea conceptelor de interacțiune cu utilizatorul într-un context practic.

- Implementarea grațierii: Permiteți introducerea de text și apoi filtrați cuvintele care nu încep cu litera aleasă.
- Aspect educațional: Acest exercițiu contribuie în mod semnificativ la înțelegerea de către elevi a conceptelor fundamentale de programare, concentrându-se în principal pe manipularea șirurilor de caractere și manipularea listelor. Elevii dobândesc experiență practică în manipularea cu îndemânare a șirurilor de caractere pe măsură ce evaluează caracterul inițial al fiecărui cuvânt pentru a determina dacă acesta se aliniază cu litera aleasă, consolidându-și în cele din urmă competența în analiza și manipularea textului. În plus, exercițiul subliniază rolul esențial al logicii condiționale, exemplificat prin implementarea declarațiilor "if", promovând aderența elevilor în conceperea logicii care încorporează sau exclude selectiv cuvinte pe baza unor criterii specifice. Elevii se implică, de asemenea, în structuri de date de tip listă, pe măsură ce împart eficient textul introdus în cuvinte individuale și procesează meticulos fiecare cuvânt prin iterație, consolidându-și astfel competența în gestionarea listelor. În cele din urmă, prin crearea unui program interactiv cu o interfață ușor de utilizat, elevii își aplică cunoștințele despre conceptele de interacțiune cu utilizatorul, lărgindu-și și mai mult abilitățile practice de programare.

- Implementare în Scratch: Mai provocator în Scratch, dar puteți introduce un set de cuvinte care rimează și apoi creați linii care se termină cu aceste cuvinte.
- Aspect educațional: Elevii sunt încurajați să își dezlănțuie capacitățile imaginative în timp ce aderă la cadrul structurat al constrângerii Bout-rimes, compunând linii care nu numai că aderă la schema de rimă prescrisă, dar transmit și coerență și sens, demonstrându-și astfel abilitățile creative. Exercițiul exemplifică conceptul de creativitate bazată pe constrângeri, în care limitările impuse, cum ar fi cerința de a folosi anumite cuvinte care să rimeze, servesc drept catalizatori pentru rezolvarea inventivă a problemelor și pentru exprimarea artistică. În plus, elevii sunt expuși la logica programării pe măsură ce elaborează o abordare sistematică, chiar și în cadrul blocurilor vizuale din Scratch, pentru a construi versuri poetice care să se alinieze la constrângerea Bout-rimes, perfecționându-și gândirea logică și abilitățile de rezolvare a problemelor. În plus, ei se adâncesc în proiectarea interacțiunii cu utilizatorul prin încorporarea mecanismelor de intrare pentru seturi de cuvinte care rimează, îmbogățindu-și înțelegerea conceptelor practice de interacțiune cu utilizatorul.

- Implementare Python: creați o funcție care ia ca parametri un text de intrare și o literă închisă, apoi aplicați constrângerea prin verificarea și modificarea cuvintelor în consecință și, în final, returnați textul valid. Testați constrângerea cu diferite texte de intrare și litere întemnițate pentru a observa rezultatele.
- Aspect educațional: constrângerea prizonierului (sau constrângerea Macao) în programarea Python se concentrează pe perfecționarea abilităților elevilor în manipularea șirurilor de caractere și logica condițională. Această constrângere provoacă elevii să elaboreze soluții creative pentru a pune în aplicare reguli care restricționează apariția anumitor litere ca prima sau ultima literă a cuvintelor într-un text dat. Aceasta oferă un exercițiu practic de rezolvare a problemelor, în care elevii trebuie să conceapă și să implementeze cod pentru a naviga printre limitările constrângerii, încurajându-le gândirea logică și competențele de programare.

- Python Implementation: concepeți un program care să permită utilizatorilor să introducă text și să specifice literele interzise. Programul ar trebui apoi să înlocuiască literele interzise în cadrul cuvintelor, promovând abilitățile practice de manipulare a șirurilor de caractere și proiectarea interacțiunii cu utilizatorul.
- Aspect educațional: Aspectul educațional al aplicării constrângerii "Beautiful Outlaw" în programarea Python se concentrează în primul rând pe îmbunătățirea înțelegerii de către elevi a manipulării șirurilor de caractere, a buclelor și a indexării șirurilor. În timp ce constrângerea completă poate fi prea complexă pentru Scratch, punerea în aplicare a unei versiuni simplificate în Python oferă elevilor ocazia de a explora operații complexe cu șiruri de caractere. Elevii vor dobândi experiență practică în manipularea creativă a șirurilor de caractere, concentrându-se în special pe anumite litere din cuvinte. În plus, acest exercițiu le consolidează înțelegerea buclelor pe măsură ce iterați prin cuvinte și indexarea șirurilor de caractere pe măsură ce accesează și modifică caractere individuale din cuvinte. În general, constrângerea "Beautiful Outlaw" în Python promovează învățarea practică, gândirea logică și rezolvarea problemelor în domeniul manipulării șirurilor de caractere și al programării.

- Implementare Python: Construiți un program care preia textul de intrare, identifică substantivele (sau alte părți de vorbire specificate) și le înlocuiește cu al șaptelea cuvânt care le urmează într-un dicționar, utilizând liste și tehnici de înlocuire a șirurilor.
- Aspect educațional: Prin construirea unui program care identifică și înlocuiește părți specifice de vorbire, cum ar fi substantivele, cu cuvinte dintr-un dicționar, elevii își îmbunătățesc înțelegerea procesării limbajului natural și a lingvisticii computaționale. În același timp, ei își consolidează competențele de programare lucrând cu liste și utilizând tehnici de înlocuire a șirurilor de caractere, favorizând o combinație practică de cunoștințe lingvistice și de programare într-un context creativ bazat pe constrângeri

- Implementare Python: concepeți un program care preia un text de intrare și un dicționar de traduceri, apoi utilizează tehnici avansate de manipulare a șirurilor și de tokenizare pentru a înlocui cuvinte sau fraze, păstrând structura sintactică și gramatica originale. T
- Aspect educațional: În primul rând, elevii dobândesc cunoștințe valoroase despre conceptele lingvistice legate de sintaxă, gramatică și structura limbii pe măsură ce păstrează elementele sintactice ale textului original în timpul traducerii. În al doilea rând, ei își dezvoltă abilitățile de programare prin aplicarea unor tehnici complexe de manipulare a șirurilor de caractere și de tokenizare, sporindu-și capacitatea de a dezvolta aplicații bazate pe limbaj și aprofundându-și înțelegerea intersecției dintre limbaj și tehnologie.

- Python Implementare: creați un program care preia un text de intrare și oferă diverse modalități de rearanjare a elementelor sale constitutive, cum ar fi anagrame, acrostihuri sau inversări de cuvinte, utilizând tehnici de manipulare a listelor și a șirurilor de caractere pentru a explora transformări creative ale textului. Acest exercițiu oferă elevilor experiență practică în manipularea textului în diverse moduri și le consolidează înțelegerea operațiilor avansate cu liste și șiruri de caractere într-un context de programare.
- Aspect educațional: Aspectul educațional al implementării "Permutație" în Python este centrat pe îmbunătățirea abilităților elevilor în manipularea creativă a textului și pe aprofundarea înțelegerii lor privind operațiile avansate cu liste și șiruri de caractere. Prin explorarea diferitelor tehnici de rearanjare, cum ar fi anagramele, acrosticile sau inversarea cuvintelor, elevii nu numai că își încurajează gândirea creativă, dar își consolidează și competențele de programare în manipularea textului în moduri diverse.
5) Exemple pas cu pas: Proiect de programare OULIPO în Scratch &Python
5.1) Exemplu de lipogramă
- Pasul 1: Deschideți Scratch și creați un proiect nou
- Pasul 2: Creați interfața cu utilizatorul
În secțiunea "Sprites", ștergeți sprite-ul implicit făcând clic dreapta pe el și selectând "Delete."
Alegeți un sprite existent care să servească drept interfață pentru programul dumneavoastră
- Etapa 3: Inițializați lista
Mergeți la secțiunea "Variables".
Utilizați blocul pentru a șterge lista "modiyfiedverse".
Mergeți la secțiunea "Sensing" pentru a găsi blocul pentru a cere utilizatorului să introducă o frază.
Apoi mergeți la secțiunea "Variables" pentru a stoca răspunsul în variabila vers.
- Etapa 4: Obțineți intrarea utilizatorului pentru litera de eliminat
În secțiunea "Variables", găsiți blocul pentru a cere litera de eliminat.
Utilizați un alt bloc pentru a stoca această intrare în variabila letter to remove.
- Etapa 5: Setați variabila Index
Utilizați un bloc din secțiunea "Variables" pentru a seta indexul la lungimea versului.
Începeți bucla de eliminare
Din secțiunea "Control", începeți o buclă care continuă până când indexul ajunge la 0.
- Etapa 6: Verificați fiecare caracter și construiți lista modificată
În interiorul buclei, utilizați blocuri din secțiunile "Operatori" și "Variabile" pentru a verifica dacă caracterul aflat la index în vers este diferit de litera de eliminat.
Dacă nu este litera de eliminat, utilizați un bloc din secțiunea "Variables" pentru a o insera la începutul listei "modiyfiedverse".
Diminuați indexul cu 1 utilizând un bloc din secțiunea "Operators".
- Etapa 7: Resetați indexul și pregătiți noul șir
După bucla, utilizați blocuri din secțiunea "Variabile" pentru a seta indexul la 0 și versetul2 la un șir gol.
- Step 8: Concatenate Modified List to Form New String
Utilizați un bloc din secțiunea "Control" pentru a rula o buclă pentru fiecare element din "modiyfiedverse".
În interiorul acestei bucle, creșteți indexul cu 1 folosind un bloc din secțiunea "Operatori" și alăturați elementele la versetul2 cu blocuri din secțiunile "Variabile" și "Operatori".
- Etapa 9: Afișarea rezultatului
În final, găsiți blocul din secțiunea "Looks" pentru ca programul "say""verse2", care va afișa fraza originală cu litera specifică eliminată din fiecare poziție în care a apărut.
Aici este programul Scratch pentru exemplul de lipogramă OULIPO, care vă permite să introduceți text și apoi elimină orice cuvinte care conțin o literă interzisă, de exemplu "e".

Fig. 1. : ilustrație a unui program Scratch conceput pentru o lipogramă OULIPO
5.2) Exemple de Snowball
- Etapa 1
Utilizați blocul "when [green flag] clicked" din categoria "Events" pentru a porni scriptul
- Etapa 2: Inițializare
Creați o listă numită "test" folosind opțiunea "make a list" din categoria "Variables".
Creați variabilele "index","temp", "string", "pass" și "swaps" folosind opțiunea "make a variable" din categoria "Variables" și setați-le după cum urmează:
- Setați "index" la 0.
- Setați "temp"la un string gol.
- Setați "string" la propoziția sau cuvântul de intrare dorit (răspuns).
- Setați "pass" și "swaps" la 0.
- Etapa 3: Bucla de configurare inițială
Bucla începe cu blocul "repeat (length of string)". Această buclă va rula de atâtea ori cât lungimea șirului de caractere care este introdusă de utilizator.
- Etapa 4: Următoarea buclă
După configurația inițială, există o buclă care începe cu "repeat until (pass > 0 and swaps = 0)". Aceasta implementează un algoritm de sortare. Fiecare iterație a acestei bucle reprezintă o singură trecere prin lista care urmează să fie sortată.
În interiorul acestei bucle, setați "item" la 0 și "swaps" la 0, care sunt utilizate pentru a urmări progresul sortării și dacă au fost făcute schimburi într-o trecere.
Există o buclă imbricata "repeat (length of text - 1)". Această buclă trece prin fiecare element al textului listei și compară elementele adiacente pentru a verifica dacă acestea trebuie să fie schimbate. Este utilizată de obicei în algoritmii de sortare cu bule, unde procesul se repetă până când lista este sortată, adică atunci când nu sunt necesare schimburi (de aici "schimburi = 0").
- Etapa 5: Bucla de ieșire finală
În partea de jos, există o buclă "repeat (length of text)". Această buclă pare să treacă prin lista sortată pentru a crea un rezultat final care va fi rostit de programul Scratch folosind blocul "say result".

Fig. 2. : ilustrare a unui program Scratch conceput pentru un OULIPO Snowball
5.3) Exemplu de permutare
- Etapa 1: Înțelegerea obiectivului
Creați un program care transformă textul în diverse moduri.
Gândiți-vă cum ați putea rearanja literele sau cuvintele unui text pentru a crea noi forme de text.
- Etapa 2: Intrarea textului
Funcția: get_input_text()
Proces de gândire: Avem nevoie de o metodă pentru a primi text de la utilizator. Funcția input() este o modalitate simplă de a face acest lucru.
Etapa 3: Afisarea meniului de opțiuni
Funcția: display_menu()
Proces de gândire: Oferiți utilizatorului opțiuni pentru tipul de transformare a textului. Aici, folosim instrucțiuni simple de tipărire și o intrare.
- Etapa 4: Transformări de text
Funcții: generate_anagrams(), generate_acrostics(),reverse_words()
Proces de gândire: Fiecare funcție efectuează un tip diferit de transformare. Folosim split() pentru a separa textul în cuvinte și apoi aplicăm metodele de transformare corespunzătoare.
- Etapa 5: Execuția programului
Funcția: main()
Proces de gândire: Această funcție controlează fluxul programului. Ea primește textul, afișează meniul, obține alegerea utilizatorului și apelează funcția de transformare corespunzătoare.
import random
def get_input_text():
return input("Introduceți textul dumneavoastră: ")
def display_menu():
print("Alegeți o opțiune de manipulare a textului:")
print("1: Anagrame")
print("2: Acrostice")
print("3: Inversarea cuvintelor")
return input("Alegerea dvs.: ")
def generate_anagrams(text):
cuvinte = text.split()
anagrame = [''.join(random.sample(word, len(word))) for word in words]
return ' '.join(anagrame)
def generate_acrostics(text):
cuvinte = text.split()
acrostic = ''.join([word[0] for word in words])
return acrostic
def reverse_words(text):
cuvinte = text.split()
reversed_words = [word[::-1] for word in words]
return ' '.join(reversed_words)
def main():
text = get_input_text()
alegere = display_menu()
if choice == '1':
print("Anagrame:", generate_anagrams(text))
elif choice == '2':
print("Acrostics:", generate_acrostics(text))
elif choice == '3':
print("Inversarea cuvintelor:", reverse_words(text))
else:
print("Alegere invalidă")
if _ _name_ _ == "_ _main_ _":
Back to top
6) Bibliografie recomandată
Bellos, D. (2010). Matematică, poezie, ficțiune: Aventura lui Oulipo. BSHM Bulletin, 25(2), 104-118.
Berkman, N. (2018). Digital Oulipo: Programarea literaturii potențiale. DHQ: Digital Humanities Quarterly, 11(3), 1-16.
Despeaux, S. E. (2015). Oulipo: aplicarea constrângerilor matematice la literatură și arte într-o matematică pentru clasa de arte liberale. PRIMUS, 25(3), 238-247.
Matuszyk, Ł. (2016). Matematica bibliotecii de la Oulipo. În Proceedings of the International Conference on Studies in Humanities and Social Sciences (SHSS-2016) (pp. 86-92). Paris, Franța: 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). Potențial de lectură: Oulipo și sensul algoritmilor. Digital Humanities Quarterly, 1(1). Digital Humanities Quarterly. Retrivit de la https://www.proquest.com/docview/2555208716?pq-origsite=gscholar&fromopenview=true&sourcetype=Scholarly Journals
Back to top