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

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


  Mostrar Mensajes
Páginas: 1 ... 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 [25] 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 ... 132
241  Programación / Programación C/C++ / Re: Matrices en C en: 3 Abril 2014, 20:38 pm
me sigue dando el error si quieres correlo para ver si es tal vez mi pc o no se pero no me quiere continuar a la segunda fila de la matriz

He aquí una muestra de que a mi si me funciona:

Citar
Seleccione una accion.
1.Multiplicacion de matrices.
2.transpuesta de una matriz.
2
numero de filas:2
numero de columnas:2
Introduzca la posicion 1, 1: 1
Introduzca la posicion 1, 2: 2
Introduzca la posicion 2, 1: 3
Introduzca la posicion 2, 2: 4
1       3
2       4
Seleccione una accion.
1.Multiplicacion de matrices.
2.transpuesta de una matriz.


Recuerda que te comenté que el cambio que te indiqué en el primer mensaje debe afectar a las demás funciones. Por ejemplo también a:

Código
  1. void transpuesta(int n, int m, int matriz[n][m])

Código
  1. void despliegaMatriz(int n, int m, int matriz[n][m])

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


242  Programación / Programación C/C++ / Re: Matrices en C en: 3 Abril 2014, 20:04 pm

Código
  1. void llenaMatriz(int n, int m, int matriz[n][m]

Y análogamente en las demás funciones.

Y lo que no puedes hacer en la traspuesta de repente cambiar las filas por las columnas sin más. Sólo si son cuadradas las matrices no petará el código.


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


243  Programación / Programación C/C++ / Re: pasar de decimal a cualquier base menor de 10 en: 3 Abril 2014, 18:25 pm
No he querido mirar todas las soluciones, pero si no se puede usar arrays, lo que pienso es que (como vamos consiguiendo los valores menos significativos primero) empezar con un int resultado = 0; y en cada iteración sumarle el valor que calculamos x10^(num de iteración). (En caso de Hexadecimal o base mayor que 10 no valdría :s)

Saludos ;)

Justo eso es lo que hace uno de mis códigos, por si hay alguna duda:

Código
  1. for (i=0;num>=1 ;i++ ,num0*=10){
  2.        resto+=(num%base)*num0;

No podrás decir querido E.I que yo inicie este NO concurso sino más bien aporte de ideas. Concretamente a mi, que en C++ ando muy justito, me ha venido de perlas la aportación de amchacón de usar pilas, por no hablar como ivancea96 se las ingenio para no usar arrays.

Con esto quiero decir que las aportaciones posteriores a una solución pueden ser aportaciones más que valiosas para aclarar conceptos abstractos, insisto como el no uso de arrays o el uso de pilas en otro caso. Creo que es un punto de vista que no has llegado a captar y que sin embargo enriquece al foro y sus usuarios.

Y me pregunto yo, ¿qué diablos te ha pasado para este cambio tan normativo?. En este momento esto parece un Gran Hermano cuando en meses y meses anteriores, sin más intervención tuya que para aclarar conceptos o dudas de nivel, todo ha ido como la seda. ¿Acaso ha cambiado a quién está detrás de las siglas de E.I, o te ha pasado algo a nivel particular?. Pues no, no entiendo el cambio de actitud,

Somos los primero en advertir a los usuarios que no cuelgan nada de código que no se hacen tareas, y a las pruebas me remito. Pero otra cosa es otra cosa, el aprender conceptos  los unos de los otros con las posteriores soluciones aportadas.

Yo en particular me siento alagado por las apreciaciones que de algunos códigos, modestos como es natural por mis conocimientos, han hecho de mí gente del nivel como amchacon, eferion y el mismo yoel_alejandro, piques sanotes aparte, en temas como el del laberinto, en un printf o en el ya nombrado tema del número Pi. Y muchísimo más he aprendido, y continuo aprendiendo y aclarándome conceptos abstractos y/o concretos.

¿Por qué crees que razón y el mundo está en tu contra?, ya que no somos los únicos advertidos estas días otras, y digo bien, estos días atrás después de meses y meses da bálsamo.

No se trata de que leas esto con intención de responder con las reglas, que ya te aclaro y/o contesto y/o reitero que hemos aclarado y/o aprendido conceptos de las sucesivas intervenciones, sino de que pienses como el mundo puede estar equivocado y tu tener la razón.

Y si las normas se han vuelto tan estrictas habría que proponer al dueño de este foro que reconsidere la nueva interpretación de las normas o su cambio.

Un saludo, uno.

P:D: Me queda una duda:¿durará este post o será borrado por la censura?. Es que tal como has puesto las cosas .........


Citar
Reglas del subforo:
Este no es un subforo donde se soliciten tareas, sino un lugar donde resolver dudas.
Si van a responder a un hilo por favor lean atentamente su contenido y comprueben que su aporte no haya sido hecho con anterioridad por otro usuario.
Si quieren agregar algo a un mensaje y nadie respondió a el mismo por favor editenlo, no creen uno nuevo.
Si van a crear un hilo tengan siempre en cuenta:
     10 pasos para plantear una duda informática
     FAQ : Como hacer preguntas "inteligentes"
Para mantener el orden y mejorar la organización del subforo, se recomienda el uso de las siguientes siglas o tags en los mensajes:
   [C] = Programa realizado en C standard.
   [C++] = Programa realizado en C++.
   [?] = Duda.
No se permite el publicar enlaces a programas compilados.


Me apunto al segundo punto y lo de abstracto no lo veo por ningún lado, al menos es estas normas particulares.
244  Programación / Programación C/C++ / Re: pasar de decimal a cualquier base menor de 10 en: 3 Abril 2014, 07:18 am
gracias, el q m ha servido es el de ivancea96, se m ha olvidado decir q no podia usar arrays, graciass a todos

Sin arrays, más cortito pero haciendo uso de la librería math con un poco de mates y así nos ahorramos unas cuantas divisiones:

Código
  1. #include <iostream>
  2. #include <cmath>
  3.  
  4. using namespace std;
  5.  
  6. int main(){
  7.    int i,j,numero,base,digitos;
  8.    cout<<"Escribe el numero que quieres convertir: ";
  9.    cin>>numero;
  10.    cout<<"La base a la que quieres pasarlo: ";
  11.    cin>>base;
  12.    digitos= (int)(log(numero)/log(base));
  13.    cout <<numero<< " en base "<<base<< ": "<<endl;
  14.    for (i=digitos; i>=0 ;i-- ,numero%=j) {
  15.      j=pow(2,i);
  16.      cout <<" "<<numero/j;
  17.    }
  18.    return 0;
  19. }
  20.  

Y para los seguidores del C con array:

Código
  1. #include <stdio.h>
  2. #include <math.h>
  3.  
  4. int main(){
  5.    int base,i,j,num,digitos,resto;
  6.    printf("Introduzca un numero : ");
  7.    scanf("%d",&num);
  8.    printf("Introduzca la base : ");
  9.    scanf("%d",&base);
  10.    digitos= (int)(log(num)/log(base));
  11.    int nueva_base[digitos+1];
  12.    for (i=digitos;i>=0 ;i-- ,num/=base)
  13.        nueva_base[i]=num%base;
  14.    for (i=0;i<=digitos;i++)
  15.        printf("%d ",nueva_base[i]);
  16.    return 0;
  17. }

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


245  Programación / Programación C/C++ / Re: pasar de decimal a cualquier base menor de 10 en: 2 Abril 2014, 23:29 pm
Los códigos propuestos hasta ahora no guardan el nuevo número como tal.

Esta es mi propuesta que tendrá la limitación lógica, y escasa, de los dígitos que puede almacenar un long long int, y más si no es en base decimal ya que en estos casos los dígitos se disparan cuanto más baja es la base:


Código
  1. #include <stdio.h>
  2.  
  3. int main(){
  4.    int num,i,base;
  5.    long long int resto=0,num0=1;
  6.    printf("Introduzca un numero : ");
  7.    scanf("%d",&num);
  8.    printf("Introduzca la base : ");
  9.    scanf("%d",&base);
  10.    for (i=0;num>=1 ;i++ ,num0*=10){
  11.        resto+=(num%base)*num0;
  12.        num=num/base;
  13.    }
  14.    printf("\n\n%lld\n\n",resto);
  15.    return 0;
  16. }

¡¡¡UUUPPPSSS, se me coló en C  ;)


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




246  Programación / Programación C/C++ / Re: bucle con char en: 2 Abril 2014, 01:01 am

Y para variar falta la librería cstdlib para el system ... por no hablar de la indentación y de esa forma tan peculiar de poner las llaves....:huh: :huh: :huh:

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


247  Programación / Programación C/C++ / Re: Descomponer un numero entero en lenguaje C. en: 1 Abril 2014, 20:02 pm
¿Qué decíis que "desaparece"?

Estuve probando con varios números, y no veo ninguna pérdida.

Usa mi código, que es casi como el original y debería de salirte:

Código
  1. ---------- Programa que descompone un numero entero sin signo ----------
  2.  
  3. Ingrece un numero entero sin signo [minimo 100 maximo 4294967295].........: 123456
  4.  
  5.  
  6. [0] = 1
  7. [1] = 2
  8. [2] = 3
  9. [3] = 4
  10. [4] = 5
  11. [5] = 6
  12.  
  13. [0] = 1  <== AQUI SALE O.K
  14.  
  15.  
  16. Indique con un entero sin signo del [0] al [5] que numero desea descartar..: 2
  17.  
  18. [0] =     <== FIJATE AQUI, DESAPARECE EL VALOR QUE TENIA
  19. descartar = 2
  20. Presione una tecla para continuar . . .
  21.  

Y si te funciona bien es que usas otro compilador diferente del min o NOB2014 y yo estamos embrujados. :laugh: :laugh: :laugh:


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



EDITO: Creo saber ya la causa. Al declarar cualDescartar[2] con dimensión 2 y usar fgets para captarlo, un primer caracter es el digito, un segundo caracter es el nulo de fin de cadena y "un tercer" caracter es el '\n' que introduce fgets, con lo que se sobreescribe más allça de la dimensión 2 que estaba establecida y da la casualidad de que sobreescribe el primer caracter de la variable digito, por eso el problema se solventa con cualDescartar[3].

Ahora me quedo más tranquilo.


Ahora me quedo más tranquilo,
248  Programación / Programación C/C++ / Re: Descomponer un numero entero en lenguaje C. en: 1 Abril 2014, 19:40 pm
Efectivamente, tal como lo tenias se "perdía" exactamente el digito[0]. Eso es algo que comprobé tanto en el Code::Blocks como en el DeV-C++ y sospecho que es un bug del compilador ya que también lo probé en el programa PellesC que usa otro compilador y en éste último el programa no perdía al mencionado dígito, funcionaba correctamente.

Otra forma de que te funcione sin añadir _digitos es intercambiando los char, así:


Código
  1. char cualDescartar[2] = {'\0'},digitos[12] = {'\0'} ;

Lo probé de mil y una manera pero tal como lo tenias no había forma, se pierde el primer dígito, así que tranquilo, no te pasa a ti sólo. A ver si algún maestro se digna mirarlo.

Por si acaso eso ocurre le facilito el código donde se imprime digito[0]antes, que está O.K, y después, donde "desaparece":


Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <limits.h>
  4. #include <string.h>
  5.  
  6. int verifica(char ingreso[], int ok, int longitud, int maxDescartar);
  7.  
  8. int main(){
  9. unsigned int descartar=0, i=0, ok=0, longitud=11;
  10. char digitos[12], cualDescartar[2] ;
  11. printf("\n ---------- Programa que descompone un numero entero sin signo ----------");
  12. do{
  13. ok=0;
  14. printf("\n\n Ingrece un numero entero sin signo [minimo 100 maximo %u].........: ", UINT_MAX);
  15. fgets(digitos, longitud, stdin);
  16. ok = verifica(digitos, ok, longitud, i);
  17. }while(ok);
  18.  
  19. printf("\n\n");
  20. for(i=0; digitos[i]; i++){
  21. printf(" [%d] = %c \n", i, digitos[i]);
  22. }
  23. digitos[i]='\0';
  24.  printf("\n [0] = %c \n",  digitos[0]);/* <==AQUI SI ESTA */
  25.  
  26. do{
  27. longitud=2;
  28. ok=0;
  29. printf("\n\n Indique con un entero sin signo del [0] al [%d] que numero desea descartar..: ", i-1);
  30. fgets(cualDescartar, longitud, stdin);
  31. ok = verifica(cualDescartar, ok, longitud, i);
  32. }while(ok);
  33.  
  34.  printf("\n [0] = %c \n",  digitos[0]); /* <==AQUI DESAPARECE ...... */
  35.  
  36. descartar = atoi(cualDescartar);
  37. printf(" descartar = %d \n",  descartar);
  38. system("pause");
  39. //En este lugar va lo que me falta...
  40.  
  41.  for (i=descartar;digitos[i] ;i++){ /* <==IMPRIME BIEN PORQUE NO EMPIEZA EN CERO */
  42.    digitos[i]=digitos[i+1];
  43.    printf(" [%d] = %c \n", i, digitos[i]);
  44.  }
  45.  
  46.  for (i=0;digitos[i];i++){
  47.    printf(" [%d] = %c \n", i, digitos[i]);/* <==NO IMPRIME  PORQUE  EMPIEZA EN CERO */
  48.  }
  49.  
  50. printf("\n\n");
  51. return 0;
  52. }
  53.  
  54.  
  55. int verifica(char ingreso[], int ok, int longitud, int maxDescartar){
  56. long long temp=0, auxiliar=0;
  57. int ch=0, i=0, ingresoInt=0;
  58. char *p=NULL;
  59.  
  60. if((p=strchr(ingreso, '\n'))){
  61. *p='\0';
  62. }
  63. else{
  64. ingreso[longitud] = '\0';
  65. while((ch = getchar()) !='\n' && ch!=EOF);
  66. }
  67.  
  68. for(i=0; ingreso[i] ; i++){
  69. if(ingreso[i] <= 47 || ingreso[i] >= 58){
  70. ok=1;
  71. return ok;
  72. }
  73. }
  74.  
  75. if(longitud == 11){
  76. for(i=0; ingreso[i] ; i++){
  77. auxiliar = ingreso[i] - 48;
  78. temp=10*temp+auxiliar;
  79. }
  80.  
  81. if(temp <= 99 || temp > UINT_MAX){
  82. ok=1;
  83. return ok;
  84. }
  85. }
  86. else{
  87. ingresoInt = atoi(ingreso);
  88. if(ingresoInt > maxDescartar){
  89. ok=1;
  90. return ok;
  91. }
  92. }
  93. return ok;
  94. }


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



EDITO: Sin intercambiar los char, sólo con declarar cualDescartar con dimensión mayor de 2 funciona  :o

Código
  1. char digitos[12] = {'\0'}, cualDescartar[3];

Es como si al hacer uso de la función "verifica" un elemento de la variable "cualDescartar" sobreescribiera a digitos[0] .

249  Programación / Programación C/C++ / Re: C++ QR Code en: 31 Marzo 2014, 06:14 am
Recordar antes que nada que es necesario el uso de la librería cstlib para el uso de la función srand() y de la ctime para el uso de time.

No veo el uso de un array para almacenar la información QR toda vez  que el enunciado especifica "que se muestre por pantalla" tan solo:


Código
  1. #include<iostream>
  2. #include <cstdlib>
  3. #include<ctime>
  4.  
  5. using namespace std;
  6. int main ( ){
  7.  char chars[] = " *";
  8.  inti,j;
  9.  srand(time(NULL));
  10.  for(i=0;i < 21;i++){
  11.    for(j=0;j < 21;j++)
  12.        cout<<chars[rand()%(2)];
  13.    cout<<endl;
  14.  }
  15.  return 0;
  16. }

O sin el char:

Código
  1. #include<iostream>
  2. #include <cstdlib>
  3. #include<ctime>
  4.  
  5. using namespace std;
  6.  
  7. int main ( ){
  8.  int i,j;
  9.  srand(time(NULL));
  10.  for(i=0;i < 21;i++){
  11.    for(j=0;j < 21;j++)
  12.      rand()%(2)==0 ? cout<< " " : cout<<char(219);
  13.    cout<<endl;
  14.  }
  15.  return 0;
  16. }


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







250  Programación / Programación C/C++ / Re: AYUDA con el lenguaje C... en: 30 Marzo 2014, 21:17 pm

Eso de unir lo entiendo hasta cierto punto ya que creo que en un momento determinado se hace una novedosa aportación y es interesante que el mensaje "suba" puestos para que la gente se entere del hecho en si.

Lo que no acabo de entender, o sí pero me resisto, es a que bloqueen un tema, me refiero en concreto al de rombo con asteriscos, que todavía podía dar mucho de sí.

Supongo que en el foro se quieren sólo resolver dudas, nada de charlas ni riñas de patio de colegio. ¿O no Eternal Idol?.


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



EDITO: Pues si amigo vangdop, stdlib no es que sea portable es que es parte del estándar, cosa que no sucede con getch y system.
Páginas: 1 ... 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 [25] 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 ... 132
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines