[ Foro de Pascal ]
Tengo el siguiente código que me compila en el celular pero no en otros compiladores.
program UNEFATEL;
uses
crt;
type
nino = record
dia_semana: Integer;
minutos: Integer;
x, x1, x2, x3, total_a_pagar, impuesto, total_sin_impuesto: real;
horario: Integer;
end;
var
i, j, num_factura: Integer;
Ist: array of nino;
nombre, apellido: String;
cedula: real;
begin
Clrscr;
Writeln('=======================');
Writeln('_______BIENVENIDO______');
Writeln('=======================');
writeln('---Datos del Cliente---');
write('Nombre: ');
Readln(nombre);
write('Apellido: ');
Readln(apellido);
Write('Cedula: ');
Readln(cedula);
writeln('Número de Servicios a Registrar?:');
ReadLn(num_factura);
SetLength(Ist, num_factura);
clrscr;
for i := 0 to num_factura - 1 do
begin
writeln;
Writeln('==Servicio N° ', i + 1, '==');
writeln('Seleccione el día de la semana');
writeln('1. Lunes.');
writeln('2. Martes.');
writeln('3. Miércoles.');
writeln('4. Jueves.');
writeln('5. Viernes.');
writeln('6. Sábado.');
writeln('7. Domingo.');
Readln(Ist[i].dia_semana);
write('Minutos de duración de la llamada: ');
Readln(Ist[i].minutos);
case Ist[i].minutos of
1..5:
begin
Ist[i].total_sin_impuesto := Ist[i].minutos * 100;
end;
1..8:
begin
Ist[i].x := (Ist[i].minutos - 5);
Ist[i].x1 := (Ist[i].minutos - Ist[i].x) * 100;
Ist[i].total_sin_impuesto := (Ist[i].x * 80) + Ist[i].x1;
end;
1..10:
begin
Ist[i].x := 5 * 100;
Ist[i].x1 := 3 * 80;
Ist[i].x2 := (Ist[i].minutos - 8) * 70;
Ist[i].total_sin_impuesto := Ist[i].x + Ist[i].x1 + Ist[i].x2;
end
else if (Ist[i].minutos > 10) then
begin
Ist[i].x := 5 * 100;
Ist[i].x1 := 3 * 80;
Ist[i].x2 := 2 * 70;
Ist[i].x3 := (Ist[i].minutos - 10) * 50;
Ist[i].total_sin_impuesto := Ist[i].x + Ist[i].x1 + Ist[i].x2 + Ist[i].x3;
end ;
end;
if (Ist[i].dia_semana = 7) then
begin
Ist[i].impuesto := Ist[i].total_sin_impuesto * 0.03;
Ist[i].total_a_pagar := Ist[i].total_sin_impuesto + Ist[i].impuesto;
end
else
begin
writeln('Horario de atención? seleccione! ');
writeln('1.Matutino |7:00 am - 2:00 pm| ');
writeln('2.Vespertino |2:00 pm - 8:00 pm| ');
Readln(Ist[i].horario);
if (Ist[i].horario = 1) then
begin
Ist[i].impuesto := Ist[i].total_sin_impuesto * 0.15;
Ist[i].total_a_pagar := Ist[i].impuesto + Ist[i].total_sin_impuesto;
end
else
begin
Ist[i].impuesto := Ist[i].total_sin_impuesto * 0.10;
Ist[i].total_a_pagar := Ist[i].total_sin_impuesto + Ist[i].impuesto;
end;
end;
end;
Clrscr;
writeln('---Datos del Cliente---');
writeln(' Nombre: ', nombre);
writeln(' Apellido: ', apellido);
writeln(' Cédula: ', cedula: 3: 0);
writeln;
for j := 0 to num_factura - 1 do
begin
Writeln('==== Servicio N° ', j + 1, ' ====');
writeln(' Duración de la llamada: ', Ist[j].minutos, ' minutos. ');
writeln(' Total a pagar: ', Ist[j].total_a_pagar, ' Bs.');
writeln;
end;
ReadLn;
end.