Utilizamos cookies propias y de terceros para mejorar la experiencia de navegación, y ofrecer contenidos y publicidad de interés.
Al continuar con la navegación entendemos que se acepta nuestra política de cookies.
Iniciar sesión Cerrar
Correo:
Contraseña:
Entrar
Recordar sesión en este navegador
Crear cuenta

Pascal/Turbo Pascal - NECESITO CREAR UN PROYECTO EN PASCAL

Vista:
Me gusta: Está pregunta es útil y esta clara
0
No me gusta: Está pregunta no esta clara o no es útil
 
Asunto:NECESITO CREAR UN PROYECTO EN PASCAL
Autor:Manuel Henriquez (2 intervenciones)
Fecha: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.
Responder Subir
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:NECESITO CREAR UN PROYECTO EN PASCAL
Autor:ramon (1438 intervenciones)
Fecha:27/01/2012 20:42:51
{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.
Comentar Subir
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:NECESITO CREAR UN PROYECTO EN PASCAL
Autor:Armando Fuenmayor patusnalgason@hotmail.com (15 intervenciones)
Fecha:30/01/2012 13:58:26
(******************************************************************)
(* 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.
Comentar Subir
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:NECESITO CREAR UN PROYECTO EN PASCAL
Autor:Manuel Henriquez (2 intervenciones)
Fecha: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.
Comentar Subir
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:NECESITO CREAR UN PROYECTO EN PASCAL
Autor:ramon (1438 intervenciones)
Fecha: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.
Comentar Subir
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:NECESITO CREAR UN PROYECTO EN PASCAL
Autor:Marcos (1 intervención)
Fecha: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
Comentar Subir
Me gusta: Está respuesta es útil y esta clara
0
No me gusta: Está respuesta no esta clara o no es útil
 
Asunto:NECESITO CREAR UN PROYECTO EN PASCAL
Autor:ramon (1438 intervenciones)
Fecha: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.
Comentar Subir