Foros del Web » Programando para Internet » Python »

Problemas con while,if y count

Estas en el tema de Problemas con while,if y count en el foro de Python en Foros del Web. hay un ejercicio que no logro responder, y va así: "Dado un archivo de palabra ordenadas y repetidas, escribir un programa que determine cuántas palabras ...
  #1 (permalink)  
Antiguo 31/03/2013, 14:13
 
Fecha de Ingreso: marzo-2013
Mensajes: 1
Antigüedad: 11 años, 7 meses
Puntos: 0
Problemas con while,if y count

hay un ejercicio que no logro responder, y va así:
"Dado un archivo de palabra ordenadas y
repetidas, escribir un programa que
determine cuántas palabras distintas hay y
cuál es la palabra más repetida."

El problema es que no se pueden ocupar listas, ni Tupple, ni diccionarios, sólo el count, el if, el while, el for y los elementos más elementales.

¿A quién se le ocurre como hacerlo?
  #2 (permalink)  
Antiguo 31/03/2013, 16:38
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: Problemas con while,if y count

El de las palabras distintas es bastante fácil.

Empieza por la primera palabra, si la siguiente palabra es igual entonces no es única puesto que esta ordenada, consume todas las palabras repetidas hasta llegar a una palabra distinta o al fin del archivo. Y repite el proceso hasta llegar al fin del archivo.

El problema de las palabras con mas frecuencia es un poco mas tricky.
Para la o las palabras mas repetidas vas a tener que hacer 2 recorridos. El primero que encuentre el mayor numero de veces que se repite una palabra en todo el archivo. Una vez hecho esto, haz otro recorrido donde imprima las palabras que tengan ese numero de frecuencias.
  #3 (permalink)  
Antiguo 01/04/2013, 07:56
Avatar de dontexplain  
Fecha de Ingreso: junio-2012
Mensajes: 536
Antigüedad: 12 años, 5 meses
Puntos: 127
Respuesta: Problemas con while,if y count

Se puede hacer, basta con usar tres variables, una que almacene la palabra anterior, una que almacene el número de repeticiones de palabras, y otra que compruebe las nuevas palabras.

Código Python:
Ver original
  1. f = open('words.txt', 'r')
  2. isRepeated = False
  3. isRepeatedCount = 0
  4. distinctWords = 0;
  5. lastWord = ""
  6. ln = f.readlines()
  7. for dt in ln:
  8.     dt = dt.replace("\n","")
  9.     if dt == lastWord:
  10.         isRepeatedCount += 1
  11.     else:
  12.         distinctWords += 1
  13.     lastWord = dt
  14. print "El numero de palabras distintas es " + str(distinctWords) + \
  15. "\nEl numero de palabras repetidas es " + str(isRepeatedCount)

Sólo funcionaría si estuvieran en orden. Tendrías que adaptarlo, para que contara las palabras más repetidas, etc.
__________________
21añero.
HTML/CSS, PHP, JS/jQuery, Mysql; NodeJS/Socket.io (& V8); C++ ; Python (wxpy); Ensamblador.
Músico (clarinetista/pianista) y compositor

Última edición por dontexplain; 01/04/2013 a las 08:15

Etiquetas: count, lista
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:43.