En esta ocasión en vez de publicar los ejercicios pegando el código los voy a adjuntar en un zip, ya que aunque los primeros son solo un fichero y se podrían poner sin problemas, los dos últimos y los de las siguientes hojas van a tener muchos paquetes y seria muy lioso, además así aprovecho y adjunto también el ejecutable.
Código del quinto:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 |
--| 09/10/2012 --| --| ENUNCIADO: --| Ponga a punto un nuevo programa a partir del ejercicio anterior, --| pero ahora las tres tareas van a estar estructuradas en un vector "T" --| de tareas de un tipo tarea. --| Las tareas T(i) tendrán, además de capacidad para aceptar la cita --| "identificación", capacidad para aceptar una nueva cita "parar", de --| forma que aceptarán la cita "identificación" e iterarán la escritura --| de su frase "Soy Ti" hasta que hayan aceptado la cita parar. --| El procedimiento se encargará de identificar a cada una de las tareas --| (para que empiecen) y establecerá el mecanismo de parada de las tareas --| (la definición de este mecanismo se deja para la decidas tú). --| CONCLUSION: --| Ahora podemos alterar el funcionamiento de la tarea mediante las citas, --| de modo que estas modifiquen el valor de las variables de la tarea y --| que asi el comportamiento de esta cambie. --| EJECUCION: --| Inicio T1 --| Soy 1 --| Soy 1 --| Soy 1 --| Soy 1 --| Fin T1 --| Inicio T2 --| Soy 2 --| Soy 2 --| Soy 2 --| Fin T2 --| Inicio T3 --| Soy 3 --| Soy 3 --| Soy 3 --| Soy 3 --| Fin T3 with Ada.Text_IO; procedure ada1x05 is use Ada.Text_IO; -- Se especifica un tipo tarea con una cita: task type tarea is entry identificacion(char:Character); entry parar; end tarea; --| Se implementa la tarea: task body tarea is estadoTarea, estadoImprimir : boolean; letra:Character; begin estadoTarea := true; estadoImprimir := false; while estadoTarea = true loop select accept identificacion(char:Character) do put("Inicio T"); put(char); new_line; estadoImprimir :=true; letra := char; end identificacion; or accept parar do estadoTarea := false; estadoImprimir := false; put("Fin T"); put(letra); new_line; end parar; else if estadoImprimir then put(" Soy "); put(letra); new_line; delay 0.3; end if; end select; end loop; end tarea; -- Se crea el vector de tareas y se instancia: type vectorTarea is array(1..3) of tarea; vt:vectorTarea; begin -- Se llama a la cita de las tareas de forma parametrizada: vt(1).identificacion('1'); delay 1.0; vt(1).parar; vt(2).identificacion('2'); delay 1.0; vt(2).parar; vt(3).identificacion('3'); delay 1.0; vt(3).parar; end ada1x05; |
me ha ayudado. Soy estudiante de ingeniería en informática y necesito el resto de ejercicios si es posible. me los puedes enviar al correo electrónico
Gracias
Hola,
Todos los ejercicios que hice y funcionaban están subidos al blog, echa un vistazo por aquí no sea que te hayas dejado de ver alguna entrada:
https://giltesa.com/category/informatica/programacion/ada/
Saludos.