• Miércoles 24 de Abril de 2024, 15:52

Autor Tema:  No compila programa del libro de Luis Joyages Aguilar de Depreciaciones  (Leído 5266 veces)

eLPortaFrases

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
No compila programa del libro de Luis Joyages Aguilar de Depreciaciones
« en: Domingo 18 de Noviembre de 2012, 21:01 »
0
Saludos, soy muy nuevo en el ambito de la programacion, digamos que empeze anoche.
Hay un ejemplo del Libro de Lenguaje C de Luis Joyages que no me compila en Turbo C.

Me da: ERROR: DECLARATION SYNTAX ERROR

Problema:
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

Y FINALMENTE HE AQUI LOS CODIGOS DEL LIBRO
/*
Este programa obtiene una tabla de depreciaciones acumuladas y valores reales de cada anio de un determinado producto
*/
#include <stdio.h>
Void main ()
{
Double Coste, Depreciacion,
Valor_Recuperacion,
Valor_actual,
Acumulado,
Valor_Anual;
Int Anio, Vida_Util;
Puts (“Introduzca coste, valor_Recuperacion y vida_util”);
Scanf (“%lf %lf %lf”, &Coste, &Valor_Recuperacion, &Vida_Util);
Puts (“Introduzca anio actual”);
Scanf (“%d”, &Anio);
Valor_Actual = Coste;
Depreciacion = (Coste – Valor_Recuperacion) / Vidad_Util;
Acumulado = 0;
Puts  (“Añio Depreciacion Dep. Acumulada”);
While (Anio < Vida_Util)
{
Acumulado = Acumulado + Depreciacion;
Valor_Actual = ValorActual – Depreciacion;
Printf (“Anio: %d, Depreciacion:%.21f, %.21f Acumulada”,
Anio, Depreciacion, Acumulado);
Anio = Anio + 1;
}
}

ESTE MISMO TEMA DE ESTE MISMO PROBLEMA FUE RESUELTO EN EL SIGUIENTE LINK: http://solocodigo.com/39361/no-compila-problema-de-ejemplo-de-joyanes-aguilar/

PERO EN EN ESA OCACION EL PROBLEMA ERA BASADO EN PASCAL.
YO TENGO LO MISMO PERO PARA LENGUAJE C ...

POR FAVOR SE LOS AGRADECERE MUCHO!!!!

ProfesorX

  • Moderador
  • ******
  • Mensajes: 796
  • Nacionalidad: mx
    • Ver Perfil
Re:No compila programa del libro de Luis Joyages Aguilar de Depreciaciones
« Respuesta #1 en: Domingo 18 de Noviembre de 2012, 23:12 »
0
Hola eLPortaFrases, bienvenido al foro.

Antes que nada unos consejos:

1. Por favor no escribas todo en mayusculas, ya que eso equivale a como si nos estuvieras gritando.
2. Utiliza las etiquetas de code (hay un icono con un # que dice insertar codigo), cuando publiques un programa, ya que eso mejora su legibilidad

Dicho eso, vamos al problema.

Bueno, no tengo el libro de Luis Joyanes Aguilar, asi que no se si realmente el codigo esta exactamente igual que en el libro, o lo copiaste mal, pero si puedo decirte que hay varios errores.

1. La funcion main() nunca se pone como void, el tipo siempre sera int, y es neecsario añadir un return 0 al final de la funcion main().

2. Las siguientes palabras son palabras reservadas de C y funciones de C, y siempre se escriben todo con minusculas, nunca con mayusculas o mezcla de mayusculas/minusculas: double, int, puts, scanf, while, printf. Esas son algunas pero no son todas las palabras reservadas de C y funciones de C, deberas revisar siempre cuales son y escribirlas siempre en minusculas.

3. Los simbolos “ y –, estan equivocados, deberas utilizar siempre " y - (signo de menos)

4. La variable Valor_Actual la escribes de diferentes maneras, a veces en minusculas, a veces sin guion y a veces con guion, cuando defines una variable en C siempre debes utilizarla exactamente igual a como la defines en tu lista de variables, ya que si no te dara errores de sintaxis

Dicho eso te dejo el codigo con las correcccones.
Código: [Seleccionar]
/*
Este programa obtiene una tabla de depreciaciones acumuladas y valores reales de cada anio de un determinado producto
*/
#include <stdio.h>
int main ()
{
    double Coste, Depreciacion,
        Valor_Recuperacion,
        Valor_Actual,
        Acumulado,
        Valor_Anual;
    int Anio, Vida_Util;
    puts ("Introduzca coste, valor_Recuperacion y vida_util");
    scanf ("%lf %lf %lf", &Coste, &Valor_Recuperacion, &Vida_Util);
    puts ("Introduzca anio actual");
    scanf ("%d", &Anio);
    Valor_Actual = Coste;
    Depreciacion = (Coste - Valor_Recuperacion) / Vida_Util;
    Acumulado = 0;
    puts  ("Añio Depreciacion Dep. Acumulada");
    while (Anio < Vida_Util)
    {
        Acumulado = Acumulado + Depreciacion;
        Valor_Actual = Valor_Actual - Depreciacion;
        printf ("Anio: %d, Depreciacion:%.21f, %.21f Acumulada",
            Anio, Depreciacion, Acumulado);
        Anio = Anio + 1;
    }

    return 0;
}

Saludos :)
« última modificación: Domingo 18 de Noviembre de 2012, 23:16 por ProfesorX »

NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================

eLPortaFrases

  • Nuevo Miembro
  • *
  • Mensajes: 2
    • Ver Perfil
Re:No compila programa del libro de Luis Joyages Aguilar de Depreciaciones
« Respuesta #2 en: Martes 20 de Noviembre de 2012, 03:40 »
0
Muchas gracias, seguiré las reglas
Gracias a usted ya pude compilar el el programa,
pero hay un pequeño inconveniente:

cuando inicio me dice Introduzca Coste, Valor_Recuperacion y Vida Util ... ahi vamos bien
cuando introduzco esos 3 valores me dice que Introduzca el Año, para proseguir con el calculo

y cuando introduzco el año ..
por ejemplo
2
Me dice >
Floating point error: divide by 0.
y me saca del programa

Que significa eso?

Gracias por lo anterior, y gracias doy de antemano, ya que esto es muy importante para mi

ProfesorX

  • Moderador
  • ******
  • Mensajes: 796
  • Nacionalidad: mx
    • Ver Perfil
Re:No compila programa del libro de Luis Joyages Aguilar de Depreciaciones
« Respuesta #3 en: Martes 20 de Noviembre de 2012, 08:44 »
0
El mismo error te lo esta diciendo:

Floating point error: divide by 0.

No es posible dividir por cero,

http://es.wikipedia.org/wiki/Divisi%C3%B3n_por_cero

el resultado de la divison por cero se considera intederminado, y por lo tanto el progama se aborta


Revisa los valores que capturas y verifica que no dividas por cero, en este caso me parece que el valor que no puede ser cero es el de vida util.

Saludos :)

NOTA:
==================================================================
Este foro es para ayudar, aprender, compartir... usenlo para eso,
NO SE RESUELVEN DUDAS POR MENSAJE PRIVADO Y MENOS POR CORREO
==================================================================