elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Error no se declaró en este ámbito.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Error no se declaró en este ámbito.  (Leído 5,850 veces)
oriaj3

Desconectado Desconectado

Mensajes: 18


Ver Perfil
Error no se declaró en este ámbito.
« en: 20 Mayo 2013, 13:34 pm »

Error en esta función--> main.cpp:29:53: error: ‘puntos’ no se declaró en este ámbito. ¿Alguien tiene idea de la posible solución?

Código
  1. /*
  2.  * File:   main.cpp
  3.  * Author: jairo
  4.  *
  5.  * Created on 18 de mayo de 2013, 22:59
  6.  */
  7.  
  8. #include <cstdlib>
  9. #include <iostream>
  10. #include <stdio.h>
  11. #include <string>
  12. #include <stdlib.h>
  13.  
  14. using namespace std;
  15.  
  16. /*
  17.  *
  18.  */
  19. int main(int argc, char** argv) {
  20.    int matrizr [5][4]= {{1,2,5,1},{3,1,2,2},{2,3,3,2},{1,4,2,0},{4,2,0,3}};
  21.    int ce=0;
  22.    int *pvector;
  23.    pvector=matrizr[0];
  24.    //int puntuacion;
  25.    cout<<"\nIntroduce el codigo del equipo: ";
  26.    cin>>ce;
  27.  
  28.    //int puntuacion = puntos(matrizr,ce);
  29.    cout<<"\nLa puntuación es "<<puntos(pvector, ce)<<".";
  30.    return 0;
  31. }
  32.  
  33. int puntos(int *matriz, int codigoequipo){
  34.    int *pmatriz;
  35.    pmatriz=matriz;
  36.    int matrizc[5][4];
  37.  
  38.    int puntuacion=0;
  39.    for (int i=0; i<=5; i++){
  40.        for (int j=0; i<=4; j++){
  41.            int tam = i*4+j*4;
  42.            matrizc[i][j]= pmatriz[tam];
  43.         }  
  44.        }
  45.  
  46.    for (int i=0; i<=5; i++){
  47.        for (int j=0; i<=2; j++){
  48.            if(matrizc[i][j]==codigoequipo && j==1){
  49.                        if(matrizc[i][3]>matrizc[i][4]){puntuacion= puntuacion +3;}
  50.                        if(matrizc[i][3]=matrizc[i][4]){puntuacion= puntuacion +1;}
  51.                        }  
  52.            if(matrizc[i][j]==codigoequipo && j==2){
  53.                        if(matrizc[i][3]<matrizc[i][4]){puntuacion= puntuacion +3;}
  54.                        if(matrizc[i][3]=matrizc[i][4]){puntuacion= puntuacion +1;}
  55.                        }
  56.  
  57.  
  58.        }
  59.  
  60.    }
  61.    return puntuacion;
  62. }
  63.  
Código
  1.  


« Última modificación: 20 Mayo 2013, 14:29 pm por oriaj3 » En línea

leosansan


Desconectado Desconectado

Mensajes: 1.314


Ver Perfil
Re: Error no se declaró en este ámbito.
« Respuesta #1 en: 20 Mayo 2013, 14:24 pm »


Vuelve a colgar el código esta vez usando las etiquetas GeSHi ce C++, pegas el código en medio de las etiquetas que te salen, si no, no se entiende nada. Las matrices por ejemplo, tal como están, salen incompletas.

R
Te adelanto que tienes duplicada la librería stdlib, es lo mismo que cstdlib y la string, ya que estas en C++ deberías ponerla como cstring.

Saluditos!. ..... ..


« Última modificación: 20 Mayo 2013, 14:27 pm por leosansan » En línea

amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: Error no se declaró en este ámbito.
« Respuesta #2 en: 20 Mayo 2013, 14:33 pm »

Tienes que poner un prototipo de la función antes del main:

Código
  1. int puntos(int *matriz, int codigoequipo);

De esa forma el compilador sabe que existe la función aunque aún no la hayas definido todavía:

Código
  1. /*
  2.  * File:   main.cpp
  3.  * Author: jairo
  4.  *
  5.  * Created on 18 de mayo de 2013, 22:59
  6.  */
  7.  
  8. #include <cstdlib>
  9. #include <iostream>
  10. #include <stdio.h>
  11. #include <string>
  12. #include <stdlib.h>
  13.  
  14. using namespace std;
  15.  
  16. /*
  17.  *
  18.  */
  19.  
  20. int puntos(int *matriz, int codigoequipo); // Prototipo
  21.  
  22. int main(int argc, char** argv) {
  23.    int matrizr [5][4]= {{1,2,5,1},{3,1,2,2},{2,3,3,2},{1,4,2,0},{4,2,0,3}};
  24.    int ce=0;
  25.    int *pvector;
  26.    pvector=matrizr[0];
  27.    //int puntuacion;
  28.    cout<<"\nIntroduce el codigo del equipo: ";
  29.    cin>>ce;
  30.  
  31.    //int puntuacion = puntos(matrizr,ce);
  32.    cout<<"\nLa puntuación es "<<puntos(pvector, ce)<<".";
  33.    return 0;
  34. }
  35.  
  36. int puntos(int *matriz, int codigoequipo){
  37.    int *pmatriz;
  38.    pmatriz=matriz;
  39.    int matrizc[5][4];
  40.  
  41.    int puntuacion=0;
  42.    for (int i=0; i<=5; i++){
  43.        for (int j=0; i<=4; j++){
  44.            int tam = i*4+j*4;
  45.            matrizc[i][j]= pmatriz[tam];
  46.         }  
  47.        }
  48.  
  49.    for (int i=0; i<=5; i++){
  50.        for (int j=0; i<=2; j++){
  51.            if(matrizc[i][j]==codigoequipo && j==1){
  52.                        if(matrizc[i][3]>matrizc[i][4]){puntuacion= puntuacion +3;}
  53.                        if(matrizc[i][3]=matrizc[i][4]){puntuacion= puntuacion +1;}
  54.                        }  
  55.            if(matrizc[i][j]==codigoequipo && j==2){
  56.                        if(matrizc[i][3]<matrizc[i][4]){puntuacion= puntuacion +3;}
  57.                        if(matrizc[i][3]=matrizc[i][4]){puntuacion= puntuacion +1;}
  58.                        }
  59.  
  60.  
  61.        }
  62.  
  63.    }
  64.    return puntuacion;
  65. }
  66.  
En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
oriaj3

Desconectado Desconectado

Mensajes: 18


Ver Perfil
Re: Error no se declaró en este ámbito.
« Respuesta #3 en: 20 Mayo 2013, 15:00 pm »

Muchísimas gracias amchacon lo mio no tiene perdón, pero como leve escusa estoy de exámenes y entre C++, programación orientada a objetos, sql y java, me estoy volviendo loco.
En línea

amchacon


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: Error no se declaró en este ámbito.
« Respuesta #4 en: 20 Mayo 2013, 15:03 pm »

Muchísimas gracias amchacon lo mio no tiene perdón, pero como leve escusa estoy de exámenes y entre C++, programación orientada a objetos, sql y java, me estoy volviendo loco.
Me da mí que ya lo sabías... Como entiendo esa sensación  ;-)

El 90% de los errores no es por ignorancia sino por despiste. Te lo digo por experiencia xD
En línea

Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar
oriaj3

Desconectado Desconectado

Mensajes: 18


Ver Perfil
Re: Error no se declaró en este ámbito.
« Respuesta #5 en: 20 Mayo 2013, 19:44 pm »

Dímelo que acabo de salir de un examen de c++, donde he devuelto un vector de estructuras en plan return vectorDeEstructuras;

en vez de hacerlo con new y declarando memoria dinamica :S
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines