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

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


  Mostrar Mensajes
Páginas: 1 ... 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 [41] 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 ... 132
401  Programación / Programación C/C++ / Re: problema con la variable float en: 2 Marzo 2014, 20:15 pm
Vamos, que le falta el using namespace st.

Código
  1. #include <iostream>
  2. #include <conio.h>
  3. using namespace std;
  4.  
  5. int main()
  6. {
  7.    float num = 2.576;
  8.    float num2 = 2.3;
  9.    cout << num+num2 << endl;
  10.    getch();
  11.    return 0;
  12. }
  13.  

¡¡¡¡ Saluditos! ..... !!!!



402  Programación / Programación C/C++ / Re: [C] Rombo con asteriscos en: 2 Marzo 2014, 20:02 pm
Siguiendo los pasos del "maestro==rir3760" por usar funciones que no quede:

Código
  1. #include<stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main()
  5. {
  6.  int i,n;
  7.  printf("\n\n");
  8.  printf("\nTama\xA4o de la mitad superior: \n");
  9.  scanf ("%d",&n);
  10.  
  11.  for(i=1;i<=n;i++)
  12.    repetir (n-i,' ',2*i-1,'*');
  13.  for(i=n-1;i>=1;i--)
  14.    repetir (n-i,' ',2*i-1,'*');
  15.  return EXIT_SUCCESS;
  16. }
  17.  
  18. void repetir(int reps, char ch,int reps1, char ch1)
  19. {
  20.  int j,k;
  21.  printf("\t\t");
  22.  for (j = 1; j <=reps; j++)
  23.    putchar(ch);
  24.  for (k = 1; k <=reps1; k++)
  25.    putchar(ch1);
  26.  putchar('\n');
  27. }
  28.  

Ante el "otro" código, el del printf, tan solo mirar boquiabierto y, como siempre, aprender de sus aportaciones, todo un lujo para el foro.

¡¡¡¡ Saluditos! ..... !!!!



403  Programación / Programación C/C++ / Re: [C] Rombo con asteriscos en: 2 Marzo 2014, 18:36 pm


Sin más comentarios que los que te pongo en el código:

Código
  1. #include<stdio.h>
  2. int main()
  3. {
  4.  int n,i,j;
  5.  printf("\nTama\xA4o de la mitad superior: \n");
  6.  scanf ("%d",&n);
  7.  printf("\n\n");
  8.  for(i=1;i<=n;i++){  /** fijate que aqui i aumenta **/
  9.    printf("\t\t");
  10.    for(j=1;j<=n-i;j++)/** cada vez un espacio menos **/
  11.        printf(" ");
  12.    for(j=1;j<=2*i-1;j++)/** cada vez dos "*" mas **/
  13.      printf("*");     /** despues de los espacios **/
  14.  printf("\n");
  15.  }
  16.  
  17.  for(i=n-1;i>=1;i--){  /** fijate que aqui i disminuye **/
  18.    printf("\t\t");
  19.    for(j=1;j<=n-i;j++)/** cada vez un espacio mas **/
  20.      printf(" ");
  21.    for(j=1;j<=2*i-1;j++)/** cada vez dos "*" menos **/
  22.      printf("*");     /** despues de los espacios **/
  23.  printf("\n");
  24.  }
  25.  return 0;
  26. }
  27.  

¡¡¡¡ Saluditos! ..... !!!!




404  Programación / Programación C/C++ / Re: Problema con loop en: 2 Marzo 2014, 18:01 pm

Como comentó tan certeramente rir3760, otra forma es con un array de longitud variable, una vez ingresado el número de palabras:

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. #define NUM_CHARS  128
  5.  
  6. int main(void)
  7. {
  8.  int num_pals;
  9.  int i;
  10.  
  11.  puts("Numero de productos:");
  12.  if (scanf("%d", &num_pals) != 1)
  13.    return EXIT_FAILURE;
  14.  while (getchar()!='\n');
  15.  
  16.  char palabra[num_pals][NUM_CHARS];
  17.  
  18.  for (i = 0; i < num_pals; i++){
  19.    printf("Nombre del producto no %d:\n", i + 1);
  20.    scanf("%s", palabra[i]);
  21.   }
  22.   /* ... */
  23.   return EXIT_SUCCESS;
  24. }
  25.  

En realidad el formato que ha usado rir3760 para el scanf tan sólo asegura que la entrada es un número.

Me explico:

* si introduces as canta error.
* si introduces 12 todo O.K
* Si introduces 12as por error el scanf toma el 12 y de paso se salta otro scanf porque en  el llamado buffer o memoria intermedia queda el resto, en este caso la "as" que toma el siguiente scanf de forma automática. De ahí el uso del while para "limpiar" el buffer. Haz la prueba con él activado y desactivado y veras lo que sucede.

¿Qué habría entonces que hacer?. Sencillamente comprobar que la variable "num_pals" se corresponde con un entero y sólo un entero. Pero imagino que ya tendrás tiempo más adelante de ir viendo esos detallitos que parecen chorradas y que pueden arruinar un código que parecía impecable.


¡¡¡¡ Saluditos! ..... !!!!


405  Programación / Programación C/C++ / Re: problema al leer archivo en: 2 Marzo 2014, 01:37 am
Saludos, tengo un archivo que tengo que leer e imprimir en pantalla y este archivo es bastante grande, el problema es que no lo imprime completo, pero si le empiezo a quitar lineas ya me lo imprime bien, lo que hace es que mientras mas lineas le agrego, en pantalla las lineas de al principio van desapareciendo, o sea me va cortando la parte de arriba para darle lugar a las lineas que voy agregando abajo,¿a que se debe esto y como puedo solucionarlo??

gracias

Una forma simple es cambiando en propiedades de la consola el alto, que se encuentra en propiedades, y poner un número más alto. Tosco pero efectivo.

El otro recurso es leer por partes el documento.


¡¡¡¡ Saluditos! ..... !!!!





406  Programación / Programación C/C++ / Re: Problema contador en C en: 2 Marzo 2014, 01:05 am
Exacto, por cada paso que da hacia bajo o hacia derecha/izquierda sumar 1

Pero para eso tiene que dar previamente un paso, no puedes ponerlo como algo suelto.

Aunque el código que cuelgas está verde, la verdad es que me ha resultado interesante, o más bien curioso, el ejercicio.

Así que he decidido  madurarlo un poco. Tal y como está es funcional, pero muy mejorable, vamos que también está verde .... pero funciona. Ya te toca a ti mejorarlo un poco, al menos tienes una referencia de cómo atacarlo, una al menos.

Fíjate en el detalle de que el contador lo comienzo en dos, ya luego resto justamente dos. ¿Y porqué ese capricho?. Para que no salgan el cero y el uno y se confundan con los ceros y unos que ya habían en la matriz. Una picardía sin más.

Por cierto, no has dejado en la matriz inicial más que un camino, la columna 1, para recorrer el pinball si eliges a la derecha y llegar al final. Creo que deberías cambiar/disminuir los 1 o X.

Y una imagen de que furula:



Código
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5.  int inicio,i,j,cont=0,flag=0;
  6.  char direccion;
  7.  int matriu[10][10]={
  8.  {0,0,0,0,0,0,0,0,0,0},
  9.  {0,1,0,0,1,0,0,0,1,0},
  10.  {0,1,0,1,0,0,0,1,0,0},
  11.  {0,1,0,0,0,0,1,0,0,0},
  12.  {0,0,0,0,0,0,0,0,0,1},
  13.  {0,1,1,1,1,0,0,0,1,0},
  14.  {0,0,0,0,0,0,0,1,0,0},
  15.  {0,0,0,0,0,0,1,0,0,0},
  16.  {0,0,0,0,0,1,0,0,0,0},
  17.  {0,0,0,0,0,0,0,0,0,0},
  18.  };
  19.  
  20.  do{
  21.    printf("\nIntroducir el numero de columna por el cual desea lanzar la primera bola (1-10): ");
  22.    scanf("%d",&inicio);
  23.  }while(inicio>=11);
  24.  inicio--;
  25.  
  26.  do{
  27.    printf("\nEn caso de encontrarse con un obstaculo, en que direccion\n quiere que se dirija la bola, derecha (D-d) o izquierda (I-i): ");
  28.    scanf(" %c", &direccion);
  29.  }while(direccion!='D' && direccion!='d' && direccion!='I' && direccion!='i');
  30.  for(i=0;i<10;i++)
  31.  {
  32.     printf("\t\t");
  33.     for(j=0;j<10;j++)
  34.      {
  35.         if(matriu[i][j]==1)
  36.            printf("X ");
  37.          else
  38.            printf(". ");
  39.     }
  40.     printf("\n");
  41.  }
  42.  i=0,j=inicio,cont=2;
  43.  matriu[i][j]=cont++;
  44.  while(i<9){
  45.    if ((j==-1 ||  j==10) ){
  46.      puts("FIN ANTES DE TIEMPO");
  47.      flag=1;
  48.      break;
  49.    }
  50.    else if (matriu[i+1][j]==0)
  51.      matriu[++i][j]=cont++;
  52.    else if (direccion=='D' || direccion=='d'&& matriu[i][j+1]==0 )
  53.      matriu[i][++j]=cont++;
  54.    else if (direccion=='D' || direccion=='d'&& matriu[i][j+1]==1 ){
  55.      puts("FIN ANTES DE TIEMPO");
  56.      flag=1;
  57.      break;
  58.    }
  59.    else if (direccion=='I' || direccion=='i' && matriu[i][j-1]==0)
  60.      matriu[i][--j]=cont++;
  61.    else if (direccion=='I' || direccion=='i' && matriu[i][j-1]==1){
  62.      puts("FIN ANTES DE TIEMPO");
  63.      flag=1;
  64.      break;
  65.    }
  66.  }
  67.  if (flag==0)
  68.    puts("FINAL EXITOSO");
  69.  for(i=0;i<10;i++)
  70.  {
  71.     printf("\t\t");
  72.     for(j=0;j<10;j++)
  73.      {
  74.         if(matriu[i][j]==1)
  75.            printf("X ");
  76.         else if(matriu[i][j]==0 )
  77.            printf(". ");
  78.         else
  79.            printf("%d ",matriu[i][j]-2);
  80.     }
  81.     printf("\n");
  82.  }
  83.  return 0;
  84. }
  85.  

Mejora lo, es lo que me ha salido a bote pronto y a estas horas ya estoy de retirada.

¡¡¡¡ Saluditos! ..... !!!!




407  Programación / Programación C/C++ / Re: - Existe diferencia entre '\0' y "\0" en: 1 Marzo 2014, 20:20 pm
- ¿Es diferente '\0' a "\0" en C  para recorrer un puntero en una cadena de caracteres?-

Lo primero es un caracter y lo segundo una cadena.

Si vas a recorrer una cadena en busca del caracter nulo elige la primera forma.


¡¡¡¡ Saluditos! ..... !!!!


408  Programación / Programación C/C++ / Re: Problema contador en C en: 1 Marzo 2014, 20:17 pm

Cuando postees el código elige las etiquetas GeSHi y toma la C++ y en medio de las etiquetas Code que aparecen "pegas" tu código. Al no hacerlo de esta manera parte del código no sale correcta, especialmente las matrices.

¡¡¡¡ Saluditos! ..... !!!!



409  Programación / Programación C/C++ / Re: problema con "hola mundo" en: 28 Febrero 2014, 23:02 pm
.............................................
PD: acostumbrate a usar las etiquetas GeSHi cuando escribas código en un foro para que sea más fácil de leer

Aunque las has usado mejor elige las de C++, así el código sale coloreado y es más fácil de seguir.

¡¡¡¡ Saluditos! ..... !!!!


410  Programación / Programación C/C++ / Re: Bug en String.h y getline( Eternal Idol, Littlehorse alguien)que opinan? en: 28 Febrero 2014, 21:46 pm

Para cuando postees el código elige las etiquetas GeSHi y toma la C++ y en medio de las etiquetas Code que aparecen "pegas" tu código. Al no hacerlo de esta manera parte del código no sale correcta, especialmente las matrices.

Como ya te indicó do-while el problema está en un '\n' que queda en el bufffer. En este caso con un simple cin.get() te lo "comes".

Código
  1. #include<iostream>
  2. #include<cstring>
  3.  
  4. using namespace std;
  5.  
  6. struct pro{
  7.  string codigo;
  8.  string nombre;
  9.  string descripcion;
  10.  string laboratorio;
  11.  double precio;
  12.  double iva;
  13.  int existencia;
  14.  };
  15.  
  16. void leer(struct pro *apt)
  17. {
  18.  double IVA = 0.16;
  19.  double total;
  20.  cout<<"Teclea el Codigo "<<endl;
  21.  getline (cin,apt->codigo);///YA PASA POR AQUI
  22.  cout<<"Nombre "<<endl;
  23.  getline (cin,apt->nombre);
  24.  cout<<"Descripcion: "<<endl;
  25.  getline (cin,apt->descripcion);
  26.  cout<<"Laboratorio: "<<endl;
  27.  getline(cin,apt->laboratorio);
  28.  cout<<"Precio: "<<endl;
  29.  cin>>apt->precio;
  30.  total=(apt->precio*IVA);
  31.  apt->iva=total;
  32.  cout<<"Cuantos hay en existencia"<<endl;
  33.  cin>>apt->existencia;
  34. }
  35.  
  36.  
  37. void imprimir(struct pro *ap)
  38. {
  39.  cout<<" CODIGO:      "<<ap->codigo<<endl;
  40.  cout<<" NOMBRE:      "<<ap->nombre<<endl;
  41.  cout<<" DESCRIPCION: "<<ap->descripcion<<endl;
  42.  cout<<" LABORATORIO: "<<ap->laboratorio<<endl;
  43.  cout<<" PRECIO:      "<<ap->precio<<endl;
  44.  cout<<" IVA:         "<<ap->iva<<endl;
  45.  cout<<" EXISTENCIA:  "<<ap->existencia<<endl;
  46. }
  47. int main ()
  48. {
  49.  int n=0;
  50.  pro * apt=0;
  51.  cout<<"Numero de elementos"<<endl;
  52.  cin>>n;
  53.  cin.get();/// <== AQUI ///
  54.  apt= new pro[n];
  55.  for(int i=0;i<n;i++)
  56.   leer(&apt[i]);
  57.  for(int j=0;j<n;j++)
  58.   imprimir(&apt[j]);
  59.  
  60.  delete [] apt ;
  61.  return 0;
  62. }
  63.  

¡¡¡Que diferencia con las etiquetas Code!!!.

¡¡¡¡ Saluditos! ..... !!!!


Páginas: 1 ... 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 [41] 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 ... 132
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines