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

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


  Mostrar Mensajes
Páginas: 1 [2]
11  Programación / Programación C/C++ / Problema con condicional if en: 22 Noviembre 2016, 17:33 pm
He hecho un programa que te rellena un vector con numeros aleatorios y luego te lo ordena mediante el metodo burbuja (se que hay mejores algortimos pero es una condicion explicita en el ejercicio) y luego te pide un numero y te lo busca dentro del vector usando un algoritmo dicotomico
(tambien explicito en el ejercicio).
Todo esto funciona, pero al marcar un numero que no esta dentro del vector que sea menor ha v[0] falla. Es decir, ell condicional if de la linea 67 no me funciona con valores menos ha v[0].

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. #define h 5
  5.  
  6. int main(int argc, char *argv[]) {
  7. /*Ordenacion burbuja*/
  8. int v[h],i,j,aux;/*Variables ordenacion burbuja*/
  9. int inf,sup,med,n;/*Variables busqueda dicotomica */
  10. srand(time(NULL));/*Esta funcion permite que los numeros aleatorios varien cada vez que se ejecute el programa*/
  11. /*Llenamos el vector con variables aleatorias*/
  12. for(i=0;i<h;i++){
  13.  
  14. v[i]=rand()%20;
  15. printf("%d ",v[i]);
  16.  
  17. }
  18. printf("\n\n");
  19. /*Ordenacion de los numeros por el metodo burbuja*/
  20. for (i=0;i<h;i++){
  21.  
  22. for(j=i+1;j<h;j++){
  23.  
  24. if(v[j]<v[i]){
  25. aux=v[i];
  26. v[i]=v[j];
  27. v[j]=aux;
  28. }
  29.  
  30. }
  31. }
  32. /*Impresion de los numeros ordenador*/
  33. for(i=0;i<h;i++){
  34. printf("El vector v[%d] vale: %d\n",i,v[i]);
  35.  
  36. }
  37. /*No funciona con n<v[0]*/
  38. printf("\n Introduce el numero que quieres buscar: ");
  39. scanf("%d",&n);
  40. /*Busqueda dicotomica*/
  41. inf=0;
  42. sup=h;
  43.  
  44. while(inf<sup){
  45.  
  46. med=(inf+sup)/2;
  47.  
  48. if (v[med]==n){
  49.  
  50. printf("El numero que has seleccionado se encuentra en la posicion %d",med);
  51. break;
  52. }
  53. if (v[med]>n){
  54.  
  55. sup=med;
  56.  
  57.  
  58. }
  59. if (v[med]<n){
  60. inf=med+1;
  61.  
  62.  
  63. }
  64.  
  65. }
  66.  
  67. if((inf=sup)&&!(n==v[med])) {
  68. printf("El numero no existe dentro del vector");
  69. /*No funcoina con valores mas pequeños que v[0]*/
  70. }
  71.  
  72. return 0;
  73. }
12  Programación / Scripting / Problema al igualar una variable a 0 en bash [solucionado] en: 30 Octubre 2016, 23:14 pm
El problema esta en la linea 22, abajo entro en mas detalle en mi problema.
Código
  1. echo Este programa nos generara un numero aleatorio y nosotros tendremos 5 intentos para descubrirlo.
  2. echo 'Escribe la opción que deseas:'
  3. echo 'a)Jugar.'
  4. echo 'b)Salir.'
  5. read opc
  6.  
  7. case $opc in
  8. 'a')
  9. #Declaracion de nombre aleatorio en un rango comprendido entre 0 y 100.
  10. n=$((RANDOM%100+0))
  11. #Este echo esta puesto para comprobar los posibles resultados
  12. echo $n
  13.  
  14. #Bucle del juego, el cual acabara cuando los ints sea 0 o n1 sea igual a la variable random (en este caso int se igualrà a 0)
  15.  
  16. ints=5
  17. until [ "$ints" -eq 0 ]; do
  18. ((ints=$ints-1))
  19. echo 'Escribe un numero comprendido entre 0 y 100:'
  20. read n1
  21. if [ $n1 -eq $n ]; then
  22. (( $ints= $ints - $ints )) #Esta es la linea que me da error, me sale el siguiente mensaje:
  23.        #((: 4= 4 - 4 : se intentó asignar a algo que no es una variable (el elemento de error es "= 4 - 4 ")
  24.        #me sale el mismo error  al hacer '$ints=0'
  25.  
  26. echo 'El numero es correcto, has ganado, felicidades.'
  27.  
  28. else if [ $n1 -gt $n ]; then
  29.               echo 'El numero que has marcado es mayor.'
  30.       else echo 'El numero que has marcado es menor.'
  31.   fi
  32. fi
  33. done
  34.  
  35. ;;
  36. 'b')
  37. echo Fin del programa
  38. ;;
  39. esac

Cuando ejecuto el programa la linea que esta despues del primer 'if' la cual hace que el bucle finalice me sale error y sigue continuando hasta que el contador(ints) es 0.




Gracias por vuestra atencion


EDIT:
Al final he modificado el codigo así y funciona:
Código
  1. until [ "$ints" -eq 0 ]; do
  2.  
  3. echo 'Escribe un numero comprendido entre 0 y 100:'
  4. read n1
  5. if [ $n1 -eq $n ]; then
  6. echo El numero es correcto, has ganado, felicidades.
  7. ((ints=$ints-$ints))
  8. else if [ $n1 -gt $n ]; then echo El numero que has marcado es mayor.
  9. ((ints=$ints-1))
  10. else echo El numero que has marcado es menor.
  11. ((ints=$ints-1))
  12.   fi
  13. fi
  14. done
13  Programación / Programación C/C++ / Re: [?]numero de 1 y 0 en un vector en: 27 Octubre 2016, 21:50 pm
tienes 2 errores

primero
Código:
scanf("%c",&bin);
%c lee un caracter... si quieres leer una cadena de ellos usa %s o %99c (99 porque el ultimo debe ser \0)

segundo
Código:
((bin[i]=49) ||(bin[i]=48))

cada vez que llegas al if, bin se torna 49... tienes que usar "==" para comprar no "="

Me ha funcionado. muchas gracias.
14  Programación / Programación C/C++ / [?]numero de 1 y 0 en un vector [solucionado] en: 27 Octubre 2016, 21:15 pm
He realizado un programa que al introducir un numero de caracter en un vector te dice el numero de 1 y 0.
Código
  1. #include <stdio.h>
  2. /*#include <math.h>*/
  3. int main (int argc, char *argv[]) {
  4.  
  5.  
  6. char bin[100];
  7. int n=0,n2=0,i;/*decimal0,decimal1,i;*/
  8. printf("Escribe un numero binario:\n:");
  9. scanf("%c",&bin);
  10. /*Cantidad de 1 y 0*/
  11. for(i=0;i<100;i++) {
  12. /*cantidad de 1 y 0*/
  13.  
  14. if ((bin[i]=49) ||(bin[i]=48)) {
  15. n=n+1;
  16. printf("%d",n);
  17. }
  18. n2=n2+1;
  19. }
  20. printf("N2 vale %d\n",n2);
  21. printf("N vale %d\n",n);
  22. return 0;
  23. }
  24.  
El problema es que cuando lo ejecuto,  la funcion "if" no funciona de la manera que espero (que a n se le sume uno cuando lea que hay un caracter con el valor 49  y 48 en ASCII que equivale al 1 y al 0) y y empieza a sumar un uno a n cada vez que se ejecuta el bucle.

En este caso n tendria que valer 3

Gracias por vuestro tiempo
15  Foros Generales / Dudas Generales / Grado Superior Informatica en: 24 Mayo 2016, 13:26 pm
Hola buenos dias.

Estoy acabando el bachillerato y tengo pensado hacer un grado superior en desarrollo de aplicaciones multiplataforma. Podrian decirme cual es el mejor instituto de barcelona o alrededores para hacerlo?Y en caso de que penseis que este fp (el cual he escogido porque me interesa mucho la programación y tengo pensado hacer posteriormente la ingenieria) no es el mas adequado cual me recomendariais?

Gracias  de antemano.
16  Programación / Programación General / Proyecto Instituto en: 14 Abril 2015, 19:25 pm
Buenas tardes!

Soy un estudiantes de bachiller que esta finalizando sus estudios y para acabarlos tengo que hacer un trabajo, el cual es de tema libre, y yo he escogido diseño de software ya que quiero estudiar una ingeniería relacionada con el ámbito de la informática.
Mi trabajo quiero centrarlo en la programación de una aplicación para el teléfono (Android), y tengo que tenerlo acabado para septiembre.
Mi idea era hacer una aplicación para el móvil capaz de reconocer palabras en un texto mediante el uso de la cámara de este.
Mi problema es que mis conocimientos de programación son muy básicos y no se por donde empezar.
Me gustaría saber donde puedo encontrar información para hacer aplicaciones de este tipo, si mi idea es demasiado complicada, si tendré suficiente tiempo para acabarla y que lenguaje de programación me recomendáis (había pensado en Java).

Gracias por vuestro tiempo.
17  Programación / Programación C/C++ / Re: Programación en c [Problema de novato] en: 25 Junio 2014, 18:13 pm
Tienes razón, a partir de ahora no volveré a comportarme así.

Gracias por el consejo
18  Programación / Programación C/C++ / Re: Programación en c [Problema de novato] en: 25 Junio 2014, 16:53 pm
Ya he puesto lo que me digiste y sigo teniendo el mismo problema, aqui esta de nuevo el codigo.

#include <stdio.h>



int main()
{
    int x;

    printf("Introduzca su edad:\n");

    scanf("%d",&x);

    if (x<=17)
        printf("fuck you!\n");

    else(x>17);
        prinf("bienvenido.\n");

    system("pause");

    return 0;
}


Gracias de antemano
19  Programación / Programación C/C++ / Programación en c [Resuelto] en: 25 Junio 2014, 16:34 pm
Hola a todos!

Hace poco que he empezado a programar en c y ahora mismo estoy dandole a la funcion if... else...
Mi problema es que no consigo detectar cual es el problema en mi codigo, aqui os lo copio:

include <stdio.h>  

 int main()

{ int x=0;
 printf("Introduzca su edad:\n");

 scanf("%i",&x);  

if (x<=17)

{printf("no eres bienvenido!!");}
 
else{ prinf("bienvenido");}

 system("pause");  

return 0; }


Para programar utilizo codeblocks y para compilar GNU GCC Compiller.

Gracias por vuestro tiempo
Páginas: 1 [2]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines