Pascal/Turbo Pascal - Trabajo de cierre de cuatrimestre

 
Vista:
sin imagen de perfil
Val: 2
Ha disminuido su posición en 6 puestos en Pascal/Turbo Pascal (en relación al último mes)
Gráfica de Pascal/Turbo Pascal

Trabajo de cierre de cuatrimestre

Publicado por Amaro (1 intervención) el 21/07/2020 23:32:11
Buenas, se medio este trabajo para realizar como cierre de cuatrimestre pero estoy muy perdido. Si por favor me podrían ayudar, estaría agradecido.

Una empresa de logística posee un archivo con los paquetes enviados durante el mes de enero, con formato:
id_chofer: 1..15
id_viaje: integer
sensible: ‘si’-’no’
Costo_registrado: real
distancia: integer

El archivo está ordenado por el campo, id_chofer e id_viaje.. El costo es cuánto dinero se le cobro al cliente por mover su encomienda. Los productos sensibles, aumentan su costo en un 20% del valor registrado.

Se pide:
- Mostrar para cada chofer, y por viaje , cual es el costo que recibio el chofer
- Genere un archivo de salida que posea para cada chofer cuanto es el total de viajes realizados y lo que cobró. Formato del archivo de salida: id_chofer, cantidad de viajes y costo total recibido.

Y esto es lo que hice, peeero no tira ni para atrás:

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
program logistica;
uses crt;
 
type
    id=array[1..20] of integer;
    precio=real;
    encomienda=record
               id_chofer: id;
               id_viaje: integer;
               sensible: boolean;
               costo_registrado: precio;
         end;
    viaje = file of encomienda;
    incr = smallint(1.20);
 
var
arch:viaje;
reg:encomienda;
distancia: integer;
opc: char;
total: real;
 
procedure Archivo;
begin
     assign (arch,'C:\Users\Ribeiro\Desktop\Pascaloide\costo.dat');
     rewrite (arch);
     writeln ('ingrese el número del chofer');
     readln (reg.id_chofer);
     while ( reg.id_chofer <> 'fin' ) do begin
           writeln ('ingrese la identificación del viaje');
           readln (reg.id_viaje);
           writeln ('Es un paquete frágil?(S para Si y N para No)');
           readln (reg.sensible);
           if(opc = 's') then
              total := reg.costo * incr;
            else
              total := reg.costo;
           write (arch,reg);
           writeln ('Por favor ingrese la distancia a su destino.');
           readln (distancia);
     end;
     close (arch);
     writeln;
     writeln ('Datos creados correctamente');
     readkey;
end.
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