Programación con vectores

Estructura de datos. Listas. Vectores

  • Enviado por: Eduardo Donderis
  • Idioma: castellano
  • País: España España
  • 2 páginas
publicidad

CURSO: 1§

P.8.10.- En un vector están almacenados los nombres de los pacientes de una clínica dental, y en otro vector, paralelo al anterior, la cantidad que ese cliente adeuda o un cero (0) si está al corriente de pago. Escribir un programa que genere 2 listados, uno con los clientes que tienen pendientes cantidades a pagar y el otro, con los clientes al corriente de pago.

program clinica;

uses crt;

const

n=10;

type

tarray= array [1..n] of string;

tarray1= array [1..n] of integer;

var

pacientes:tarray;

deuda:tarray1;

opc:char;

{Visualizaci¢n del menu}

procedure menu;

begin

clrscr;

writeln ('A - ALTAS');

writeln ('M - LISTADO DE MOROSOS');

writeln ('C - LISTADO DE PACIENTES AL CORRIENTE DE PAGO');

writeln ('S - SALIR')

END;

{**********************}

{este procedimiento introduce los datos de los pacientes}

procedure altas (var a:tarray{pacientes};var b:tarray1{deuda});

var

ch:char;

i:integer;

begin

i:=1;

repeat

clrscr;

write ('Nombre: '); readln (a[i]);

write ('Cantidad que adeuda: '); readln (b[i]);

i:=i+1;

write ('Mas altas (S/N)');

ch:=upcase (readkey);

until (ch='N')

end;

{*********************************************************}

{Ofrece los listados de los pacientes, segun la opci¢n que se haya seleccionado}

procedure listado (ch:char; a:tarray; b:tarray1);

var

i:integer;

begin

clrscr;

case ch of

'M': begin

writeln ('LISTADO DE MOROSOS');

for i:=1 to n do

begin

if b[i]>0 then

writeln (a[i],' adeuda ', b[i])

end

end;

else

begin

writeln ('LISTADO DE PACIENTES AL CORRIENTE DE PAGO');

for i:=1 to n do

begin

if b[i]=0 then

writeln (a[i])

end

end

end;

readkey

end;

{*************************************************************************}

begin

clrscr;

repeat

repeat

menu;

opc:=upcase (readkey);

until (opc='A') or (opc='M') or (opc='C') or (opc='S');

case opc of

'A': altas (pacientes,deuda);

'M': listado (opc,pacientes,deuda);

'C': listado (opc,pacientes,deuda)

end;

until (opc='S')

end.