Advertisement
idsystems

SLE_Practica39_EstacionRadio

Jun 23rd, 2024
285
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.76 KB | None | 0 0
  1.  
  2.  
  3.  
  4.  
  5. tipos
  6.    Estacion: registro {
  7.     nombre: cadena
  8.     siguiente: numerico
  9.    }
  10.  
  11. var
  12.     lista: vector [100] Estacion
  13.     cabeza, ultimo, anterior, libre, pos, temp: numerico
  14.     opcion: cadena
  15.     nombre: cadena
  16.     i: numerico
  17.     encontrado: logico
  18.  
  19. inicio
  20.     cabeza = 0
  21.     ultimo = 0
  22.     libre = 1
  23.  
  24.     // Inicializar la lista
  25.     desde i=1 hasta 99 {
  26.         lista[i].siguiente = i + 1
  27.     }
  28.     lista[100].siguiente = 0
  29.  
  30.     repetir
  31.         imprimir("\nMenú:")
  32.         imprimir("\na. Insertar estación")
  33.         imprimir("\nb. Eliminar estación")
  34.         imprimir("\nc. Radio")
  35.         imprimir("\nd. Salir")
  36.         imprimir("\nElija una opción: ")
  37.         leer(opcion)
  38.  
  39.         eval {
  40.             caso (opcion == 'a')
  41.                 // Insertar estación
  42.                 si (libre == 0) {
  43.                     imprimir("\nLa lista está llena.")
  44.                 sino
  45.                     temp = libre
  46.                     libre = lista[libre].siguiente
  47.  
  48.                     imprimir("\nIntroduce el nombre de la estación: ")
  49.                     leer(nombre)
  50.  
  51.                     lista[temp].nombre = nombre
  52.  
  53.                     si (cabeza == 0) {
  54.                         lista[temp].siguiente = temp
  55.                         cabeza = temp
  56.                         ultimo = temp
  57.                     sino
  58.                         lista[temp].siguiente = lista[cabeza].siguiente
  59.                         lista[cabeza].siguiente = temp
  60.                         ultimo = temp
  61.                     }
  62.                     imprimir("\nEstación insertada: ", nombre)
  63.                 }
  64.             caso (opcion == 'b')
  65.                 // Eliminar estación
  66.                 si (cabeza == 0) {
  67.                     imprimir("\nNo hay estaciones para eliminar.")
  68.                 sino
  69.                     imprimir("\nIntroduce el nombre de la estación a eliminar: ")
  70.                     leer(nombre)
  71.                    
  72.                     temp = cabeza
  73.                     anterior = 0
  74.                     encontrado = FALSE
  75.  
  76.                     repetir
  77.                         si (lista[temp].nombre == nombre) {
  78.                             encontrado = TRUE
  79.                             si (anterior == 0) {
  80.                                 cabeza = lista[temp].siguiente
  81.                                 //ultimo = si (cabeza = temp) 0 sino ultimo
  82.                                 si (cabeza ==temp) {
  83.                                             ultimo = 0
  84.                                           }
  85.                             sino
  86.                                 lista[anterior].siguiente = lista[temp].siguiente
  87.                                 si (ultimo == temp) {
  88.                                     ultimo = anterior
  89.                                 }
  90.                             }
  91.                             lista[temp].siguiente = libre
  92.                             libre = temp
  93.                             imprimir("\nEstación eliminada: ", nombre)
  94.                         sino
  95.                             anterior = temp
  96.                             temp = lista[temp].siguiente
  97.                         }
  98.                     hasta (temp == cabeza or encontrado)
  99.  
  100.                     si (not encontrado) {
  101.                         imprimir("\nEstación no encontrada.")
  102.                     }
  103.                 }
  104.             caso (opcion =='c')
  105.                 // Submenú de Radio
  106.                 si (cabeza == 0) {
  107.                     imprimir("\nNo hay estaciones en la radio.")
  108.                 sino
  109.                     pos = cabeza
  110.                     repetir
  111.                         imprimir("\nRadio:")
  112.                         imprimir("\na. Siguiente")
  113.                         imprimir("\nb. Anterior")
  114.                         imprimir("\nc. Terminar")
  115.                         imprimir("\nEstación actual: ", lista[pos].nombre)
  116.                         imprimir("\nElija una opción: ")
  117.                         leer(opcion)
  118.  
  119.                         eval {
  120.                             caso (opcion == 'a')
  121.                                 pos = lista[pos].siguiente
  122.                             caso (opcion == 'b')
  123.                                 temp = pos
  124.                                 repetir
  125.                                     temp = lista[temp].siguiente
  126.                                 hasta (lista[temp].siguiente == pos)
  127.                                 pos = temp
  128.                             caso (opcion =='c')
  129.                                 // Terminar submenú
  130.                                 //salir
  131.                         }
  132.                     hasta (opcion == 'c')
  133.                 }
  134.             caso (opcion =='d')
  135.                 // Salir
  136.                 imprimir("\nSaliendo del programa.")
  137.                 //salir
  138.         }
  139.     hasta (opcion == 'd')
  140. fin
  141.  
  142.  
  143.  
Tags: listas
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement