Ayuda Programa Pascal
Publicado por Juan Cruz (11 intervenciones) el 12/04/2013 06:02:47
Hola, como va?. Quería ver si me podían ayudar con el siguiente problema de pascal. Me estoy equivocando y no se en cual o cuales cosas... Se hace con iteración por condición y por cantidad. No se pueden usar funciones ni procedimientos. Ahí va:
Hacer un programa que lea las ventas efectuadas por una farmacia. Por cada venta se ingresa un
código indicador (O, E ó T) y un importe.
Si el código es
- O, significa que corresponde a una obra social (se abona sólo en efectivo), le corresponde un 25% de
descuento.
- E, significa que se abona en efectivo, le corresponde un 10% de descuento.
- T, significa que se abona con tarjeta, le corresponde un 15% de recargo.
- * indica que finalizan las ventas
Se pide informar:
- Total de operaciones y total de montos en efectivo, discriminando cuáles fueron por obra social y
cuáles no
- Total de operaciones y montos por tarjeta.
- Total de operaciones y monto del día
NOTA : el total de montos debe ser el efectivamente cobrado luego de efectuar los descuentos o
recargos correspondientes.
Problema:
Hacer un programa que lea las ventas efectuadas por una farmacia. Por cada venta se ingresa un
código indicador (O, E ó T) y un importe.
Si el código es
- O, significa que corresponde a una obra social (se abona sólo en efectivo), le corresponde un 25% de
descuento.
- E, significa que se abona en efectivo, le corresponde un 10% de descuento.
- T, significa que se abona con tarjeta, le corresponde un 15% de recargo.
- * indica que finalizan las ventas
Se pide informar:
- Total de operaciones y total de montos en efectivo, discriminando cuáles fueron por obra social y
cuáles no
- Total de operaciones y montos por tarjeta.
- Total de operaciones y monto del día
NOTA : el total de montos debe ser el efectivamente cobrado luego de efectuar los descuentos o
recargos correspondientes.
Programa:
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
64
65
66
67
68
69
Program Pr2Ej16;
Uses
Crt;
Var
O,E,T,Cod: Char;
Monto,AcumEf,AcumTarj,AcumObra,DescO,DescE,Rec: Real;
ContTotalOperaciones,ContTotOperEfect,ContTotObraSocial,ContOpTotTarjeta: Integer;
Begin
Clrscr;
Write('Ingrese el codigo correspondiente: ');
Readln(Cod);
Write('Ingrese el monto: ');
Readln(Monto);
ContTotalOperaciones:=0;
ContTotOperEfect:= 0;
ContTotObraSocial:=0;
ContOpTotTarjeta:= 0;
AcumEf:=0;
AcumTarj:=0;
AcumObra:=0;
While (Cod <> '*') do
{TOTAL DE OPERACIONES TOTALES}
If (Cod='O') or (Cod='E') or (Cod= 'T') then
ContTotalOperaciones:= ContTotalOperaciones + 1;
{TOTAL DE MONTOS EN EFECTIVO Y OBRA SOCIAL}
If (Cod='E') then
ContTotOperEfect:= ContTotOperEfect + 1
else
If (Cod='O') then
ContTotObraSocial:= ContTotObraSocial + 1;
If (Cod='E') then
AcumEf:= AcumEf + Monto;
If (Cod='O') then
AcumObra:= AcumObra + Monto;
{TOTAL OPERACIONES Y MONTOS POR TARJETA}
If (Cod='T') then
ContOpTotTarjeta:= ContOpTotTarjeta + 1;
If (Cod='T') then
AcumTarj:= AcumTarj + Monto;
{TOTAL OPERACIONES Y MONTOS DEL DIA Y RECARGOS Y DESCUENTOS}
If (Cod='O') then
Monto:= Monto * 0.75
else
If (Cod='E') then
Monto:= Monto * 0.90
else
If (Cod='T') then
Monto := Monto * 1.15;
Writeln('Total de operaciones: ', ContTotalOperaciones);
Writeln('Total de montos en efectivo: $', AcumEf:8:2);
Writeln('Total operaciones en efectivo: ', ContTotOperEfect ,'Fueron por obra social: ',ContTotObraSocial);
Writeln('Total de operaciones con tarjeta: ',ContOpTotTarjeta);
Writeln('Total monto con tarjeta: ' , AcumTarj:8:2);
Writeln('Total monto del dia: ',AcumObra + AcumTarj + AcumEf:8:2);
Writeln('Total monto con obra social: ', AcumObra:8:2);
Readln;
Write('Ingrese el codigo correspondiente');
Readln(Cod);
Write('Ingrese el monto');
Readln(Monto);
end.
Valora esta pregunta


0