Programación General > Pascal

 Reto Para Programadores De Pascal

<< < (4/4)

imguerrero:
Pues a simple vista, haciendo una compilacion rapida, aparecen diversos errores:

   

--- Citar ---
procedure COLON;   {cuenta en colones}
 var
 cantidadColon:real;
 begin
  gotoxy(25, 2);Writeln('Bienvenido al cajero automatico');
  gotoxy(30, 3);writeln('del banco mucha plata');
  gotoxy(5, 30);writeln('Digite la cantidad de COLONES que desea retirar ');
  gotoxy(15,31);readln(cantidadcolon);
  totalBilletes := cantidadcolon div billetes[1] to [4];

--- Fin de la cita ---

para empezar estas utilizando mal la funcion div, cantidadcolon esta declarada como real y debe ser un entero en este caso.

Despues el uso que haces del array billetes es incorrecto (intenta reflexionar sobre ello y consulta el manual para saber como debes acceder a él).

Tambien falta finalizar el procedure con su respectivo end (Truco: es aconsejable que cuando escribas el begin, inmediatamente despues escribas el end correspondiente y luego vayas introduciendo el codigo entre estos dos. De esta forma te aseguras no olvidarte ninguno).  Este mismo error esta presente en diversos procedimientos.

Luego en otra zona del codigo, tambien hay varias variables a las que intentas acceder sin haberlas declarado primero.

Basicamente si vas compilando, lee con atencion los mensajes de error porque alli te indican que es lo que esta fallando.

NOTA: entiendo que esta es una practica para tus estudios y por eso no te pongo la solucion concreta a tus problemas, sino que te doy algunas pistas. Pienso que este programa forma parte de tu aprendizaje y como tal, debes ser tu el que debes esforzarte por hacerlo lo mejor posible. Si te lo hacen otros, estaran haciendote un flaco favor.
Suerte y animo.
 :comp:

Attakinsky:
TRIPA:

totalBilletes := cantidadcolon div billetes[1] to [4];

Tu primer error, es que estás tratando de dividir un real con un integer, lo cual no es permitido en Pascal

Tu segundo error es tratar de dividir una variable (cantidadcolon)  ¡¡¡ con un arreglo completo ( [1] to [4] ) !!! Esto en cualquier lenguaje es imposible. Si lo quieres es dividir con todas las posiciones del arreglo debes hacerlo una por una, posiblemente dentro de un ciclo o bucle. Si corriges eso y vuelves a publicar tu código te puedo seguir ayudando con gusto.

También puedes contactarme a attakinsky@yahoo.com

FSR:
Para el proceso de entregar el dinero en base al efectivo disponible, se podría hacer algo así:



--- Código: Text ---Const    {Tipo de Moneda. El caracter 'm' representa moneda, y 'b' billete}    TipoMoneda :Array[1..13] of String[6] = ('b10000', 'b5000', 'b2000', 'b1000',                                                               'm500', 'm100', 'm50', 'm25',                                                                'm20, 'm10', 'm5', 'm2', 'm1');     {Cantidad de billetes/Monedas por valor}    CantMoneda: Array[1..13] of Word = (100, 100, 100, 100, 100, 100, 100,                                                            100, 100, 100, 100, 100, 100, 100, 100);   Procedure EntregaDinero(Cantidad :LongInt);    Var        Indice   :Byte;        Moneda :Word;        Err        :Integer;        CantidadBilletes :Word;     Begin        WriteLn('Desgloce:');        For Indice := 1 to SizeOf(TipoMoneda) Div SizeOf(TipoMoneda[1])) do            Begin                Val(Copy(TipoMoneda[Indice], 2, Length(TipoMoneda[Indice])-1),                      Moneda, Err);                CantidadBilletes := Cantidad Div Moneda;                If (CantidadBilletes &#62; CantMoneda[Indice]) then                     CantidadBilletes := CantMoneda[Indice];                If (CantidadBilletes &#62; 0) then                    Begin                        If (TipoMoneda[Indice]='b') then                            Write('Billetes')                        Else                            Write('Monedas');                        WriteLn(' de  &#036;', Moneda, ' = ', CantidadBilletes);                        CantMoneda[Indice] := CantMoneda[Indice] - CantidadBilletes;                        Cantidad := Cantidad - CantidadBilletes*Moneda;                    End; {If}            End; {For 'Indice'}    End; {EntregaDinero} 


Espero que esto sea de utilidad. Saludos  ;)

C++ BorlFJ:
verga men a ver si te entendí de lo que tienes


querras esto en el procedure de COLON los demás los arregle más o menos aunque se me travó en el del RETIRO DE EFECTIVO de todas formas cuando tenga un pelo más de tiempo lo veré es que tengo que hacer una vaina de Estadística para mí y la tengo que entregar mañana... chauuuuuuuuuuuuu
ai te va



0
11
 :hola:

Amilius:

--- Cita de: "Gelion" --- Maneje turbo Pascal hace como año y medio, y lo que pides, requerie de mucho trabajo, si piensas hacer algo asi, te recomiendo 2 opciones, VisualBasic (Facil de aprender) y C++ (Poderoso y respetable), aunque si escojes C++ y no estas familiarizado con el, te va a dar dolores de cabeza el entorno grafico (mejor usa Dev C++) y sobre Visual, bueno hay montones de paginas de codigos de ejemplos

Espero que esto te sirva de algo :ph34r:
--- Fin de la cita ---
El punto es que turbo Pascal v.? es un COMPILADOR antiguo a 16 bits. De todas formas lo recomendable sería Delphi v3 adelante (si sabes pascal no tendrás problemas con delphi), no es interpretado como VBasic y tienes todas las ventajas de los compiladores visuales de C++: POO e interfaz gráfica orienta a objetos, además de componentes listos para arrastrar y soltar.

En delphi podrás usar los tipos de datos base de C, incluso su forma de realizar comentarios, podrás usar varias formas de llamadas a funciones y procedimientos de forma optimizada (mediante registros) y otras formas compatibles con C.

Object Pascal, el lenguaje que utiliza el compilador delphi, refuerza la idea de orden y tipos fuertes. En C los tipos son débiles, lo que si bien permite escribir menos resulta en código difícil de comprender si no está generosamente comentado.

En Objetc Pascal tendrás que indicar claramente cuando usarás un entero como puntero o viceversa, cuando usarás un char como byte y viceversa, etc. El código generado será el mismo para ambos lenguajes con la diferencia que en Object Pascal es obligatorio incluir en el programa ese tipo de información, no para generar código, sino para hacer más legible el programa.

Navegación

[0] Índice de Mensajes

[*] Página Anterior

Ir a la versión completa