Ingeniero Técnico en Informática de Sistemas


Pascal


PROGRAMACIÓN I

Practica nº4.

Se desea realizar la gestión del ingreso de pacientes en los 4 hospitales existentes. La información que se guarda sobre los hospitales es: nombre, número de plantas (que no puede exceder de 7) y la información de cada una de las plantas. Esta información está compuesta de: especialidad, número de habitaciones (que no puede exceder de 20) y la información sobre las habitaciones que consta de: número de camas (que no pueden exceder de 3) y situación de las camas (es decir libres u ocupadas).

Para el ingreso de un paciente se deberá introducir el nombre del hospital. Una vez comprobado que éste es un nombre de hospital válido, se pedirá al usuario que introduzca el número de la planta, y después de comprobar que esa planta existe en ese hospital, se procederá a la búsqueda de la primera cama libre, en la que se colocará ese paciente (que por tanto, pasará a ocupada). Como resultado se obtendrá la especialidad de la planta, así como el número de habitación y de cama que le ha sido adjudicada.

Para buscar la primera cama libre es necesario saber que cada planta se llena en orden, es decir completamente la primera habitación (cada una de sus camas) antes de pasar a la segunda etc...

Todas las condiciones de error se le comunicarán al usuario mediante mensajes por pantalla, por ejemplo: El hospital introducido no es uno de los existentes...

Los tipos de datos a utilizar, así como las constantes utilizadas y el procedimiento que se encarga de introducir la información ya están codificados y por tanto NO hay que realizarlos, ni siquiera copiarlos. Los tipos de datos utilizados son los siguientes:

const

max_cam=3;

max_hab=20;

max_pla=7;

max_hos=4;

type

tipo_hab=record

n_cam:1..max_cam; (*almacena el numero de camas*)

cam:array[1..max_cam] of boolean; (*true será cama libre y false ocupada*)

end;

tipo_pla=record

esp:string(20); (*nombre de la especialidad de la planta*)

n_hab:1..max_hab; (*número de habitaciones*)

hab:array[1..max_hab] of tipo_hab; (*información de las habitaciones*)

end;

tipo_hos=record

nom:string(9); (*nombre del hospital*)

n_pla:1..max_pla; (*número de plantas*)

pla:array[1..max_pla] of tipo_pla; (*información de las plantas*)

end;

tipo_hospitales=array[1..max_hos] of tipo_hos; (*información de todos los hospitales*)

La cabecera del procedimiento de introducción de información es la siguiente:

procedure introducir_datos(var hospitales:tipo_hospitales);

MUY IMPORTANTE: Debido a que la declaración de constantes, tipos de datos y el procedimiento de introducción de información se encuentran en otro fichero, es necesario incluir la sentencia [INHERIT ('f$practica4')] antes de la cabecera del programa principal. Es decir, como se muestra a continuación:

[INHERIT ('f$practica4')]

program gestion_hospitalaria(input,output);

...

Además a la hora de realizar el linkado la orden que se debe ejecutar es: link practica4,f$practica4

Realizar el programa (practica4.pas) sin utilizar variables globales, además el programa debe estar lo más modularizado posible.

Recordar que no codificar el procedimiento de introducción de datos no significa no tener que llamar a dicho procedimiento al comienzo de la ejecución y tampoco significa que no haya que declarar la variable necesaria para almacenar toda la información.

Nota: La información que introduce el procedimiento de introducir_datos para cada uno de los hospitales es la siguiente:

Nombre del hospital: HOSPITAL1

Número de plantas: 2

Número de habitaciones para todas las plantas: 11

Nombre del hospital: HOSPITAL2

Número de plantas: 3

Número de habitaciones para todas las plantas: 12

Nombre del hospital: HOSPITAL3

Número de plantas: 4

Número de habitaciones para todas las plantas: 13

Nombre del hospital: HOSPITAL4

Número de plantas: 5

Número de habitaciones para todas las plantas: 14

Para todos los hospitales el número de camas por habitación será de 3 y estarán ocupadas las dos primeras habitaciones de cada planta. Además los nombres de las especialidades son:

Planta 1ª: Cardiología

Planta 2ª: Medicina interna

Planta 3ª: Maternidad

Planta 4ª: Pediatría

Planta 5ª: Psiquiatría

Nota: Esta es la información introducida inicialmente y únicamente es de utilidad para comprobar que el programa funciona correctamente. Pero el programa debe funcionar correctamente con independencia de la información introducida inicialmente siempre y cuando ésta cumpla con los requisitos que impone el enunciado de la práctica.




Descargar
Enviado por:El remitente no desea revelar su nombre
Idioma: castellano
País: España

Te va a interesar