Advertisement
Guest User

Untitled

a guest
Jul 23rd, 2017
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ;; Tarea 1
  2. (define (Inicio)
  3.     (set 'dic (cargaDic))
  4.     (close diccionario)
  5.     ;; GUI para seleccionar archivo y boton analizar
  6.     (text-font "Times New Roman" 18)
  7.     (win-dialog 'VentanaPrincipal 'console 200 0 600 500 "Tarea 1")
  8.     (prop-color 'VentanaPrincipal 247 247 247)
  9.     (win-label 'LabelArchivo 'VentanaPrincipal 20 50 150 17 "Seleccione Archivo:")
  10.     (prop-color 'LabelArchivo 247 247 247)
  11.     (win-pushbutton 'BotonArchivo 'VentanaPrincipal 20 70 100 30 "Seleccionar..." 'abrirArchivo)
  12.     (win-editline 'LabelNombreArchivo 'VentanaPrincipal 123 75 450 20 "")
  13.     (prop-enabled 'LabelNombreArchivo 0)
  14.     (text-font "Times New Roman" 30)
  15.     (win-pushbutton 'BotonAnalizar 'VentanaPrincipal 200 115 100 40 "Analizar" 'analizador)
  16.     ;; GUI para Resultados
  17.     (text-font "Times New Roman" 25)
  18.     (win-label 'LabelResultado 'VentanaPrincipal 20 160 120 25 "Resultados:")
  19.     (prop-color 'LabelResultado 247 247 247)
  20.     (text-font "Times New Roman" 18)
  21.     (win-editbox 'CajaResultado 'VentanaPrincipal 20 189 546 220 "")
  22.     (prop-text 'CajaResultado (string dic))
  23.     (set 'tamano 2)
  24.     ;; GUI para clasificar palabras
  25. )
  26.  
  27. ;abre el archivo y lo muestra en un cuadro de texto...
  28. (define (abrirArchivo)
  29.     (prop-text 'LabelNombreArchivo (set 'Archivo (file-dialog "load a file" "" "c:\\" "text file (*.TXT)|*.TXT|any file (*.*)|*.*" 0)))
  30.     (set 'File (open Archivo "read"))
  31.     (if (window? 'VentanaArchivo) (win-delete 'VentanaArchivo))
  32.     (win-dialog 'VentanaArchivo 'VentanaPrincipal 350 470 930 300 "Arhivo")
  33.     (win-editbox 'ContenedorArchivo 'VentanaArchivo 0 0 915 262)
  34.     (prop-text 'ContenedorArchivo (string (Lector File)))
  35.     (close File)
  36. )
  37.  
  38. (define (analizador)
  39.     (set 'dic (map rest (reverse (sort (ponedor dic)))))
  40.     (listaCategorias)
  41.     (cond
  42.         ((empty? a) '())
  43.         ((basura? (first a)) (_analizador (set 'a (rest a))))
  44.         ((valido? (first a)) (validacion (first a)))
  45.     )
  46. )
  47.  
  48. (define (_analizador lista)
  49.     (write-line "ciclo de analizador lista")
  50.     (prop-text 'CajaResultado (string lista))
  51.     (cond
  52.         ((empty? a) '())
  53.         ((basura? (first a)) (_analizador (set 'a (rest a))))
  54.         ((valido? (first a)) (validacion (first a)))
  55.     )
  56. )
  57.  
  58. (define (validacion elemento)
  59.     (write-line "validacion")
  60.     (cond
  61.         ((> (length (assoc elemento dic)) 2) (validacion_especial elemento dic))
  62.         (true (sumar (last (assoc elemento dic))))
  63.     )
  64. )
  65. (define (validacion_especial elemento diccionario_m)
  66.     (write-line "validacion especial")
  67.     (set 'tamano (length (assoc elemento diccionario_m)))
  68.     (set 'boleano true)
  69.     (for (s 0 (- tamano 1) 1)
  70.         (if (not boleano) (break))
  71.         (set 'boleano (= (nth s a) (nth s (assoc elemento diccionario_m))))
  72.     )
  73.     (write-line "despues del for")
  74.     (if boleano (sumar (last (assoc elemento diccionario_m))))
  75.     (set 'miembro (rest (member (assoc elemento diccionario_m) diccionario_m)))
  76.     (if (!= (assoc elemento miembro) nil) (validacion_especial elemento miembro))
  77. )
  78.  
  79. (define (clasificar elemento)
  80.     (win-dialog 'pop_up 'console 800 0 390 300 "Clasificar")
  81.     (prop-color 'pop_up 247 247 247)
  82.     (win-label 'Palabra 'pop_up 10 10 90 20 "Palabra:")
  83.     (prop-color 'Palabra 247 247 247)
  84.     (win-editline 'PalabraCla 'pop_up 10 35 350 25)
  85.     (win-pushbutton 'clasificar 'pop_up 10 70 70 25 "Clasificar" )
  86.     (win-pushbutton 'bas 'pop_up 110 70 90 25 "A la Basura" )
  87.     (win-pushbutton 'agregar 'pop_up 230 70 130 25 "Clasificar Palabra" )
  88.     (win-label 'catego 'pop_up 100 10 300 25 "Categoria:" )
  89.     (prop-color 'catego 247 247 247)
  90.     (win-combobox 'combo 'pop_up 170 6 190  20000)
  91.     (listbox-fill 'combo '("manzanas" "bananas" "plums" "oranges"))
  92.     (win-checkbox 'che 'pop_up 10 100 200 20 "Otra Categoria")
  93.     (prop-color 'che 247 247 247)
  94.     (win-editline 'otracat 'pop_up 10 120 200 25)
  95.     (prop-enabled 'otracat 0)
  96.     (win-scrollbar 'scr 'pop_up 10 170 360 30 "" 'scrollbar-action)
  97.     (prop-range 'scr 1 100)
  98.     (prop-value 'scr 50)
  99. )
  100.  
  101. (define (scrollbar-action)
  102.    (win-label 'etiqueta 'pakho 10 60 80 30 "puto")
  103. )
  104.  
  105. (define (agregarDic)
  106.     ()
  107. )
  108.  
  109. (define (sumar categoria)
  110.     (set 'xapend (eval-string (concat "'(" (string  categoria) " " (string (+ 1 (last (assoc categoria resultado)))) ")")))
  111.     (remove (assoc categoria resultado) resultado)
  112.     (set 'resultado (cons xapend resultado))
  113.     (if (> 2 tamano) (_analizador (set 'a (recorredor a (- tamano 1)))))
  114.     (_analizador (set 'a (rest a)))
  115. )
  116.  
  117. (define (recorredor lista num)
  118.     (cond
  119.         (if (= 1 num) (rest a))
  120.         (true (recorredor (rest a) (- 1 num)))
  121.     )
  122. )
  123.  
  124. ;; Comprueba que efectivamente este en la lista de aceptados
  125. (define (valido? elemento)
  126.     (cond
  127.         ((= (assoc elemento dic) nil) nil)
  128.         (true true)
  129.     )
  130. )
  131.  
  132. ;;metodo que dice si es basura un elemento (de donde para como desde tu el yo nosotros ustedes ellos)
  133. (define (basura? elemento)
  134.     (cond
  135.         ((= (member (eval-string (concat "'(" (string elemento) " basura)")) dic) nil) nil)
  136.         (true true)
  137.     )
  138. )
  139.  
  140. ;; metodo para leer el archivo y ponerlo en la lista 'a
  141. (define (Lector archivo)
  142.     (set 'a '())
  143.     (while (read-line archivo)
  144.         (set 'a (append a (eval-string (concat "'(" (current-line) ")")))) 
  145.     )
  146.     a
  147. )
  148.  
  149. ;; metodo que lee y rerorna todos los elementos del diccionario.
  150. (define (cargaDic)
  151.     (set 'diccionario (open "dic.txt" "read"))
  152.     (read-line diccionario)
  153.     (set 'Lectura (eval-string (concat "'(" (_cargaDic diccionario) ")")) )
  154. )
  155. (define (_cargaDic diccion)
  156.     (if (read-line diccion) (concat (eval (concat "(" (current-line) ") " )) (_cargaDic diccion)) " ")
  157. )
  158.  
  159. ;; metodo que saca la lista de todas las categorias y la guarda en categorias
  160. (define (listaCategorias)
  161.     (set 'categorias '())
  162.     (remove 'basura (set 'test (unique (map  last Lectura))))
  163.     (set 'resultado (_listaCategorias test))
  164. )
  165. (define(_listaCategorias lista)
  166.     (cond
  167.         ((empty? lista) '())
  168.         (true (cons (append (list (first lista)) '(0)) (_listaCategorias (rest lista))))
  169.     )
  170. )
  171.  
  172. (define (ponedor lista)
  173.     (cond
  174.         ((empty? lista) '())
  175.         (true (cons (cons (length (first lista)) (first lista)) (ponedor (rest lista))))
  176.     )
  177. )
  178.  
  179. (Inicio)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement