Programación General > Pascal
No compila problema de ejemplo de Joyanes Aguilar
guqui1969:
--- Cita de: "eternity" ---soy yo, o no veo todo el código?
--- Fin de la cita ---
Este es el código:
--- Código: Pascal ---program Previsiones;{ Este programa obtiene una tabla de depreciaciones acumuladasy valores reales de cada a¤o de un determinado producto. }var coste, depreciacion, valor_recuperacion, valor_actual, acumulada, anio, vida_util : integer;begin WriteLn ('Introduzca coste, valor recuperacion y vida util'); ReadLn (coste, valor_recuperacion, vida_util); WriteLn ('Introduzca anio actual'); ReadLn (anio); valor_actual := coste; depreciacion := (coste - valor_recuperacion) div vida_util; acumulada := 0; Write ('Anio': 7, 'Depreciacion':15, 'Dep. Acumulada':17); WriteLn ('valor_actual':14); while anio <= vida_util do begin acumulada := acumulada + depreciacion; valor_actual := valor_actual - depreciacion; Write (Anio :8, Depreciacion :11:1, Acumulada:17:1); WriteLn (valor_actual:17:1); anio := anio + 1 endend. y este el mensaje de error del compilador:
prog11.pas<25,44> Error: Illegal use of ':'
prog11.pas<26,36> Error: Fatal: There were 2 errors compiling module, stopping
prog11.pas<0> Fatal: Compilation aborted
m0skit0:
Que yo sepa (hace tiempo que vi Pascal por última vez), no se puede poner :17:1 en un Write/WriteLn. Sólo puede un solo : seguido del tamaño del campo.
bermann:
Ya esta, lo revise y compile yo en TurboPascal 7 y funciona perfecto:
--- Código: Pascal ---{ Este programa obtiene una tabla de depreciaciones acumuladasy valores reales de cada a¤o de un determinado producto. }uses CRT;var coste, depreciacion, valor_recuperacion, valor_actual, acumulada, anio, vida_util : integer;begin ClrScr; WriteLn ('Introduzca coste, valor recuperacion y vida util'); ReadLn (coste, valor_recuperacion, vida_util); WriteLn ('Introduzca anio actual'); ReadLn (anio); valor_actual := coste; depreciacion := (coste - valor_recuperacion) div vida_util; acumulada := 0; Write ('Anio': 7, 'Depreciacion':15, 'Dep. Acumulada':17); WriteLn ('valor_actual':14); while anio <= vida_util do begin acumulada := acumulada + depreciacion; valor_actual := valor_actual - depreciacion; Write (Anio :8, Depreciacion :11, Acumulada:17); WriteLn (valor_actual:17); anio := anio + 1 end ; Readkey;end.
Espero que te sirva, le agregue la libreria CRT para que obtener la funcion ClrScr y ReadKey, de esta forma no se cierra antes de ver la tabla ;).
Espero que te sea de ayuda, cualquier otra duda consulta nada más.
guqui1969:
Mirá, acabo de probar el código que modificaste y también me compila perfecto, pero cuando lo ejecuto desde la línea de comandos en la ventana del DOS (uso Windows 2000 Professional), pasa esto, me sale el mensajito para que ingrese los valores de costo, valor recuperación y vida útil, naturalmente que ingreso los mismos valores que tengo en el libro: 1800000 120000 6 y me sale esto:
Runtime error 201 at $00401B6
$004014B6
$00406EA0
Yo uso Free Pascal 2.2.4 que es la última, ¿debería usar Turbo Pascal 7 en vez de Free Pascal? Voy a probarlo y te cuento, ¡qué lucha, por el amor de Dios!
m0skit0:
--- Cita de: "bermann" ---Ya esta, lo revise y compile yo en TurboPascal 7
--- Fin de la cita ---
Haciendo la corrección que puse yo. Muy bien, tienes más morro que el cerdo de la gripe A. ¡Enhorabuena! Hala, a disfrutar del finde.
Navegación
[#] Página Siguiente
[*] Página Anterior
Ir a la versión completa