Manual de
Lenguaje de Programación C
ELABORADO POR
Zulma Angélica Argüello Matas
zulma.arguello1301@[Link]
GENERACIÓN DIGITAL
Manual de Lenguaje de Programación C
INTRODUCCIÓN
El presente manual se elaboró con la finalidad de
introducir en el manejo del programa C++, así como sus
aplicaciones y beneficios. Esperando orientar siempre al
alumno a su autogestión fomentando en él su curiosidad.
Contiene una gran variedad de ejemplos prácticos recopilados
de diferentes ejemplos en la web, libros de programación,
experiencia personal y profesional.
Todos los ejercicios que se encuentran aquí fueron
previamente compilados y ejecutados así que les puedo asegurar
su funcionamiento, aunque siempre es importante verificar la
codificación y la propia escritura del practicante.
Desde ya les deseo la mejor de las suertes en el
aprendizaje de C++.
Zulma Angélica Argüello Matas
Profesora de Informática
Instructora: Zulma Angélica Argüello Matas Página 2
Manual de Lenguaje de Programación C
En este manual se da a conocer al estudiante el lenguaje de programación C++. Se pretende
familiarizar al alumno con el entorno de desarrollo de aplicaciones para base de datos.
En la actualidad, el C++ es un lenguaje versátil, potente y general. Su éxito entre los
programadores profesionales le ha llevado a ocupar el primer puesto como herramienta de
desarrollo de aplicaciones. El C++ mantiene las ventajas del C en cuanto a riqueza de
operadores y expresiones, flexibilidad, concisión y eficiencia. Además, ha eliminado
algunas de las dificultades y limitaciones del C original. La evolución de C++ ha continuado
con la aparición de Java, un lenguaje creado simplificando algunas cosas de C++ y
añadiendo otras, que se utiliza para realizar aplicaciones en Internet.
Instructora: Zulma Angélica Argüello Matas Página 3
Manual de Lenguaje de Programación C
El lenguaje C fue creado por Denis Ritchie en 1972 en los laboratorios Bell. Este lenguaje
fue creado con el propósito de desarrollar programas pensando en el problema y no en la
arquitectura de la computadora. Sin embargo, C permite también comunicarse de manera
fluida con el sistema operativo a bajo nivel. He aquí su mayor potencial.
El lenguaje C es relativamente de bajo nivel, ya que permite especificar cada detalle de la
lógica de un programa para lograr la máxima eficacia de la computadora. Sin embargo, C
es también un lenguaje de alto nivel ya que permite ocultar los detalles de la arquitectura
de la computadora incrementando la eficiencia del programador.
Ventajas de C
Pequeño tamaño: El lenguaje C es realmente pequeño en cuanto a las palabras
reservadas con las que cuenta y la cantidad de operadores. Puedes escribir un compilador
con tan solo 256K (Chris Pappas y William Murray, 1993). En C no vas a encontrar
funciones incorporadas para manejo de cadenas, arrays ni otras estructuras de datos. En
su lugar, existen una serie de bibliotecas convenidas que prácticamente hacen parte del
lenguaje y que puedes agregar a tu programa en caso de ser necesarias.
Velocidad y eficiencia en memoria: Los programas realizados en C tienden a ser
extremadamente rápidos debido al tamaño propio del lenguaje, su sistema de ejecución
pequeño y su facilidad para interactuar con el hardware. La usencia de funciones
incorporadas también reduce la cantidad de memoria utilizada prescindiendo de funciones
que pueden no ser utilizadas en una aplicación en particular.
Ausencia de tipos estrictos: En un punto del programa una variable puede ser un
carácter y sin embargo obtener su representación entera en ASCII.
Lenguaje estructurado: Incluye las estructuras típicas de control que podríamos
encontrar en lenguajes de alto nivel como sentencias condicionales y repetitivas. También
permite manejar el ámbito de las variables.
Programación modular: En C podemos compilar solo aquellas partes del programa que
han cambiado. Esto es extremadamente importante cuando estamos compilando
programas realmente grandes.
Interfaz con lenguaje ensamblador: C permite una comunicación e integración fácil con
el lenguaje ensamblador para aquellos programas que necesitan una combinación de
rutinas de alto y bajo nivel.
Manipulación de bits: El lenguaje C proporciona un amplio conjunto de operadores para
la manipulación de bits debido a su origen arraigado a UNIX.
Variables puntero: C permite trabajar con punteros y realizar aritmética sobre ellos. Esto
permite obtener programas mucho más eficientes.
Portabilidad: Los programas en C permiten ser ejecutados en distintas computadoras con
distintos sistemas operativos.
Instructora: Zulma Angélica Argüello Matas Página 4
Manual de Lenguaje de Programación C
Bibliotecas de funciones: Existe una gran cantidad de bibliotecas de funciones
disponibles para las tareas más diversas tales como manejo de bases de datos, manejo
de ventanas, entrada de datos, etc.
Desventajas de C
Ausencia de tipos estrictos: Esta característica que aporta flexibilidad a C también es
una desventaja. Muchos lenguajes aportan funciones para convertir un tipo de dato a otro
y con esto evitar redondeos inesperados. Una variable de tipo char por ejemplo puede
convertirse en cualquier momento en una variable de tipo entero y viceversa.
Ausencia de verificación en tiempo de ejecución: Muchos problemas pueden pasar
desapercibidos debido a la ausencia de la verificación en tiempo de ejecución. C no nos
avisará por ejemplo si se excedieron los límites de un array.
Namespaces: C no soporta la separación de clases por espacios de nombres. Lo que
quiere decir que no puedes tener dos clases con el mismo nombre en tu proyecto.
Ausencia de manejo de excepciones: En C no existe un soporte nativo para el manejo
de excepciones. Las funciones devuelven un código de error cuando que debe ser
identificado por el programador en caso de error.
Ausencia de POO: C no soporta ninguno de los elementos de la programación orientada
a objetos. Un programa en C consiste en colecciones de funciones.
Cuándo utilizar C
Es recomendable utilizar C en proyectos en los cuáles el performance es realmente un
punto clave. Sin embargo, proyectos de gran complejidad podrían preferir C++ debido a la
mantenibilidad. C es actualmente preferido para el desarrollo de servidores web y
herramientas de shell en UNIX.
Diferencias entre C y C++
En el ámbito de la programación es muy frecuente encontrarse con los lenguajes C y C++,
ambos son los lenguajes de programación más utilizados para programación de bajo nivel
y sistemas embebidos es decir, sistemas que no corren en un ordenador sino en otro tipo
de dispositivo, ya que, otros lenguajes como Java han quitado a C y a C++ la posición
dominante que tenían en la programación de alto nivel.
Por lo tanto, en este artículo señalaremos las diferencias específicas que existen entre
estos dos lenguajes de programación, comenzando por sus definiciones y características.
Lenguaje C
C es un lenguaje de programación desarrollado por Dennis Ritchie en 1972 y basado en
el paradigma de programación estructurada. Este se presenta como un lenguaje de
propósito general que da al programador control total sobre sus programas, ya que,
permite la programación de bajo nivel. Esto quiere decir que, permite controlar
Instructora: Zulma Angélica Argüello Matas Página 5
Manual de Lenguaje de Programación C
directamente funcionalidades como el acceso a la memoria y otros recursos de
programación.
Al mismo tiempo, C proporciona estructuras de alto nivel que faciliten la programación de
sistemas grandes. Este lenguaje comenzó a usarse en la escritura del sistema operativo
Unix del que deriva Linux (Sistema Operativo que permite utilizar diversos programas
como: editores de texto, juegos, navegadores de Internet, etc.).
En 1978, con la publicación de “The C Programming Language” de Brian Kernigham y
Dennis Ritchie, el lenguaje de programación C alcanzó gran popularidad y se convirtió en
el lenguaje de referencia para la comunidad informática.
Algunas de las características definitorias de este lenguaje de programación son:
Los archivos de C se guardan con extensión c, ejemplo practica.c.
Deben utilizarse únicamente los operadores &&, || y !
Se utilizan las funciones printf y scanf para los flujos IO de entrada y salida.
No tiene soporte para la programación orientada a objetos.
Las bibliotecas en C terminan con .h (son headers) como por ejemplo math.h y
time.h.
Lenguaje C++
C++ es un lenguaje de programación creado por Bjarne Stroustrup durante la primera
mitad de la década de 1980, con el fin de dotar a C de mecanismos que permitieran usar
el paradigma de programación orientada a objetos, ya que, el lenguaje C no tenía soporte
para ello. Por ello, rápidamente logró sustituirlo. Su nombre inicial era C with Classes pero
posteriormente se agregó el simbolismo (++) para representar que se refería a C
incrementado.
En principio, C++ era totalmente compatible con C, es decir, cualquier programa escrito en
C era un programa válido también para C++, aunque no se daba el caso contrario. Esta
opción se diseñó con el propósito de permitir al programador mayor facilidad para la
adopción del nuevo lenguaje de programación orientada a objeto.
Algunas de las características de C++ son las siguientes:
Los archivos de C++ se guardan con extensión cpp (c plus plus), como por ejemplo
[Link].
Los conocidos operadores lógicos AND, OR y NOT pueden ser utilizados como
palabras en el lenguaje C++.
Se utiliza cout y cin como flujo de entrada y salida.
Tiene soporte para la programación orientada a objetos.
Las bibliotecas en C++ son headers, pero por convención, se elimina la terminación
‘.h’ y se agrega ‘c’ al principio como por ejemplo cmath y ctime.
En atención a lo señalado en las definiciones anteriores, se puede decir que, las principales
diferencias entre C y C++ son:
Instructora: Zulma Angélica Argüello Matas Página 6
Manual de Lenguaje de Programación C
Los archivos de C se guardan con extensión –c- mientras que los archivos de C++
se guardan con extensión –cpp- (c plus plus).
Los conocidos operadores lógicos AND, OR y NOT pueden ser utilizados como
palabras en el lenguaje C++ o como operadores mientras que en C deben utilizarse
únicamente los operadores &&, || y !.
En C se utilizan las funciones printf y scanf para los flujos IO de entrada y salida
mientras que en C++ se utiliza cout y cin como flujos de entrada y salida.
En el paradigma de programación orientada a objetos, se hace uso de Clases,
donde el lenguaje C no tiene soporte para ello mientras que C++ si lo tiene.
Las bibliotecas en C terminan con h mientras que para C++ se elimina la
terminación ‘.h’ y se agrega ‘c’ al principio, como por ejemplo cmath.
Si se desea programar mediante un lenguaje como el Lenguaje C, lo más recomendable
es utilizar un Entorno de Desarrollo Integrado (IDE), que es un software que agrupa
varias herramientas que contribuyen en el desarrollo de un programa informático y facilitan
la programación de software, entre esas herramientas destacan un Editor de Código
Fuente, un compilador, un depurador, un enlazados, entre otras. A continuación,
explicaremos cuáles son los mejores IDE para programar en C y C++, incluyendo algunas
definiciones.
¿Qué es un IDE?
En definitiva un IDE es más que un simple editor de texto, es una suite de componentes
o módulos que permiten no solo escribir código fuente, sino también generar con él un
programa ejecutable, aunque también es posible encontrar entornos de desarrollo
integrados, que no contienen un compilador incorporado en sí mismos, sin embargo, por
lo general pueden configurarse para trabajar en conjunto con uno de ellos, para así poder
producir un archivo ejecutable, a no ser que el lenguaje que se esté empleando no requiera
compilación.
Tanta es la simbiosis que se da entre algunos IDE y sus compiladores, que muchos
informáticos noveles, suelen confundir ambas cosas y la realidad es que se trata de
Instructora: Zulma Angélica Argüello Matas Página 7
Manual de Lenguaje de Programación C
programas distintos, pues el compilador es el software encargado de traducir (compilar)
el código fuente a lenguaje maquina (código binario), por lo tanto es una más de las
herramientas que integran un entorno de desarrollo.
En el caso del lenguaje C y su evolución orientada a objetos el C++, los compiladores
más conocidos son GCC (GNU Compiler Collection), MinGW (implementación de GCC
para Windows), los antiguos Turbo C y Turbo C++ que eran tanto compiladores como IDE
para el sistema operativo MS-DOS ya fueron descontinuados, siendo sustituidos por
C++Builder, y Visual C++ (que forma parte de Visual Studio).
Mejores IDE para programar en C y C++
Algunos de los compiladores mencionados anteriormente, pueden emplearse en
combinación con algunos de los IDE a continuación, otros ya poseen su propio compilador
incorporado. En cualquier caso, dentro de los mejores IDE para programar con C/C++,
destacamos los siguientes:
Dev-C++: Este emplea el compilador MinGW. Se trata de un software libre, sencillo, ligero
y eficiente, para la plataforma Windows.
Code::Blocks: Este es un software libre, multiplataforma. Code Blocks es una alternativa
a Dev-C++ y desarrollada mediante el propio lenguaje C++. Sus capacidades son bastante
buenas y es muy popular entre los nuevos programadores. Se puede encontrar separado
del compilado o la versión “mingw” que incluye g++ (GCC para C++).
Instructora: Zulma Angélica Argüello Matas Página 8
Manual de Lenguaje de Programación C
Visual C++: Posee editor de interfaces gráficas y una serie de asistentes que hacen muy
cómodo el proceso de desarrollo.
C++Builder: Esta es la opción desarrollada por Borland, es un software propietario y de
pago destinado a la plataforma Windows.
Eclipse: Su principal propósito es programar mediante Java, también es libre y
multiplataforma.
Instructora: Zulma Angélica Argüello Matas Página 9
Manual de Lenguaje de Programación C
MonoDevelop: Esta es una alternativa a Visual Studio, pero este IDE es multiplataforma
y de software libre. Posee un editor de interfaces gráficas que implementa la biblioteca
GTK y es compatible con el .Net Framework de Microsoft.
IDE para Mac
Xcode: Este es uno de los mejores IDE para programar en Mac con el compilador GCC e
Interface Builder.
IDE para Linux
KDevelop: Este software de desarrollo está destinado exclusivamente para la plataforma
GNU/Linux y otros sistemas Unix. No cuenta con un compilador propio por lo que requiere
de su integración con GCC.
Anjuta: Este software tiene como propósito principal utilizar herramientas proporcionadas
por GTK+ para desarrollar aplicaciones para el escritorio GNOME. Esta opción es propia
de los sistemas GNU/Linux y BSD.
Instructora: Zulma Angélica Argüello Matas Página 10