Ejercicio: 3Eva2018TII_T1 texto aleatorio
| T |
|---|
| Hola |
| . |
| que |
| tal |
| - |
| , |
| amigo |
| amiga |
| palabra 1 |
| palabra2 |
| literatura |
Un ejemplo de lo esperado es:

El texto generado es:
Hola Hola.
Hola amigo-amiga Hola que-
>>>
Se empieza generando un aleatorio en el intervalo [0,k], donde k es el número de términos que tiene T.
# literal a. selección aleatoria de k términos
aleatorio = int(rnd.random()*k)+0
untermino = T[aleatorio]
Literal b
Se valida que sea una palabra, descartando que no sea un símbolo como forma de simplificar el ejercicio. Solo si es palabra se avanza a sortear el siguiente termino, se concatena en texto y se indica que lo usado antes es una palabra.
espalabra = not(untermino in simbolo)
if (espalabra==True):
texto = texto + untermino
cuenta = cuenta + 1
antes = espalabra
Se avanza validando con un bucle
cuenta = 0
while (cuenta<1):# literal b. primero debe ser palabra
literal d
Se continúa con los demás literales según las reglas indicadas
if espalabra == True: # solo palabra
if antes == 1: # palabras tienen espacio
texto = texto + ' '+ untermino
if antes == 0: # símbolo pegado a palabra
texto = texto + untermino
antes = 1
cuenta = cuenta+1
Propuesta de solución en Python, los detalles por literal se encuentran como comentario en el código:
# 3Eva_IIT2018_T1 texto aleatorio
# CCPG1001-Fundamentos de Programación - FIEC-ESPOL
import random as rnd
# INGRESO
n = 10 # enunciado indica 73, solo para pruebas
T = ['Hola','.','que','tal','-',',','amigo','amiga',
'palabra1','palabra2','literatura']
# PROCEDIMIENTO
k = len(T)
texto = ''
simbolo = ',.-'
antes = 0
cuenta = 0
while (cuenta<1):# literal b. primero debe ser palabra
# literal a. selección aleatoria de k términos
aleatorio = int(rnd.random()*k)+0
untermino = T[aleatorio]
espalabra = not(untermino in simbolo)
if (espalabra==True):
texto = texto + untermino
cuenta = cuenta + 1
antes = espalabra
while not(cuenta>=n): # literal a. Cuenta términos añadidos
# literal a. selección aleatoria de k términos
aleatorio = int(rnd.random()*k)+0
untermino = T[aleatorio]
espalabra = not(untermino in simbolo)
if espalabra == True: # solo palabra
if antes == 1: # literal c. palabras tienen espacio
texto = texto + ' '+ untermino
if antes == 0: # literal d, e, f, símbolo pegado a palabra
texto = texto + untermino
antes = 1
cuenta = cuenta+1
if espalabra==False and antes==1: # solo símbolo con antes palabra.
if untermino==',': # literal e
texto = texto + ', '
if untermino=='.': # literal g
texto = texto + '.\n'
if untermino=='-': # literal f
texto = texto +'-'
antes = 0
cuenta = cuenta+1
# if espalabra==False and antes ==0:
# print('no se pueden juntar simbolos')
# SALIDA
print('El texto generado es: ')
print(texto)
# desarrollar archivo.txt
# Archivo
archivo = open('literatura.txt','w')
archivo.write(texto)
archivo.close()