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

 

 


Tema destacado: Estamos en la red social de Mastodon


  Mostrar Mensajes
Páginas: [1]
1  Programación / Programación C/C++ / Re: Problema con vector y direcciones en: 23 Noviembre 2010, 00:41 am
Bueno, lei lo que me dijeron, y con la mano de un amigo el programa funciona y esta mejorado, por supuesto le faltan cosas, como comprobar si hay valores repetidos, o si pongo un numero grande da cualquier cosa :P, Muchas gracias a ambos por ayudar ^.^ dejo el codigo.

Código
  1. #include <iostream>
  2. using namespace std;
  3.  
  4.  
  5.  
  6. #define SIZE_ARRAY 10
  7. void ordenarMeMa(int* array, int* arrayOrd);
  8. void copiarArray(int* array, int* arrayCopia,  int size);
  9. bool intercambio(int* array, int nroPasada);
  10.  
  11.  
  12.  
  13. int main() {
  14. int a=0, *aux;
  15. int array[SIZE_ARRAY], arrayOrd[SIZE_ARRAY];
  16.  
  17. for(a=0; a<10; a++) {  //obteniendo valores
  18. cout << "ingrese el valor numero " << a << " de " << (sizeof(array)/sizeof(int))-1 << ": " << endl;
  19. cin>>array[a];
  20. }
  21.  
  22. aux = array;
  23. cout<<" Vector desordenado: "<<endl;
  24. for(a=0; a<10; a++) {//muestra el vector desordenado
  25. //cout<<array[a]<<" | ";
  26. if(a==0){cout <<"| ";}
  27. cout << *aux <<" | ";
  28. aux++;
  29. }
  30. cout << endl << endl;
  31.  
  32. ordenarMeMa(array, arrayOrd);
  33. cout<<" Vector ordenado: "<<endl;
  34. for(a=0; a<10; a++) {  // Muestra el array ordenado
  35. if(a==0){cout <<"| ";}
  36. cout << arrayOrd[a]<< " | ";
  37. }
  38. //cout<<endl;
  39.  
  40. cin>>a;
  41.  
  42. return 0;
  43. }
  44.  
  45. /** Pre: Los arrays pasados por parámetros deben poseer el mismo tamańo
  46.  */
  47. void copiarArray(int* array, int* arrayCopia, int size) {
  48. int i;
  49.  
  50. for(i=0; i< size; i++)
  51. arrayCopia[i] = array[i];
  52. }
  53.  
  54. void ordenarMeMa(int* array, int* arrayOrd) {
  55. int i;
  56. int nroPasada = 0;
  57. bool ordenado=false;
  58.  
  59. copiarArray(array, arrayOrd, SIZE_ARRAY);
  60.  
  61. while(ordenado != true) {
  62. for(i=0; i < SIZE_ARRAY-1; i++) {
  63. ordenado = intercambio(arrayOrd,nroPasada);
  64. nroPasada++;
  65. }
  66. }
  67.  
  68. }
  69.  
  70. bool intercambio(int* array, int nroPasada) {
  71. int aux, i;
  72.  
  73. for(i=0; i< SIZE_ARRAY - nroPasada; i++) {
  74. if( array[i] > array[i+1]) {
  75. aux = array[i];
  76. array[i] = array[i+1];
  77. array[i+1] = aux;
  78. }
  79. }
  80. if(i==0) return true;
  81. else return false;
  82. }

Saludos, y gracias :D
2  Programación / Programación C/C++ / Re: Problema con vector y direcciones en: 21 Noviembre 2010, 21:54 pm
Me baje un manual de punteros , y pude arreglar el programa, sin embargo parece que no era lo unico :P, ahora que me deja ejecutar lo fui viendo con el depurador el gdb creo que es, uso CodeLite que me viene todo junto, y al llegar a

Código
  1. for(a=0;a<10;a++)
  2. {
  3. //cout<<array[a]<<" | ";
  4. cout<<"aux: "<<*aux<<" | ";
  5.  
  6. aux++;
  7. }

El cout no me muestra el valor de donde apunta el puntero "aux", lo raro es que en el debuger, el valor de la direccion incrementa y tambien me muestra el valor de "*aux" que son correctos ambos, hice un programa aparte  y si me lo muestra.

Aca el codigo completo:
Código
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int* OrdenarMeMa(int*);
  5.  
  6.  
  7. int array2[10],array[10];
  8. int main()
  9. {
  10. int a=0, *arrayord=NULL,*aux;
  11. for(a=0;a<10;a++){//obteniendo valores
  12. cout<<"ingrese el valor numero "<<a<<" de "<<sizeof(array)/sizeof(int)<<": "<<endl;
  13. cin>>array[a];
  14. }
  15. cout<<"Estado:"<<endl;//muestra el array obtenido
  16. aux=&array[0];
  17. for(a=0;a<10;a++)
  18. {
  19. //cout<<array[a]<<" | ";
  20. cout<<"aux: "<<*aux<<" | ";
  21.  
  22. aux++;
  23. }
  24. arrayord=OrdenarMeMa(array);
  25.  
  26. for(a=0;a<10;a++)//Muestra el array ordenado
  27. {
  28. //cout<<*arrayord[a]<<" | ";
  29. cout<<*arrayord<<" | ";
  30. arrayord++;
  31. }
  32.  
  33. return 0;
  34. }
  35.  
  36. int* OrdenarMeMa(int *array)
  37. {
  38. int aux, a=0,i ;
  39. bool ordenado=false;
  40. while (false==ordenado)//ordena el array
  41. {
  42. if (array2[a]>array2[a+1]) //compara si el antecedente es mayor al consecuente
  43. {
  44. aux = array2[a+1]; //pasa el consecuente a una varialbe auxiliar
  45. array2[a+1] = array2[a];//pasa el antecedente a la pocicion del consecuente
  46. array2[a]= aux;//pasa el valor de la variable auxiliar al antecedente
  47.  
  48. }
  49. for(i=0;i<10;i++)//Comprobador
  50. {
  51. if(array[i]<array[i+1]) ordenado=true;//si el antecedente es menor al consecuente, ordenando cambia a True y sale del while
  52. ordenado=false;
  53. }
  54. a++;
  55. }
  56. return array2;
  57.  
  58. }

3  Programación / Programación C/C++ / Re: Problema con vector y direcciones en: 21 Noviembre 2010, 18:29 pm
Lei lo de punteros, y lo modifique pero me sigue diciendo lo mismo, creo que el problema esta en el return, va me suena por ahi, lo que queria hacer con la variable boleana ("listo" ahora se llama "ordenado") era  pasar el valor a True cuando estuviera ordenado todo el vector, para que salga del while y devuelva el valor.

Código
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int OrdenarMeMa(int);
  5.  
  6.  
  7.  
  8. int main()
  9. {
  10. int a=0,array[10], *arrayord=NULL;
  11. for(a=0;a<10;a++){//obteniendo valores
  12. cout<<"ingrese el valor numero "<<a<<" de "<<sizeof(array)/sizeof(int)<<": "<<endl;
  13. cin>>array[a];
  14. }
  15. cout<<"Estado:"<<endl;//muestra el array obtenido
  16. for(a==0;a<10;a++)
  17. {
  18. cout<<array[a]<<" | ";
  19. }
  20. arrayord=OrdenarMeMa(array);
  21.  
  22. for(a=0;a<10;a++)//Muestra el array ordenado
  23. {
  24. cout<<*arrayord[a]<<" | ";
  25. }
  26. return 0;
  27. }
  28.  
  29. int OrdenarMeMa(int* array)
  30. {
  31. int aux, a=0,i, array2[10];;
  32. bool ordenado=false;
  33. while (false==ordenado)//ordena el array
  34. {
  35.  
  36.  
  37. if (array2[a]>array2[a+1]) //compara si el antecedente es mayor al consecuente
  38. {
  39. aux = array2[a+1]; //pasa el consecuente a una varialbe auxiliar
  40. array2[a+1] = array2[a];//pasa el antecedente a la pocicion del consecuente
  41. array2[a]= aux;//pasa el valor de la variable auxiliar al antecedente
  42.  
  43. }
  44. for(i=0;i<10;i++)//Comprobador
  45. {
  46. if(array[i]<array[i+1]) ordenado=true;//si el antecedente es menor al consecuente, ordenando cambia a True y sale del while
  47. ordenado=false;
  48. }
  49. a++;
  50. }
  51. return &array2;
  52.  
  53. }
  54.  

Lo que no entiendo es por que si yo devuelvo los valores de "array2" al puntero "arrayord" me da el error de la conversion.

Aca los errores:
Código:
   20:27: error: conversión inválida de ‘int*’ a ‘int’
   20:27: error:   argumento de inicialización 1 de ‘int OrdenarMeMa(int)’
   20:27: error: conversión inválida de ‘int’ a ‘int*’
   24:20: error: argumento de tipo inválido del unario ‘*’
   51:10: error: conversión inválida de ‘int*’ a ‘int’
4  Programación / Programación C/C++ / Problema con vector y direcciones en: 21 Noviembre 2010, 03:47 am
Estoy precticando, e intente hacer un "ordenador" de numeros, los numeros dentro de un vector, se los deberia ordenar de menor a mayor, pero el compilador me esta dando problemas, se que es con las direcciones pero no se donde tocar, fuero de eso el programa no esta terminado, por que no se como automatizar que se de cuenta si ya se termino de ordenar o le falta.

Código
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int OrdenarMeMa(int);
  5.  
  6. int array[10];
  7. int main()
  8. {
  9. int a=0, *arrayrta[10];
  10. for(a==0;a<10;a++){//obteniendo valores
  11. cout<<"ingrese el valor numero "<<a<<" de "<<sizeof(array)/sizeof(int)<<": "<<endl;
  12. cin>>array[a];
  13. }
  14. cout<<"Estado:"<<endl;//muestra el array obtenido
  15. for(a==0;a<10;a++)
  16. {
  17. cout<<array[a]<<" | ";
  18. }
  19. (int)arrayrta=OrdenarMeMa(array);
  20.  
  21. for(a==0;a<10;a++)//Muestra el array ordenado
  22. {
  23. cout<<arrayrta[a]<<" | ";
  24. }
  25. return 0;
  26. }
  27.  
  28. int OrdenarMeMa(int array)
  29. {
  30. int aux, a=0, b=0, array2[10];
  31. bool listo;
  32. while (0==listo)//ordena el array
  33. {
  34. a++;
  35. b = a+1;
  36. if (array2[a]>array2[b])
  37. {
  38. aux = array2[b];
  39. array2[b] = array2[a];
  40. array2[a]= aux;
  41.  
  42. }
  43. return (int)array2;
  44. }
  45.  
  46. }


Aca los Errores:
Código:
   19:32: error: conversión inválida de ‘int*’ a ‘int’
   19:32: error:   argumento de inicialización 1 de ‘int OrdenarMeMa(int)’
   19:32: error: se requiere un l-valor como operando izquierdo de la asignación
   30: aviso: se devolvió la dirección de la variable local ‘array2’
para compilar uso el GCC, saludos y desde ya muchas gracias
5  Programación / Programación Visual Basic / Re: Cambiar fondo de escritorio en: 10 Julio 2009, 02:57 am
por favor muchachos, ayudenme con esto por que estoy trabado ahi, es lo unico que me falta
6  Programación / Programación Visual Basic / Re: Cambiar fondo de escritorio en: 8 Julio 2009, 20:46 pm
changos me confundi, es que %APPDATA% te lleva a:
C:\Documents and Settings\Administrador\Datos de programa
y necesitaba ir a:
C:\Documents and Settings\Administrador\Configuración local\Datos de programa\Microsoft\
damn, y depende del idioma del so y del usuario
7  Programación / Programación Visual Basic / Re: Cambiar fondo de escritorio en: 8 Julio 2009, 20:00 pm
Bien!! gracias gracias funciono! el tema ahora es que para guardarlo en esa carpeta tengo que usar la varialbe de sistema APPDATA y por lo que lei se usa asi

Código:
SavePicture Picture1.Picture, Environ("%APPDATA%") & "\Wallpaper1.bmp"

el problema es que no funciona. No me guarda la imagen en la carpeta que seria
C:\Documents and Settings\Administrador\Configuración local\Datos de programa\

ya se que no es la carpeta donde va el fondo de escritorio, pero no importa es de prueba
8  Programación / Programación Visual Basic / Re: Cambiar fondo de escritorio en: 6 Julio 2009, 17:57 pm
buenas, Hice lo que dijiste seba, y lo guarde en la carpeta que dijo dario. pero no anda, osea el walklpaper sobreescribe al viejo pero no se cambia, le doy F5 y tampoco. aca el codigo:
Código:
Private Sub Command1_Click()
Dim X As New StdPicture
Set X = LoadPicture("E:\Documents and Settings\Administrador\Mis docs\Mis imágenes\AW\1201279846571.jpg")
Set Picture1.Picture = X
SavePicture Picture1.Picture, "C:\Documents and Settings\Administrador\Configuración local\Datos de programa\Microsoft\Wallpaper1.bmp"



End Sub
no tengo ni la menor idea de por que no se camiba.
9  Programación / Programación Visual Basic / Cambiar fondo de escritorio en: 5 Julio 2009, 22:28 pm
Hola, estoy intentando hacer una aplicacion que cambie el fondo do escritorio cada X cantidad de tiempo, los fondos estan listados en un listbox. pero el tema es que encontre este ejemplo:
Código:
Private Declare Function SystemParametersInfo Lib "user32" Alias
"SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As
Long, ByVal lpvParam As Any, ByVal fuWinIni As Long) As Long

Private Sub Form_Load()
Dim fallo As Integer
fallo = SystemParametersInfo(20, 0, "C:\WINDOWS\FONDO.BMP", 0)
End Sub
El tema es que es solo BMP y yo quiero que funcionen los formatos mas conocidos( jpg, gif y bmp). Gracias adioos!
Páginas: [1]
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines