La Web del Programador: Comunidad de Programadores
https://www.lawebdelprogramador.com/foros/Pascal-Turbo-Pascal/1308427-NECESITO-CREAR-UN-PROYECTO-EN-PASCAL.html

NECESITO CREAR UN PROYECTO EN PASCAL

NECESITO CREAR UN PROYECTO EN PASCAL

Publicado por Manuel Henriquez (2 intervenciones) el 26/01/2012 23:43:23
NECESITO REALIZAR UN PROYECTO EN PASCAL, LAS ESPECIFICACIONES DE COMO DEBE SER EL PROGRAMA SON LAS SIGUIENTES:

Crear un programa que maneje el siguiente menú de opciones utilizando la sentencia CASE.

1. Conversión de grados centigrados a grados fahrenheit .
2. Meses del año dependiendo de un numero ingresado.
3. Calculo de capital e intereses en 10 años al 12.50%
4. Salir del programa.
Ingrese su opción:

¿ Como debe funcionar la opción 1?

El usuario debe ingresar una cantidad entera que serán los grados centigrados de tal manera que al pulsar la tecla enter se debe mostrar la cantidad ingresada convertida en grados farhrenheit.

¿ Como debe funcionar la opción 2?

El usuario debe ingresar un numero y dependiendo el numero que ingrese se debe mostrar el nombre del mes. Si el numero que ingrese es menor que uno y mayor que 12 se debe mostrar un mensaje que diga: NO SE ASOCIA A NINGÚN MES DEL AÑO.

¿ Como debe funcionar la opción 3?

El usuario debe ingresar una cantidad del tipo real o entero que sera asignada a la variable capital y el programa debe calcular los intereses para cada año ( iteracion del ciclo repetitivo ) de la siguiente manera:
Intereses:= (capital*12.50)/100;
Luego el programa debe ir acumulando los capitales para cada año hasta completar una tabla como el siguiente ejemplo ilustrativo: Tomando como capital el siguiente valor: 35000 se debe generar lo siguiente:

Año Intereses Capitales
-------------+------------------------+----------------------
1 4375.00 39375.00
2 4921.88 44296.88
3 5537.11 49833.98
4 6229.25 56063.23
5 7007.90 63071.14
6 7883.89 70955.03
7 8869.38 79824.41
8 9978.05 89802.45
9 11225.31 101027.76
10 12628.47 113656.23

¿ Como debe funcionar la opción 4?

El programa debe preguntar de la siguiente manera: Desea Salir (S/N).
Si el usuario escribe la letra S se debe terminar el programa y si escribe la letra N debe mostrar nuevamente el menu de opciones.

NECESITO CREAR UN PROYECTO EN PASCAL

Publicado por ramon (2158 intervenciones) el 27/01/2012 20:42:51
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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
{Seria algo como esto}
 
program prollecto;
 uses
    crt;
 type
    datos = record
            cantidad : real;
            end;
 
 var
   grados : real;
   Capitales : datos;
   f : file of datos;
   cont : longint;
 
 
  function farhrenheit(nm : real) : real;
  begin
      farhrenheit := 0.0;
      if nm <> 0 then
      farhrenheit := (1.8 * nm) + 32;
  end;
 
  function mes_del_ayo(n : integer) : string;
  begin
     if n in[1..12] then
     begin
     case n of
   1 : mes_del_ayo := 'ENERO';
   2 : mes_del_ayo := 'FEBRERO';
   3 : mes_del_ayo := 'MARZO';
   4 : mes_del_ayo := 'ABRIL';
   5 : mes_del_ayo := 'MAYO';
   6 : mes_del_ayo := 'JUNIO';
   7 : mes_del_ayo := 'JULIO';
   8 : mes_del_ayo := 'AGOSTO';
   9 : mes_del_ayo := 'SEPTIEMBRE';
  10 : mes_del_ayo := 'OCTUBRE';
  11 : mes_del_ayo := 'NOVIEMBRE';
  12 : mes_del_ayo := 'DICIEMBRE';
  end;
 end
else
   begin
       mes_del_ayo := 'Entrada Incorrecta ';
   end;
  end;
 
  function interes(as : real) : real;
    var
       inter : real;
    begin
        interes := 0.0;
        inter := (as * 12.50) / 100;
        if inter > 0.0 then
        interes := inter;
    end;
 
  procedure entradas;
  var
    ti, contayo : integer;
    t, sal : char;
    intere : real;
  begin
      contayo := 1;
   repeat
      clrscr;
      writeln('Entrada Ingreso : A¤o ',contayo);
      read(capitales.cantidad);
      if capitales.cantidad = 0 then
      sal := #27
   else
     begin
      assign(f,'c:\datoscap.dat');
   {$I-} reset(f); {$I+}
   if ioresult <> 0 then
   begin
       rewrite(f);
       seek(f,0);
       write(f,capitales);
       close(f);
   end
 else
     begin
         seek(f,filesize(f));
         write(f, capitales);
         close(f);
     end;
    contayo := contayo + 1;
   end;
   until (contayo > 12) or (sal = #27);
   if sal <> #27 then
   begin
       clrscr;
       assign(f,'c:\datoscap.dat');
       {$I-} reset(f); {$I+}
          if ioresult <> 0 then
          begin
             exit;
          end
        else
            begin
            writeln('A¤o   Intereses    Capitales');
            for ti := 0 to 11 do
            begin
                seek(f, ti);
                read(f,capitales);
                intere := interes(capitales.cantidad);
                writeln(ti + 1,'    ',intere:8:2,'     ',
                           capitales.cantidad + intere:8:2);
            end;
            close(f);
            erase(f);
            writeln;
            writeln('<<<< PULSE ENTER >>>>');
            repeat
            t := readkey;
            until t = #13;
        end;
     end;
  end;
 
 
 
 
  procedure menu;
  var
   num, opcion : integer;
   tec, tecla : char;
   salir : boolean;
   entr : real;
  begin
      clrscr;
      salir := false;
      opcion := 1;
     repeat
        clrscr;
        writeln(' **** MENU GENERAL **** ');
        writeln;
        writeln('[1] = Conversion de grados centigrados a grados fahrenheit');
        writeln('[2] = Meses del a¤o dependiendo de un numero ingresado');
        writeln('[3] = Calculo de capital e intereses en 10 a¤os al 12.50%');
        writeln('[4] = alir del programa');
        tecla := readkey;
   if tecla in['1'..'4'] then
   begin
   case tecla of
  '1' : begin
        clrscr;
        writeln('Entre Grados : ');
        read(grados);
  writeln(' Grados centigrados : ',grados:8:2,' = ',' Grados farhrenheit : ',
        farhrenheit(grados):8:2);
        writeln;
        writeln('<<<< PULSE ENTER >>>>');
        repeat
            tec := readkey;
        until tec = #13;
        end;
  '2' : begin
        clrscr;
        writeln('Entre Numero 1 al 12 :');
        read(num);
        writeln;
        writeln('El Mes Es = ',mes_del_ayo(num));
        writeln;
        writeln(' <<< Pulsa Enter >>>');
        repeat
            tec := readkey;
        until tec = #13;
        end;
  '3' : begin
           clrscr;
           writeln;
           entradas;
        end;
  '4' : salir := true;
    end;
   end;
     until salir = true;
  end;
 
 
  begin
      clrscr;
      menu;
      grados := 37;
 
  end.
sin imagen de perfil

NECESITO CREAR UN PROYECTO EN PASCAL

Publicado por Armando Fuenmayor (43 intervenciones) el 30/01/2012 13:58:26
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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
(******************************************************************)
(*   Armando Fuenmayor correo = patusnalgason@hotmail.com         *)
(*   realizado en turbo pascal 7.0                                *)
(******************************************************************)
 
uses crt;
type
  reginteres = record
     annos : integer ;
     inte :  real;
     capitales : real ;
end;
   xx = array[1..10] of reginteres ;
 var
   grados_centigrados: integer;
   nu_mes ,i: integer;
   capitaltotal : real ;
   continuar : char;
   seguir : char;
   zz : xx;
   op : integer;
(****************************************************************)
(* funcion que convierte grados centigrados a grados fahrenheit *)
(****************************************************************)
function centigrados(gradoscen : integer): real ;
const
   xx = 0.55555555556 ;
begin
  centigrados :=  (gradoscen / xx)  + 32.00;
end;
 
(****************************************************************************)
(* funcion que recibe como parametro un numero entero y lo convierte en mes *)
(****************************************************************************)
function meses( x : word): string  ;
const
  mensaje  = 'NO SE ASOCIA A NINGéN MES DEL A¥O ';
  mesesanno : array [1..12] of String[20] =
    ('Enero ','Febrero ','Marzo ', 'Abril ','Mayo ','Junio ',
     'Julio ','Agosto ','Septiembre ', 'Octubre ','Noviembre ','Diciembre ');
begin
  if (x >= 1) and (x <= 12) then  meses := 'Equivale al mes de '+  mesesanno[x]
  else   meses :=   mensaje;
end;
 
(***********************************)
(* funcion que calcula el interes  *)
(***********************************)
function calcula_interes(capital,tasa: real): real ;
begin
  calcula_interes :=  (capital * tasa) / 100;
end;
 
 
(*************************************)
(* procedimiento de la opcion n§ uno *)
(*************************************)
procedure uno;
begin
continuar := 'S';
repeat
  clrscr;
  gotoxy(10,10);
  write('Ingrese los grados centigrados: ');
  readln(grados_centigrados);
  gotoxy(10,12);
  write(grados_centigrados, ' grados centigrados es = ', centigrados(grados_centigrados):6:2 , ' grados fahrenheit ');
 
   gotoxy(10,15);
   write(' Desea continua [S/N]');
   continuar := upcase(readkey);
 
until  (continuar= 'N');
end;
 
(**********************************)
(* procedimiento de la opcion dos *)
(**********************************)
procedure dos;
begin
continuar := 'S';
repeat
  clrscr;
  gotoxy(10,10);
  write('Ingrese el numero del mes: ');
  readln(nu_mes);
  gotoxy(10,12);
  write( nu_mes ,' ',meses(nu_mes));
 
   gotoxy(10,15);
   write(' Desea continua [S/N]');
   continuar := upcase(readkey);
 
until  (continuar= 'N');
end;
 
 
procedure tres;
begin
continuar := 'S';
repeat
 
  clrscr;
  gotoxy(10,5);
  write('Ingrese el capital: ');
  readln(capitaltotal);
  gotoxy(10,7);
  write('la tasa de interes es 12.50%  en 10 a¤os: ');
 
 
  for i:= 1 to 10 do
  begin
    if (i = 1) then
    begin
       zz[i].annos :=  i ;
       zz[i].inte := calcula_interes(capitaltotal,12.5) ;
       zz[i].capitales := capitaltotal +  zz[i].inte ;
    end
    else
    begin
       zz[i].annos :=  i ;
       zz[i].inte := calcula_interes( zz[i-1].capitales,12.5) ;
       zz[i].capitales := zz[i].inte + zz[i-1].capitales ;
    end;
  end;
 
  writeln;
  writeln;
 
  writeln('___________________________________________________');
  writeln;
 
  writeln('      A¤os         Interese           Capitales    ');
  writeln('______________+___________________+_________________');
  writeln;
  writeln;
 
  for i:= 1 to 10 do
  begin
      writeln('   ', zz[i].annos:5 ,'            ',  zz[i].inte:6:2  ,'          ', zz[i].capitales:6:2);
  end;
 
   gotoxy(10,30);
   write(' Desea continua [S/N]');
   continuar := upcase(readkey);
 
until  (continuar= 'N');
 
 
end;
 
(***********************)
(* programa principal  *)
(***********************)
 
begin
    clrscr;
   repeat
      clrscr;
      gotoxy(5,5);
      write('1. Conversi¢n de grados centigrados a grados fahrenheit: ');
      gotoxy(5,7);
      write('2. Meses del a¤o dependiendo de un numero ingresado : ');
      gotoxy(5,9);
      write('3. Calculo de capital e interes en 10 a¤os al 12.50% : ');
      gotoxy(5,11);
      write('4. salir del programa : ');
     repeat
        gotoxy(5,13);
        write('Ingrese una opcion [1..4] ');
        gotoxy(32,13);
        readln(op);
     until  (op>=1) and (op<=4);
 
    case op of
       1 : begin
             clrscr;
             uno ;
           end;
       2 : begin
            clrscr;
              dos;
           end;
       3 :  begin
             clrscr;
               tres;
          end;
       4 : begin
               clrscr;
               gotoxy(10,10);
               writeln('Desea salir del programa [S/N]');
               gotoxy(40,10);
               seguir  := upcase(readkey);
 
           end;
 
end;
 
 until  (  seguir = 'S' );
 
 
 
readln;
end.

NECESITO CREAR UN PROYECTO EN PASCAL

Publicado por Manuel Henriquez (2 intervenciones) el 31/01/2012 15:22:18
Hola amigo disculpe se me había olvidado colocar que el programa debe estar escrito bajo la aplicación GEANY y compilado bajo archivo fuente pascal, necesito de su ayuda se me pudiera responder a la brevedad posible se lo agradecería.

NECESITO CREAR UN PROYECTO EN PASCAL

Publicado por ramon (2158 intervenciones) el 31/01/2012 19:48:25
Es ta copiado y pegado en GEANY y funciona correcta mente solo tienes que tener en cuenta que
GEANY trabaja con free pascal win32 o sea tienes que modificar la librería uses de crt a wincrt.
Ten en cuenta también que al terminar el proceso no te cerrara la ventana la tendrás que cerrar tu.

NECESITO CREAR UN PROYECTO EN PASCAL

Publicado por Marcos (1 intervención) el 14/12/2012 22:29:32
Hola maestro, tengo entendido que usas Geany para compilar en pascal, justamente tengo un problema con archivos, me sale un error cuando utilizo la Sentencia ASSAING(Nombre_Archivo_Logico, Nombre_Archivo_ Físico. Dat o Pas ??) por que cuando se guarda "Carpeta del Escritorio" se guardan con extension .Pas , por este motivo no me deja ejcutarlo otra cosa, el nombre fisico se refiere a la ruta o el nombre donde se encuentra guardado el archivo??

Gracias

NECESITO CREAR UN PROYECTO EN PASCAL

Publicado por ramon (2158 intervenciones) el 15/12/2012 16:09:57
ASSAING(Nombre_Archivo_Logico, Nombre_Archivo_ Físico. Dat o Pas ??)

1º Considero que es un fallo de escritura puesto que seria assign no assaing como lo tienes.
2º Nombre_Archivo_Logico se refiere al tipo de archivo que se genero por ejemplo :
texto, registo, o oto .
var
Nombre_Archivo_Logico : text; Este seria de un archivo como por ejemplo nombre.txt
Nombre_Archivo_Logico : of registro; Este seria de un archivo de registro por ejemplo
persona = record
nombre
direcci
telefon
end
Nombre_Archivo_Logico : file; Este seria de archivos de cualquier tipo por ejemplo
aecgivos [bmp, jpg, pdf,doc,dll o cualquier otra.


3º Nombre_Archivo_ Físico : Corresponde al nombre del archivo y exstension que se desea
cargar teniendo en cuenta siempre su estructura de diseño como se vio antes,
también suele ir acompañado del camino o directorio donde se encuentra el archivo,
ejemlo : 'c:\tp\pascal\nombre.extesion' siempre entre comillas excepto si anterior mente
se le a asignado en una constante solo se pondría el nombre de la constante.

4º Si estas trabajando con archivos pascal la extensión siempre sera pas a excepción
que tu le mandes cambiarla.