Combinacions en Esperanto (II). X63616


Statement
 

pdf   zip   main.py

html

L’Esperanto és una llengua artificial és a dir, creada de manera expressa per humans, en contrast amb les altres llengües que s’anomenen naturals, com per exemple, el català. Va ser creada pel oftalmòleg jueu polonès Ludwik Lejzer Zamenhof. La seva intenció era crear una llengua que no fos de ningú i que, alhora, pogués ser de tothom qui ho volgués, facilitant així l’entesa entre parlants de llengües diferents, de manera que no fos un dels dos parlants qui hagués de cedir cap a l’altra llengua, sinó que tots dos haguessin de cedir i fer servir aquesta llengua auxiliar.

L’Esperanto té 16 regles gramaticals, i en aquesta pràctica en farem servir dues:

  1. Els noms (independentment del gènere) acaben en la lletra -o. Per exemple, viro (home), o domo (casa).
  2. Els adjectius (independentment del gènere de la paraula que determinen) acaben en la lletra -a. Per exemple, alta (alt), o bona (bo).

La pràctica consisteix en tres exercicis que cal fer de manera acumulativa (aquesta n’és la segona part). Això vol dir que per a fer aquesta segona part caldrà fer servir el que hagueu fet (si funciona bé) a la primera part.

1 Primera Part

La primera part de la pràctica consistirà en, donat una seqüència d’entrada amb aquest format:

paraula_1

paraula_2

paraula_3

...

paraula_n

FINO

on cada paraula paraula_i acabarà en la lletra o o en la lletra a, fer la funció

entraSeq ()

  • PRE El canal d’entrada conté únicament paraules que acaben en o o en a. No estan necessàriament en ordre alfabètic, i no hi ha cap repetit.
  • POST Torna dues llistes: NOMS i ADJECTIUS tals que NOMS conté totes les paraules que apareixen al canal d’entrada i que acaben en la lletra o en el mateix ordre en què apareixen al canal d’entrada. La llista ADJECTIUS contindrà totes les que acaben en a.

Com podeu veure, aquesta funció no rep cap paràmetre, i simplement torna dues llistes, una amb les paraules que acaben en o i una altra amb les paraules que acaben en a.

2 Segona Part

La segona part consisteix a fer una funció que, donats dos vectors NOMS i ADJECTIUS formi totes les possibles combinacions de adjectiu i nom (separats per un espai). Concretament, la funció serà aquesta:

calculaParelles(NOMS,ADJECTIUS)

  • PRE NOMS és un vector que conté paraules que acaben en la lletra o. ADJECTIUS és un vector que conté paraules que acaben en la lletra a.
  • POST Torna una llista amb totes les combinacions que es pot fer adjectiu nom, separats per un espai.

    Per exemple, si ADJECTIUS = ['bona','granda'] i NOMS = ['viro', 'domo'], el resultat hauria de ser la llista

    R = ['bona viro', 'granda viro', 'bona domo', 'granda domo'].

    Com es pot observar, l’ordre de les combinacions ha de respectar l’ordre que hi ha en els vectors NOMS i ADJECTIUS.

    Recordeu que podeu concatenar strings fent servir l’operador de suma. Per exemple, "bona" + " " + "domo" avalua a "bona domo".

Observació

Només cal que enviïs el fitxer amb le funcions (i les funcions auxiliars que hagis fet) que et demanem i prou. El fitxer main.py et pot servir per a fer la teva solució, però no cal que n’enviïs el contingut.

Entrada

paraula1 paraula2 ...

acabada en la paraula FINO

Sortida

Dos vectors que contenen els noms (acabats en o) del canal d’entrada i els adjectius (acabats en a).

Donats els dos vectors anteriors, totes les parelles adjectiu nom.

Public test cases
  • Input

    afabla
    akvo
    alta
    besto
    domo
    FINO
    

    Output

    Noms:      ( 3 )
    			 akvo
    			 besto
    			 domo
    Adjectius: ( 2 )
    			 afabla
    			 alta
    
    Parelles:
    
    afabla akvo
    afabla besto
    afabla domo
    alta akvo
    alta besto
    alta domo
    
  • Input

    ronda
    linio
    malpeza
    mondo
    nova
    FINO
    

    Output

    Noms:      ( 2 )
    			 linio
    			 mondo
    Adjectius: ( 3 )
    			 ronda
    			 malpeza
    			 nova
    
    Parelles:
    
    ronda linio
    ronda mondo
    malpeza linio
    malpeza mondo
    nova linio
    nova mondo
    
  • Information
    Author
    INFO EPSEVG
    Language
    Catalan
    Official solutions
    Python
    User solutions
    Python