Professional Documents
Culture Documents
Tema Subrutinas
1) Para almacenar una serie de nmeros se utiliza un arreglo de unidimensional, de N filas. El arreglo guarda una serie
ordenada de nmeros.
Cada fila est compuesta de la siguiente manera: el primer campo contiene un valor de la serie; y el segundo, el nmero
de fila en la cual se encuentra el siguiente valor de la serie, en orden ascendente.
La primera fila es especial, y contiene dos atributos indicadores que son:
1ra. Columna: La ltima fila utilizada para el almacenamiento de valores, y
2da. Columna: El nmero de fila en la cual se encuentra el menor nmero de la serie.
Haciendo uso de los valores incluidos en el segundo campo, escribir los mtodos para:
buscar (datos: matriz[*,*] numerico; valor: numerico) retorna numerico
Busca el valor dentro de la serie y devuelve el nmero de fila en el cual se encuentra, o cero en caso de que ese valor
no exista en la serie.
agregar (ref datos: matriz[*,*] numerico; valor:numerico) retorna logico
Agrega el valor a la serie, colocndolo en la primera fila libre al final de la serie, y modificando los valores de control
de la primera fila; adems de reajustar los ndices, de ser necesario. La funcin retorna un valor lgico FALSE en
caso de no haberse podido realizar la insercin.
eliminar (ref datos: matriz[*,*] numerico; valor:numerico)
Elimina el valor de la serie mediante la modificacin de los valores de control de la primera fila, adems de reajustar
los ndices, de ser necesario.
Ejemplos: Si el arreglo tiene el siguiente contenido :
1 6 4
2 9 5
3 6 2
4 2 6
5 16 0
6 4 3
7 0 0
8 0 0
Entonces : Buscar 2 dara por resultado 4; buscar 7 dara por resultado 0; agregar 8 producira el siguiente
efecto:
1 7 4 <=
2 9 5
3 6 7 <=
4 2 6
5 16 0
6 4 3
7 8 2 <=
8 0 0
2 9 5
3 6 7
4 2 6
5 16 0
6 4 7 <=
7 8 2
8 0 0
Algoritmos y Estructura de Datos II Ejercicios propuestos
Tema Subrutinas
Prototipo de la subrutina:
subrutina fraude (examen: arreglo [*] registro {nombre:cadena; ubicacion: cadena; respuestas: arreglo[10]numerico; }) retorna cadena;
3) En una clnica veterinaria se atiende a todo tipo de animales y la clnica paga el salario a los veterinarios por las horas
trabajadas de acuerdo al tipo de atencin brindada al paciente, a la edad y tipo del animal.
Los datos de las atenciones estn almacenados en el archivo atendidos.txt, con el siguiente formato:
fecha de atencin, cod. de veterinario, tipo de animal (1 al 5), tipo de trabajo (CO consultas, CI - ciruga), edad del animal, horas atendidas
Imprimir el sueldo mensual para cada veterinario; y los tres tipos de animales ms frecuentes, en orden creciente.
Subrutinas a ser desarrolladas, como parte del ejercicio:
precio_base (edad: numerico, tipo_trabajo: cadena) retorna numerico
// Rutina que devuelve el precio base del trabajo, de acuerdo a la edad del paciente.
Cualquier otra rutina que considere til para la implementacin del algoritmo.
Algoritmos y Estructura de Datos II Ejercicios propuestos
Tema Subrutinas
set_ifs(): Establece el separador de valores (o campos) a ser utilizado en subsiguientes llamadas a leer()
Sintaxis
sub set_ifs (c : cadena)
Si c contiene ms de un carcter, solo se usa el primero de ellos.
set_ofs() : Configura qu carcter utilizar imprimir() para separar los valores de los datos compuestos, como los registros y arreglos.
Por defecto este carcter es una coma.
Sintaxis
sub set_ofs (c : cadena)
set_stdin() : Establece desde donde se obtendrn los datos cada vez que se llame a leer(). Por defecto, se lee del teclado.
Si a set_stdin() se pasa un nombre de archivo que no existe, o no se tiene permisos para leerlo, se devuelve el valor lgico FALSE.
Sintaxis
sub set_stdin (nombre_archivo : cadena) retorna logico
set_stdout() : Establece el destino de los datos que son generados a travs de imprimir(). Puede ser un archivo o la pantalla, siendo
este el destino por defecto.
Si a set_stdout() se pasa un nombre de archivo que no existe, ste es creado. Si el archivo ya existe, su contenido se pierde, a menos
que se utilice la segunda sintaxis (ver ms abajo) y se solicita que el contenido sea adicionado y no borrado.
Si el archivo no puede ser creado, porque no se tiene permisos por ejemplo, o porque ya est abierto, se retorna el valor lgico FALSE.
Puede usarse (cadena vaca) como nombre de archivo para hacer que subsiguientes llamadas a imprimir() enven los datos a la
pantalla, cerrando as cualquier archivo que se haya abierto previamente.
Sintaxis
Alternativa 1: El archivo se crea si no existe. Si ya existe, los datos previos se pierden.
sub set_stdout (nombre_archivo : cadena) retorna logico
at : Todo lo que se imprima se agregar al archivo, conservando su contenido previo. Si el archivo no existe, se crea.