SlideShare uma empresa Scribd logo
1 de 6
UNIDAD 3
APLICAR LOS PRINCIPIOS DE
PROGRAMACION EN LA
SOLUCION DE PROBLEMAS
3.- Poner a punto el programa mediante el uso de un
editor de lenguaje de programación estructurado.
El lenguaje C se conoce como un lenguaje compilado. Existen dos tipos de
lenguaje: interpretados y compilados. Los interpretados son aquellos que
necesitan del código fuente para funcionar (Basic). Los compilados
convierten el código fuente en un fichero objeto y éste en un fichero
ejecutable. Este es el caso del lenguaje C. Podemos decir que el lenguaje C
es un lenguaje de nivel medio, pero muy versátil y eficiente, que revolucionó
las técnicas y estilo de programación, ya que combina elementos de
lenguaje de alto nivel con la funcionalidad del lenguaje ensamblador. Se
caracteriza por ser un lenguaje estructurado. el programa se divide en
módulos (funciones) independientes entre sí, que permite crear
procedimientos en bloques dentro de otros procedimientos. Sigue el
paradigma de la programación estructurada: Algoritmos + estructuras de
datos = programas El lenguaje C inicialmente fue creado para la
programación de: Sistemas operativos Intérpretes Editores Ensambladores
Compiladores Administradores de bases de datos. Actualmente, debido a
sus características, puede ser utilizado para todo tipo de programas. Hay
que destacar principalmente que el C es un lenguaje portable, que puede
utilizar el mismo código en diferentes equipos y sistemas informáticos: el
lenguaje es independiente de la arquitectura de cualquier maquina en
particular y del sistema operativo que se utiliza para desarrollar aplicaciones
portables. C es un lenguaje de programación de propósito general que
ofrece economía sintáctica, control de flujo y estructuras sencillas y un buen
conjunto de operadores. Por ser un lenguaje de nivel intermedio es sencillo
y no está especializado en ningún tipo de aplicación. Esto lo hace un
lenguaje potente, con un campo de aplicación ilimitado y sobre todo, se
aprende rápidamente. En poco tiempo, un programador puede utilizar la
totalidad del lenguaje. El lenguaje de programación de sistemas debido a su
utilidad para escribir compiladores y sistemas operativos, aunque de igual
forma se pueden desarrollar cualquier tipo de aplicación. C trabaja con tipos
de datos que son directamente tratables por el hardware de la mayoría de
computadoras actuales, como son los caracteres, números y direcciones.
Estos tipos de datos pueden ser manipulados por las operaciones
aritméticas que proporcionan las computadoras. No proporciona
mecanismos para tratar tipos de datos que no sean los básicos, debiendo
ser el programador el que los desarrolle.
Esto permite que el código generado sea muy eficiente y de ahí el éxito que
ha tenido como lenguaje de desarrollo de sistemas. Ello permite que el
lenguaje sea reducido y los compiladores de fácil implementación en
distintos sistemas. Por el contrario, estas carencias se compensan mediante
la inclusión de funciones de librería para realizar todas estas tareas, que
normalmente dependen del sistema operativo. Las instrucciones de control
de flujo de C son las habituales de la programación estructurada: IF, FOR,
WHILE, SWITCH - CASE, todas incluidas en su predecesor BCPL. C incluye
también punteros y funciones. Los argumentos de las funciones se pasan
por valor, esto es copiando su valor, lo cual hace que no se modifiquen los
valores de los argumentos en la llamada. Cuando se desea modificar los
argumentos en la llamada, éstos se pasan por referencia, es decir, se pasan
las direcciones de los argumentos. Por otra parte, cualquier función puede
ser llamada recursivamente. Una de las peculiaridades de C es su riqueza de
operadores. Puede decirse que prácticamente dispone de un operador para
cada una de las posibles operaciones en código máquina. Hay toda una serie
de operaciones que pueden hacerse con el lenguaje C, que realmente no
están incluidas en el compilador propiamente dicho, sino que las realiza un
preprocesador justo antes de cada compilación. Las dos más importantes
son #define (directriz de sustitución simbólica o de definición) e #include
(Directriz de inclusión en el fichero fuente). Finalmente, C, que ha sido
pensado para ser altamente transportable y para programar lo
improgramable, igual que otros lenguajes tiene sus inconvenientes: Carece
de instrucciones de entrada/salida, de instrucciones para manejo de cadenas
de caracteres, con lo que este trabajo queda para la librería de rutinas, con la
consiguiente pérdida de transportabilidad. La excesiva libertad en la
escritura de los programas puede llevar a errores en la programación que,
por ser correctos sintácticamente no se detectan a simple vista. Por otra
parte las precedencias de los operadores convierten a veces las expresiones
en pequeños rompecabezas. A pesar de todo, C ha demostrado ser un
lenguaje extremadamente eficaz y expresivo. Algunos de las C existentes
son: Quick C C++ Turbo C Turbo C ++ Borland C Borland C++ Microsoft C
3.1. Captura y edición del programa
las excepciones en programación, se ha de matizar en el concepto de qué
son las excepciones, vistas desde un punto de vista fuera y dentro del
mundo de la programación.
En el lenguaje humano, una excepción es un elemento excluyente de una
regla, y de forma convencional se ha extendido esta definición. En el
lenguaje máquina, una excepción se trata, de forma general, de algo que no
se espera que ocurra, pero que puede ocurrir, similar al tratamiento de
errores, pero de los errores en tiempo de ejecución.
A veces estas excepciones, para una máquina, no son casos que no
deberían estar contemplados, tal y como un programador se lo asigna, sino
que pueden ser indicadores para comprobar que realmente todo está
marchando bien o no.
En los programas de ordenador hechos en C existió durante mucho tiempo
la costumbre de usar el comando "goto" (también implementada en C++),
pero éste se ha ido eliminando progresivamente de casi todos y cada uno de
los códigos y programas que han ido surgiendo. El significado de la función
'goto' no forma parte del libro actual, pero se pueden buscar referencias por
internet donde se especifique con más detalle qué es.
Como una de las formas de control de errores más usuales era con goto, se
usaron otras variantes, como las aserciones de código (assertions, en
inglés) o, con la llegada de la programación orientada a objetos, de los
comandos try, catch y throw. Una excepción es un error que puede ocurrir
debido a una mala entrada por parte del usuario, un mal funcionamiento en
el hardware, un argumento inválido para un cálculo matemático, etc. Para
remediar esto, el programador debe estar atento y escribir los algoritmos
necesarios para evitar a toda costa que un error de excepción pueda hacer
que el programa se interrumpa de manera inesperada. C++ soporta una
forma más directa y fácil de ver tanto para el programador como para los
revisores del código en el manejo de excepciones que su símil en el C
estándar y esta consiste, tratándose del lenguaje C++, en el mecanismo try,
throw y catch.
La lógica del mecanismo mencionado consiste en:
Dentro de un bloque try se pretende evaluar una o más expresiones y si
dentro de dicho bloque se produce un algo que no se espera se lanza por
medio de throw una excepción, la misma que deberá ser capturada por un
catch específico.
Puesto que desde un bloque try pueden ser lanzados diferentes tipos de
errores de excepción es que puede haber más de un catch para capturar a
cada uno de los mismos.
Si desde un try se lanza una excepción y no existe el mecanismo catch para
tratar dicha excepción el programa se interumpirá abruptamente después de
haber pasado por todos los catchs que se hayan definido y de no haber
encontrado el adecuado.
Los tipos de excepciones lazados pueden ser de un tipo primitivo tal como:
int, float, char, etc. aunque normalmente las excepciones son lanzadas por
alguna clase escrita por el usuario o por una clase de las que vienen
incluidas con el compilador.
3.2. Compilar el programa Depurar el programa
Ejecutar el programa
Si se desea escribir un programa en C++ se debe ejecutar como mínimo los
siguientes pasos:
Escribir con un editor de texto plano un programa sintácticamente válido o
usar un entorno de desarrollo (IDE) apropiado para tal fin
Compilar el programa y asegurarse de que no han habido errores de
compilación
Ejecutar el programa y comprobar que no hay errores de ejecución
Este último paso es el más costoso, porque en programas grandes,
averiguar si hay o no un fallo prácticamente puede ser una tarea totémica.
Como ejemplo, si se desea escribir un archivo con el nombre hola.cpp y en
él escribir un programa con emacs, por ejemplo, que es un programa de
edición de textos, se puede, en Linux, ejecutar el siguiente comando:
Un Entorno de Desarrollo Integrado (IDE, por sus siglas en inglés) permite
editar, compilar, ejecutar y depurar programas de una forma cómoda y ágil.
En estas notas haremos mención a algunas de las posibilidades básicas de
uso del IDE Forte, de Sun
Microsystems.
EDICIÓN, COMPILACIÓN Y EJECUCIÓN DE PROGRAMAS
Su uso es como el de cualquier editor de textos convencional, aunque
incluye alguna herramienta de utilidad para el programador.
1.1 Autoformato de código
Resulta de gran utilidad el formato automático de código: a medida que se
va escribiendo el programa, el editor reconoce las diferentes estructuras,
resaltando las palabras clave de Java, realizando la tabulación
automáticamente o señalando los
símbolos de apertura y cierre correspondientes a {,.}, (, ), [, ], .... Si en un
momento dado se pierde el formato del código, puede recuperarse
automáticamente mediante el menú contextual

Mais conteúdo relacionado

Mais procurados

Diagramas de flujo
Diagramas de flujoDiagramas de flujo
Diagramas de flujocasdilacol
 
Resolver problemas con_una_computadora
Resolver problemas con_una_computadoraResolver problemas con_una_computadora
Resolver problemas con_una_computadoraJulioVizcarra5
 
Intropseint
IntropseintIntropseint
IntropseintTensor
 
Unidad2 130504213509-phpapp01
Unidad2 130504213509-phpapp01Unidad2 130504213509-phpapp01
Unidad2 130504213509-phpapp01Lesly Gonzalez
 
Unidad2 130504213509-phpapp01
Unidad2 130504213509-phpapp01Unidad2 130504213509-phpapp01
Unidad2 130504213509-phpapp01Lesly Gonzalez
 
Estructuras de control en la programación.
Estructuras de control en la programación.Estructuras de control en la programación.
Estructuras de control en la programación.Jesus Freites
 
Desarrollo de la consulta algoritmos
Desarrollo de la consulta algoritmosDesarrollo de la consulta algoritmos
Desarrollo de la consulta algoritmosJuanes Garzon
 
Programación estructurada presentación
Programación estructurada presentaciónProgramación estructurada presentación
Programación estructurada presentaciónIvarra
 

Mais procurados (14)

Diagramas de flujo
Diagramas de flujoDiagramas de flujo
Diagramas de flujo
 
Resolver problemas con_una_computadora
Resolver problemas con_una_computadoraResolver problemas con_una_computadora
Resolver problemas con_una_computadora
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
 
Unidad 2
Unidad 2Unidad 2
Unidad 2
 
Unidad 2 margie
Unidad 2 margieUnidad 2 margie
Unidad 2 margie
 
Intropseint
IntropseintIntropseint
Intropseint
 
Unidad2 130504213509-phpapp01
Unidad2 130504213509-phpapp01Unidad2 130504213509-phpapp01
Unidad2 130504213509-phpapp01
 
Unidad2 130504213509-phpapp01
Unidad2 130504213509-phpapp01Unidad2 130504213509-phpapp01
Unidad2 130504213509-phpapp01
 
Estructuras de control en la programación.
Estructuras de control en la programación.Estructuras de control en la programación.
Estructuras de control en la programación.
 
DisenoDiseño
DisenoDiseñoDisenoDiseño
DisenoDiseño
 
Conceptos sobre algoritmos
Conceptos sobre algoritmosConceptos sobre algoritmos
Conceptos sobre algoritmos
 
Desarrollo de la consulta algoritmos
Desarrollo de la consulta algoritmosDesarrollo de la consulta algoritmos
Desarrollo de la consulta algoritmos
 
Programación estructurada presentación
Programación estructurada presentaciónProgramación estructurada presentación
Programación estructurada presentación
 
Laura Michell♥
Laura Michell♥Laura Michell♥
Laura Michell♥
 

Destaque

Naturales trabajo
Naturales trabajoNaturales trabajo
Naturales trabajoelenasegpi
 
Dennis_Paul_ClumpedVein (2)
Dennis_Paul_ClumpedVein (2)Dennis_Paul_ClumpedVein (2)
Dennis_Paul_ClumpedVein (2)Daniel Myhill
 
Czy to już pora na podwyżki cen gazu
Czy to już pora na podwyżki cen gazuCzy to już pora na podwyżki cen gazu
Czy to już pora na podwyżki cen gazuRobert Szymczak
 
R e h a m m o u s s a
R e h a m  m o u s s aR e h a m  m o u s s a
R e h a m m o u s s aReham Moussa
 
Archstones property solutions total cost implications in buying a home
Archstones property solutions  total cost implications in buying a homeArchstones property solutions  total cost implications in buying a home
Archstones property solutions total cost implications in buying a homeArchstones property solutions
 
Policy_Review_Report_April15_final
Policy_Review_Report_April15_finalPolicy_Review_Report_April15_final
Policy_Review_Report_April15_finalRichard Dilay
 
CED340MiniUnitfinalpasteintohere
CED340MiniUnitfinalpasteintohereCED340MiniUnitfinalpasteintohere
CED340MiniUnitfinalpasteintohereMeghan Wiacek
 
Next Generation Integrated Treasury and Trading for Energy and Commodity Comp...
Next Generation Integrated Treasury and Trading for Energy and Commodity Comp...Next Generation Integrated Treasury and Trading for Energy and Commodity Comp...
Next Generation Integrated Treasury and Trading for Energy and Commodity Comp...CTRM Center
 
A próxima geração de Seguros e a Internet das Coisas
A próxima geração de Seguros e a Internet das CoisasA próxima geração de Seguros e a Internet das Coisas
A próxima geração de Seguros e a Internet das CoisasFernando Nogueira Cesar
 
Acute bacterial (Pyogenic) meningitis - Dr. S. Srinivasan, Professor of Pedi...
Acute bacterial (Pyogenic)  meningitis - Dr. S. Srinivasan, Professor of Pedi...Acute bacterial (Pyogenic)  meningitis - Dr. S. Srinivasan, Professor of Pedi...
Acute bacterial (Pyogenic) meningitis - Dr. S. Srinivasan, Professor of Pedi...pediatricsmgmcri
 
Jornada sobre violencia escolar - Inst. SUMMA
Jornada sobre violencia escolar - Inst. SUMMAJornada sobre violencia escolar - Inst. SUMMA
Jornada sobre violencia escolar - Inst. SUMMAsummasecundario
 
Presentacion nucleo e marketing
Presentacion nucleo e marketingPresentacion nucleo e marketing
Presentacion nucleo e marketingandhiieamaya
 
TIS Talks Launch (Spanish) - July 23, 2012
TIS Talks Launch (Spanish) - July 23, 2012TIS Talks Launch (Spanish) - July 23, 2012
TIS Talks Launch (Spanish) - July 23, 2012tistalks
 
The met live in hd (final)
The met live in hd (final)The met live in hd (final)
The met live in hd (final)Pedro_Grases
 

Destaque (20)

Naturales trabajo
Naturales trabajoNaturales trabajo
Naturales trabajo
 
Dennis_Paul_ClumpedVein (2)
Dennis_Paul_ClumpedVein (2)Dennis_Paul_ClumpedVein (2)
Dennis_Paul_ClumpedVein (2)
 
Czy to już pora na podwyżki cen gazu
Czy to już pora na podwyżki cen gazuCzy to już pora na podwyżki cen gazu
Czy to już pora na podwyżki cen gazu
 
R e h a m m o u s s a
R e h a m  m o u s s aR e h a m  m o u s s a
R e h a m m o u s s a
 
Archstones property solutions total cost implications in buying a home
Archstones property solutions  total cost implications in buying a homeArchstones property solutions  total cost implications in buying a home
Archstones property solutions total cost implications in buying a home
 
Policy_Review_Report_April15_final
Policy_Review_Report_April15_finalPolicy_Review_Report_April15_final
Policy_Review_Report_April15_final
 
CED340MiniUnitfinalpasteintohere
CED340MiniUnitfinalpasteintohereCED340MiniUnitfinalpasteintohere
CED340MiniUnitfinalpasteintohere
 
Next Generation Integrated Treasury and Trading for Energy and Commodity Comp...
Next Generation Integrated Treasury and Trading for Energy and Commodity Comp...Next Generation Integrated Treasury and Trading for Energy and Commodity Comp...
Next Generation Integrated Treasury and Trading for Energy and Commodity Comp...
 
A próxima geração de Seguros e a Internet das Coisas
A próxima geração de Seguros e a Internet das CoisasA próxima geração de Seguros e a Internet das Coisas
A próxima geração de Seguros e a Internet das Coisas
 
Acute bacterial (Pyogenic) meningitis - Dr. S. Srinivasan, Professor of Pedi...
Acute bacterial (Pyogenic)  meningitis - Dr. S. Srinivasan, Professor of Pedi...Acute bacterial (Pyogenic)  meningitis - Dr. S. Srinivasan, Professor of Pedi...
Acute bacterial (Pyogenic) meningitis - Dr. S. Srinivasan, Professor of Pedi...
 
Jornada sobre violencia escolar - Inst. SUMMA
Jornada sobre violencia escolar - Inst. SUMMAJornada sobre violencia escolar - Inst. SUMMA
Jornada sobre violencia escolar - Inst. SUMMA
 
Haushalt 2012
Haushalt 2012Haushalt 2012
Haushalt 2012
 
Presentacion nucleo e marketing
Presentacion nucleo e marketingPresentacion nucleo e marketing
Presentacion nucleo e marketing
 
Como buscar en internet
Como buscar en internetComo buscar en internet
Como buscar en internet
 
Sonido dig
Sonido digSonido dig
Sonido dig
 
TIS Talks Launch (Spanish) - July 23, 2012
TIS Talks Launch (Spanish) - July 23, 2012TIS Talks Launch (Spanish) - July 23, 2012
TIS Talks Launch (Spanish) - July 23, 2012
 
Images!
Images! Images!
Images!
 
The met live in hd (final)
The met live in hd (final)The met live in hd (final)
The met live in hd (final)
 
Compliance
ComplianceCompliance
Compliance
 
Lo que hace nuestro cerebro
Lo que hace nuestro cerebroLo que hace nuestro cerebro
Lo que hace nuestro cerebro
 

Semelhante a Programación C lenguaje

Semelhante a Programación C lenguaje (20)

Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Introducción a Programación I (Clase1).pptx
Introducción a Programación I (Clase1).pptxIntroducción a Programación I (Clase1).pptx
Introducción a Programación I (Clase1).pptx
 
TEMA 01 PROGRAMACION .pdf
TEMA 01 PROGRAMACION .pdfTEMA 01 PROGRAMACION .pdf
TEMA 01 PROGRAMACION .pdf
 
Programación
ProgramaciónProgramación
Programación
 
Taller saberes previos
Taller saberes previosTaller saberes previos
Taller saberes previos
 
Lenguajes de programacion
Lenguajes de programacionLenguajes de programacion
Lenguajes de programacion
 
Presentation de Lenguaje C 3103.pptx
Presentation de Lenguaje C 3103.pptxPresentation de Lenguaje C 3103.pptx
Presentation de Lenguaje C 3103.pptx
 
presentacion I BTP
presentacion I BTPpresentacion I BTP
presentacion I BTP
 
Programación
ProgramaciónProgramación
Programación
 
Unidad 3
Unidad 3Unidad 3
Unidad 3
 
Ts101924450
Ts101924450Ts101924450
Ts101924450
 
BRANDON VELASQUEZ
BRANDON VELASQUEZBRANDON VELASQUEZ
BRANDON VELASQUEZ
 
Ts101924450
Ts101924450Ts101924450
Ts101924450
 
QUE ES PROGRAMACION DE SISTEMAS
QUE ES PROGRAMACION DE SISTEMASQUE ES PROGRAMACION DE SISTEMAS
QUE ES PROGRAMACION DE SISTEMAS
 
Programcion
ProgramcionProgramcion
Programcion
 
Programacion estructurada
Programacion estructuradaProgramacion estructurada
Programacion estructurada
 
Poner a punto mediante el uso de un editor de lenguaje de programacion
Poner a punto mediante el uso de un editor de lenguaje de programacionPoner a punto mediante el uso de un editor de lenguaje de programacion
Poner a punto mediante el uso de un editor de lenguaje de programacion
 
Lenguaje C
Lenguaje CLenguaje C
Lenguaje C
 
Lenguaje de programacion
Lenguaje de programacionLenguaje de programacion
Lenguaje de programacion
 
Introduccion a los lenguajes de programacion
Introduccion a los lenguajes de programacionIntroduccion a los lenguajes de programacion
Introduccion a los lenguajes de programacion
 

Mais de Mariela_Guerrero (20)

Unidad 2
Unidad 2Unidad 2
Unidad 2
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Unidad 1
Unidad 1Unidad 1
Unidad 1
 
Unidad 6 gaem
Unidad 6 gaemUnidad 6 gaem
Unidad 6 gaem
 
Practica 28
Practica 28Practica 28
Practica 28
 
Practica 30
Practica 30Practica 30
Practica 30
 
Practica 29.1
Practica 29.1Practica 29.1
Practica 29.1
 
Unidad 7 gaem
Unidad 7 gaemUnidad 7 gaem
Unidad 7 gaem
 
Practica 25
Practica 25Practica 25
Practica 25
 
Practica 24
Practica 24Practica 24
Practica 24
 
Practica 23
Practica 23Practica 23
Practica 23
 
Practica 27
Practica 27Practica 27
Practica 27
 
Practica 26
Practica 26Practica 26
Practica 26
 
Practica 25
Practica 25Practica 25
Practica 25
 
Practica 22
Practica 22Practica 22
Practica 22
 
Cuestionario[1]
Cuestionario[1]Cuestionario[1]
Cuestionario[1]
 
Practica 5[1]
Practica 5[1]Practica 5[1]
Practica 5[1]
 
Practica 4
Practica 4Practica 4
Practica 4
 

Programación C lenguaje

  • 1. UNIDAD 3 APLICAR LOS PRINCIPIOS DE PROGRAMACION EN LA SOLUCION DE PROBLEMAS 3.- Poner a punto el programa mediante el uso de un editor de lenguaje de programación estructurado. El lenguaje C se conoce como un lenguaje compilado. Existen dos tipos de lenguaje: interpretados y compilados. Los interpretados son aquellos que necesitan del código fuente para funcionar (Basic). Los compilados convierten el código fuente en un fichero objeto y éste en un fichero
  • 2. ejecutable. Este es el caso del lenguaje C. Podemos decir que el lenguaje C es un lenguaje de nivel medio, pero muy versátil y eficiente, que revolucionó las técnicas y estilo de programación, ya que combina elementos de lenguaje de alto nivel con la funcionalidad del lenguaje ensamblador. Se caracteriza por ser un lenguaje estructurado. el programa se divide en módulos (funciones) independientes entre sí, que permite crear procedimientos en bloques dentro de otros procedimientos. Sigue el paradigma de la programación estructurada: Algoritmos + estructuras de datos = programas El lenguaje C inicialmente fue creado para la programación de: Sistemas operativos Intérpretes Editores Ensambladores Compiladores Administradores de bases de datos. Actualmente, debido a sus características, puede ser utilizado para todo tipo de programas. Hay que destacar principalmente que el C es un lenguaje portable, que puede utilizar el mismo código en diferentes equipos y sistemas informáticos: el lenguaje es independiente de la arquitectura de cualquier maquina en particular y del sistema operativo que se utiliza para desarrollar aplicaciones portables. C es un lenguaje de programación de propósito general que ofrece economía sintáctica, control de flujo y estructuras sencillas y un buen conjunto de operadores. Por ser un lenguaje de nivel intermedio es sencillo y no está especializado en ningún tipo de aplicación. Esto lo hace un lenguaje potente, con un campo de aplicación ilimitado y sobre todo, se aprende rápidamente. En poco tiempo, un programador puede utilizar la totalidad del lenguaje. El lenguaje de programación de sistemas debido a su utilidad para escribir compiladores y sistemas operativos, aunque de igual forma se pueden desarrollar cualquier tipo de aplicación. C trabaja con tipos de datos que son directamente tratables por el hardware de la mayoría de computadoras actuales, como son los caracteres, números y direcciones. Estos tipos de datos pueden ser manipulados por las operaciones aritméticas que proporcionan las computadoras. No proporciona mecanismos para tratar tipos de datos que no sean los básicos, debiendo ser el programador el que los desarrolle. Esto permite que el código generado sea muy eficiente y de ahí el éxito que ha tenido como lenguaje de desarrollo de sistemas. Ello permite que el lenguaje sea reducido y los compiladores de fácil implementación en distintos sistemas. Por el contrario, estas carencias se compensan mediante la inclusión de funciones de librería para realizar todas estas tareas, que normalmente dependen del sistema operativo. Las instrucciones de control de flujo de C son las habituales de la programación estructurada: IF, FOR,
  • 3. WHILE, SWITCH - CASE, todas incluidas en su predecesor BCPL. C incluye también punteros y funciones. Los argumentos de las funciones se pasan por valor, esto es copiando su valor, lo cual hace que no se modifiquen los valores de los argumentos en la llamada. Cuando se desea modificar los argumentos en la llamada, éstos se pasan por referencia, es decir, se pasan las direcciones de los argumentos. Por otra parte, cualquier función puede ser llamada recursivamente. Una de las peculiaridades de C es su riqueza de operadores. Puede decirse que prácticamente dispone de un operador para cada una de las posibles operaciones en código máquina. Hay toda una serie de operaciones que pueden hacerse con el lenguaje C, que realmente no están incluidas en el compilador propiamente dicho, sino que las realiza un preprocesador justo antes de cada compilación. Las dos más importantes son #define (directriz de sustitución simbólica o de definición) e #include (Directriz de inclusión en el fichero fuente). Finalmente, C, que ha sido pensado para ser altamente transportable y para programar lo improgramable, igual que otros lenguajes tiene sus inconvenientes: Carece de instrucciones de entrada/salida, de instrucciones para manejo de cadenas de caracteres, con lo que este trabajo queda para la librería de rutinas, con la consiguiente pérdida de transportabilidad. La excesiva libertad en la escritura de los programas puede llevar a errores en la programación que, por ser correctos sintácticamente no se detectan a simple vista. Por otra parte las precedencias de los operadores convierten a veces las expresiones en pequeños rompecabezas. A pesar de todo, C ha demostrado ser un lenguaje extremadamente eficaz y expresivo. Algunos de las C existentes son: Quick C C++ Turbo C Turbo C ++ Borland C Borland C++ Microsoft C 3.1. Captura y edición del programa las excepciones en programación, se ha de matizar en el concepto de qué son las excepciones, vistas desde un punto de vista fuera y dentro del mundo de la programación. En el lenguaje humano, una excepción es un elemento excluyente de una regla, y de forma convencional se ha extendido esta definición. En el lenguaje máquina, una excepción se trata, de forma general, de algo que no se espera que ocurra, pero que puede ocurrir, similar al tratamiento de errores, pero de los errores en tiempo de ejecución. A veces estas excepciones, para una máquina, no son casos que no deberían estar contemplados, tal y como un programador se lo asigna, sino
  • 4. que pueden ser indicadores para comprobar que realmente todo está marchando bien o no. En los programas de ordenador hechos en C existió durante mucho tiempo la costumbre de usar el comando "goto" (también implementada en C++), pero éste se ha ido eliminando progresivamente de casi todos y cada uno de los códigos y programas que han ido surgiendo. El significado de la función 'goto' no forma parte del libro actual, pero se pueden buscar referencias por internet donde se especifique con más detalle qué es. Como una de las formas de control de errores más usuales era con goto, se usaron otras variantes, como las aserciones de código (assertions, en inglés) o, con la llegada de la programación orientada a objetos, de los comandos try, catch y throw. Una excepción es un error que puede ocurrir debido a una mala entrada por parte del usuario, un mal funcionamiento en el hardware, un argumento inválido para un cálculo matemático, etc. Para remediar esto, el programador debe estar atento y escribir los algoritmos necesarios para evitar a toda costa que un error de excepción pueda hacer que el programa se interrumpa de manera inesperada. C++ soporta una forma más directa y fácil de ver tanto para el programador como para los revisores del código en el manejo de excepciones que su símil en el C estándar y esta consiste, tratándose del lenguaje C++, en el mecanismo try, throw y catch. La lógica del mecanismo mencionado consiste en: Dentro de un bloque try se pretende evaluar una o más expresiones y si dentro de dicho bloque se produce un algo que no se espera se lanza por medio de throw una excepción, la misma que deberá ser capturada por un catch específico. Puesto que desde un bloque try pueden ser lanzados diferentes tipos de errores de excepción es que puede haber más de un catch para capturar a cada uno de los mismos. Si desde un try se lanza una excepción y no existe el mecanismo catch para tratar dicha excepción el programa se interumpirá abruptamente después de haber pasado por todos los catchs que se hayan definido y de no haber encontrado el adecuado. Los tipos de excepciones lazados pueden ser de un tipo primitivo tal como: int, float, char, etc. aunque normalmente las excepciones son lanzadas por
  • 5. alguna clase escrita por el usuario o por una clase de las que vienen incluidas con el compilador. 3.2. Compilar el programa Depurar el programa Ejecutar el programa Si se desea escribir un programa en C++ se debe ejecutar como mínimo los siguientes pasos: Escribir con un editor de texto plano un programa sintácticamente válido o usar un entorno de desarrollo (IDE) apropiado para tal fin Compilar el programa y asegurarse de que no han habido errores de compilación Ejecutar el programa y comprobar que no hay errores de ejecución Este último paso es el más costoso, porque en programas grandes, averiguar si hay o no un fallo prácticamente puede ser una tarea totémica. Como ejemplo, si se desea escribir un archivo con el nombre hola.cpp y en él escribir un programa con emacs, por ejemplo, que es un programa de edición de textos, se puede, en Linux, ejecutar el siguiente comando: Un Entorno de Desarrollo Integrado (IDE, por sus siglas en inglés) permite editar, compilar, ejecutar y depurar programas de una forma cómoda y ágil. En estas notas haremos mención a algunas de las posibilidades básicas de uso del IDE Forte, de Sun Microsystems. EDICIÓN, COMPILACIÓN Y EJECUCIÓN DE PROGRAMAS Su uso es como el de cualquier editor de textos convencional, aunque incluye alguna herramienta de utilidad para el programador. 1.1 Autoformato de código Resulta de gran utilidad el formato automático de código: a medida que se va escribiendo el programa, el editor reconoce las diferentes estructuras, resaltando las palabras clave de Java, realizando la tabulación automáticamente o señalando los
  • 6. símbolos de apertura y cierre correspondientes a {,.}, (, ), [, ], .... Si en un momento dado se pierde el formato del código, puede recuperarse automáticamente mediante el menú contextual