Pascal/Turbo Pascal - Archivos: Problema

 
Vista:

Archivos: Problema

Publicado por Franco (5 intervenciones) el 23/11/2012 17:56:02
Hola
Necesito algo de ayuda para un problema, me quede y noc como podria resolverlo. Les paso el enunciado y si necesitan mas infomacion, por favor, pidanmela.

4) Autorización de Pedidos de Análisis Clínicos. Este punto procesará todas las órdenes que se encuentran en PedidoAnalisis.dat. Los análisis que no estén vigentes no deben ser tenidos en cuenta y las órdenes sin doctor solicitante no deben ser procesadas. Se pasarán todos los registros procesados al archivo AnalisisAutorizados.dat. Este es un proceso de alta solamente, y si se produjera un alta duplicada el que debe prevalecer es el que estaba originalmente. Un paciente puede tener varios pedidos de análisis y cada pedido puede estar constituido por varios exámenes. La lógica de autorización de pedidos es la siguiente: se autorizan automáticamente aquellos pedidos de un paciente que tengan menos de cuatro exámenes; los pedidos que tengan más de cuatro exámenes deberán chequearse con el plan al que esté asociado el paciente.

Les paso los tipos de datos:

rPedidoAnalisisClinico= record //este es el registro del archivo//
fechPedido: tfecha;
nropedido: integer;
codPaciente: integer;
doctorSolicitante:Tdoctor;
exámenes: tpila // almacena códigos de análisis clínicos(integer)
end;

tfecha no me dijeron como era, si alguien me puede dar una idea de como podria estar definida.
Tdoctor tampoco, pero supongo q es un string.
tpila no lo dieron, pero supongo q es un vector de enteros, pq almacena varios codigo q son enteros.

Aca mi problema aparte de q no me dieron estos tipos de datos y los estoy suponiendo, es q en el enunciado me pide "las órdenes sin doctor solicitante no deben ser procesadas", como supongo q es un string, pienso q al no tener un nombre ahi el campo estaria vacio, ¿ como puedo poner eso en un if para q sea una condicion q me permita filtrar los registros y pasar los q si tiene un doctor solicitante?
Cualquier idea es bienvenida, desde ya gracias por su ayuda.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Archivos: Problema

Publicado por ramon (2158 intervenciones) el 24/11/2012 13:07:28
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
{A ver prueba esto dime si vale y dame toda la información que puedas  ya que existe
 un archivo  AnalisisAutorizados.dat que no tienes estructura diseñada si es el mismo
 de PedidoAnalisis.dat con lo que te añado al registro te valdría con el mismo archivo.}
 
 program analisis;
 uses
    crt;
 const
     maxesam = 20;
 type
    tfecha = string[10];
    tdoctor = string[80];
    tpila = array[1..maxesam] of integer;
    tautor = array[1..maxesam] of boolean;
 
    rPedidoAnalisisClinico = record
           fechPedido : tfecha;
            nropedido : integer;
          codPaciente : integer;
    doctorSolicitante : Tdoctor;
             examenes : tpila;
             autoriza : tautor;
          end;
 
 
   var
     f : file of rPedidoAnalisisClinico;
     datos : rPedidoAnalisisClinico;
 
   procedure iniciacampos(dd : rPedidoAnalisisClinico);
   var
     n : integer;
   begin
      dd.fechPedido := ' ';
      dd.nropedido := 0;
      dd.codPaciente := 0;
      fillchar(dd.doctorSolicitante,81,' ');
      dd.doctorSolicitante[0] := chr(80);
      for n := 1 to maxesam do
      begin
        dd.examenes[n] := 0;
        dd.autoriza[n] := false;
      end;
   end;
 
   function ordenes_sin_doctor(dd : rPedidoAnalisisClinico) : boolean;
   begin
      ordenes_sin_doctor := false;
      if length(dd.doctorSolicitante) = 0 then
       ordenes_sin_doctor := false
     else
       ordenes_sin_doctor := true;
   end;
 
  begin
     clrscr;
     iniciacampos(datos);
     writeln('El Estado Es : ',ordenes_sin_doctor(datos));
     readln;
     datos.doctorSolicitante := 'Andres la Fuente';
     writeln('El Estado Es : ',ordenes_sin_doctor(datos));
     readkey;
  end.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar

Archivos: Problema

Publicado por Franco (5 intervenciones) el 24/11/2012 18:33:36
gracias ya lo resolvi, use esa funcion de lenght. No la conocia, con eso es facil resolverlo, el resto del punto ya lo habia hecho, me faltaba solo el procedimiento para ver si tenia un doctor solicitante.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar