Beruflich Dokumente
Kultur Dokumente
de sta, que estan relacionados uno con otros. De cada uno de los consultorios se almacena: Numero de ste y cantidad de Doctores q ue all atienden, esto debido a que un mismo consultorio pueden atender ms de un do ctor pero no se ha establecido un limite, por lo que se almacena de cada uno de s tos: Cdula, Nombre, Apellido y Especialidad.e desea que en baase a la informacion anteriormente suministrada. se desarrolle un algoritmo en pseudocodigo orientad o a objetos, declarando las clases que considere pertinentes, incluyendo los mtod os que permitan insertar (los consultorios se almacenan ordenados descendentemen te con respecto a su numero) y elimina un consultorio de acuerdo al numero de es te (debido a las remodelaciones que all se han planteado), contratar un nuevo doc tor para que trabaje con su consultorio dado (tome en cuenta que se debe aumenta r la cantidad de doctores para ese consultorio en particular y los doctres se al mecena en el mismo orden en que se van contratando), mostrar los consultorios do nde al menos tres(3) doctores sean Neumonologos y mostrar los doctores de aquell os consultorios donde trabajen cuatro doctores. Algoritmo control_consultorios tipo consultorio^apuntador doctor^apuntador1 clase consultorio entero: numero_consultorio entero:cantidad_doctores apuntador:siguiente_consultorio apuntador:anterior_consultorio constructor consultorio(entero:numero_consultorio;entero:cantida d_doctores;apuntador:siguiente_consultorio;apuntador:anterior_consultorio) inicio numero_consultorio<-n_consultorio cantidad_doctores<-c_doctores siguiente_consultorio<-sig_consultorio anterior_consultorio<-ant_consultorio fin constructor metodo ingresar_consultorio(apuntador:lista_consultorio;apuntado r:principio;apuntador:final) variables entero:bandera=0 inicio Escribir"Bloque Ingreso consultorio inserte todos los da tos solicitados" Escribir "numero" leer(aux->n_consultorio) 0<-c_doctores si (lista_consultorio=nulo) entonces nulo<-aux->sig_consultorio nulo<-axu->ant_consultorio aux<-lista_consultorio lista_consultorio<-principio lista_consultorio<-final 1<-bandera sino si (lista->n_consultorio > aux->n_consul torio) entonces si(lista->siguiente=nulo)entonce
s nulo<-aux->sig_consultorio aux<-lista_consultorio->sig_consultor io lista_consultorio<-aux->ant_c onsultorio aux->final 1<-bandera sino lista_consultorio->sig_c onsultorio<-lista_consultorio si (lista_consultorio->n _consultorio < aux->n_consultorio)entonces lista_consultori o<-aux->sig_consultorio lista_consultori o->ant_consultorio<-lista_consultorio aux->lista_consu ltorio lista_consultori o->sig_consulorio<-lista_consultorio aux<-lista_consu ltorio->ant_consultorio lista_consultori o->ant_consultorio<-lista_consultorio lista_consultori o->ant_consultorio<-lista_consultorio 1<-bandera sino lista_consultori o->anterior<-lista_consultorio fin si fin si sino lista_consultorio<-auxiliar->sig _consultorio aux<-lista_consultorio lista_consultorio->principio 1<-bandera sino si (lista_consultorio->ant_consu ltorio = nulo) entonces lista_consultorio<-aux-> sig_consultorio aux<-lista_anterior->ant _consultorio aux<-lista_consultorio fin si fin si si(bandera=0)entonces si(lista_consultorio->siguiente<>nulo)entonces lista_consultorio->siguiente->lista_cons ultorio fin si fin si fin metodo metodo mostrar_consultorio() inicio escribir" Numero de consultorios, n_consultorios" escribir" Cantidad de doctores, c_doctores"
fin metodo fin clase clase doctor depende_de consultorio entero:cedula cadena:nombre cadena:apellido cadena:especialidad apuntador1:siguiente_doctor constructor doctor(entero.cedula;cadena:nombre;cadena:apellido;c adena:especialidad;apuntador1:siguiente_doctor) inicio cedula<-ced nombre<-nom apellido<-ape especialidad<-esp siguiente_doctor<-sig_doctor fin constructor metodo ingresar doctor(apuntador1:lista_doctor;apuntador:lista_c onsultorio) variables entero:numero_consultorio_buscar entero:bucle entero:bandera inicio escribir "Bloque registro Doctor ingrese todos los datos solitados" si (lista_consultorio<>null) entonces repetir escribir"Numero consultorio" leer(numero_consultorio_buscar) para bucle=0;hasta tamao lista_consultorio;inc ha cer si(lista_consultorio->n_consultorio=nume ro_consultorio_buscar)entonces escribir "cedula" leer(auxiliar->ced) escribir"nombre" leer(auxiliar->nom) escribir"apellido" leer(auxiliar->ape) escribir"especialidad" leer(auxiliar->esp) numero_consultorio_buscar<-aux-> n_consultorio si (lista_doctor=nulo)entonces auxiliar<-lista_doctor sino lista_doctor<-auxiliar-> sig_doctor auxiliar<-lista_doctor fin si lista_consultorio->c_doctor tamao lista_doctor<-bucle 1<-bandera fin si 1+lista_consultorio->c_doctores<-lista_consultor io->c_doctores
lista_consultorio->sig_consultorio<-lista_consul torio fin para si (bandera=0)entonces escriibir"Consultorio no registrado" fin si sino escribir"No hay data de Consultorios" fin si fin metodo metodo mostrar_doctores() inicio escribir"Cedula",ced escribir"Nombre",nom escribir "Apellido", ape escribir "Especialidad",esp fin metodo fin clase variables apuntador:lista_consultorio apuntador1:lista_doctor aux=consultorio nuevo (consultorio) auxiliar=doctor nuevo (doctor) entero:opcion_menu apuntador:principio apuntador:final entero:tipo_procedimiento=0 inicio repetir 0<-tipo_procedimiento escribir "Menu de opciones" escribir"1:Ingresar Consultorio" escribir"2:Eliminar Consultorio" escribir"3:mostrar consultorios" escribri"4:consultorios con minimo 3 Doctores Neumonologos" escribir"5:Consultorios con 4 doctores" escribir"6:Registrar Doctor" escribir"7:"Mostrar Doctores" escribir"8:Salir" leer(opcion_menu) segun_sea (opcion_menu) entonces caso 1: aux.ingresar_consultorio(lista_consultorio,princ ipal,final) caso 2: llamar procedimiento eliminar_consultorio(lista_ consultorio,principio,final) case 3: principio<-lista_consultorio lista_consultorio->mostrar_consu ltorio() lista_consultorio<-sig_consultor io->lista_consultorio case 4: 1<-tipo_procedimiento llamar procedimiento mostrar_con sultorios_exigencias(lista_consultorio,prinicipio,lista_doctor,tipo_procedimient o) case 5: 2<-tipo_procedimiento llamar procedimiento mostrar_consult orios_exigencias(ista_consultorio,prinicipio,lista_doctor,tipo_procedimiento) caso 6: auxiliar.ingresar_doctor(lista_doctor)
caso 7: lista_doctores->mostrar_doctores() lista_doctores<-sig_doctores->li sta_doctores fin segun_sea hasta_que(opcion_menu<>8) fin procedimiento eliminar_consultorio(apuntador: lista_consultorio,apuntador princp io, apuntador: final) variables entero:consultorio_eliminar enteo:bucle entero:bandera=0 auxiliar_borrar=consultorio nuevo (consultorio) entero:numero_consultorio_borrado inicio escribir"Bloque eliminacion consultorio ingrese los datos solicitados a continuacion" escribir"Numero de consultorio" leer(consultorio_eliminar) para bucle=0 hasta tamao de lista_consultorio inc hacer si(lista_consultorio=consultorio_eliminar)entonces lista_consultorio->n_consultorio <- numero_consultorio_borrado tamao de lista_consultorio<-bucle si(principio->n_consutltorio=lista_consultorio->n_consul torio)entonces lista_consultorio->sig_consultorio<-lista_consul torio lista_consultorio<-principio nulo<-lista_consultorio->ant_consultorio bandera=1 fin si si(bandera=0)entonces si(lista_consultrio->n_consultorio=final->n_cons ultorio) lista_consultorio->ant_consultorio<-list a_consultorio lista_consultorio<-final nulo<-lista_consultorio->sig_consultorio bandera=2 fin si fin si si((bandera<>1) y (bandera<>2))entonces lista_consultorio->sig_consultorio<-auxiliar_borrar lista_consultorio->ant_consultorio<-lista_consul torio auxiliar_borrar<-lista_consultorio->sig_consulto rio lista_consultorio<-auxiliar_borrar->ant_consulto rio fin si fin si lista_consultorio->sig_consultorio<-lista_consultorio fin para para bucle=0 hasta tamao de lista_doctor inc doctor si(lista_doctor->n_consultorio=numero_consultorio_borrado)entonc es 0<-lista_doctor->n_consultorio tamao de lista_doctor=bucle
fin si lista_doctor->sig_doctot<-lista_doctor fin para fin procedimiento procedimiento mostrar_doctor_exigencia(apuntador:lista_consultorio;apuntador:pri nicipio;apuntador1:lista_doctor;entero:tipo_procedimiento) variable entero cantidad_doctor=4 entero:cantidad_doctores=3 entero:numero_doctores=0 entero:bucle=0 entero bucle_doctor=0 cadena: especialidad_mostrar="Neumonologo" entero:mostrar=0 inicio principio<-lista_consultorio para bucle=0 hasta tamao_lista_consultorio inc hacer si(lista_consultorio->c_doctores=>cantidad_doctores)entonces si(tipo_procedimiento=1)entonces para bucle_doctor=0 hasta tamao lista_doctor inc hacer si (lista_doctor->esp=especialidad_mostrar)enton ces numero_doctores+1<-numero_doctores fin si lista_doctores->sig_doctor<-lista_doctor fin para si(numero_doctores=>cantidad_doctores)entonces escribir"Numero de Consultorio",lista_co nsultorio->n_consultorio escribir"Cantidad de Doctores",lista_con sultorio->c_doctores,"Neumonologos",numero_doctores fin si fin si si(tipo_procedimiento=2)entonces si(lista_consultorio->c_doctor=cantidad_doctor)e ntonces escribir"Numero de Consultorio",lista_consultorio->n _consultorio escribir"Cantidad de Doctores",lista_con sultorio->c_doctores fin si fin si fin si lista_consultorio->sig_consultorio<-lista_consultorio fin para fin procedimiento