Resolución de Ejercicios Parcial 2 YT
Never
__author__ = "Cátedra de Algoritmos y Estructuras de Datos - UTN FRC - Junio de 2022" """ Ejercicio para el canal de la cátedra Tema: Parcial 2 - Procesamiento de caracteres Se pide desarrollar un programa en Python que permita cargar por teclado un texto completo en una variable de tipo cadena de caracteres. El texto finaliza con ‘.’ y se supone que el usuario cargará el punto para indicar el final del texto, y que cada palabra de ese texto está separada de las demás por un espacio en blanco. El programa debe: 1) Determinar la cantidad de palabras que contienen la letra "m" o la letra "o" (minúscula o mayúscula) a partir de la segunda letra (inclusive) de la palabra. Por ejemplo, en el texto “El Villareal de España juega en un estadio llamado el Madrigal.” hay 2 palabras cumplen con la condición (“llamado”, “estadio”) 2) Determinar la cantidad de palabras que contienen más de 1 dígito y además incluyen al menos una vez la letra "K", por ejemplo “Los cursos que se presentan son el 1K04 y el 1R11.” Resultado 1 palabra cumple la condición. 3) Determinar el porcentaje de palabras sobre el total de palabras del texto que finalizan con la secuencia os. Por ejemplo, en el texto "Faltan menos de dos semanas para el parcial de AED." hay dos palabras ("dos" y "menos") que cumplen la condición por lo tanto el resultado es 20%. 4) Determinar la posición de la palabra más corta entre las palabras que contuvieron al menos una vez la expresión "si" o "sí" (con ambas letras en minúscula o mayúscula. Por ejemplo, en el texto "Singulares problemas con sílabas siempre se asimilan así." las palabras "Singulares", "sílabas", "siempre", "asimilan" y "así" cumplen la condición, la que tiene menor cantidad de letras es "así" y está en la posición: 8. 5) Determinar la cantidad de palabras con vocales y consonantes alternadas, empezando con vocal o consonante indistintamente. Por ejemplo, en el texto "Las vocales y las consonantes están alternadas." hay 4 palabras ("Las", "vocales", "y" y "las") que cumplen la condición. 6) Determinar la cantidad de palabras que tuvieron al menos 3 vocales en la primera mitad de la palabra (en el caso de cantidad de letras impares la letra central cuenta para las dos mitades) y además no comenzaron con vocal. Por ejemplo, en el texto "Este es un texto que demuestra lo que estamos visualizando." hay 2 palabras ("demuestra" y "visualizando") que cumplen la condición. """ def es_vocal(car): return car in "aáeéiíoóuú" def es_consonante(car): # car = car.lower() return car in "bcdfghjklmnpqrstvwxyz" def calcular_porcentaje(contador_parcial, contador_total): porcentaje = 0 if contador_total != 0: porcentaje = contador_parcial * 100 / contador_total return porcentaje def es_digito(car): return car in "0123456789" def principal(): print("Analizador de textos.") texto = input("Ingrese el texto a procesar, finaliza con un punto: ") texto = texto.lower() # Sector de inicializacion de variables cont_letras = 0 cont_palabras = 0 cont_palabras_p1 = 0 hubo_m_o = False cont_digitos = 0 hubo_k = False cont_palabras_p2 = 0 hubo_antes_o = False pos_fin_os = 0 cont_palabras_p3 = 0 hubo_antes_s = False hubo_si = False menor_pal_pto_4 = None pos_pal_punto_4 = 0 cont_palabras_p5 = 0 fue_vocal_anterior = None voc_con_alternadas = True primera_mitad = 0 cont_vocales = 0 posicion_tercera_vocal = 0 cont_palabras_p6 = 0 hubo_vocal_pos_1 = True for car in texto: if car != " " and car != ".": cont_letras += 1 if car in "moó" and cont_letras > 1: hubo_m_o = True if es_digito(car): cont_digitos += 1 else: if car == "k": hubo_k = True if car in "oó": hubo_antes_o = True else: if hubo_antes_o and car == "s": pos_fin_os = cont_letras hubo_antes_o = False if car == "s": hubo_antes_s = True else: if hubo_antes_s and car in "ií": hubo_si = True hubo_antes_s = False if es_vocal(car): # Es vocal! cont_vocales += 1 if cont_vocales == 3: posicion_tercera_vocal = cont_letras if fue_vocal_anterior: voc_con_alternadas = False fue_vocal_anterior = True else: if es_consonante(car): # Es una consonante! if fue_vocal_anterior == False: voc_con_alternadas = False fue_vocal_anterior = False else: voc_con_alternadas = False else: if cont_letras == 0: continue cont_palabras += 1 if hubo_m_o: # (hubo_mm_o == True) cont_palabras_p1 += 1 if cont_digitos > 1 and hubo_k: cont_palabras_p2 += 1 if pos_fin_os == cont_letras: cont_palabras_p3 += 1 if hubo_si and (menor_pal_pto_4 is None or cont_letras < menor_pal_pto_4): menor_pal_pto_4 = cont_letras pos_pal_punto_4 = cont_palabras if voc_con_alternadas: cont_palabras_p5 += 1 if cont_letras % 2 == 0: primera_mitad = cont_letras // 2 else: primera_mitad = cont_letras // 2 + 1 if posicion_tercera_vocal > 0 and posicion_tercera_vocal <= primera_mitad: cont_palabras_p6 += 1 # Sector de reinicializacion de variables cont_letras = cont_digitos = pos_fin_os = 0 hubo_m_o = hubo_k = hubo_antes_o = hubo_antes_s = hubo_si = False voc_con_alternadas = True fue_vocal_anterior = None primera_mitad = 0 posicion_tercera_vocal = 0 cont_vocales = 0 print("Resultados") if cont_palabras > 0: print("La cantidad de palabras que contienen una m o una o a partir de la segunda letra es: ", cont_palabras_p1) print("La cantidad de palabras que contienen mas de un digito y al menos una k son: ", cont_palabras_p2) porcentaje_p3 = calcular_porcentaje(cont_palabras_p3, cont_palabras) print("El porcentaje de palabras que terminan en os sobre el total de palabras del texto es de: ", porcentaje_p3, "%") print("La posicion de la palabra mas corta que contiene la secuencia si o sí es: ", pos_pal_punto_4) print("La cantidad de palabras que tienen vocales y consonantes alternadas es de: ", cont_palabras_p5) print("La cantidad de palabras que tienen más de 3 vocales y no comienzan con vocal es de: ", cont_palabras_p6) else: print("No se ha cargado un texto.") if __name__ == "__main__": principal()
Raw Text
-
SHADYSPA Pampered Man got Sucked Off After Massage
24 sec ago
-
Untitled
3 min ago
-
Untitled
27 min ago
-
Vampire Krul Tepes fucks like a slut, anal - Sunako_Kirishiki
30 min ago
-
Boostline Keto ACV Gummies [Scam Or Legit] Read| Where to Buy?
31 min ago
-
Sthv
38 min ago
-
Morning fuck with pussy licking / face sitting - syndicete
1 hour ago
-
застряла во время уборки в позе догги. Думает, что я вытащу ее, но я сначала ей втащу 🤫
1 hour ago
-
Aviator
1 hour ago
-
Billionaire Brain Wave
1 hour ago