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

 

 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


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

Desconectado Desconectado

Mensajes: 225


La curiosidad es la semilla de la genialidad.


Ver Perfil WWW
Dudas en C++
« en: 3 Diciembre 2010, 11:23 am »

Hola a todos los miembros de elhacker.net

Llevo un tiempo con la ilusion y la entrega de aprender C++.
Como todos sabemos es un lenguaje bastante Complejo (Por lo completo que puede ser)

He "Hojeado" "Buscado" "Mirado" "Preguntado" ect......

Muchos de los Ejercicios que encuentro.
No puedo compilarlos porque me da el fastidioso (jaja) error en rojo que tan poco nos gusta.

Como por ejemplo:
-void (que lo tengo que sustituir por int
-clrscr(); (que no se por que lo tengo que sustituir
-sleep (que si no me esquivoco es para el S.O Linux)
Ect.....

No se si sera mi compilador el cual utilizo es el Code::Blocks 8.02

Creo que tambien podria ser el tema de CONSOLE, Y demas.
Pero hay si es verdad que ando aun mas perdido.

El tema de mi post. es si estoy haciendo una u otra cosa mal.
O si tengo que cambiar de compilador. O si debo abrir en CONSOLE o en otro,

Agradeceria mucho vuestra ayuda pues soy muy muy novato en C++ y m queda un largiiiisimo camino, y la verdad que me encanta este lenguaje.

Un saludo

WiseHidden


En línea

Si tu tienes una manzana y yo otra y decidimos intercambiarlas, seguiremos teniendo una manzana cada uno, pero si tu tienes una idea y yo otra y la intercambiamos, ambos tendremos dos ideas. (Origen Anónimo)
Akai


Desconectado Desconectado

Mensajes: 823



Ver Perfil
Re: Dudas en C++
« Respuesta #1 en: 3 Diciembre 2010, 13:32 pm »

Unos pequeños comentarios:

a) pon un código en concreto para saber sobre qué ayudarte.
b) utiliza mejor codeblocks 10.05
c) leete esto: http://foro.elhacker.net/programacion_cc/lo_que_no_hay_que_hacer_en_cc_nivel_basico-t277729.0.html


En línea

WiseHidden

Desconectado Desconectado

Mensajes: 225


La curiosidad es la semilla de la genialidad.


Ver Perfil WWW
Re: Dudas en C++
« Respuesta #2 en: 3 Diciembre 2010, 14:48 pm »

Gracias Akai.

Aceptare tu consejo de utilizar el CodeBlock y leere el tutorial

referente alo del ejemplo en si lo expondre aqui:

Citar

#include <iostream.h>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define num_palabras 3
void cosntruye_todo ();
void captura_las_palabras();
void muestra_las_palabras();
void exhibe_el_menu();
void elegir_palabra();
void construye_cabeza();
void construye_tronco();
void construye_brazo_izquierdo();
void construye_brazo_derecho();
void construye_pie_izquierdo();
void construye_pie_derecho();
void construye_horca();
int opcion_elegida;
int posicion_de_palabra_a_adivinar;
int cant_de_palabras=num_palabras;
int longitud_de_las_palabras[num_palabras];
char todas_las_palabras[20][num_palabras];
char palabra_actual[20];
int longitud_palabra_actual;
main()
{
   opcion_elegida=0;
   clrscr(); // AQUI ESTA MI PRIMER ERROR
   exhibe_el_menu();
   getche();
   return 0;
}
 
void exhibe_el_menu(void)
{
   clrscr();
   do
   {
      gotoxy(25,2);
      printf("PRECIONA EL NUMERO DE LA OPCION QUE DESEE");
      gotoxy(25,3);
 
 
printf("-----------------------------------");
      gotoxy(25,3.5);
      printf("­");
      gotoxy(59,3.5);
      printf("!");
      gotoxy(25,4);
      printf("­    MENU DEL JUEGO EL AHORCADO   !");
      gotoxy(25,5);
      printf("­    1 - INGRESAR LAS PALABRAS    ! ");
      gotoxy(25,6);
printf("­    2 - JUGAR EL AHORCADO        ! ");
      gotoxy(25,7);
      printf("­    3 - MOSTRAR LAS PALABRAS     ! ");
      gotoxy(25,8);
      printf("­    4 - ABANDONAR EL PROGRAMA    ! ");
      gotoxy(25,9);
 
      printf("-----------------------------------");
      gotoxy(25.5,15);
      printf("ELIJA LA OPCION QUE DESEE Y PULCE ACEPTAR:");
      gotoxy(67,15);
      scanf("%d",&opcion_elegida);
   }
   while (opcion_elegida < 1 || opcion_elegida > 4);
   switch (opcion_elegida)
   {
      case 1: captura_las_palabras();
      case 2: elegir_palabra();
      case 3: muestra_las_palabras();
      case 4: exit(1);
   }
}
 
void captura_las_palabras(void)
{
   int i,j;
   clrscr();
   for (i=0; i<cant_de_palabras;i++)
      {
         gotoxy(5,i+10);
         printf("ESCRIBA LA PALABRA NUMERO %d: ", i+1);
         gotoxy(35,i+10);
         cin>>palabra_actual;
         longitud_palabra_actual = strlen(palabra_actual);
         longitud_de_las_palabras=longitud_palabra_actual;
            for(j=0;j<longitud_palabra_actual; j++)
               todas_las_palabras[j]=palabra_actual[j];
 
        }
        exhibe_el_menu();
 
}
 
void muestra_las_palabras(void)
{
   int i,j;
   clrscr();
   for (i=0; i<cant_de_palabras;i++)
      {
         gotoxy(5,i+10);
         printf("PALABRA No %d", i+1);
         longitud_palabra_actual=longitud_de_las_palabras;
         for(j=0; j<longitud_palabra_actual;j++)
            {
               gotoxy(19+j, i+10);
               printf("%c", todas_las_palabras[j]);
            }
      }
   printf("n Pulse una tecla para continuar...");
   getche();
   exhibe_el_menu();
}
 
void elegir_palabra(void)
{
   int longitud_de_palabra_a_adivinar,l;
   int i,j,sw=0,errores=0,contaP=0;
   char letra[1],completa[20];
   clrscr();
   do
   {
      gotoxy(10,4);
      printf("Escriba un numero entre 1 y %d y pulse enter:", cant_de_palabras);
      gotoxy(55,4);
      scanf("%d",&posicion_de_palabra_a_adivinar);
      clrscr();
   }
   while (posicion_de_palabra_a_adivinar < 1 || posicion_de_palabra_a_adivinar > cant_de_palabras);
   longitud_de_palabra_a_adivinar=longitud_de_las_palabras[posicion_de_palabra_a_adivinar-1];
   for(i=0;i<longitud_de_palabra_a_adivinar;i++)
      {
         gotoxy(i+20,3);
         printf("-");
      }
   do
   {         i++;
         gotoxy(10,4);
         printf("n Escriba Una Letra y Presione <Enter>...");
         cin>>letra;
         sw=0;
         for(j=0;j<longitud_de_palabra_a_adivinar; j++)
         {
           if (todas_las_palabras[j][posicion_de_palabra_a_adivinar-1]==letra[0])
           {
         gotoxy(j+20,3);
         printf("%c",letra[0]);
         completa[j]=letra[0];
         sw=1;
           }
         }
         contaP=0;
         for(l=0;l<longitud_de_palabra_a_adivinar; l++)
           {
         if(completa[l]==todas_las_palabras[l][posicion_de_palabra_a_adivinar-1])
           contaP++;
            }
 
         if (contaP==longitud_de_palabra_a_adivinar)
         {
           gotoxy(37,10);
           printf("nGANASTES EL JUEGO.....");
           errores=4;
           i=longitud_de_palabra_a_adivinar;
           getch();
           exhibe_el_menu();
         }
         else
         {
           if( sw==0)
         errores++;
 
             if(errores== 1)
           construye_cabeza();
             else
           if(errores==2)
           construye_tronco();
             else
            if(errores==3)
            construye_brazo_derecho();
             else
            if(errores==4)
            construye_brazo_izquierdo();
             else
            if(errores==5)
            construye_pie_derecho();
             else
            if(errores==6)
            construye_pie_izquierdo();
             else
            if(errores==7)
            {
              clrscr();
              cosntruye_todo ();
              errores = 7 ;
            }
         }
   }while(i<longitud_de_palabra_a_adivinar|| errores <=6);
 
   printf("nn Pulse una tecla para continuar...");
   getche();
   exhibe_el_menu();
}
 
 
void construye_cabeza(void)
{
  gotoxy(39,6);
  printf("|||||");
  gotoxy(38,7);
  printf("| . . |");
  gotoxy(39,8);
  printf("|_-_|");
 
}
 
void construye_tronco(void)
{
   gotoxy(41,9);
   printf("|");
   gotoxy(41,10);
   printf("|");
   gotoxy(41,11);
   printf("|");
   gotoxy(41,12);
   printf("|");
}
 
void construye_brazo_derecho(void)
{
   gotoxy(40,9);
   printf("/");
   gotoxy(38,10);
   printf("/");
}
 
void construye_brazo_izquierdo(void)
{
   gotoxy(42,9);
   printf("");
   gotoxy(44,10);
   printf("");
}
 
 void construye_pie_izquierdo(void)
{
   gotoxy(42,13);
   printf("");
   gotoxy(44,14);
   printf("");
}
 
 
  void construye_pie_derecho(void)
{
   gotoxy(40,13);
   printf("/");
   gotoxy(38,14);
   printf("/");
}
 
 
 
 
void cosntruye_horca(void)
{
   int i;
   gotoxy(41,5);
   printf(":");
   gotoxy(41,4);
   printf(":");
   gotoxy(41,3);
   printf(":");
   gotoxy(42,3);
   printf(":::::::::::::::");
   for(i=3;i<18;i++)
      {
         gotoxy(57,i);
         printf(":");
      }
   gotoxy(50,i);
   printf("===============");
}
void cosntruye_todo(void)
{
  gotoxy(37,4);
  printf("nPERDISTE EL JUEGO.....");
  cosntruye_horca();
  construye_pie_derecho();
  construye_pie_izquierdo();
  construye_brazo_derecho();
  construye_brazo_izquierdo();
  construye_tronco();
  construye_cabeza();
}


Gracias de nuevo

Un saludo

WH

En línea

Si tu tienes una manzana y yo otra y decidimos intercambiarlas, seguiremos teniendo una manzana cada uno, pero si tu tienes una idea y yo otra y la intercambiamos, ambos tendremos dos ideas. (Origen Anónimo)
Akai


Desconectado Desconectado

Mensajes: 823



Ver Perfil
Re: Dudas en C++
« Respuesta #3 en: 3 Diciembre 2010, 15:08 pm »

iostream se incluye de esta forma -->
Código:
#include <iostream>
El .h es para la cabecera antigua y ya no se usa. stdio, stdlib y string se incluyen como cstdio cstdlib cstring sin la h (lo mismo para la mayoría de liberías estándar de C, se quita el .h al final se añace c al principio.

conio.h es una librería obsoleta, mejor no usarla, y por tanto clrscr  y gotoxy tampoco.

Por otro lado, main debe ser int -->
Código:
int main

cin da problema de no estar declarado, soluciones:

usa
Código:
std::cin
o añade al principio del código
Código:
using namespace std;

Me pregunto para qué usar printf en C++ teniendo cout.

Cambia el getche() por getchar()

Incluyes librerías que no usas (string.h stdlib.h)

Por otro lado tengo la impresión que estás leyendo un manual antiguo, ¿me equivoco? Puedes probar con el libro de Deitel & Deitel "Cómo Programar en C/C++" que encontrarás aquí: http://foro.elhacker.net/programacion_cc/librospapers_cc-t296234.0.html

Creo que no me dejo nada por comentar
En línea

WiseHidden

Desconectado Desconectado

Mensajes: 225


La curiosidad es la semilla de la genialidad.


Ver Perfil WWW
Re: Dudas en C++
« Respuesta #4 en: 3 Diciembre 2010, 22:25 pm »

Fantastica respuesta.

Si, al parecer debo de estar aprendiendo en un tutorial "antiguo" Solo me queda una curiosidad.

Es tambien igual si hablamos de C++?
O solo funciona con el C?

Gracias akai y sin duda me centrare en este.

MIL GRACIAS
En línea

Si tu tienes una manzana y yo otra y decidimos intercambiarlas, seguiremos teniendo una manzana cada uno, pero si tu tienes una idea y yo otra y la intercambiamos, ambos tendremos dos ideas. (Origen Anónimo)
Akai


Desconectado Desconectado

Mensajes: 823



Ver Perfil
Re: Dudas en C++
« Respuesta #5 en: 3 Diciembre 2010, 22:34 pm »

Todo lo que he comentado es referente a C++, asumiendo que es lo que estás utilizando.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Dudas binarias o de muy muy pero de muy bajo nivel (7 dudas)
Ingeniería Inversa
jamonyqueso 7 5,001 Último mensaje 7 Noviembre 2007, 04:45 am
por Ferсhu
Dudas y mas dudas con Antenas...
Materiales y equipos
rOoLeZ 9 4,629 Último mensaje 27 Noviembre 2008, 16:30 pm
por heaviloto
[DUDAS] Todas las dudas sobre RadASD + MASM aqui « 1 2 3 »
ASM
AleX Inc. 23 21,096 Último mensaje 5 Julio 2010, 11:58 am
por Eternal Idol
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines