Hola, gente, comencé hace poco en Pascal con el libro "Programación en Turbo/Pascal 7" 3ra edición de Luis Joyanes Aguilar, en el primer
ejemplo del libro, tengo el problemita con el código fuente que no funciona ni a palos, si alguna alma noble puede orientarme estaría muy agracedido. El tema es así:
Problema 1.1
Se desea obtener una tabla con las depreaciaciones acumuladas y los valores realdes de cada año, de un automóvil comprado en 1.800.000 pesetas en el año 1988, durante los seis años siguientes suponiendo un valor de recuperación o rescate de 120.000. Realizar el análisis del problema, conociendo la fórmula de
depreciación anual constante D para cada año de vida útil.
D = (coste - valor de recuperación) / vida útil
D = (1.800.000 - 120.000) / 6 = 1.680.000 / 6 = 280.000
La tabla siguiente muestra la salida solicitada.
Año Depreciación Depreciación Valor anual
acumulada
1 (1988) 280.000 280.000 1.520.000
2 (1989) 280.000 560.000 1.240.000
3 (1990) 280.000 840.000 960.000
4 (1991) 280.000 1.120.000 680.000
5 (1992) 280.000 1.400.000 400.000
6 (1993) 280.000 1.680.000 120.000
Pseudocódigo del programa 1.1
=============================
Previsiones de depreciación
Introducir coste
vida util
valor final de rescate (recuperacion)
imprimir cabeceras
Establecer el valor inicial del Año
Calcular depreciacion
mientras valor año =< vida util hacer
calcular depreciacion acumulada
calcular valor actual
imprimir una linea de la tabla
incrementar el valor del año
fin de mientras
----------------------------------------------------------------
program Previsiones;
{ Este programa obtiene una tabla de depreciaciones acumuladas
y 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) / 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
----------------------------------------------------------------
Los mensajes de error del compilador son los siguientes:
Compiler Messages
prob11.pas<17,49> Error: Incompatible types: got "Extended" expected "SmallInt"
prob11.pas<25,44> Error: Illegal use of ':'
prob11.pas<26,36> Error: Illegal use of ':'
prob11.pas<30> Fatal: There were 3 errors compiling module, stopping
prob11.pas<0> Fatal: Compilation aborted
-------------------------------------------------------------
Cualquier sugerencia, será bien recibida, gracias.