Pascal/Turbo Pascal - Ayuda con ejercicio pascal

 
Vista:

Ayuda con ejercicio pascal

Publicado por bea (7 intervenciones) el 31/01/2008 19:21:38
Hola:
Necesito que me ayudeis con estos programas, por favor.

1. Deberá crear dos funciones:
o Función calcula_euros, que recibe como parámetro una cantidad en pesetas y devuelve como resultado de la función el valor en euros.
o Función calcula_pesetas, que recibe como parámetro una cantidad en euros y devuelve como resultado de la función el valor en pesetas.
Utilice estas funciones en un programa que solicite al usuario la cantidad a convertir y al tipo que deseamos convertir.

Símbolo de MS - DOS
C:cursopro>ppc386 usuario_t6_2.pasFree Pascal Compiler version 1.0.4 [2000/12/30] for i386Copyright (c) 1993-2000 by Florian KlaempflTarget OS: Win32 for i386Compiling usuario_t6_2.pasLinking usuario_t6_2.exe60 Lines compiled, 4.8 secC:cursopro>usuario_t6_2.exe

Para convertir:
1. Pasar de pesetas a euros.
2. Pasar de euros a pesetas.

Opcion: 2
Introduzca cantidad en euros: 30
Son 4992 pesetas.
Continuar (S/N)?s
Para convertir:

1. Pasar de pesetas a euros.
2. Pasar de euros a pesetas.
Opcion: 2
Introduzca cantidad en euros: 30
Son 4992 pesetas.
Continuar (S/N)?s
Para convertir:
1. Pasar de pesetas a euros.
2. Pasar de euros a pesetas.
Opcion:
1Introduzca cantidad en pesetas: 3500
Son 21.04 euros.
Continuar (S/N)?NC:cursopro>


Símbolo de MS - DOS
C:cursopro>ppc386 usuario_t6_2.pasFree Pascal Compiler version 1.0.4 [2000/12/30] for i386Copyright (c) 1993-2000 by Florian KlaempflTarget OS: Win32 for i386Compiling usuario_t6_2.pasLinking usuario_t6_2.exe60 Lines compiled, 4.8 secC:cursopro>usuario_t6_2.exe Para convertir: 1. Pasar de pesetas a euros. 2. Pasar de euros a pesetas. Opcion: 2Introduzca cantidad en euros: 30Son 4992 pesetas.Continuar (S/N)?s Para convertir: 1. Pasar de pesetas a euros. 2. Pasar de euros a pesetas. Opcion: 2Introduzca cantidad en euros: 30Son 4992 pesetas.Continuar (S/N)?s Para convertir: 1. Pasar de pesetas a euros. 2. Pasar de euros a pesetas. Opcion: 1Introduzca cantidad en pesetas: 3500Son 21.04 euros.Continuar (S/N)?NC:cursopro>

Esto es lo que yo he hecho pero tiene errores y no sé como resolverlos al compilar.

Program euro;

(*-- Constantes Globales al programa --*)

Const

EURO=166.386; (* Valor de un euro en pesetas *)

(*-- Funciones y procedimientos --*)

Function calcula_euros (cantidad,opcion: real):real;

begin

calcula_euros:=cantidad*EURO.

end

Function calcula_pesetas (cantidad,opcion: real):real;

begin

calcula_pesetas:=cantidad/EURO;

end;

(*-- Variables globales --*)

Var
opcion: integer;
cantidad: real;
respuesta: char;

(*--Programa principal --*)

Begin
(*Aquí debe ir la solicitud y lectura de datos*)

repeat
writeln ('Para convertir: ');
writeln ('1. Pasar de pesetas a euros. ');
writeln ('2. Pasar de euros a pesetas. ');

writeln ('Opcion: ', opcion);
readln (opcion);

if (opcion='1') then

writeln ('Introduzca la cantidad en pesetas: ');
writeln ('Son ' ,calcula_pesetas(cantidad,opcion):0:2);

else

if (opcion='2') then

writeln ('Introduzca la cantidad en euros: ');
writeln ('Son ' , calcula_euros(cantidad,opcion):0:2);
writeln ('Desea continuar (S/N: ');
readln (respuesta);

until (respuesta='N') or (respuesta='n');

End.

OTRO EJERCICIO:


2.A partir del módulo principal que se presenta a continuación cree los procedimientos necesarios para realizar un programa, llamado usuario_t6_3.pas que pida al usuario dos números y realice la suma de los mismos.
El resultado de una ejecución del programa será por tanto:

Símbolo de MS - DOS
C:cursopro>ppc386 usuario_t6_3.pasFree Pascal Compiler version 1.0.4 [2000/12/30] for i386Copyright (c) 1993-2000 by Florian KlaempflTarget OS: Win32 for i386Compiling usuario_t6_3.pasLinking usuario_t6_3.exe57 Lines compiled, 2.5 secC:cursopro>usuario_t6_3.exe

ntroduzca el primer numero:3
Introduzca el segundo numero:6
El resultado de la suma es: 9.00
C:cursopro>
La estructura del programa será como la que le presentamos a continuación. Hay que destacar que la impresión del valor de la suma hay que hacerlo obligatoriamente en el procedimiento presenta_resultados: Esto le obligará a pasar el parámetro suma por referencia.

(*
Fichero: usuario_t6_3.pas
Autor:
Mail:
Descripción:
*)

program Operaciones;

(*-- Funciones y procedimientos -- *)

(* ¡¡ Aquí irían las definiciones de los procedimientos calculo y
presenta_resultados !! *)

(*-- Variables Globales -- *)
var
primer_numero:real;
segundo_numero:real;
suma:real;

(*-- Programa Principal -- *)
begin

(* Solicitud de los datos *)
writeln('Introduzca el primer numero: ');
readln(primer_numero);
writeln('Introduzca el segundo numero: ');
readln(segundo_numero);

calculo(primer_numero,segundo_numero,suma);

(* Impresión del resultado de la suma por pantalla *)
presenta_resultados(suma);
end.

ESTO ES LO QUE YO HE HECHO PERO TIENE ERRORES

Program Operaciones;

(*-- Funciones y procedimientos --*)

Procedure Presenta_resultados (suma:real);
Procedure calculo(primer_numero,segundo_numero:real);

(*-- Variables globales --*)

Var
suma:real;
calculo:real;

(*--Programa principal --*)

Begin
(*Aquí debe ir la solicitud y lectura de datos*)

writeln ('Introduzca el primer numero: ');
readln (primer_numero);
writeln ('Introduzca el segundo numero: ');
readln (segundo_numero);

calculo(primer_numero,segundo_numero,suma);

(*Impresion del resultado de la suma por pantalla*)

writeln ('El resultado de la suma es: ' suma);
Presenta_resultados(suma);

End.

OTRO EJERCICIO

1.Cree un programa con un procedimiento que imprima una línea de una cierta longitud compuesta por un determinado carácter.
Para ello el procedimiento, de nombre linea, recibirá dos parámetros: el carácter que queremos imprimir, y el número de caracteres que queremos que tenga la línea.
Para probar ese procedimiento incluya ese procedimiento en un programa que pida la longitud y el carácter que queremos imprimir.
Símbolo de MS - DOS
C:cursopro>ppc386 usuario_t6_o1.pasFree Pascal Compiler version 1.0.4 [2000/12/30] for i386Copyright (c) 1993-2000 by Florian KlaempflTarget OS: Win32 for i386Compiling usuario_t6_o1.pasLinking usuario_t6_o1.exe31 Lines compiled, 3.6 secC:cursopro>usuario_t6_o1.exeI

ntroduzca longitud de la linea: 20
Introduzca letra: *********************
C:cursopro>usuario_t6_o1.exeI

ntroduzca longitud de la linea: 50
Introduzca letra: ###################################################C:cursopro>

OTRO EJERCICIO:

2. Vamos a crear un programa que imprima un triángulo como el siguiente:
3.
4. *
5. **
6. ***
7. ****
Para ello nos basaremos en el procedimiento línea del ejercicio previo. Observe que el triángulo es una sucesión de líneas cuya longitud se va incrementando, desde 1 hasta la altura del triángulo.
Deberá codificar un procedimiento de nombre pinta_tri, que recibe como parámetros la altura del triángulo y el carácter que formará el triángulo. Este procedimiento deberá usar el procedimiento linea.
Por lo tanto el programa principal deberá solicitar la altura y el carácter, e invocar a pinta_tri.
Símbolo de MS - DOS
C:cursopro>ppc386 usuario_t6_o2.pasFree Pascal Compiler version 1.0.4 [2000/12/30] for i386Copyright (c) 1993-2000 by Florian KlaempflTarget OS: Win32 for i386Compiling usuario_t6_o2.pasLinking usuario_t6_o2.exe37 Lines compiled, 2.0 secC:cursopro>usuario_t6_o2.exe
Introduzca altura del triangulo: 7I
ntroduzca letra: +++++++++++++++++++++++++++++
C:cursopro>

Este es mi programa con errores, el segundo no sé como resolverlo.

Program Linea;

(*-- Funciones y procedimientos --*)

Procedure Linea (caracter:char; cantidad:integer;);

(*-- Variables globales --*)

Var
linea:real;

(*--Programa principal --*)

Begin
(*Aquí debe ir la solicitud y lectura de datos*)

writeln ('Introduzca la longitud de la linea: ');
readln (cantidad);

writeln ('Introduzca letra: ');
readln (caracter);

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

RE:Ayuda con ejercicio pascal

Publicado por Roberto Garcia (56 intervenciones) el 02/02/2008 09:04:53
Bueno, para el primer ejercicio.

el " end " de la funcion " calcula_euros " le falta un ;

ademas la parte

writeln ('Opcion: ', opcion);
readln (opcion);
if (opcion='1') then <-----

la variable opcion es de tipo entero y tu la comparas contra un caracter deberia quedar

if (opcion = 1 ) then

Creo que con eso deberia de correr el primer programa


Para el segundo

Tienes el encabezado del procedimiento calculo como sigue

Procedure calculo(primer_numero,segundo_numero:real);

pero lo mandas a llamar pasando tres parametros

" calculo(primer_numero,segundo_numero,suma); "

cuando el encabezado tiene solo dos, o le agregas el tercer paramento en el encabezado o le quitas el tercer parametro al momento de llamarlo.

ademas no veo por ahi el desarrollo del procedimiento calculo, es decir defines el encaebzado pero no tienes la estructura.


y bueno en el ultimo tienes el procedimiento llamado linea y una variable del mismo nombre, eso es duplicar identificadores, deberas renombrar o el procedimiento o la variable.

Te aconsejo que la proxima vez coloques solamente las dudas que tangas y el codigo o fragmentos del codigo donde creas que esta el error o tu duda.
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

RE:Ayuda con ejercicio pascal

Publicado por victor (1 intervención) el 25/02/2008 22:27:51
como conberti numeros al letras turbo pascal
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

RE:Ayuda rapida con ejercicio pascal

Publicado por DAVID (1 intervención) el 22/05/2008 21:16:02
Elaborar un programa en Pascal que presente y calcule las siguientes opciones:

1. Dado un radio en mts.(positivo) calcular e imprimir el volumen de un cilindro si el radio es menor de 10.5 mts. ó el volumen de una esfera en caso contrario.

2. calcular e imprimir la temperatura de un freezer industrial según los rangos siguientes: baja (5°,-25°c) , media (- 26°c,- 50°c) alta (- 51, - 100°c). dadas 5 temperaturas permitir la ejecución repetida.
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