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

 

 


Tema destacado: Introducción a la Factorización De Semiprimos (RSA)


  Mostrar Mensajes
Páginas: 1 ... 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 41 42 43 44 45 46 ... 311
301  Programación / Programación C/C++ / Re: Problema con el metodo BubbleSort en: 2 Octubre 2016, 23:43 pm
Gracias por tus respuesta, me parece de utilidad comentar el codigo especificando las funciones de operaciones que puedan llegar a confundir, y si solventas el problema de linux te lo agradecería así aprendemos tanto yo como muchos cosas nuevas nuevamente gracias tu explicación me parece cierta desde el punto de vista que explicaste.

no se porque pero el programa no quiere ejecutar correctamente el guardado de la variable string y luego imprimirla como parte de una función por valor, rarisimo eso no lo habia visto o.O.

Ni siquiera funciona para un solo estudiante, sera por el compilador?? ya probe varias combinaciones:

Código
  1. //Funcion que indica la n cantidad de estudiantes y sus notas ----------------------------
  2. void llenar (int notas [], string nombreEstudiante){
  3. system("clear");
  4. //cout << "INDIQUE EL NUMERO DE ESTUDIANTES A UTILIZAR EN EL PROGRAMA: ";
  5. //cin >> num;  cout<<endl;
  6.    //for(int i=0; i<num; i++){
  7. cout << "\nDame el primer nombre del estudiante "; //<< i+1 <<endl;
  8. cin >> nombreEstudiante;//[posicionesEstudiante];
  9. cout << endl << nombreEstudiante << endl;
  10. //getline (cin, nombreEstudiante);
  11.  
  12. //cout << "ESTUDIANTE " << i+1 <<endl;
  13. //for (int x=0; x<asignatura; x++){
  14. // cout<<"\nNOTA "<< x+1 <<": ";
  15. // cin>>notas[5*i+x];
  16. //}
  17.        posicionesEstudiante++;
  18.        cout<<endl<<endl;
  19. //}
  20.  
  21.    cin.get();
  22.    cin.get();
  23. }
  24.  
  25. //Funcion para imprimir la n cantidad de estudiantes junto a sus notas ----------------------------
  26. void imprimir (int notas [], string nombreEstudiante){
  27.    system("clear");
  28.    cin.get();
  29.    cout<<"LOS ESTUDIANTES Y SUS NOTAS\n"<<endl;
  30.    cout << " EL ESTUDIANTE: ";
  31.    //for(int i=0; i<caracteresNombres; i++){
  32.        cout << nombreEstudiante;//[i]<<endl<<endl;
  33. //}
  34.  
  35. //cout << "NOTAS:" << endl;
  36. //for(int i=0; i<caracteresNombres; i++){
  37.    //    cout<<notas[i]<< " - ";
  38. //}
  39.  
  40.    cin.get();
  41.    cin.get();
  42. }
  43.  

super extraño eso, dentro de cada función, la variable string del nombre del estudiante funciona localmente sin problema, pero cuando ejecuto el llamado de una función a otra, de llenar a imprimir, simplemente no hay ningún valor que imprimir.

Alguien puede explicarme a que se debe?? una ayudita  :silbar: :silbar: :silbar:
302  Programación / Programación C/C++ / Re: Problema con el metodo BubbleSort en: 2 Octubre 2016, 22:36 pm
Ah creo que ya he captado el funcionamiento de las notas por estudiantes, yo lo estaba viendo como matrices, hay que darle otro enfoque.

Creeria que en el sentido de mejorar el entendimiento de código, lo mejor seria encapsular esas variables de las posiciones de los alumnos.

notas[5*num+i]; ==> notas[(5*num) + 1], en donde podrias añadir un comentario respecto a esa parte que resulta un poco enredada de entender salvo que se entienda el concepto de lo que debe realizarse, como es en el caso, conociendo al estudiante en una determinada posición, equivaldria a ubicar sus notas en el larguisimo arreglo de notas.

otra cosa, tu menú presenta inconsistencias, lo arregle un poco, aunque esta modificado para ejecutarse en linux, tendrias que cambiar las sentencias de system.

Código
  1. //INTERFAZ DE USUARIO
  2. int menu (){
  3. system("clear");
  4. int opc;
  5.  
  6. cout<<"MENU DEL PROGRAMA\n----------------------------------------------- " << endl;
  7. cout<<"[1] INGRESAR EL NUMERO DE ESTUDIANTES" << endl;
  8. cout<<"[2] VISUALIZAR LOS ESTUDIANTES JUNTO A SUS NOTAS" << endl;
  9. cout<<"[3] INSERTAR UN NUEVO ESTUDIANTE" << endl;
  10. cout<<"[4] BUSCAR LAS NOTAS DE UN ESTUDIANTE" << endl;
  11. cout<<"[5] BORRAR O VACIAR LAS NOTAS DE UN ESTUDIANTE" << endl;
  12. cout<<"[6] ORDENAMIENTO BURBUJA" << endl;
  13. cout<<"[7] SALIR DEL PROGRAMA\n" << endl;
  14.  
  15.    cout << "DIGITE SU OPCION:  ";
  16. cin>>opc;
  17. cout<<"\n";
  18. if(opc>7){
  19.        cout<<"LA OPCION ["<<opc<<"] NO EXISTE\n\n"<<endl;
  20.        cin.get();
  21.    }
  22.  
  23. return opc;
  24. }
  25.  
  26. // MENU PRINCIPAL OPCION DE USUARIO
  27. int main(){
  28.  
  29.    int estudiantes[100];
  30.    int notas[500];
  31.    int opc,buscado, posicion;
  32.    do{
  33.        opc=menu();
  34.        switch (opc){
  35.            case 1:
  36.                llenar(notas, nombreEstudiante);
  37.                break;
  38.  
  39.            case 2:
  40.                imprimir(notas, nombreEstudiante);
  41.                break;
  42.  
  43.            case 3:
  44.                insertar(notas);
  45.                break;
  46.  
  47.            case 4:
  48.                system("clear");
  49.                cout<<"INDICA EL ESTUDIANTE QUE DESEAS BUSCAR: "<<endl<<endl;
  50.                cin>>buscado;
  51.                buscar(buscado, notas);
  52.                break;
  53.  
  54.            case 5:
  55.                system("clear");
  56.                cout<<"INDIQUE EL ESTUDIANTE QUE DESEA BORRAR/VACIAR SUS NOTAS: ";
  57.                cin>>posicion;
  58.                cout<<endl;
  59.                borrar(posicion,notas);
  60.                break;
  61.  
  62.            case 6:
  63.                cout<<"Que estudiante deseas que sus notas sean ordenadas: "<<endl;
  64.                cin>>posicion;
  65.                metodoburbuja (notas, posicion);
  66.                break;
  67.  
  68.            case 7:
  69.                system("clear");
  70.                cout<<"\n\nGRACIAS POR USAR NUESTRO PROGRAMA :)\n"<<endl;
  71.                break;
  72.        }
  73.    }
  74.    while (opc !=7);
  75.    cin.get();
  76. }
  77.  

Estoy intentado correr el código correctamente para un solo estudiante en linux, ya que se presentan inconsistencias, una vez las tenga las voy a publicar, puede que ayude un poco.
303  Programación / Programación C/C++ / Re: Problema con el metodo BubbleSort en: 2 Octubre 2016, 18:35 pm
Si has visto los punteros y la relaccion que existe entre estos y los arrays (Sospecho que no), deberias de entender porque cuando llamas al metodo burbuja y luego al metodo imprimir, estos aparecen modificados. Comento esto porque supongo que el metodo metodoburbuja solo te deberia mostrar los valores ordenados y no dejarlos asi

Eso depende más del negocio, literalmente el ordenamiento de burbuja debe reordenar el arreglo original, usando un arreglo auxiliar donde se almacena temporalmente cada valor de la posición a modificar comparandola con la siguiente posición del arreglo, pero esta a criterio del desarrollador si se muestra el arreglo ordenado o el auxiliar, en ambos casos, es correcta la forma de la metodología.

Por otra parte, creo que el código solamente funcionaria para un solo estudiante, pues al estar definiendo un arreglo de caracteres, solo almacenaria una cadena que equivaldria a solo un solo estudiante.

Y lo de notas[5*i+x]; no lo termino de entender, porque tiene que ser una posición 5, que pasa si el estudiante es 0 y luego uno, se desperdiciarian 3 posiciones del arreglo y practicamente quedaria en limbo en el ordenamiento de burbuja, pues este solo compara con las posiciones inmedatamente siguientes.

un ejemplo:

estudiante 1: camilo
notas[5*i+x] ---> i=0; x=0;  == notas[0]
notas[5*i+x] ---> i=0; x=1;  == notas[0]
notas[5*i+x] ---> i=1; x=0;  == notas[0]
notas[5*i+x] ---> i=0; x=1;  == notas[5]

WTF!!! cuando va a ubicarse en las posiciones 1,2,3 y 4??? lo mismo sucederia con las demás. Creo deberia replantearse primero la estructura de las notas para un solo estudiante y ejectuar el ordenamiento de las notas de solo un estudiante, y luego implementar una escalabilidad para varios estudiantes después de tener claro el proceso de inserción, guardado, impresión y ordenamiento de cada estudiante y sus notas.

Usar un arreglo de string, bueno, es algo raro, a mi ni siquiera me esta funcionando en linux el primer paso, loco no??
304  Programación / Programación C/C++ / Re: Ayuda! Como pasar un numero a letras en: 2 Octubre 2016, 17:32 pm
Hola que tal! Estoy buscando alguna idea o ayuda para hacer un programa en c++ que lea un número de 1 a 10.000.000 y que me escriba  ese mismo número en letras ejemplo
Numero leído: 34945
Resultado: treinta y cuatro mil novecientos cuarenta y cinco
Numero leído: 3.657.291
Resultado: tres millones seiscientos cincuenta y siete mil  doscientos noventa y uno



Claro que se puede, solo tienes que crear una condición en la que por cada numero, decena, centena y millar cambie cada texto.

Código
  1. if( numero == 1)
  2.   printf("uno");
  3. else if( numero == 2)
  4.   print("dos");
  5.  
  6. ...
  7. ..
  8. .
  9.  

suerte con eso amigo, cuando tengas los 10.000.000 de casos nos dejas el código para ver como te fue, sigue con ese impetú amigo. :D :D
305  Sistemas Operativos / GNU/Linux / Re: Gnu/linux libre o no en: 2 Octubre 2016, 04:14 am
Valla muchas gracias es bastante tentador e interesante investigare y cualquier cosa posteo mi experiencia.

Paz!

Linux from scratch jejeje...suerte, la necesitaras.
306  Programación / Programación C/C++ / Re: ¿Que parte de C no es compatible con C++? en: 2 Octubre 2016, 04:04 am
No estoy seguro de entender, Compatibilidad en que sentido? en ejecutar sentencias de C en C++?? por estandar, C++ es una extensión de C, por lo que no solamente adapta su comportamiento sino que lo mejora para el uso en POO, respecto de la sintaxis, hay librerias de C++ que permiten usar explicitamente las tares con sentencias de C.

No tengo ni idea de Obj-C, en lo personal encuentro horrendo todo lo que tenga que ver apple, solo respeto ese lenguaje de programación porque fue el que se uso para el primer Prince Of Persia, mucho antes de que la gran manzana lo transformara para su propio uso.
307  Programación / Programación C/C++ / Re: Crear editor de texto en c++ en: 2 Octubre 2016, 04:00 am
Gracias por responder!!! yo quería hacer una gui.............menos mal que busque proyectos "sencillos" para empezar :-[...

Específicamente.....como se haría 1) ...hace falta algo mas que las librerías estándar de c++ no??

Una gui en c++, mmmmmmmmmm creeria que habria que añadir librerias graficas que le den una forma de interfaz de ventana a la que se acostumbre el usuario, pero eso dependenderia de la libreria en si.

Aunque c++ no es lo que yo llamaria hecho para interfaces graficas tipo UI, hay formas más faciles como java o c#, ya sea desde cero o con IDEs que pueden facilitar enormemente esa tarea.

Por ejemplo, mientras en c++ este tipo de GUI puede llevarte años mientras adquieres maestria en todo lo relacionado con este proyecto de editor de texto, puedes hacer algo relativamente decente y usable en java con netbeans o eclipse, o mejor aún con C# en visual studio, todas esas herramientas facilitan muchisimo la tarea del desarrollo enfocandose más en el cumplimiento de los requerimientos segun las reglas del negocio que tratando de romperte la cabeza solo buscando que libreria te puede ayudar a darle un mejor aspecto a tu app.

en c++ te recomendaria más que aprendas las cosas básicas, arreglos, estructuras, vectores, punteros, archivos, persistencia...todos con sus laboratorios, buscate un ejercicio que consideres interesante y trata de entenderlo.
308  Programación / Programación C/C++ / Re: Igualar punteros ***, ** y * en: 1 Octubre 2016, 23:32 pm
que buen ejemplo, bastante claro, aunque me deja pensando como trabajaria para archivos,
309  Programación / Programación C/C++ / Re: Arreglo de apuntadores vs. arreglo común en lenguaje C. en: 1 Octubre 2016, 23:29 pm
En mi opinión cada caso es diferente, el uso de arreglos lo dejo para casos en los que podria saber que tipo de información y la cantidad de datos se estableceran, es decir, puedo determinar un limite en el control de datos y establecer un código que me permita trabajar con ese tipo de info, al saber exactamente cuantos elementos voy a incluir, puede decirse que manejo cierta información estatica.

Para ese caso, el uso convencional de arreglos, matrices y vectores viene perfecto.

Ahora, si no puedo saber la cantidad de elementos que voy a almacenar, sino que es el usuario quien me determina ese dato, y solo podria saber el tipo de información, tengo que solicitar un rango de memoria a los elementos del pc, para abrir espacios de memoria y poder guardar la información, teniendo el sitio de trabajo establecido, necesito apuntar a esos lugares por medio de punteros para usar esa información.

Por ello, los apuntadores son importantes, pues son los que me permiten establecer un dinamismo en el uso de la memoria que voy a controlar.

En el caso de un arreglo de puntos, pues es una forma similar de trabajar con matrices, o arreglos
  • [y], inicializas un numero determinado de posiciones para cierto tipo de objeto, y puedes usar ese objeto para guardar cualquier tipo de información diferente, en el que puedes incluso guardar espacios de memoria para cualquier tipo de info, como es en el caso de los apuntadores.

en mi opinión no me parece lo mejor mezclar ese tipo de conceptos, pues hace mucho más dificil el entendiiento y el posterior soporte para ese proyecto, el código se hace muy enredado y la escalabilidad en muchas ocasiones requiere crear nuevos patrones de sintaxis y termina con inconsistencias en el código, por decirlo de una forma suave.

310  Programación / Programación C/C++ / Re: Crear editor de texto en c++ en: 1 Octubre 2016, 23:19 pm
wow, ese tipo de cosas son mucho más complicadas de lo que se cree, en primera debes preguntarte si lo quieres para modo consola (como vi, vim, emacs, nano) o una gui (notepad, notepad++, sublime text, gedit, pluma), luego tendrias que buscar la forma de lidiar unos requerimientos:

1) Recibir, capturar la entrada de cada texto caracter a caracter, mostrando en pantalla cada evento de digitación de cada tecla (key on-key off).
2) mostrar una interfaz para el uso de usuario, minimo con opciones básicas, como guardar, copiar, cortar, pegar, salir, deshacer, rehacer, entre otros.
3) permitir el guardar de todo el texto en conjunto para diversos tipos de archivos con sus correspondientes extensiones.
4) permitir la accesibilidad entre archivos en conjunto con el programa, una vez guardados los archivos, Poder abrirlos, leerlos y editarlos, mostrando en pantalla la persistencia la misma información que se guardo inicialmente, para posteriormente guardarlos nuevamente.
5) permitir su uso para diferentes ambientes de trabajo, dependiendo del compilador, solo podra ser usado para arquitecturas y sistemas operativos determinados, es imposible crear aplicaciones que funcionen establemente desde su primera versión para todas las plataformas. Para el soporte multiplataforma necesitarias librerias que ofrezcan ampliación de catalogo de productos.

Es complicado, la verdad, ese tipo de trabajos requieren bastante tiempo y preparación.
Páginas: 1 ... 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 41 42 43 44 45 46 ... 311
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines