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 ... 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 [32] 33 34 35 36 37
311  Programación / Programación C/C++ / Re: Cuando utilizar signed y cuando unsigned (lenguaje C) en: 18 Agosto 2014, 15:30 pm
Hola Blaster.
No logro entender del todo lo que me propones porque yo huso %u con printf, pero no importa por el momento me quedo con la teoría expuesta en el post (mío) anterior, creo que es suficiente.-

Saludos.
Daniel
312  Programación / Programación C/C++ / Re: Cuando utilizar signed y cuando unsigned (lenguaje C) en: 17 Agosto 2014, 19:49 pm
Hola.
Muchas gracias a los tres por responder, me parecía que el tema daba para un análisis más profundo, evidentemente me equivoque.-
Lo voy a utilizar como Uds. dicen,  si hay certeza o posibilidades de que la variable tenga que alojar valores negativo, utilizar signed, si estoy seguro de que la variable siempre alojara valores positivos, utilizar unsigned.-
No obstante haciendo estas prácticas me encuentro con cosas que parecen incoherente pero ocurren, ¿alguien me las puede explicar.?
 
Código
  1. #include<stdio.h>
  2.  
  3. int main(void){
  4. unsigned int a = -1;
  5. signed int b = -1;
  6.  
  7. printf("\n valor de a = %d\n", a);
  8.  
  9. if (a < 0){
  10. printf("\n Sin signo < 0\n");
  11. }
  12.  
  13. if (b < 0){
  14. printf("\n Con signo < 0\n");
  15. }
  16.  
  17. if (a == b){
  18. printf("\n %d == %d\n", a, b);
  19. printf("\n %ud == %ud\n\n", a, b);
  20. }
  21.  
  22. return 0;
  23. }

Saludos.
Daniel
313  Programación / Programación C/C++ / Cuando utilizar signed y cuando unsigned (lenguaje C) en: 17 Agosto 2014, 15:58 pm
Hola a todos.-

Bueno simplemente eso, no me queda muy claro si es simplemente para obtener un número mayor o tiene otro significado, recuerdo que en una oportunidad(en este foro) me daba un error por declarar una variable como unsigned, no puedo encontrar el post, por lo tanto hago esta consulta a Uds. que seguramente con tanta práctica y sapiencia me lo podrán aclarar.-

Saludos.
Daniel
314  Programación / Programación C/C++ / Re: Matriz con puntos de silla (lenguaje C) en: 13 Agosto 2014, 16:29 pm
Hola Ivance96.
Gracias por tu aporte, no tengo a quien consultar, tengo 62 años y soy un autodidacta que aprende y mucho gracias a Uds.
Por lo que pude consultar hasta el momento adhiero a lo que decis.-

Saludos.
Daniel
315  Programación / Programación C/C++ / Re: Matriz con puntos de silla (lenguaje C) en: 13 Agosto 2014, 03:41 am
Hola Leo.
Amigo, muchas gracias por estar siempre allí con tus aportes, lo que propones de ingresar los datos a mano es lo correcto simplemente me resultaba tedioso luego de estar 2 días con lo mismo.-
Kutcher, gracias por responder, el siguiente es el enunciado del manual con el cual estoy estudiando, por eso lo hice de esa manera, pero me suena que mientras buscaba información en internet, en algunos sitios dice algo como eso, desconozco todavía si es válido de las dos maneras.-     



Saludos.
Daniel
316  Programación / Programación C/C++ / Re: Matriz con puntos de silla (lenguaje C) en: 12 Agosto 2014, 21:06 pm
Hola Blaster.
Muchas gracias ahora funciona correctamente, yo inicializaba la variable i en 0 fuera del bucle sólo que funcionaba si el primer ingreso era correcto pero de no ser así valía cada vez más.-
Una cosa que descubrí es que haciendo una tabla de 1 fila y x columnas el programa funciona correctamente.-
Sólo me resta que alguien me diga que parte del código haría de otra manera, por lo menos para aprender algo más de los expertos.-       

Saludos.
Daniel
317  Programación / Programación C/C++ / Matriz con puntos de silla (lenguaje C) en: 12 Agosto 2014, 19:54 pm
Hola gente.
Tengo un error con la validación de datos en este programa y por más que práctico no logro dar con la tecla.-
Debo reconocer que puedo estar cometiendo un error que ya debería resolver por mi mismo pero me pase 2 días de 8 horas cada uno para hacer que funcionara la matriz de punto de silla y cuando lo logré (bueno creo que lo logré porque lo corrí más de 50 veces y nunca me sale la tabla con la coincidencia) me aparece este error que deseo que me ayuden a resolver porque quiero dejar perfectamente establecida la forma correcta de utilizar fgets.-

Código
  1. /*
  2. Se dice que una matriz tiene un punto de silla si alguna posición de la matriz
  3. es el menor valor de su fila, y a la vez el mayor de su columna.-
  4. */
  5.  
  6. #include<stdio.h>
  7. #include<stdlib.h>
  8. #include<string.h>
  9. #include<time.h>  
  10. #include <ctype.h>
  11.  
  12. #define MAX_VECTOR 2
  13. #define MAX_F_C 10
  14.  
  15.  
  16. void verificaFil(int *intFil);
  17. void verificaCol(int *intFil);
  18. void ingreso(int matriz[], int intFil, int intCol);
  19. void puntoDeSilla(int matriz[], int intFil, int intCol);
  20.  
  21.  
  22. int main(void){
  23. int intFil=0, intCol=0, *matriz=NULL;
  24.  
  25. printf("\n\n ===== El programa le mostrara los puntos de silla (si los hay) =====\n\n");
  26. verificaFil(&intFil);
  27. verificaCol(&intCol);
  28. matriz = malloc(intFil * intCol * sizeof(int));
  29.  
  30. ingreso(matriz, intFil, intCol);
  31.  
  32. puntoDeSilla(matriz, intFil, intCol);
  33.  
  34. free(matriz);
  35. printf("\n\n");
  36. return 0;
  37. }
  38.  
  39. void verificaFil(int *intFil){
  40. char charFil[MAX_F_C+1]={'\0'}, *p=NULL;
  41. unsigned int ch=0, i=0, ok=0;
  42.  
  43. do{
  44. printf(" Ingrese un entero para establecer la cantidad de filas (m%cximo %d)......:", 160,MAX_F_C);
  45. fgets(charFil,  MAX_F_C, stdin);
  46.  
  47. if((p=strchr(charFil, '\n'))!=0){
  48. *p='\0';
  49. }
  50. else{
  51. while((ch = getchar()) !='\n' && ch!=EOF);
  52. }
  53.  
  54. ok=0;
  55. for(; charFil[i]; i++){
  56. if(!isdigit(charFil[i])){
  57. ok++;
  58. }
  59. }
  60. if(ok==0){
  61. *intFil = atoi(charFil);
  62. (*intFil == 0 || *intFil > MAX_F_C) ? ok=1 : ok;
  63. }
  64. }while(ok !=0);
  65. }
  66.  
  67. void verificaCol(int *intCol){
  68. char charCol[MAX_F_C+1]={'\0'}, *p=NULL;
  69. unsigned int ch=0, i=0, ok=0;
  70.  
  71. printf("\n");
  72. do{
  73. printf(" Ingrese un entero para establecer la cantidad de columnas (m%cximo %d)...:", 160,MAX_F_C);
  74. fgets(charCol,  MAX_F_C, stdin);
  75.  
  76. if((p=strchr(charCol, '\n'))!=0){
  77. *p='\0';
  78. }
  79. else{
  80. while((ch = getchar()) !='\n' && ch!=EOF);
  81. }
  82.  
  83. ok=0;
  84. for(; charCol[i]; i++){
  85. if(!isdigit(charCol[i])){
  86. ok++;
  87. }
  88. }
  89.  
  90. if(ok==0){
  91. *intCol = atoi(charCol);
  92. (*intCol == 0 || *intCol > MAX_F_C) ? ok=1 : ok;
  93. }
  94. }while(ok !=0);
  95. }
  96.  
  97. void ingreso(int matriz[], int intFil, int intCol){
  98. unsigned int hora = time(NULL), i=0, j=0, indice=0;
  99. srand(hora);  
  100.  
  101. for(; i < intFil; i++){
  102. for(j=0; j < intCol; j++){
  103. indice = i * intCol + j;
  104. matriz[indice] = rand ()% 100;
  105. }
  106. }
  107.  
  108. printf("\n");
  109. for(i=0; i<intFil; i++){
  110. for(j=0; j<intCol; j++){
  111. indice = i * intCol + j;
  112. printf(" %3d", matriz[indice]);
  113. }
  114. if(j%intCol==0) printf("\n");
  115. }
  116.  
  117. }
  118.  
  119. void puntoDeSilla(int matriz[], int intFil, int intCol){
  120. int i, j, elMenor=0, colMen=0, indice=0, noPds;
  121.  
  122. for(i = 0; i < intFil; i++){
  123. noPds = 0;
  124. indice = intCol * i;
  125. elMenor=matriz[indice];
  126. colMen =  indice-(intCol*i);
  127.  
  128. for(j=0; j < intCol; j++){
  129. if(matriz[indice] < elMenor){
  130. elMenor = matriz[indice];
  131. colMen =  indice-(intCol*i);
  132. }
  133. indice++;
  134. }
  135.  
  136. for(j=0; j < intFil; j++){
  137. indice = j * intCol + colMen;
  138. if(matriz[indice] > elMenor){
  139. noPds++;
  140. }
  141. }
  142. if(noPds == 0)
  143. printf("\n en la fila %d columna %d hay punto de silla", i, colMen);
  144. }
  145. }

  Uno de los ingresos incorrectos:
  Ingreso…: -4 (incorrecto)
  Ingreso…: aa (incorrecto)
  Ingreso…: 11 (incorrecto)
  Ingreso…: -4 (correcto)

Bueno espero que me puedan ayudar y no vacilen en cambiar todo lo que deseen cambiar de mi código, es así como puedo aprender cosas que no están en los manuales.- 
   
Saludos y un gran abrazo
Daniel.
318  Programación / Programación C/C++ / Re: Sustituir cada palabra de 4 letras con asteriscos(lenguaje c) en: 8 Agosto 2014, 04:38 am
Hola a todos.
Me gusta esta triada, rir3760 la idea, Blaster la materializa y Leo el vigilador, observador, corregidor, muy interesante el código de Blaster, realmente no creo que se pueda hacer con menos líneas y como soy un apasionado de los códigos concisos, muchos aplausos para los tres.-  ;-) ;-) ;-)
Yo tengo mi última versión pero ante esto realmente da vergüenza, el lacayo se rinde a vuestros pies.- :-X
Después de esto tengo que implementar un programa con números mágicos, si no lo logro por mi cuenta les pediré ayuda.-     

Saludos y un gran abrazo.
Daniel.
319  Programación / Programación C/C++ / Re: Sustituir cada palabra de 4 letras con asteriscos(lenguaje c) en: 6 Agosto 2014, 16:17 pm
Hola Leo.
Gracias “viejo” amigo por responder, corrí tú código y me dio el mismo error que a la mayoría, si la última palabra tiene 4 letras y no tiene un espacio entre la última letra y el ‘\0’ no la sustituye.-
Bueno dejo mi versión.-   

Código
  1. #include <stdio.h>
  2.  
  3. int main(void){
  4. char s1[] = "hola Daniel como estas? Soy Pino1952 pero tambien Daniel o Dany chao";
  5. int i=0, cont=0, cant=0;
  6.  
  7. printf("\n cadena original....: %s\n", s1);
  8. for(; s1[i]; i++){
  9. cont++;
  10. if(s1[i] == ' '){
  11. if(cont==5){
  12. for(cont=i-4; cont <i; cont++){
  13. s1[cont] = '*';
  14. }
  15. cant++;
  16. }
  17. cont=0;
  18. }
  19. }
  20. if(cont==4){
  21. for(cont=i-4; cont <i; cont++){
  22. s1[cont] = '*';
  23. }
  24. cant++;
  25. }
  26.  
  27. printf("\n Cadena reemplazada.: %s\n", s1);
  28. printf("\n Se han sustituido un total de %d palabras.\n\n", cant);
  29.  
  30. return 0;
  31. }

Saludos.
Daniel
320  Programación / Programación C/C++ / Sustituir cada palabra de 4 letras con asteriscos(lenguaje c) en: 5 Agosto 2014, 19:35 pm
Hola a todos.
Me pase con este tema unas cuantas horas y hasta aquí llegue, espero que me puedan ayudar a resolverlo.-

En primer lugar les pongo el enunciado.


Lo que llevo hecho es lo siguiente.

Código
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. int main(void){
  5. char tempFrase[] = "La casa de Juan es de color azul", *token, frase[32];
  6. int ocurrencias=0;
  7.  
  8. strcpy(frase, tempFrase);
  9.  
  10. token = strtok(tempFrase," ");
  11. while (token != NULL){
  12. printf("\n En la direccion %p se encuentra la palabra...: %s\n", token ,token);
  13. (strlen(token) == 4) ? ocurrencias++ : ocurrencias;
  14. token = strtok(NULL," ");
  15. }
  16.  
  17. printf("\n La frase \"%s\" contiene %d palabras de 4 letras\n\n", frase, ocurrencias);
  18.  
  19. return 0;
  20. }
  21.  
  22.  
  23.  
  24. /*
  25. #include <stdio.h>
  26. #include <string.h>
  27.  
  28. #define MAX_FRASES 5
  29. #define MAX_LONGITUD 30
  30.  
  31. void verificaIngreso(char frases[][MAX_LONGITUD], int i);
  32.  
  33. int main(void){
  34. char frases[MAX_FRASES][MAX_LONGITUD];
  35. int i=0, j=0, ocurrencias=0, com=0, fin=0;
  36.  
  37. for(; i<MAX_FRASES; i++){
  38. printf("\n Ingrece frase[%d]...:", i+1);
  39. fgets(frases[i], MAX_LONGITUD, stdin);
  40. verificaIngreso(frases, i);
  41. }
  42.  
  43. for(i=0; i<MAX_FRASES; i++){
  44. printf("\n La frase[%d] tiene una longitud de %d caracteres", i+1,  strlen(frases[i]));
  45. }
  46.  
  47. for(i=0; i<MAX_FRASES; i++){
  48. for(j=0; frases[i][j]; j++){
  49. if(frases[i][j] == 32)
  50. com = frases[j]
  51.  
  52. }
  53. }
  54.  
  55. printf("\n %d", espacios);
  56. printf("\n\n");
  57. return 0;
  58. }
  59.  
  60. void verificaIngreso(char frases[][MAX_LONGITUD], int i){
  61. char *p=NULL;
  62. unsigned int ch=0;
  63.  
  64. if((p=strchr(frases[i], '\n'))!=0){
  65. *p='\0';
  66. }
  67. else{
  68. while((ch = getchar()) !='\n' && ch!=EOF);
  69. }
  70.  
  71. }*/

Lo que no puedo saber es ¿Qué referencia debo utilizar para acceder a la variable frase y sustituir todas las palabras de 4 letras con asteriscos ?.- 
 
Saludos y desde ya muchas gracias por el tiempo.-
Daniel
Páginas: 1 ... 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 [32] 33 34 35 36 37
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines