Pascal/Turbo Pascal - Programa en pascal (sencillo)

 
Vista:

Programa en pascal (sencillo)

Publicado por Alejandro (29 intervenciones) el 02/05/2012 14:58:13
Hola, Necesito ayuda por favor con respecto a un programa en pascal es muy basico, pero me tiene enredado; dice asi:

El departamento de transito prepara por cada infraccion la siguiente entrada: placa, zona de infraccion(1al3),limite de velocidad de la zona y velocidad desarrollada por infractor, se desea el diseño de un algoritmo que produzca dos informes:

El primero que contenga la siguiente informacion:Placa y multa, la cual es igual a 100Bs. + 50 por cada K/h de exceso con respecto al limite de velocidad.

El segundo, que indique por cada zona el numero de infracciones ocurridas y la multa promedio.

Los datos que deben ir son
Utilizar el ciclo repetitivo While.
Zona1= 80Km/h;
Zona2=90Km/h;
Zona3=100Km/h;

Pd: aqui les coloco un modelo de ejercicio de como se requiere q sea el q solicito; Gracias por su ayuda de antemano, Saludos.

program Seguro;
uses crt;

var
porcentaje1,porcentaje2,porcentaje3,porcentaje4,edad,CC,Na:real;
sexo:char;

begin
clrscr;
Resp.='s';
while (resp='s') or (resp='S')do

begin
Cafiliado:=Cafiliado + 1;
writeln('Ingrese el Nombre del Afiliado');
readln(Na);
writeln('Ingrese Edad);
readln(edad);
writeln('Ingrese Sexo');
readln(sexo);
writeln('Ingrese Codigo 1_Barinas,2_OtrasCiudades:');
readl(CC);
if edad < 25 then
begin
C25:=C25 + 1;
end;
if sexo= 'f' then
begin
CF:=CF + 1;
end;
if (sexo='M') and (edad => 18) and (edad <= 25) then
begin
C 18 y 25:= C 18 y 25 +1;
end;
if codigo=1 then
begin
C Barinas:=C Barinas + 1;
end;
if Edad > mayor then
begin
edad:mayor;
nombre:aux
end;
writeln('Desea Introducir otro afiliado(S/N):');
readln(resp);
end;
porcentaje1:= C 25 * 100/C afiliado;
porcentaje2:= CF * 100/C afiliado;
porcentaje3:= C 18 y 25* 100/ C afiliado;
porcentaje4:= C Barinas* 100/C afiliado;

...................................................................

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

Programa en pascal (sencillo)

Publicado por ramon (2158 intervenciones) el 04/05/2012 18:40:37
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
70
71
72
73
74
75
76
77
78
{Vamos a ver si esto sirve de ayuda }
 
program infracci;
 uses
    crt;
    const
       velocidad : array[1..3] of integer = (80,90,100);
  var
    placa, zonainf, velomax, veloalc : word;
    mulzon1, mulzon2, mulzon3 : integer;
    acuzon1, acuzon2, acuzon3 : real;
    fin : boolean;
    tecla : char;
 
 
  begin
      clrscr;
      fin := true;
      mulzon1 := 0;
      mulzon2 := 0;
      mulzon3 := 0;
      acuzon1 := 0.0;
      acuzon2 := 0.0;
      acuzon3 := 0.0;
      while fin do
      begin
         write('Entre Placa               : ');
         readln(placa);
         write('Entre Zona                : ');
         readln(zonainf);
         velomax := velocidad[zonainf];
         write('Velocidad Max             : ',velomax);
         writeln;
         write('Entre Velocidad Detectada : ');
         readln(veloalc);
         if zonainf = 1 then
         begin
           mulzon1 := mulzon1 + 1;
           acuzon1 := acuzon1 + (100 + ((veloalc - 80) * 50));
         end;
         if zonainf = 2 then
         begin
            mulzon2 := mulzon2 + 1;
            acuzon2 := acuzon2 + (100 + ((veloalc - 90) * 50));
         end;
         if zonainf = 3 then
         begin
            mulzon3 := mulzon3 + 1;
            acuzon3 := acuzon3 + (100 + ((veloalc - 100) * 50));
         end;
         clrscr;
            writeln('Placa         : ',placa);
         case zonainf of
        1 : writeln('Multa         : ',100 + ((veloalc - 80) * 50));
        2 : writeln('Multa         : ',100 + ((veloalc - 90) * 50));
        3 : writeln('Multa         : ',100 + ((veloalc - 100) * 50));
          end;
         writeln('Desea Entrar Mas Infracciones [S/N]');
         tecla := readkey;
         if tecla in['s','S'] then
         clrscr;
         if tecla in['n','N'] then
         fin := false;
      end;
        clrscr;
  if mulzon1 > 0 then
  writeln('  Zona  N§ 1 : ',mulzon1,' Infracciones / Promedio Multa : ',
                   acuzon1 / mulzon1:8:2);
  if mulzon2 > 0 then
  writeln('  Zona  N§ 2 : ',mulzon2,' Infracciones / Promedio Multa : ',
                   acuzon2 / mulzon2:8:2);
  if mulzon3 > 0 then
  writeln('  Zona  N§ 3 : ',mulzon3,' Infracciones / Promedio Multa : ',
                   acuzon3 / mulzon3:8:2);
       writeln;
       writeln('   Pulse [Enter]');
       readln;
 end.
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

Programa en pascal (sencillo)

Publicado por Alejandro (29 intervenciones) el 05/05/2012 01:16:34
Ramon muchas gracias de verdad te agradezco pero en realidad no entiendo la manera en la cual creaste el codigo para el programa si pudieras quitarle el case of y el boolean, y si podrias hacer mas explicitos los if osea la manera en q calculas por cada zona el numero de infracciones ocurridas y la multa promedio.
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

Programa en pascal (sencillo)

Publicado por ramon (2158 intervenciones) el 05/05/2012 12:00:01
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
70
71
72
73
74
75
76
77
78
79
{Retirado el case y el bolean espero sea eso}
 
program infracci;
 uses
    crt;
    const
       velocidad : array[1..3] of integer = (80,90,100);
  var
    placa, zonainf, velomax, veloalc : word;
    mulzon1, mulzon2, mulzon3 : integer;
    acuzon1, acuzon2, acuzon3 : real;
    fin : integer;
    tecla : char;
 
 
  begin
      clrscr;
      fin := 0;
      mulzon1 := 0;
      mulzon2 := 0;
      mulzon3 := 0;
      acuzon1 := 0.0;
      acuzon2 := 0.0;
      acuzon3 := 0.0;
      while fin < 1 do
      begin
         write('Entre Placa               : ');
         readln(placa);
         write('Entre Zona                : ');
         readln(zonainf);
         velomax := velocidad[zonainf];
         write('Velocidad Max             : ',velomax);
         writeln;
         write('Entre Velocidad Detectada : ');
         readln(veloalc);
         if zonainf = 1 then
         begin
           mulzon1 := mulzon1 + 1;
           acuzon1 := acuzon1 + (100 + ((veloalc - 80) * 50));
         end;
         if zonainf = 2 then
         begin
            mulzon2 := mulzon2 + 1;
            acuzon2 := acuzon2 + (100 + ((veloalc - 90) * 50));
         end;
         if zonainf = 3 then
         begin
            mulzon3 := mulzon3 + 1;
            acuzon3 := acuzon3 + (100 + ((veloalc - 100) * 50));
         end;
         clrscr;
            writeln('Placa         : ',placa);
        if zonainf = 1 then
         writeln('Multa         : ',100 + ((veloalc - 80) * 50));
         if zonainf = 2 then
         writeln('Multa         : ',100 + ((veloalc - 90) * 50));
         if zonainf = 3 then
          writeln('Multa         : ',100 + ((veloalc - 100) * 50));
         writeln('Desea Entrar Mas Infracciones [S/N]');
         tecla := readkey;
         if tecla in['s','S'] then
         clrscr;
         if tecla in['n','N'] then
         fin := 1;
      end;
        clrscr;
  if mulzon1 > 0 then
  writeln('  Zona  N§ 1 : ',mulzon1,' Infracciones / Promedio Multa : ',
                   acuzon1 / mulzon1:8:2);
  if mulzon2 > 0 then
  writeln('  Zona  N§ 2 : ',mulzon2,' Infracciones / Promedio Multa : ',
                   acuzon2 / mulzon2:8:2);
  if mulzon3 > 0 then
  writeln('  Zona  N§ 3 : ',mulzon3,' Infracciones / Promedio Multa : ',
                   acuzon3 / mulzon3:8:2);
       writeln;
       writeln('   Pulse [Enter]');
       readln;
 end.
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

Programa en pascal (sencillo)

Publicado por Alejandro (29 intervenciones) el 08/05/2012 00:29:38
Amigo Ramon como has estado espero que bien, revisando el ejercicio me encontre con q el calcula todo muy bien, pero si no supera los 80,90 y 100 km/h, deberia arrojar un mensaje q diga no es infractor, y por lo tanto no deberia dar ni el promedio ni dar la cantidad de infracciones no crees tu¿?
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

Programa en pascal (sencillo)

Publicado por ramon (2158 intervenciones) el 08/05/2012 11:26:39
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
{Amigo creo que esos son pequeños detalles que deberías de insertar tu no octante aquí lo tienes}
 
program infracci;
 uses
    crt;
    const
       velocidad : array[1..3] of integer = (80,90,100);
  var
    placa, zonainf, velomax, veloalc : word;
    mulzon1, mulzon2, mulzon3 : integer;
    acuzon1, acuzon2, acuzon3 : real;
    fin : boolean;
    tecla : char;
    tuvoinf : integer;
 
  begin
      clrscr;
      fin := true;
      mulzon1 := 0;
      mulzon2 := 0;
      mulzon3 := 0;
      acuzon1 := 0.0;
      acuzon2 := 0.0;
      acuzon3 := 0.0;
      tuvoinf := 0;
      while fin do
      begin
         write('Entre Placa               : ');
         readln(placa);
         write('Entre Zona                : ');
         readln(zonainf);
         velomax := velocidad[zonainf];
         write('Velocidad Max             : ',velomax);
         writeln;
         write('Entre Velocidad Detectada : ');
         readln(veloalc);
         if zonainf = 1 then
         begin
           if veloalc <= 80 then
           begin
              clrscr;
              writeln('  No Tuvo Infraccion Vuen Viaje');
              readln;
           end
         else
            begin
           mulzon1 := mulzon1 + 1;
           acuzon1 := acuzon1 + (100 + ((veloalc - 80) * 50));
           tuvoinf := 1;
           end;
         end;
         if zonainf = 2 then
         begin
            if veloalc <= 90 then
           begin
              clrscr;
              writeln('  No Tuvo Infraccion Vuen Viaje');
              readln;
           end
         else
            begin
            mulzon2 := mulzon2 + 1;
            acuzon2 := acuzon2 + (100 + ((veloalc - 90) * 50));
            tuvoinf := 1;
            end;
         end;
         if zonainf = 3 then
         begin
           if veloalc <= 100 then
           begin
              clrscr;
              writeln('  No Tuvo Infraccion Vuen Viaje');
              readln;
           end
         else
            begin
            mulzon3 := mulzon3 + 1;
            acuzon3 := acuzon3 + (100 + ((veloalc - 100) * 50));
            tuvoinf := 1;
            end;
         end;
        if tuvoinf = 1 then
        begin
         clrscr;
            writeln('Placa         : ',placa);
         case zonainf of
        1 : writeln('Multa         : ',100 + ((veloalc - 80) * 50));
        2 : writeln('Multa         : ',100 + ((veloalc - 90) * 50));
        3 : writeln('Multa         : ',100 + ((veloalc - 100) * 50));
          end;
         writeln('Desea Entrar Mas Infracciones [S/N]');
         tecla := readkey;
         if tecla in['s','S'] then
         clrscr;
         if tecla in['n','N'] then
         fin := false;
      end;
        clrscr;
  if mulzon1 > 0 then
  writeln('  Zona  N§ 1 : ',mulzon1,' Infracciones / Promedio Multa : ',
                   acuzon1 / mulzon1:8:2);
  if mulzon2 > 0 then
  writeln('  Zona  N§ 2 : ',mulzon2,' Infracciones / Promedio Multa : ',
                   acuzon2 / mulzon2:8:2);
  if mulzon3 > 0 then
  writeln('  Zona  N§ 3 : ',mulzon3,' Infracciones / Promedio Multa : ',
                   acuzon3 / mulzon3:8:2);
       writeln;
       writeln('   Pulse [Enter]');
       readln;
     end;
 end.
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