Anuncio

Colapsar
No hay ningún anuncio todavía.

acerca de programación conceptos básicos

Colapsar
X
 
  • Filtro
  • Hora
  • Mostrar
Borrar todo
nuevos mensajes

  • C/C++ acerca de programación conceptos básicos

    Hola,

    primero un comentario:

    He iniciado un curso de programación, pero no entiendo muchas cosas, y siempre que leo algo siento que está escrito en otro idioma, y por tanto tengo que ir a buscar en Google muchas definiciones, pero eso no me basta porque luego esas definiciones tienen otras definiciones que debo seguir buscando....

    Por lo cual me desanimo y dejo de tratar de estudiar esto, y en el fondo no le he dedicado casi nada de tiempo, lo cual de otra parte me hace sentir mal....

    Quisiera agradecer a quien me pueda ayudar en esto:

    Lo que yo estoy viendo es ROOT/C++. Buscando información encuentro esto:

    Root es un ambiente para el desarrollo de aplicaciones en C++.

    Quiero contarles que soy de lo más ignorante en esto, tan es así que no entiendo nada de lo que subrayé, y siempre es lo mismo, además según he leido tengo que instalar un procesador de texto, y a parte debo abrir la consola de linux, y un montón de cosas, que me abruman.

    No sé quizás sería mejor ver algo que venga explicado más paso por paso. Lo malo es que encuentro cosas acerca de programar en c++ pero no sé si es lo mismo que ROOT/c++ me gustaría que me recomendaran quizás alguna página o videos o cualquier cosa para entender esto un poco mejor, diferencias y similitudes con lo del ROOT, y estas definiciones.

    saludos y gracias

  • #2
    Re: acerca de programación conceptos básicos

    Root c++ fue desarrollado en el CERN para analisis y procesamiento de datos, es un conjunto de herramientas para fisicos. Quizas seas estudiante de fisica y esto ya lo sabes y por eso has empezado con este sistema. Pero si tu conocimiento informatico y/o de programacion y/o fisica es cero, es una locura empezar con root c++.

    desarrollo de aplicaciones en C++:
    C++ es un lenguaje de programacion (hay miles de lenguajes posibles java, pascal, C, python, php, etc ..)
    Aplicaciones en C++ son aquellas aplicaciones/programas hechas en este lenguaje.
    desarrollar aplicaciones es hacerlas/fabricarlas/programarlas simplente.

    ambiente:
    en este caso lo han traducido a partir de framework en ingles que viene a ser marco de trabajo.
    Se refiere a un conjunto de cosas que te facilitan el hacer un determinado trabajo. Por ejemplo si eres matematico y tienes que desarrollar ecuaciones, etc, pues con un papel y un lapiz es suficiente, pero si quieres ser mas productivo , es mejor tener una buena mesa, una buena calculadora que te simplifique o te permita hacer calculos mas rapidos, etc. El ambiente de trabajo en este ejemplo, seria todo eso la calculadora, la mesa el boligrafo, etc.

    Asi que root C++ es un conjunto de herramientas, que te facilitan programar aplicaciones en C++ destinadas a analizar y procesar datos fisicos. Por ejemplo supongo que en el CERN lo podrian utilizar par hacer aplicaciones que procesen y analicen los datos recabados por el gran colisionador de hadrones.

    Mi opinion es que no puedes empezar la casa por el tejado, si quieres aprender programacion tendras que aprender programacion, despues una vez que sepas de que va esto, ya podrias meterte con herramientas mucho mas especificas. Es decir deberias empezar a aprender a programar cosas mas sencillas y generales y despues de esto, suponiendo que sepas fisica, ya te podrias plantear empezar a programar aplicaciones que busquen el bosson de Highs por ejemplo.
    Última edición por abuelillo; 29/03/2013, 00:20:00.
     \left\vert{     \Psi_{UNIVERSE}       }\right>  = \sum \alpha_i   \left\vert{     \Psi_{WORLD_i}       }\right> \text{   } \hspace{3 mm}  \sum  \left\vert{} \alpha_i   \right\vert{}^2 = 1

    Comentario


    • #3
      Re: acerca de programación conceptos básicos

      C++ es un lenguaje de programación con la particularidad de estar orientado al paradigma de la programación orientada a objetos. Como todo lenguaje presenta un léxico, es decir, un conjunto de símbolos-palabras; una sintáxis, es decir, reglas para el uso y la combinación de esas palabras; y una semántica, es decir, un significado para esos simbolos y palabras.

      Puedes agarrar cualquier editor de texto y escribir un programa en C++, es decir, con su léxico, sintaxis y semántica. Pero no dejará de ser un conjunto de palabras con cierto significado (para nosotros) escrito en cualquier editor de texto (como word o el blog de notas ); para que eso sea un programa ejecutable por un ordenador es necesario un compilador-linkeador (que lleva de código objeto a ejecutable) que lleve a ese documento de texto (que se conoce como código fuente) a un archivo que pueda ser interpretado por el ordenador (lo que se conoce como código ejecutable).

      Un ambiente de programación o por lo que es más conocido un entorno de programación, es una herramienta que brinda todo lo necesario para desarrollar un programa ejecutable. Es decir, que no solo cuenta con un editor de texto sino que también cuenta con un compilador y un linkeador (que es necesario para la utilización de librerías).

      Quiero contarles que soy de lo más ignorante en esto, tan es así que no entiendo nada de lo que subrayé, y siempre es lo mismo, además según he leido tengo que instalar un procesador de texto, y a parte debo abrir la consola de linux, y un montón de cosas, que me abruman.
      En vez de usar un compilador y un editor de texto por separado te recomiendo que uses un entorno de programación. Uno bueno, y para empezar es el Dev-C++ (para windows).
      Con respecto a linux la cosa es diferente porque el lenguaje nativo de GNU/linux es C, por lo que todas las versiones de este cuenta con un compilador de C. Eso no quiere decir que no puedas utilizar en GNU/linux otro compilador.

      Espero haber despejado tu duda, cualquier cosa pregunta
      Última edición por Julián; 29/03/2013, 00:31:14.
      Por más bella o elegante que sea la teoría, si los resultados no la acompañan, está mal.

      Comentario


      • #4
        Re: acerca de programación conceptos básicos

        Además de coincidir con el consejo de que primero aprendas a programar y luego vayas subiendo el nivel, mi contribución es que en Linux el C++ va perfectamente. Si no recuerdo mal, el compilador gcc suele formar parte del propio sistema operativo.

        Por supuesto, es recomendable emplear algún entorno que facilite la edición, compilación y depuración de los programas. Yo uso Code::Blocks (que es multiplataforma, con lo que facilita la escritura de programas que corran en Linux y Windows -aunque entonces el problema es el manejo de ventanas, gráficos, etc, pero todo esto aún lo tienes bastante lejos, si estás empezando-). Como todo en Linux puede dar algo de lata al configurarlo (tiene muchas funcionalidades y eso marea). De todos modos, hay tutoriales muy sencillos en la red y en media hora estarás escribiendo, compilando, ejecutando e incluso depurando el tradicional programa "Hola mundo!".

        Con respecto al aprendizaje de programación, si no sabes absolutamente nada y puedes elegir, mi consejo es comenzar por Pascal (es más humano que el C++ pero es un escalón natural previo). En tal caso es muy recomendable Free Pascal.

        De todos modos, no pasa nada si por la razón que sea debes empezar directamente con C++. Eso sí, es un lenguaje muuuuuy potente, con lo que tienes todo un mundo por delante. En otras palabras: tómatelo con calma, centrándote más en la solidez de lo que aprendas que en avanzar rápido. Incluso no te extrañe si después de muchos años hay cosas que aún no controlas (te lo digo por experiencia, programo en C++ desde hace más de 25 años y en otros lenguajes desde hace más de 35 años y son bastantes -demasiadas para mi gusto- las cosas de C++ que aún no controlo).
        A mi amigo, a quien todo debo.

        Comentario


        • #5
          Re: acerca de programación conceptos básicos

          Gracias abuelillo y julian realmente me han ayudado, ah y Arivasm que recién acabo de ver tu mensaje

          Quiero comentarles que lastimosamente no puedo comenzar por otro ambiente que no sea ROOT, puesto que eso me quitaría tiempo, y es con lo que estamos iniciando en la universidad. Igual y con ROOT hasta donde tengo entendido se pueden hacer también cosas simples.

          Ahora que aún me quedan dudas. Por ejemplo sé que el código fuente que menciona julian es un conjunto de palabras que uno escribe y por ejemplo pueden ser del tipo:

          void
          {
          cout<< zzzz<<
          }

          Bueno cosas como esas, pero ese código es característico de c++ o de ROOT como tal?, es decir si escribo un código que sirva para calcular la multiplicación de dos números debo tener un código en el caso que escoja ROOT-C++ o y otro para Dev-C++. O por el hecho de que ambos son c++ deben tener el mismo código?

          De otra parte aunque no entiendo mucho algunas cosas, ya tengo instalado el ROOT y el emacs23 (que sería el editor de texto) en ubuntu 10.04.

          Pero quisiera saber más específicamente cómo funciona esto, pues por ejemplo se inserta en la terminal un comando:

          emacs ejemplo.C

          y se abre el emacs, que es donde uno escribe el código del programa, entonces lo guardo. Pero y de ahí en adelante qué debo hacer, o qué es lo que se hace, porque no sé como relacionar lo escrito en el emacs con el ROOT.

          Bueno gracias por cualquier aclaración
          Última edición por Elkin; 29/03/2013, 03:21:47.

          Comentario


          • #6
            Re: acerca de programación conceptos básicos

            Ah, viendo lo que es ROOT por la información que encontré en internet. Este no es un entorno de programación sino un interprete.

            No estaba enterado que había interpretes para C++. Hay dos formas para obtener un ejecutable a partir de un código fuente. Una es compilarlo y luego linkearlo obteniendo así un fichero ejecutable (que es interpretado por el ordenador), cuando se necesite usar dicho programa se hace la llamada correspondiente a dicho fichero en el SO (el cual hace todos los arreglos para que comience como darle la memoria necesaria,etc). En definitiva y dicho a lo bruto, cuando haces doble click en el ícono del ejecutable el programa comienza o haces la llamada de este mediante un comando de la shell. Aunque este maneja el hardware mediante llamadas al SO, quien es el que en verdad controla el hardware (pero eso no viene al caso).

            En cambio los interpretes traducen en tiempo de ejecución el código fuente y este se ejecuta en el momento y generalmente no guardan el resultado de la traducción. Es decir que para ejecutar tu código fuente siempre necesitarás de un interprete.
            Un lenguaje interpretado es Python o php pero no sabía que se interpretaba C++.

            Dev-C++ es un entorno de programación el cual tiene un compilador y linkeador es decir genera un fichero ejecutable sin la necesidad de andar interpretandolo cada vez que se quiera ejecutar.

            En cuanto a linux con lo que respecta a los comandos de la shell y a la utilización de los intérpretes o compiladores no te puedo ayudar porque no utilizo GNU. Pero lo que te puedo decir es lo siguiente
            y se abre el emacs, que es donde uno escribe el código del programa, entonces lo guardo. Pero y de ahí en adelante qué debo hacer, o qué es lo que se hace, porque no sé como relacionar lo escrito en el emacs con el ROOT.
            El emacs es un editor de texto, ahi es donde escribiste el código fuente. Ahora para ejecutar el programa tienes dos opciones, lo compilas y obtienes el fichero ejecutable. Cuando quieras utilizar el programa simplemente haces la llamada a ese fichero y listo. Y la otra opciones es utilizar un interprete, que no se bien como porque nunca he utilizado uno, pero seguramente haciendo una llamada a un interprete y pasándole como argumento el fichero fuente se ejecutará.
            Por más bella o elegante que sea la teoría, si los resultados no la acompañan, está mal.

            Comentario


            • #7
              Re: acerca de programación conceptos básicos

              Escrito por julian403 Ver mensaje
              El emacs es un editor de texto, ahi es donde escribiste el código fuente. Ahora para ejecutar el programa tienes dos opciones, lo compilas y obtienes el fichero ejecutable. Cuando quieras utilizar el programa simplemente haces la llamada a ese fichero y listo. Y la otra opciones es utilizar un interprete, que no se bien como porque nunca he utilizado uno, pero seguramente haciendo una llamada a un interprete y pasándole como argumento el fichero fuente se ejecutará.
              Aquí no entiendo mucho, es decir cómo lo compilo. Apenas sé que con el emacs guardo un archivo que lo puedo dejar en un lugar. Pero eso ya es compilar o necesito algo más. Y la otra es cómo puedo hacer la llamada a un fichero.

              Porque según entiendo luego de tener el programa si lo quiero ejecutar debo escribir en la consola de ubuntu: .x nombre y ya pero esa es la parte que no he logrado hacer ni para el hola mundo. será que debo ingresar primero al ROOT.

              Es decir no sé si debo hacer lo que llamas compilar o cosas como esas.

              Gracias por cualquier ayuda.

              Comentario


              • #8
                Re: acerca de programación conceptos básicos

                Escrito por Elkin Ver mensaje
                Quiero comentarles que lastimosamente no puedo comenzar por otro ambiente que no sea ROOT, puesto que eso me quitaría tiempo, y es con lo que estamos iniciando en la universidad. Igual y con ROOT hasta donde tengo entendido se pueden hacer también cosas simples.
                Uff es que asi lo tienes complicado. Imaginate que a alguien le presentan una ecuacion con derivadas parciales, y ni siquiera ha aprendido aun que es sumar, pues estas en una situacion parecida salvando la analogia.

                Pillate por lo menos un libro o manual de C++ generico, uno que explique el lenguaje sin usar ninguna implementacion especifica, este paso no veo forma de que te lo puedas saltar. Otra cosa es que no vayas a tener que programar nada, y solo uses ROOT para ejecutar programas hechos por otros.

                Escrito por Elkin Ver mensaje
                void
                {
                cout<< zzzz<<
                }

                Bueno cosas como esas, pero ese código es característico de c++ o de ROOT como tal?, es decir si escribo un código que sirva para calcular la multiplicación de dos números debo tener un código en el caso que escoja ROOT-C++ o y otro para Dev-C++. O por el hecho de que ambos son c++ deben tener el mismo código?
                Eso que has escrito es codigo en lenguaje C++. Lo entenderia cualquier compilador o interprete de C++.
                Pero en los programas hechos en root C++, te puedes encontrar referencias a cosas que no entenderia otro compilador. Porque root c++ implemente librerias y clases especificas para facilitar operaciones matematicas, como operaciones con matrices, etc. Y este tipo de cosas no las entenderia de serie otro compilador o interprete como Dev-C++.

                Escrito por Elkin Ver mensaje
                De otra parte aunque no entiendo mucho algunas cosas, ya tengo instalado el ROOT y el emacs23 (que sería el editor de texto) en ubuntu 10.04.
                Pero quisiera saber más específicamente cómo funciona esto, pues por ejemplo se inserta en la terminal un comando:
                emacs ejemplo.C
                y se abre el emacs, que es donde uno escribe el código del programa, entonces lo guardo. Pero y de ahí en adelante qué debo hacer, o qué es lo que se hace, porque no sé como relacionar lo escrito en el emacs con el ROOT.
                Aqui tienes los manuales de uso de Root C++.
                http://root.cern.ch/drupal/content/documentation
                La guia del usuario creo que explica los primeros pasos, es decir cosas del estilo de las que preguntas.
                Última edición por abuelillo; 29/03/2013, 05:56:00.
                 \left\vert{     \Psi_{UNIVERSE}       }\right>  = \sum \alpha_i   \left\vert{     \Psi_{WORLD_i}       }\right> \text{   } \hspace{3 mm}  \sum  \left\vert{} \alpha_i   \right\vert{}^2 = 1

                Comentario


                • #9
                  Re: acerca de programación conceptos básicos

                  Mucho no te puedo ayudar porque no manejo GNU/linux, así de que no conosco los comandos ni los manejos de la shell, ni sus editores de texto y sus compiladores e interpretes incluidos. El emacs es un editor de texto por lo que es ahi donde escribes el código fuente, pero para ejecutar el programa o tienes que usar un intérprete o compilarlo. Como la gente de linux les gusta hacer las cosas fáciles y sin vueltas tengo entendido de que el emacs posee un compilador o a través de un comando interno del programa compila con un compilador del sistema. Pero te vuelvo a repetir no conozco como.

                  Si tu intención es adentrarte en la programación con el lenguaje C++, te recomiendo que uses un entorno de programación. Como eclipse, Code::blocks (que tiene muy buena crítica). Esos entornos te brindan todo, editor de texto y compilador con una buena interfaz gráfica. De ahí lo que te queda es un buen librito sobre C++ para iniciarte con la base del lenguaje y sin dar tantas vueltas en lo que es compilar enlazar, etc.
                  Otra cosa diferente es que en la Universidad te hagan utilizar la potencialidad de Linux en cuanto a sus compiladores, interpretes, y su shell. Porque para ese nivel la interfaz gráfica es tenida como para novatos y la potencia de GNU radica en su sistema.
                  Por más bella o elegante que sea la teoría, si los resultados no la acompañan, está mal.

                  Comentario


                  • #10
                    Re: acerca de programación conceptos básicos

                    Una vez tengas escrito el código con tu editor de textos preferido, bien sea emacs como has dicho o cualquier otro (yo uso Kate), guárdalo en un fichero que tenga extensión .c, por ejemplo "prueba.c". Una vez hecho esto, ejecuta en consola:

                    gcc -o ./prueba.out ./prueba.c
                    chmod +x ./prueba.c
                    ./prueba.c

                    Expliquemos un poco esto.

                    gcc es el compilador de C que trae Linux por defecto. La sintaxis básica de gcc es "gcc [opciones] fichero.c". La opción "-o ./prueba.out" permite guardar el ejecutable bajo el nombre de "prueba.out". Para más información prueba a escribir en la consola "gcc --help".

                    chmod te permite modificar los permisos de un fichero. Has compilado ya el código y tienes un ejecutable, pero ahora necesitas poder ejecutarlo. Eso se consigue con la opción +x.

                    Por último, y una vez preparado el programa, simplemente se ejecuta escribiendo "./prueba.out". No te olvides de preceder siempre la dirección "./" o, en caso contrario, la terminal intentará buscar en el path de Linux alguna aplicación con nombre "prueba.out", la cual no existirá.

                    Como nota final, decir que todo esto es teniendo en cuenta que tienes la terminal abierta en el lugar donde están todos estos ficheros. En caso contrario, deberías sustituir "./" (que significa "aquí") por el camino real, por ejemplo:

                    gcc -o /home/usuariopetete/Documentos/prueba.out /home/usuariopetete/Documentos/prueba.c

                    Comentario


                    • #11
                      Re: acerca de programación conceptos básicos

                      Gracias me han aclarado algunas cosas,

                      ZYpp bueno pero lo que dices no sé si es un procedimiento general, o sólo es para cuando tengas instalado el editor de texto que mencionas, y no sé como relacionar lo que tengo yo instalado con lo que mencionas. Pues tengo root y el emacs, pero estoy paralizado pues no sé como hacer el programa más sencillo. Y todo lo debería hacer con el root. Crees que depronto todo sea válido simplemente cambiando lo que mencionas como gcc por root.

                      Hay algo también que no tengo claro, y es: ¿Cuál es la diferencia entre un programa en forma de función y en forma de procedimiento?

                      En forma de función:

                      int main()
                      {
                      cout<<"web de física..." << endl;
                      return 0;
                      }

                      En forma de procedimiento:

                      void main()
                      {
                      cout<<"web de física..."<< endl;
                      }

                      En cuanto a lo de abuelillo, pues esa guía está bien, pero no sé por qué allí no se habla de un editor de texto como emacs.

                      Lo único que quiero por el momento es poder hacer cualquier programa de ahí en adelante practicaré el resto.

                      Lo que sucede es que por ejemplo yo coloco el texto de arriba (no sé cuál de los dos debería colocar) en emacs y le doy guardar. Pero lo que no sé es qué tiene que ver esto con el root. Y cómo ejecutar ese programa.

                      Comentario


                      • #12
                        Re: acerca de programación conceptos básicos

                        Escrito por Elkin Ver mensaje
                        Gracias me han aclarado algunas cosas,

                        ZYpp bueno pero lo que dices no sé si es un procedimiento general, o sólo es para cuando tengas instalado el editor de texto que mencionas, y no sé como relacionar lo que tengo yo instalado con lo que mencionas. Pues tengo root y el emacs, pero estoy paralizado pues no sé como hacer el programa más sencillo. Y todo lo debería hacer con el root. Crees que depronto todo sea válido simplemente cambiando lo que mencionas como gcc por root.
                        El editor de textos es independiente. Puedes usar emacs, kate, notepad++, etc. Una vez tengas el fichero de texto con el código escrito (independientemente del editor) sólo lo tienes que guardar con la extensión .c y usar el gcc como te dije. Así es como se compila un programa y se deja listo para ejecutar.

                        En cuanto a root ni idea, jamás lo he usado.

                        Comentario

                        Contenido relacionado

                        Colapsar

                        Trabajando...
                        X