Autor Tema: error en cout

0 Usuarios y 1 Visitante están viendo este tema.

07 Septiembre, 2015, 04:36 am
Leído 2107 veces

Antoniio

  • Aprendiz
  • Mensajes: 258
  • Karma: +0/-0
  • Sexo: Masculino
Hola, tengo un problema con un código que encontré en la web para practicar, todo andaba bien en la computadora que uso en el colegio pero al llegar a la casa y tratar de compilarlo me marca error en cout, dice que no ha sido declarado pero ya está incluída la librería cstdlib que es la que debería hacer que funcionara sin problemas. Les dejo el código:

Código: [Seleccionar]
#include <iostream>
#include <cstdlib>
#include <math.h>

double f(double x);
double biseccion ( double a, double b, double tol, int maxlter);
int main()
{
    double a, b, tol, raiz;
    int maxlter;
    cout << "por favor digite a:  ";
    cin>>a;
    cout<< "por favor digite b:  ";
    cin>>b;
    cout<< "por favor digite tol:  ";
    cin>>tol;
    cout<< "por favor digite maxlter:  ";
    cin>>maxlter;
    raiz=biseccion(a,b,tol,maxlter);
    cout<<"La raiz es: "<< raiz <<endl;
    system("pause");
    return 0;
}
 
 double f(double x)
 {
        return x*x*x+4*x*x-10;
 }
 double biseccion(double a, double b, double tol, int maxlter)
 {
        double c;
        int nolter=0;
        do
        {
            c=(a+b)/2;
            if(f(a)*f(c)<0)
            {
               b=c;
            }
            else
            {
               a=c;
            }
            cout<<nolter<<"\t"<<a<<"\t"<<b<<"\t"<<c<<"\t"<<f(c)<<endl;
            nolter++;
         }
         while((abs(f(c))>tol)&&(nolter<maxlter));
         return c;
 }

cuál puede ser el problema?, gracias de antemano.

07 Septiembre, 2015, 05:03 am
Respuesta #1

luis

  • Aprendiz
  • Mensajes: 304
  • Karma: +1/-0
  • Sexo: Masculino

no conozco c++, pero me parece que te faltan ";" luego del if y el do-while de la última función. justamente después del if, donde creo que va un ";" faltante, hay un cout, y eso tal vez explica el mensaje de error.

por otra parte, el while de esa misma función es muy raro; parece no camibar ningún valor, y por lo tanto eventualmente no termina.


07 Septiembre, 2015, 05:44 am
Respuesta #2

Antoniio

  • Aprendiz
  • Mensajes: 258
  • Karma: +0/-0
  • Sexo: Masculino
No, dudo mucho que ese sea el error; estos son los problemas que me marca:
Código: [Seleccionar]
C:\Users\Antonio\Desktop\biseccion.cpp In function 'int main()':
11 5 C:\Users\Antonio\Desktop\biseccion.cpp [Error] 'cout' was not declared in this scope
11 5 C:\Users\Antonio\Desktop\biseccion.cpp [Note] suggested alternative:
1 0 C:\Users\Antonio\Desktop\biseccion.cpp In file included from C:\Users\Antonio\Desktop\biseccion.cpp
61 18 c:\program files (x86)\dev-cpp\mingw64\lib\gcc\x86_64-w64-mingw32\4.8.1\include\c++\iostream [Note] 'std::cout'
12 5 C:\Users\Antonio\Desktop\biseccion.cpp [Error] 'cin' was not declared in this scope
12 5 C:\Users\Antonio\Desktop\biseccion.cpp [Note] suggested alternative:
1 0 C:\Users\Antonio\Desktop\biseccion.cpp In file included from C:\Users\Antonio\Desktop\biseccion.cpp
60 18 c:\program files (x86)\dev-cpp\mingw64\lib\gcc\x86_64-w64-mingw32\4.8.1\include\c++\iostream [Note] 'std::cin'
20 35 C:\Users\Antonio\Desktop\biseccion.cpp [Error] 'endl' was not declared in this scope
20 35 C:\Users\Antonio\Desktop\biseccion.cpp [Note] suggested alternative:
39 0 c:\program files (x86)\dev-cpp\mingw64\lib\gcc\x86_64-w64-mingw32\4.8.1\include\c++\iostream In file included from c:\program files (x86)\dev-cpp\mingw64\lib\gcc\x86_64-w64-mingw32\4.8.1\include\c++\iostream
1 C:\Users\Antonio\Desktop\biseccion.cpp                  from C:\Users\Antonio\Desktop\biseccion.cpp
564 5 c:\program files (x86)\dev-cpp\mingw64\lib\gcc\x86_64-w64-mingw32\4.8.1\include\c++\ostream [Note] 'std::endl'
C:\Users\Antonio\Desktop\biseccion.cpp In function 'double biseccion(double, double, double, int)':
44 13 C:\Users\Antonio\Desktop\biseccion.cpp [Error] 'cout' was not declared in this scope
44 13 C:\Users\Antonio\Desktop\biseccion.cpp [Note] suggested alternative:
1 0 C:\Users\Antonio\Desktop\biseccion.cpp In file included from C:\Users\Antonio\Desktop\biseccion.cpp
61 18 c:\program files (x86)\dev-cpp\mingw64\lib\gcc\x86_64-w64-mingw32\4.8.1\include\c++\iostream [Note] 'std::cout'
44 66 C:\Users\Antonio\Desktop\biseccion.cpp [Error] 'endl' was not declared in this scope
44 66 C:\Users\Antonio\Desktop\biseccion.cpp [Note] suggested alternative:
39 0 c:\program files (x86)\dev-cpp\mingw64\lib\gcc\x86_64-w64-mingw32\4.8.1\include\c++\iostream In file included from c:\program files (x86)\dev-cpp\mingw64\lib\gcc\x86_64-w64-mingw32\4.8.1\include\c++\iostream
1 C:\Users\Antonio\Desktop\biseccion.cpp                  from C:\Users\Antonio\Desktop\biseccion.cpp
564 5 c:\program files (x86)\dev-cpp\mingw64\lib\gcc\x86_64-w64-mingw32\4.8.1\include\c++\ostream [Note] 'std::endl'


07 Septiembre, 2015, 06:17 am
Respuesta #3

Abdulai

  • Moderador Global
  • Mensajes: 2,342
  • País: ar
  • Karma: +0/-0
  • Sexo: Masculino
Te falta al comienzo un
Código: [Seleccionar]
using namespace std;

Además  estás usando al final  abs(f(c))>tol  y abs() es para enteros  (debe ir fabs() )

09 Septiembre, 2015, 01:41 am
Respuesta #4

Antoniio

  • Aprendiz
  • Mensajes: 258
  • Karma: +0/-0
  • Sexo: Masculino
Una última cosa, cómo puedo hacerlo con algunas funciones definidas?, osea, no pedir a ni b, que la raíz y los valores se realicen a tres funciones que se establezcan en el programa?

09 Septiembre, 2015, 02:17 am
Respuesta #5

Abdulai

  • Moderador Global
  • Mensajes: 2,342
  • País: ar
  • Karma: +0/-0
  • Sexo: Masculino
Una última cosa, cómo puedo hacerlo con algunas funciones definidas?, osea, no pedir a ni b, que la raíz y los valores se realicen a tres funciones que se establezcan en el programa?

Y... declaralas inicializadas.

ej:

Código: [Seleccionar]
#include <iostream>
#include <cstdlib>
#include <math.h>

double  a = -20,
          b =  20,
        tol = 1e-8 ;

int maxlter = 100 ;

double f(double x);
double biseccion ( double a, double b, double tol, int maxlter);
int main()
{
............................

09 Septiembre, 2015, 03:16 am
Respuesta #6

Antoniio

  • Aprendiz
  • Mensajes: 258
  • Karma: +0/-0
  • Sexo: Masculino
Me refería a, por ejemplo, tener:

\( x^2+2x=0 \)
ó
\( x^2+3x^2-1=0 \)

09 Septiembre, 2015, 04:21 am
Respuesta #7

Abdulai

  • Moderador Global
  • Mensajes: 2,342
  • País: ar
  • Karma: +0/-0
  • Sexo: Masculino
Que el programa estime los puntos iniciales no es un problema trivial por la amplia variedad de situaciones que pueden darse, ese análisis de la función escapa a la enseñanza de programación --> por eso te dicen que los escribas.

09 Septiembre, 2015, 07:40 am
Respuesta #8

Antoniio

  • Aprendiz
  • Mensajes: 258
  • Karma: +0/-0
  • Sexo: Masculino
Ya veo, de acuerdo, gracias :3