SlideShare ist ein Scribd-Unternehmen logo
1 von 13
INTRODUCCION A LA
PROGRAMACIÓN
C ONCEPTOS               BASICOS


   Fichero fuente y programa o código fuente

    Los programas C y C++ se escriben con la ayuda
    de un editor de textos del mismo modo que
    cualquier texto corriente. Los ficheros que
    contiene programas en C o C++ en forma de
    texto se conocen como ficheros fuente, y el texto
    del programa que contiene se conoce como
    programa fuente. Nosotros
    siempre escribiremos programas fuente y los
    guardaremos en ficheros fuente.
I NTERPRETES

   En un lenguaje interpretado, el programa está
    escrito en forma de texto, es el propio programa
    fuente. Este programa fuente es procesado por
    un programa externo, el intérprete, que traduce
    el programa, instrucción a instrucción, al tiempo
    que lo ejecuta.
   En los lenguajes interpretados no existen
    programas ejecutables directamente por el
    ordenador. El intérprete traduce, en tiempo real,
    cada línea del programa fuente, cada vez que se
    quiere ejecutar el programa.
COMPILADORES


   El los lenguajes compilados el proceso de
    traducción sólo se hace una vez. El programa
    compilador toma como entrada el código fuente
    del programa, y da como salida un fichero que
    puede ser ejecutado por el ordenador
    directamente.

   Una vez compilado, el programa ejecutable es
    autónomo, y ya no es necesario disponer del
    programa original ni del compilador para
    ejecutarlo.
I NTERPRETES VS
                                         COMPILADORES

   Los lenguajes interpretados son          desempeña el compilador, pero
    fácilmente modificables, ya que           al contrario que con el
    necesitamos tener el el código            intérprete, una vez ha hecho su
    fuente disponible en el                   trabajo, no es necesario que esté
    ordenador. En los compilados,             presente para ejecutar el
    estos ficheros no son necesarios,         programa.
    una vez compilados.
                                             Estas dos
   Los lenguajes interpretados               características, lógicamente, hac
    necesitan un programa externo,            en que los programas
    llamado intérprete o a veces              compilados requieran menos
    máquina virtual, o framework.             espacio de memoria que los
    Este programa actua como                  interpretados (si contamos el
    intermediario entre el fuente y           espacio usado por el
    el sistema operativo. En los              intérprete), y en general, los
    compilados ese papel lo                   compilados son más rápidos, ya
                                              que sólo se compilan una vez, y
                                              el tiempo dedicado a esa tarea
                                              no se suma al de ejecución.
F ICHEROS OBJETO , CÓDIGO
           OBJETO Y COMPILADORES

   Como hemos dicho antes, en los             Los compiladores son programas
    lenguajes compilados, los programas         traductores, que leen un fichero de
    fuente no pueden ejecutarse. Son            texto que contiene el programa
    ficheros de texto, pensados para que        fuente y generan un fichero que
    los comprendan los seres                    contiene el código objeto.
    humanos, pero incomprensibles para
    los ordenadores.                           El código objeto no suele tener
                                                ningún significado para los seres
   Para conseguir un programa                  humanos, al menos para la mayoría
    ejecutable hay que seguir algunos           de los humanos que conozco, y
    pasos. El primero es compilar o             menos directamente. Además es
    traducir el programa fuente a su            diferente para cada ordenador y para
    código objeto equivalente. Este es el       cada sistema operativo. Por lo tanto
    trabajo que hacen los compiladores          existen diferentes compiladores para
    de C y C++. Consiste en obtener un          diferentes sistemas operativos y para
    fichero equivalente a nuestro               cada tipo de ordenador.
    programa fuente comprensible para
    el ordenador, este fichero se conoce
    como fichero objeto, y su contenido
    como código objeto.
L IBRERÍAS O BIBLIOTECAS


   Junto con los compiladores de C y C++, se
    incluyen ciertos ficheros llamados bibliotecas. Las
    bibliotecas contienen el código objeto de muchos
    programas que permiten hacer cosas comunes,
    como leer el teclado, escribir en la pantalla,
    manejar números, realizar funciones
    matemáticas, etc.
   Las bibliotecas están clasificadas por el tipo de
    trabajos que hacen, hay bibliotecas de entrada y
    salida, matemáticas, de manejo de memoria, de
    manejo de textos, etc.
F ICHEROS EJECUTABLES Y
                                                        ENLAZADORES

                                                           Hay que dar ciertas instrucciones al ordenador
                                                            para que cargue en memoria el programa y los
                                                            datos, y para que organice la memoria de modo
   Cuando obtenemos el fichero objeto, aún no              que se disponga de una pila de tamaño
    hemos terminado el proceso. El fichero objeto, a        adecuado, etc. La pila es una zona de memoria
    pesar de ser comprensible para el ordenador, no         que se usa para que el programa intercambie
    puede ser ejecutado. Hay varias razones para            datos con otros programas o con otras partes del
    eso:                                                    propio programa. Veremos esto con más detalle
                                                            durante el curso.
   Nuestros programas usaran, en general,
    funciones que estarán incluidas en bibliotecas         No siempre obtendremos un fichero ejecutable
    externas, ya sean ANSI o no. Es necesario               para el código que escribimos, a veces
    combinar nuestro fichero objeto con esas                querremos crear ficheros de biblioteca, y en ese
    bibliotecas para obtener un ejecutable.                 caso el proceso será diferente.

   Muy a menudo, nuestros programas estarán               Existe un programa que hace todas estas cosas,
    compuestos por varios ficheros fuente, y de cada        se trata del "linker", o enlazador. El enlazador
    uno de ellos se obtendrá un fichero objeto. Es          toma todos los ficheros objeto que componen
    necesario unir todos los ficheros objeto, más las       nuestro programa, los combina con los ficheros
    bibliotecas en un único fichero ejecutable.             de biblioteca que sean necesarios y crea un
                                                            fichero ejecutable.

                                                           Una vez terminada la fase de enlazado, ya
                                                            podremos ejecutar nuestro programa
P ROCESO                      DE COMPILACION


              •Editar el programa fuente
              •El compilador se ejecuta
              •Se obtiene el programa objeto
Compilacion




            • El linkediior se ejecuta
Linkedición • Se obtiene el programa ejecutable



              • el programa ejecutable puede
 Ejecución      procesarse solo
E RRORES

Los errores de programación pueden clasificarse en varios tipos, dependiendo de la
      fase en que se presenten.

     Errores de sintaxis: son errores en el programa fuente. Pueden
      deberse a palabras reservadas mal escritas, expresiones erróneas o
      incompletas, variables que no existen, etc. Los errores de sintaxis se
      detectan en la fase de compilación. El compilador, además de
      generar el código objeto, nos dará una lista de errores de sintaxis.
      De hecho nos dará sólo una cosa o la otra, ya que si hay errores no
      es posible generar un código objeto.

     Avisos: además de errores, el compilador puede dar también avisos
      (warnings). Los avisos son errores, pero no lo suficientemente
      graves como para impedir la generación del código objeto. No
      obstante, es importante corregir estos errores, ya que ante un aviso
      el compilador tiene tomar decisiones, y estas no tienen por qué
      coincidir con lo que nosotros pretendemos hacer, ya se basan en las
      directivas que los creadores del compilador decidieron durante la
      creación del compilador.
E RRORES

   Errores de enlazado: el programa enlazador también puede encontrar
    errores. Normalmente se refieren a funciones que no están definidas en
    ninguno de los ficheros objetos ni en las bibliotecas. Puede que hayamos
    olvidado incluir alguna biblioteca, o algún fichero objeto, o puede que
    hayamos olvidado definir alguna función o variable, o lo hayamos hecho mal.

   Errores de ejecución: incluso después de obtener un fichero ejecutable, es
    posible que se produzcan errores. En el caso de los errores de ejecución
    normalmente no obtendremos mensajes de error, sino que simplemente el
    programa terminará bruscamente. Estos errores son más difíciles de detectar
    y corregir. Existen programas auxiliares para buscar estos errores, son los
    llamados depuradores (debuggers). Estos programas permiten detener la
    ejecución de nuestros programas, inspeccionar variables y ejecutar nuestro
    programa paso a paso (instrucción a instrucción). Esto resulta útil para
    detectar excepciones, errores sutiles, y fallos que se presentan dependiendo
    de circunstancias distintas.

   Errores de diseño: finalmente los errores más difíciles de corregir y prevenir.
    Si nos hemos equivocado al diseñar nuestro algoritmo, no habrá ningún
    programa que nos pueda ayudar a corregir los nuestros. Contra estos errores
    sólo cabe practicar y pensar.
E NTORNOS                           DEL C ++


   usar algún IDE (Entorno de Desarrollo Integrado), como Dev-C++ de
    Bloodshed o Code::Blocks para crear programas en modo consola.

   Los programas de Windows tienen dos modos de cara al usuario:

        El modo consola simula el funcionamiento de una ventana MS-DOS,
         trabaja en modo de texto, es decir, la ventana es una especie de tabla
         en la que cada casilla sólo puede contener un carácter. El modo consola
         de Windows no permite usar gráficos de alta resolución. Pero esto no
         es una gran pérdida, pues como veremos, ni C ni C++ incluyen manejo
         de gráficos de alta resolución. Esto se hace mediante bibliotecas
         externas no estándar.

        El otro modo es el GUI, o Interfaz Gráfico de Usuario. Es el modo
         tradicional de los programas de Windows, con ventanas, menús,
         iconos, etc. La creación de este tipo de programas se explica en otro
         curso de este mismo sitio, y requiere el conocimiento de la biblioteca
         de funciones Win API32.
P ROPÓSITO             DE    C    Y   C++


   Tanto C como C++ son lenguajes de
    programación de propósito general. Todo puede
    programarse con ellos, desde sistemas
    operativos y compiladores hasta aplicaciones de
    bases de datos y procesadores de texto, pasando
    por juegos, aplicaciones a medida, etc.

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (19)

Compiladores
CompiladoresCompiladores
Compiladores
 
Compilador: DEFINICIÓN
Compilador: DEFINICIÓNCompilador: DEFINICIÓN
Compilador: DEFINICIÓN
 
Tarea3
Tarea3 Tarea3
Tarea3
 
Procesadores de Lenguajes
Procesadores de LenguajesProcesadores de Lenguajes
Procesadores de Lenguajes
 
Mipag web
Mipag webMipag web
Mipag web
 
Python
PythonPython
Python
 
Cargadores y ligadores
Cargadores y ligadoresCargadores y ligadores
Cargadores y ligadores
 
Informatik
InformatikInformatik
Informatik
 
Traductores de lenguajes
Traductores   de    lenguajesTraductores   de    lenguajes
Traductores de lenguajes
 
Compiladores iswi (parte 2)
Compiladores iswi (parte 2)Compiladores iswi (parte 2)
Compiladores iswi (parte 2)
 
Los compiladores erika y carolina
Los compiladores erika y carolinaLos compiladores erika y carolina
Los compiladores erika y carolina
 
Conceptos De Compilador
Conceptos De CompiladorConceptos De Compilador
Conceptos De Compilador
 
Manual de python
Manual de pythonManual de python
Manual de python
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
CONSULTA
CONSULTACONSULTA
CONSULTA
 
1.4 ensambladores y compiladores
1.4 ensambladores y compiladores1.4 ensambladores y compiladores
1.4 ensambladores y compiladores
 
Tareasol
TareasolTareasol
Tareasol
 
Presentacion de procesadores de lenguajes
Presentacion de procesadores de lenguajesPresentacion de procesadores de lenguajes
Presentacion de procesadores de lenguajes
 
Entorno Easy Code
Entorno Easy CodeEntorno Easy Code
Entorno Easy Code
 

Andere mochten auch

3.tecnicas de algoritmación
3.tecnicas de algoritmación3.tecnicas de algoritmación
3.tecnicas de algoritmaciónMarina Vintimilla
 
Complilacion en c++ flicker.jlhgg
Complilacion en c++   flicker.jlhggComplilacion en c++   flicker.jlhgg
Complilacion en c++ flicker.jlhggflickerjlhgg
 
Simulador carrera de caballos desarrollado en C++
Simulador carrera de caballos desarrollado en C++Simulador carrera de caballos desarrollado en C++
Simulador carrera de caballos desarrollado en C++Santiago Sarmiento
 
Proceso de Compilacion
Proceso de CompilacionProceso de Compilacion
Proceso de Compilacionguest9a91e2
 
Ejemplos de programación Code Blocks
Ejemplos de programación Code BlocksEjemplos de programación Code Blocks
Ejemplos de programación Code BlocksJuan Diego Morillo
 
¿Cómo ejecutar un programa en C++?
¿Cómo ejecutar un programa en C++?¿Cómo ejecutar un programa en C++?
¿Cómo ejecutar un programa en C++?Typolis-ejecutando
 
Proceso de ejecucion de un programa en C++
Proceso de ejecucion de un programa en C++Proceso de ejecucion de un programa en C++
Proceso de ejecucion de un programa en C++tipolis1
 
Identificar la programación estructurada
Identificar la programación estructuradaIdentificar la programación estructurada
Identificar la programación estructuradaprofe.gguacaran
 
USO DE HERRAMIENTAS IDE VISUAL C++
USO DE HERRAMIENTAS IDE VISUAL C++USO DE HERRAMIENTAS IDE VISUAL C++
USO DE HERRAMIENTAS IDE VISUAL C++Luz Fa Calderòn
 
PROGRAMA UNIVERSITARIO DE ESTUDIOS ABIERTOS
PROGRAMA UNIVERSITARIO DE ESTUDIOS ABIERTOSPROGRAMA UNIVERSITARIO DE ESTUDIOS ABIERTOS
PROGRAMA UNIVERSITARIO DE ESTUDIOS ABIERTOSALFA-TRALL
 
Manual Code::Blocks lenguaje C++
Manual Code::Blocks lenguaje C++Manual Code::Blocks lenguaje C++
Manual Code::Blocks lenguaje C++Santiago Sarmiento
 

Andere mochten auch (20)

3.tecnicas de algoritmación
3.tecnicas de algoritmación3.tecnicas de algoritmación
3.tecnicas de algoritmación
 
2.tipos de varibales
2.tipos de varibales2.tipos de varibales
2.tipos de varibales
 
3 marco teorico
3 marco teorico3 marco teorico
3 marco teorico
 
1 introducción
1 introducción1 introducción
1 introducción
 
1 introducción
1 introducción1 introducción
1 introducción
 
4. lenguaje c++
4. lenguaje c++4. lenguaje c++
4. lenguaje c++
 
Complilacion en c++ flicker.jlhgg
Complilacion en c++   flicker.jlhggComplilacion en c++   flicker.jlhgg
Complilacion en c++ flicker.jlhgg
 
7. sentencias cíclicas
7. sentencias cíclicas7. sentencias cíclicas
7. sentencias cíclicas
 
Simulador carrera de caballos desarrollado en C++
Simulador carrera de caballos desarrollado en C++Simulador carrera de caballos desarrollado en C++
Simulador carrera de caballos desarrollado en C++
 
Proceso de Compilacion
Proceso de CompilacionProceso de Compilacion
Proceso de Compilacion
 
Ejemplos de programación Code Blocks
Ejemplos de programación Code BlocksEjemplos de programación Code Blocks
Ejemplos de programación Code Blocks
 
¿Cómo ejecutar un programa en C++?
¿Cómo ejecutar un programa en C++?¿Cómo ejecutar un programa en C++?
¿Cómo ejecutar un programa en C++?
 
Proceso de ejecucion de un programa en C++
Proceso de ejecucion de un programa en C++Proceso de ejecucion de un programa en C++
Proceso de ejecucion de un programa en C++
 
C++
C++C++
C++
 
Identificar la programación estructurada
Identificar la programación estructuradaIdentificar la programación estructurada
Identificar la programación estructurada
 
USO DE HERRAMIENTAS IDE VISUAL C++
USO DE HERRAMIENTAS IDE VISUAL C++USO DE HERRAMIENTAS IDE VISUAL C++
USO DE HERRAMIENTAS IDE VISUAL C++
 
PROGRAMA UNIVERSITARIO DE ESTUDIOS ABIERTOS
PROGRAMA UNIVERSITARIO DE ESTUDIOS ABIERTOSPROGRAMA UNIVERSITARIO DE ESTUDIOS ABIERTOS
PROGRAMA UNIVERSITARIO DE ESTUDIOS ABIERTOS
 
Etapas de compilacion
Etapas de compilacionEtapas de compilacion
Etapas de compilacion
 
C++ =)
C++ =)C++ =)
C++ =)
 
Manual Code::Blocks lenguaje C++
Manual Code::Blocks lenguaje C++Manual Code::Blocks lenguaje C++
Manual Code::Blocks lenguaje C++
 

Ähnlich wie 1.introduccion a la programación

Investigacion sobre traductor, interprete y compilador
Investigacion sobre traductor, interprete y compilador   Investigacion sobre traductor, interprete y compilador
Investigacion sobre traductor, interprete y compilador ADOLFOISAIASGARCIASI
 
Proceso para la obtención de un programa ejecutable
Proceso para la obtención de un programa ejecutableProceso para la obtención de un programa ejecutable
Proceso para la obtención de un programa ejecutableEdward Eliecer Silva Mejia
 
Terceraunidad 130505194734-phpapp01
Terceraunidad 130505194734-phpapp01Terceraunidad 130505194734-phpapp01
Terceraunidad 130505194734-phpapp01Victor Martinez
 
Compilador
CompiladorCompilador
Compiladorlalagtr
 
Traductores de lenguajes de programación
Traductores de lenguajes de programaciónTraductores de lenguajes de programación
Traductores de lenguajes de programaciónDaniela Brignolo
 
Compilador Funcionamiento
Compilador FuncionamientoCompilador Funcionamiento
Compilador FuncionamientoKriz Kozlov
 
Actividad 3
Actividad 3Actividad 3
Actividad 3maryr_
 
Trabajo de presentacion
Trabajo de presentacionTrabajo de presentacion
Trabajo de presentaciondodi1997
 
Materia unidad compiladores
Materia unidad compiladoresMateria unidad compiladores
Materia unidad compiladoresbachispasaca
 
Steven rios sanchez 9 a invicali
Steven rios sanchez 9 a invicaliSteven rios sanchez 9 a invicali
Steven rios sanchez 9 a invicalilalagtr
 
C:\fakepath\el software libre
C:\fakepath\el software libreC:\fakepath\el software libre
C:\fakepath\el software libreDanielita Lopez
 
C:\fakepath\el software libre
C:\fakepath\el software libreC:\fakepath\el software libre
C:\fakepath\el software libreDanielita Lopez
 
C:\fakepath\el software libre
C:\fakepath\el software libreC:\fakepath\el software libre
C:\fakepath\el software libreDLACGP
 
C:\fakepath\compilador
C:\fakepath\compiladorC:\fakepath\compilador
C:\fakepath\compiladorDLACGP
 
C:\fakepath\el software libre
C:\fakepath\el software libreC:\fakepath\el software libre
C:\fakepath\el software libreDanielita Lopez
 

Ähnlich wie 1.introduccion a la programación (20)

Investigacion sobre traductor, interprete y compilador
Investigacion sobre traductor, interprete y compilador   Investigacion sobre traductor, interprete y compilador
Investigacion sobre traductor, interprete y compilador
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Tercera unidad
Tercera unidadTercera unidad
Tercera unidad
 
Proceso para la obtención de un programa ejecutable
Proceso para la obtención de un programa ejecutableProceso para la obtención de un programa ejecutable
Proceso para la obtención de un programa ejecutable
 
Terceraunidad 130505194734-phpapp01
Terceraunidad 130505194734-phpapp01Terceraunidad 130505194734-phpapp01
Terceraunidad 130505194734-phpapp01
 
Compilador
CompiladorCompilador
Compilador
 
Ejecutables
EjecutablesEjecutables
Ejecutables
 
Traductores de lenguajes de programación
Traductores de lenguajes de programaciónTraductores de lenguajes de programación
Traductores de lenguajes de programación
 
Compilador Funcionamiento
Compilador FuncionamientoCompilador Funcionamiento
Compilador Funcionamiento
 
Actividad 3
Actividad 3Actividad 3
Actividad 3
 
Trabajo de presentacion
Trabajo de presentacionTrabajo de presentacion
Trabajo de presentacion
 
La programación
La programaciónLa programación
La programación
 
Algoritmos1
Algoritmos1Algoritmos1
Algoritmos1
 
Materia unidad compiladores
Materia unidad compiladoresMateria unidad compiladores
Materia unidad compiladores
 
Steven rios sanchez 9 a invicali
Steven rios sanchez 9 a invicaliSteven rios sanchez 9 a invicali
Steven rios sanchez 9 a invicali
 
C:\fakepath\el software libre
C:\fakepath\el software libreC:\fakepath\el software libre
C:\fakepath\el software libre
 
C:\fakepath\el software libre
C:\fakepath\el software libreC:\fakepath\el software libre
C:\fakepath\el software libre
 
C:\fakepath\el software libre
C:\fakepath\el software libreC:\fakepath\el software libre
C:\fakepath\el software libre
 
C:\fakepath\compilador
C:\fakepath\compiladorC:\fakepath\compilador
C:\fakepath\compilador
 
C:\fakepath\el software libre
C:\fakepath\el software libreC:\fakepath\el software libre
C:\fakepath\el software libre
 

1.introduccion a la programación

  • 2. C ONCEPTOS BASICOS  Fichero fuente y programa o código fuente Los programas C y C++ se escriben con la ayuda de un editor de textos del mismo modo que cualquier texto corriente. Los ficheros que contiene programas en C o C++ en forma de texto se conocen como ficheros fuente, y el texto del programa que contiene se conoce como programa fuente. Nosotros siempre escribiremos programas fuente y los guardaremos en ficheros fuente.
  • 3. I NTERPRETES  En un lenguaje interpretado, el programa está escrito en forma de texto, es el propio programa fuente. Este programa fuente es procesado por un programa externo, el intérprete, que traduce el programa, instrucción a instrucción, al tiempo que lo ejecuta.  En los lenguajes interpretados no existen programas ejecutables directamente por el ordenador. El intérprete traduce, en tiempo real, cada línea del programa fuente, cada vez que se quiere ejecutar el programa.
  • 4. COMPILADORES  El los lenguajes compilados el proceso de traducción sólo se hace una vez. El programa compilador toma como entrada el código fuente del programa, y da como salida un fichero que puede ser ejecutado por el ordenador directamente.  Una vez compilado, el programa ejecutable es autónomo, y ya no es necesario disponer del programa original ni del compilador para ejecutarlo.
  • 5. I NTERPRETES VS COMPILADORES  Los lenguajes interpretados son  desempeña el compilador, pero fácilmente modificables, ya que al contrario que con el necesitamos tener el el código intérprete, una vez ha hecho su fuente disponible en el trabajo, no es necesario que esté ordenador. En los compilados, presente para ejecutar el estos ficheros no son necesarios, programa. una vez compilados.  Estas dos  Los lenguajes interpretados características, lógicamente, hac necesitan un programa externo, en que los programas llamado intérprete o a veces compilados requieran menos máquina virtual, o framework. espacio de memoria que los Este programa actua como interpretados (si contamos el intermediario entre el fuente y espacio usado por el el sistema operativo. En los intérprete), y en general, los compilados ese papel lo compilados son más rápidos, ya que sólo se compilan una vez, y el tiempo dedicado a esa tarea no se suma al de ejecución.
  • 6. F ICHEROS OBJETO , CÓDIGO OBJETO Y COMPILADORES  Como hemos dicho antes, en los  Los compiladores son programas lenguajes compilados, los programas traductores, que leen un fichero de fuente no pueden ejecutarse. Son texto que contiene el programa ficheros de texto, pensados para que fuente y generan un fichero que los comprendan los seres contiene el código objeto. humanos, pero incomprensibles para los ordenadores.  El código objeto no suele tener ningún significado para los seres  Para conseguir un programa humanos, al menos para la mayoría ejecutable hay que seguir algunos de los humanos que conozco, y pasos. El primero es compilar o menos directamente. Además es traducir el programa fuente a su diferente para cada ordenador y para código objeto equivalente. Este es el cada sistema operativo. Por lo tanto trabajo que hacen los compiladores existen diferentes compiladores para de C y C++. Consiste en obtener un diferentes sistemas operativos y para fichero equivalente a nuestro cada tipo de ordenador. programa fuente comprensible para el ordenador, este fichero se conoce como fichero objeto, y su contenido como código objeto.
  • 7. L IBRERÍAS O BIBLIOTECAS  Junto con los compiladores de C y C++, se incluyen ciertos ficheros llamados bibliotecas. Las bibliotecas contienen el código objeto de muchos programas que permiten hacer cosas comunes, como leer el teclado, escribir en la pantalla, manejar números, realizar funciones matemáticas, etc.  Las bibliotecas están clasificadas por el tipo de trabajos que hacen, hay bibliotecas de entrada y salida, matemáticas, de manejo de memoria, de manejo de textos, etc.
  • 8. F ICHEROS EJECUTABLES Y ENLAZADORES  Hay que dar ciertas instrucciones al ordenador para que cargue en memoria el programa y los datos, y para que organice la memoria de modo  Cuando obtenemos el fichero objeto, aún no que se disponga de una pila de tamaño hemos terminado el proceso. El fichero objeto, a adecuado, etc. La pila es una zona de memoria pesar de ser comprensible para el ordenador, no que se usa para que el programa intercambie puede ser ejecutado. Hay varias razones para datos con otros programas o con otras partes del eso: propio programa. Veremos esto con más detalle durante el curso.  Nuestros programas usaran, en general, funciones que estarán incluidas en bibliotecas  No siempre obtendremos un fichero ejecutable externas, ya sean ANSI o no. Es necesario para el código que escribimos, a veces combinar nuestro fichero objeto con esas querremos crear ficheros de biblioteca, y en ese bibliotecas para obtener un ejecutable. caso el proceso será diferente.  Muy a menudo, nuestros programas estarán  Existe un programa que hace todas estas cosas, compuestos por varios ficheros fuente, y de cada se trata del "linker", o enlazador. El enlazador uno de ellos se obtendrá un fichero objeto. Es toma todos los ficheros objeto que componen necesario unir todos los ficheros objeto, más las nuestro programa, los combina con los ficheros bibliotecas en un único fichero ejecutable. de biblioteca que sean necesarios y crea un fichero ejecutable.  Una vez terminada la fase de enlazado, ya podremos ejecutar nuestro programa
  • 9. P ROCESO DE COMPILACION •Editar el programa fuente •El compilador se ejecuta •Se obtiene el programa objeto Compilacion • El linkediior se ejecuta Linkedición • Se obtiene el programa ejecutable • el programa ejecutable puede Ejecución procesarse solo
  • 10. E RRORES Los errores de programación pueden clasificarse en varios tipos, dependiendo de la fase en que se presenten.  Errores de sintaxis: son errores en el programa fuente. Pueden deberse a palabras reservadas mal escritas, expresiones erróneas o incompletas, variables que no existen, etc. Los errores de sintaxis se detectan en la fase de compilación. El compilador, además de generar el código objeto, nos dará una lista de errores de sintaxis. De hecho nos dará sólo una cosa o la otra, ya que si hay errores no es posible generar un código objeto.  Avisos: además de errores, el compilador puede dar también avisos (warnings). Los avisos son errores, pero no lo suficientemente graves como para impedir la generación del código objeto. No obstante, es importante corregir estos errores, ya que ante un aviso el compilador tiene tomar decisiones, y estas no tienen por qué coincidir con lo que nosotros pretendemos hacer, ya se basan en las directivas que los creadores del compilador decidieron durante la creación del compilador.
  • 11. E RRORES  Errores de enlazado: el programa enlazador también puede encontrar errores. Normalmente se refieren a funciones que no están definidas en ninguno de los ficheros objetos ni en las bibliotecas. Puede que hayamos olvidado incluir alguna biblioteca, o algún fichero objeto, o puede que hayamos olvidado definir alguna función o variable, o lo hayamos hecho mal.  Errores de ejecución: incluso después de obtener un fichero ejecutable, es posible que se produzcan errores. En el caso de los errores de ejecución normalmente no obtendremos mensajes de error, sino que simplemente el programa terminará bruscamente. Estos errores son más difíciles de detectar y corregir. Existen programas auxiliares para buscar estos errores, son los llamados depuradores (debuggers). Estos programas permiten detener la ejecución de nuestros programas, inspeccionar variables y ejecutar nuestro programa paso a paso (instrucción a instrucción). Esto resulta útil para detectar excepciones, errores sutiles, y fallos que se presentan dependiendo de circunstancias distintas.  Errores de diseño: finalmente los errores más difíciles de corregir y prevenir. Si nos hemos equivocado al diseñar nuestro algoritmo, no habrá ningún programa que nos pueda ayudar a corregir los nuestros. Contra estos errores sólo cabe practicar y pensar.
  • 12. E NTORNOS DEL C ++  usar algún IDE (Entorno de Desarrollo Integrado), como Dev-C++ de Bloodshed o Code::Blocks para crear programas en modo consola.  Los programas de Windows tienen dos modos de cara al usuario:  El modo consola simula el funcionamiento de una ventana MS-DOS, trabaja en modo de texto, es decir, la ventana es una especie de tabla en la que cada casilla sólo puede contener un carácter. El modo consola de Windows no permite usar gráficos de alta resolución. Pero esto no es una gran pérdida, pues como veremos, ni C ni C++ incluyen manejo de gráficos de alta resolución. Esto se hace mediante bibliotecas externas no estándar.  El otro modo es el GUI, o Interfaz Gráfico de Usuario. Es el modo tradicional de los programas de Windows, con ventanas, menús, iconos, etc. La creación de este tipo de programas se explica en otro curso de este mismo sitio, y requiere el conocimiento de la biblioteca de funciones Win API32.
  • 13. P ROPÓSITO DE C Y C++  Tanto C como C++ son lenguajes de programación de propósito general. Todo puede programarse con ellos, desde sistemas operativos y compiladores hasta aplicaciones de bases de datos y procesadores de texto, pasando por juegos, aplicaciones a medida, etc.