Ayuda con Algoritmos

Publicado en 'Universidades' por Alexy, 18 Abr 2010.





  1. Alexy

    Alexy Miembro maestro

    Registro:
    7 Feb 2010
    Mensajes:
    988
    Likes:
    712




    Nose si ira aca este tema pero necesito ayuda, estoy estudiando programacion C++, y mi dificultad es a la hora de hacer el procedimiento proceso, lo encuentro bastante complicado, cuando me piden que hagan operaciones bastantes complejas en pseudocodigo como sacar porcentajes,etc, lo que quiero es si me pueden recomendar algun lugar donde pueda aprender este tipo de programacion a profundidad.
    De antemano les agradezco su respuesta.
     


  2. Fernxndo

    Fernxndo Suspendido

    Registro:
    30 Oct 2009
    Mensajes:
    8,508
    Likes:
    4,706
    los algoritmos no son trancas pero si a veces extensos

    busca "Algoritmos y Diagramas de Flujo Aplicados en C++", no te puedo mandar el link porque no esta permitido
     
  3. pierval

    pierval Miembro frecuente

    Registro:
    19 Abr 2010
    Mensajes:
    135
    Likes:
    23
    hay un libro, aplicaciones en borland C++ de una edicion peruana de pasta celeste es muy didactico y tiene ejemplos y lo venden en amazonas te sugiero ese como base de ahi te puedes tranquear con otros mas especializados.
    la programacion es facil pero debes comenzar de abajo lo mas facil, a lo mas tranca y de ahi seras lobo, ten paciencia.
     
  4. Ykaruz

    Ykaruz Miembro maestro

    Registro:
    7 Ene 2010
    Mensajes:
    447
    Likes:
    35
    Pero igual deberías postear el problema para que alguien te ayude o te asesore.
     
  5. gustavocc

    gustavocc Miembro maestro

    Registro:
    22 Set 2009
    Mensajes:
    898
    Likes:
    199
    Hola.
    Postea el problema, y te ayudo, explicándote cada linea. Eso te podría ayudar
     
  6. Alexy

    Alexy Miembro maestro

    Registro:
    7 Feb 2010
    Mensajes:
    988
    Likes:
    712
    El problema:
    Diseñe un algoritmo que lea la capacidad de un disco duro en gigabytes y lo convierta a megabytes, kilobytes y bytes.
    1 kilobytes= 1024 bytes
    1 megabytes= 1024 kilobytes
    1 gigabytes= 1024 megabytes

    Gracias por tomarse un tiempo para leer este tema, pero aparte no saben algun lugar (que sea bueno, donde te vas aprendiendo la clase si o si) donde enseñen como diseñar un pseudocodigo en c++ como un curso libre.
     
    Última edición: 20 Abr 2010
  7. clark_kent

    clark_kent Suspendido

    Registro:
    22 Mar 2010
    Mensajes:
    1,133
    Likes:
    11
    eso lo tengo pero en mi cuaderno del ciclo pasado de algoritmos. me gustaria poder ayudarte.
     
  8. gustavocc

    gustavocc Miembro maestro

    Registro:
    22 Set 2009
    Mensajes:
    898
    Likes:
    199
    inicio

    //Aquí definimos las variables y el tipo que queremos, le pongo real para que se puedan //poner decimales.
    real capGig,capMega,capKilo,capByt;

    //Aquí leemos la variable, que viene a ser como si ingresaríamos por teclado.
    leer capGig;

    //Aquí hacemos las sentencias que haran todo lo que queremos.
    //Por ejemplo si tenemos 1 Gb, bastaria multiplicarlo X 1024 y nos da la cantidad en Mb.
    capMega= capGig*1024;

    //Ahora que tenemos la cantidad en Mb. Si queremos la cantidad en Kb, bastaría multiplicar esa cantidad de //Mb * 1024.
    capKilo = capMega*1024;

    //Aqui lo mismo, como ya tenemos en kilobytes,multiplicamos otra vez por 1024.
    capByt = capKilo*1024;

    //Aquí solo viene la parte de impresión o la mostrar en pantalla.
    escribir("Capacidad en Megabytes : ", capMega);
    escribir("Capacidad en Kilobytes : ", capKilo);
    escribir("Capacidad en bytes : ", capByt);

    fin


    Recuerda que, los algoritmos son pasos lógicos, que los hacemos en un lenguaje propio, me refiero a se pueden usar nuestras propias palabras. Esto es muy importante, es la base de todo lo que es programación. Particularmente yo lo veo como una estrategia, de como ordenar a la maquina, para que haga lo que yo quiero. Sabemos que la maquina no razona, tienes que darle paso a paso todo lo que quieres que haga.

    Bueno si tienes alguna duda me avisas.

    PD: los "//" en programación significan comentario.
     
    Última edición: 20 Abr 2010
  9. º_Bruno_º

    º_Bruno_º Miembro legendario

    Registro:
    16 Nov 2009
    Mensajes:
    56,443
    Likes:
    48,964
    Lo único que conosco de algoritmos son el do while, do until, for, do ..... esas cosas xD

    ----- mensaje añadido, 20-abr-2010 a las 11:36 -----

    pero nunca me los aprendí del todo :(
     
  10. ciberutilidades

    ciberutilidades Miembro frecuente

    Registro:
    14 Mar 2010
    Mensajes:
    128
    Likes:
    4
    Uff yo no llevo esto para naaa....
     
  11. Alexy

    Alexy Miembro maestro

    Registro:
    7 Feb 2010
    Mensajes:
    988
    Likes:
    712
    Grax men esta claro, si es sencillo pero, mi dificultad es hacer el procedimiento proceso y luego ese procedimiento pasarlo a pseudocodigo
     
  12. ZeRaTuLl

    ZeRaTuLl Miembro nuevo

    Registro:
    13 Ene 2010
    Mensajes:
    41
    Likes:
    4
    Lo que te a escrito es el pseudocidigo -.- otras cosa es pasarlo al lenguaje de programacion que con un compilador haria funcionar tu programa.
     
  13. gustavocc

    gustavocc Miembro maestro

    Registro:
    22 Set 2009
    Mensajes:
    898
    Likes:
    199
    Bueno como dijiste ayuda con algoritmo, pensé que querías el pseudocodigo.

    Pero el pseudocodigo se haría fácilmente con el algoritmo. Mira:

    #include<iostream.h>

    main(){
    float capGig,capMeg,capKil,capByt;
    cout<<"ingrese una cantidad en GB : ";cin>>capGig;
    capMeg = capGig * 1024;
    capKil = capMeg * 1024;
    capByt = capKil * 1024;
    cout<<" Capacidad en MB : "<<capMeg<<endl;
    cout<<" Capacidad en KB : "<<capKil<<endl;
    cout<<" Capacidad en Bytes : "<<capByt<<endl;

    system("pause");
    }


    Si te das cuenta es lo mismo. Ahora si tu compilas este código, te darás cuenta que el resultado al ser grande, te aparecerá algo así : 123213 e -.....algo así, eso es correcto. Pero si tu quisieras cambiar la presentación para que puedas visualizar los números como se debe, entonces llamamos a una función llamada "fixed" y la usamos de la siguiente manera:

    #include<iostream.h>
    //aqui la llamamos, viene a ser parte de la librería standar.
    using std::fixed;

    main(){
    float capGig,capMeg,capKil,capByt;
    cout<<"ingrese una cantidad en GB : ";cin>>capGig;
    capMeg = capGig * 1024;
    capKil = capMeg * 1024;
    capByt = capKil * 1024;
    //aqui le decimos que imprima todos los números sin exponentes.
    cout<<fixed;

    /* aquí le damos la precisión de los decimales, es decir si tu quieres que solo te aparezcan 3 decimales entonces le pones precisión 3. Yo le puse precisión 0 porque supuse que ingresarías un valor entero en GB, entonces no me saldrán decimales. Para que te des cuenta, prueba esto mismo pero con precisión 10 por ejemplo y veras que te aparece el resultado pero con 10 decimales te sale .0000000000. Quizás no entiendas bien por eso te aconsejo probar para que te des cuenta como usarlo, es muy útil a la hora de presentación.*/
    cout.precision(0);
    cout<<" Capacidad en MB : "<<capMeg<<endl;
    cout<<" Capacidad en KB : "<<capKil<<endl;
    cout<<" Capacidad en Bytes : "<<capByt<<endl;

    system("pause");
    }


    Este problema es muy sencillo, a mi parecer deberías de poder hacerlo por ti mismo. A la próxima vez que tengas un problema similar te aconsejo que pongas el código que tienes avanzado y así te ayudamos sobre tu propia lógica o te corregimos.
     
  14. oscar_1982

    oscar_1982 Miembro nuevo

    Registro:
    8 May 2011
    Mensajes:
    1
    Likes:
    0
    Ayuda con 2 ejerciccios de algoritmos secuenciales
    1)una persona ha recorrido 3 tramos de una carretera.la longitud del primer tramo esta dado en Km,del segundo en pies y el tercero en millas.diseñe un algoritmo que determine la longitud total recorrida en metros y en yardas.
    1metro=3.2808 pies
    1 yarda=3 pies
    1Km=1000metros
    1milla=1609 metros

    2)
     
  15. k3v1n18

    k3v1n18 Miembro frecuente

    Registro:
    12 Feb 2011
    Mensajes:
    66
    Likes:
    12
    mira,para que te familiarices con la programacion, escribe pseint en google
    y has click en el primer link que aparece, y descargatelo, de alli mira los ejemplo, y practica, todo es muy sencillo, eso es para que te familiarices.

    ----- mensaje añadido, 08-may-2011 a las 16:55 -----

    la programacion es muy sencilla, solo te aprendes las codificaciones, el algoritmo es lo complicado, pues hay que tener mucha imaginacion para hacerlo eficiente,rapido y tener en cuenta pequeños detalles, practica con algunos problemitas sencillos para que te familiarices, como hallar la serie de fibonacci, calcular el factorial de un numero, la sumatoria de numeros naturales hasta n, el seno de un angulo, la raiz cuadrada por el metodo de la bisecion, esas cositas son para que un poco te familiarices con las sentencias.
     
    Última edición: 8 May 2011
  16. mbellido

    mbellido Miembro de plata

    Registro:
    3 Abr 2011
    Mensajes:
    2,971
    Likes:
    1,280
    solo por curiosidad: Qué estás estudiando y en dónde? Si es mucha molestia el ciclo también.

    Creo que se podría abrir una subcategoría para ayudas de este tipo no creen?
     
  17. sephia412

    sephia412 Miembro de oro

    Registro:
    29 Mar 2011
    Mensajes:
    5,639
    Likes:
    2,605
    Hola haber haber, :mmm: si tu duda es sobre sacar, porcentajes interes simple compuesto, cosas relacionadas a matemática financiera solo debes leer esos libros y extraer las fórmulas :D, ahora en programación también existen muchos problemas de nivel pero esos se toman en torneos internacionales.
    Bueno los libros yo usé el libro de Joyanes Aguilar, Fundamentos de Programación, los problemas son básicos pero te indica como declarar variables, restricciones en la entrada de datos, problemas de overfloat, supercarga de operaciones, problemas con ficheros y también programación dinámica y una breve introducción al lenguaje orientado a objetos.

    Si lo que buscas es nivel y problemas de gran dificultad te recomiendo el Cormen Introduction to Algorithms (ese está en inglés- mucho mejor si dominas el idioma), con ese libro se preparan acá en Perú para los concursos del ACM, y abarca una gran variedad de técnicas de programación como el divide y vencerás, backtracking, fuerza bruta, ad-hoc, greedys, y un completo resumen de matemática discreta, terminando con máquinas de estado finito.

    Cualquier duda consulta :hi:
     
  18. mbellido

    mbellido Miembro de plata

    Registro:
    3 Abr 2011
    Mensajes:
    2,971
    Likes:
    1,280
    Si vas a programar en C++ te recomendaría el libro de Stroustrup:

    Ese libro se lleva en el curso de Análisis y Diseño de Algoritmos junto con el libro de "Algorithms" de Papadimitru.

    Supongo que para el concurso es bien útil pero creo que sirve para cualquier tipo de programación.
     
    Última edición: 8 May 2011
  19. sephia412

    sephia412 Miembro de oro

    Registro:
    29 Mar 2011
    Mensajes:
    5,639
    Likes:
    2,605
    :hi: Gracias pero ya terminé los cursos de algoritmos en mi carrera :P