2. HISTORIAHISTORIA
CC es unes un lenguaje de programaciónlenguaje de programación creadocreado
enen 19721972 porpor Ken ThompsonKen Thompson yy
Dennis M. RitchieDennis M. Ritchie en losen los Laboratorios BellLaboratorios Bell
como evolución del anterior lenguajecomo evolución del anterior lenguaje BB, a, a
su vez basado en BCPL. Al igual que B, essu vez basado en BCPL. Al igual que B, es
un lenguaje orientado a la implementaciónun lenguaje orientado a la implementación
de Sistemas Operativos, concretamentede Sistemas Operativos, concretamente
Unix. C es apreciado por la eficiencia delUnix. C es apreciado por la eficiencia del
código que produce y es el lenguaje decódigo que produce y es el lenguaje de
programación más popular para crearprogramación más popular para crear
software de sistemas, aunque también sesoftware de sistemas, aunque también se
utiliza para crear aplicaciones.utiliza para crear aplicaciones.
3. CaracterísticasCaracterísticas
Un núcleo del lenguaje simple, conUn núcleo del lenguaje simple, con
funcionalidades añadidas importantes,funcionalidades añadidas importantes,
como funciones matemáticas y de manejocomo funciones matemáticas y de manejo
de ficheros, proporcionadas porde ficheros, proporcionadas por
bibliotecas.bibliotecas.
Es un lenguaje muy flexible que permiteEs un lenguaje muy flexible que permite
programar con múltiples estilos. Uno deprogramar con múltiples estilos. Uno de
los más empleados es el estructurado .los más empleados es el estructurado .
Un sistema de tipos que impideUn sistema de tipos que impide
operaciones sin sentido.operaciones sin sentido.
Acceso a memoria de bajo nivel medianteAcceso a memoria de bajo nivel mediante
el uso de punteros.el uso de punteros.
Un conjunto reducido de palabras clave.Un conjunto reducido de palabras clave.
4. Estructura de un programa en CEstructura de un programa en C
Todos losTodos los
programasprogramas
en Cen C
consisten enconsisten en
una o masuna o mas
funciones, lafunciones, la
única funciónúnica función
que debeque debe
estarestar
siempresiempre
presente es:presente es:
main()main()
<Comandos de preprocesador><Comandos de preprocesador>
<Definición de tipos><Definición de tipos>
<Prototipos de funciones><Prototipos de funciones>
<Variables globales><Variables globales>
<Funciones><Funciones>
Nota: <> puede o no ir,Nota: <> puede o no ir,
Cada función tiene la siguienteCada función tiene la siguiente
estructura:estructura:
<Tipo> Nombre de la<Tipo> Nombre de la
Función(<Declaración deFunción(<Declaración de
parámetros>)parámetros>)
{<Declaraciones locales>{<Declaraciones locales>
<Sentencias><Sentencias>
}}
5. Ejemplo 1Ejemplo 1
/* Programa : HOLA MUNDO *//* Programa : HOLA MUNDO */
#include <stdio.h>#include <stdio.h>
void main() {void main() {
printf ("nHola mundo");printf ("nHola mundo");
}}
6. BibliotecaBiblioteca
Es un conjunto de archivosEs un conjunto de archivos
pequeños, que contienen funcionespequeños, que contienen funciones
para llevar a cabo las tareaspara llevar a cabo las tareas
necesarias más comunes.necesarias más comunes.
Ejemplo:Ejemplo:
Las operaciones de E/S, funcionesLas operaciones de E/S, funciones
matemáticas,etc.matemáticas,etc.
7. EnlazadorEnlazador
Es un programa que enlaza funcionesEs un programa que enlaza funciones
compiladas por separado paracompiladas por separado para
producir un solo programa, tambiénproducir un solo programa, también
combina las funciones de lacombina las funciones de la
biblioteca estándar de C con elbiblioteca estándar de C con el
código que se haya escrito. Lascódigo que se haya escrito. Las
salida del enlazador es un programasalida del enlazador es un programa
ejecutable.ejecutable.
8. Compilación de un ProgramaCompilación de un Programa
1.-1.- Creación del Programa.Creación del Programa.(editor,(editor,
.c o .cpp).c o .cpp)
2.-2.- Compilación.Compilación. Comprobará si elComprobará si el
programa tiene algun error, elprograma tiene algun error, el
compilador traducirá el programacompilador traducirá el programa
fuente a lenguaje máquina,fuente a lenguaje máquina,
almacenándolo en un archivoalmacenándolo en un archivo
ejecutable.ejecutable.
3.- Enlazado del Programa3.- Enlazado del Programa
9. Programas LegiblesProgramas Legibles
Con un programa legible se consigue queCon un programa legible se consigue que
dicho programa sea fácil de comprender,dicho programa sea fácil de comprender,
corregir o modificar. Para lo cual se debecorregir o modificar. Para lo cual se debe
cumplir:cumplir:
Escribir el programa en formaEscribir el programa en forma
estructuradaestructurada
Escoger nombres de los identificadores deEscoger nombres de los identificadores de
funciones, variables y constantes,funciones, variables y constantes,
apropiadas de a cuerdo a sus función.apropiadas de a cuerdo a sus función.
Usar una sentencia por línea.Usar una sentencia por línea.
Poner comentariosPoner comentarios
Emplear líneas en blanco para separar lasEmplear líneas en blanco para separar las
funciones o bloques de código.funciones o bloques de código.
10. EL lenguaje C sigue el paradigma de laEL lenguaje C sigue el paradigma de la
programación estructurada:programación estructurada:
Algoritmos+estructuras de datos = programas.Algoritmos+estructuras de datos = programas.
Tipos de datos básicos (Estructuras):Tipos de datos básicos (Estructuras):
Entero: preciso y limitado en tamaño.Entero: preciso y limitado en tamaño.
Real: impreciso y limitado en tamaño.Real: impreciso y limitado en tamaño.
Lógico: valor de verdad.Lógico: valor de verdad.
Cadena: secuencia finita de caracteres.Cadena: secuencia finita de caracteres.
Lista: secuencia finita de datos enumerados.Lista: secuencia finita de datos enumerados.
Diccionario: secuencia finita de datos indexados.Diccionario: secuencia finita de datos indexados.
11. Elementos de un programa:Elementos de un programa:
Constantes: datos cuyo valor no cambia duranteConstantes: datos cuyo valor no cambia durante
la ejecución del programa.la ejecución del programa.
Variables: datos cuyo valor puede cambiarVariables: datos cuyo valor puede cambiar
durante ladurante la
ejecución del programa.ejecución del programa.
Expresiones: Combinación de operadores yExpresiones: Combinación de operadores y
operandos.operandos.
Operandos: constantes, variables u otrasOperandos: constantes, variables u otras
expresiones.expresiones.
Operadores: aritméticos, relacionales, lógicos yOperadores: aritméticos, relacionales, lógicos y
de tipo de dato.de tipo de dato.
Funciones: aceptan unos argumentos y producenFunciones: aceptan unos argumentos y producen
un resultado.un resultado.
12. Tipos de DatosTipos de Datos
Los datos en C han de tener unLos datos en C han de tener un tipotipo. Las. Las
variablesvariables contienen datos, y se han de declararcontienen datos, y se han de declarar
del tipo adecuado a los valores que van adel tipo adecuado a los valores que van a
contener.contener.
El C dispone de estos tipos básicos:El C dispone de estos tipos básicos:
13. Datos de tipo enteroDatos de tipo entero
UnUn dato de tipo enterodato de tipo entero ((intint) es aquel que puede tomar) es aquel que puede tomar
por valor un número perteneciente al conjunto de lospor valor un número perteneciente al conjunto de los
números enteros (números enteros (ZZ), el cual está formado por los números), el cual está formado por los números
naturales, su opuestos (números negativos) y el cero.naturales, su opuestos (números negativos) y el cero.
ZZ = { ..., -3, -2, -1, 0, 1, 2, 3, ... }= { ..., -3, -2, -1, 0, 1, 2, 3, ... }
Ejemplo 1:Ejemplo 1: La edad de una persona y el año en que nació,La edad de una persona y el año en que nació,
son dos datos de tipo entero:son dos datos de tipo entero:
Edad...: 29Edad...: 29
Año....: 1976Año....: 1976
14. Datos de tipo realDatos de tipo real
UnUn dato de tipo realdato de tipo real ((floatfloat oo doubledouble) es aquel) es aquel
que puede tomar por valor un númeroque puede tomar por valor un número
perteneciente al conjunto de los números realesperteneciente al conjunto de los números reales
((RR), el cual está formado por los números), el cual está formado por los números
racionales e irracionales.racionales e irracionales.
Ejemplo 2:Ejemplo 2: El peso de una persona (enEl peso de una persona (en
kilogramos) y su altura (en centímetros), sonkilogramos) y su altura (en centímetros), son
datos que pueden considerarse de tipo real.datos que pueden considerarse de tipo real.
Peso.....: 75,3Peso.....: 75,3
Altura...: 172,7Altura...: 172,7
15. Datos sin valorDatos sin valor
UnUn dato sin valordato sin valor ((voidvoid) es un dato) es un dato
que no puede tomar por valor nigúnque no puede tomar por valor nigún
valor, es decir, es un dato vacíovalor, es decir, es un dato vacío
(nulo).(nulo).
16. Datos de tipo lógicoDatos de tipo lógico
En programación, unEn programación, un dato de tipo lógicodato de tipo lógico es aquel quees aquel que
puede tomar por valor sólo uno de los dos siguientes:puede tomar por valor sólo uno de los dos siguientes:
{{ verdaderoverdadero,, falsofalso }}
Ejemplo 4:Ejemplo 4: El estado de una barrera de paso de trenes es unEl estado de una barrera de paso de trenes es un
dato que puede considerarse de tipo lógico, por ejemplo,dato que puede considerarse de tipo lógico, por ejemplo,
asociandoasociando verdaderoverdadero a que esté subida ya que esté subida y falsofalso a que estéa que esté
bajada.bajada.
Estado...:Estado...: falsofalso (indica que la barrera está bajada)(indica que la barrera está bajada)
17. Datos de tipo cadenaDatos de tipo cadena
De todos los tipos de datos que no son básicos se dice queDe todos los tipos de datos que no son básicos se dice que
son derivados, ya que, están basados en alguno que sí loson derivados, ya que, están basados en alguno que sí lo
es. Por ejemplo, loses. Por ejemplo, los datos de tipo cadenadatos de tipo cadena son aquellosson aquellos
que pueden tomar por valor una secuencia de caracteres.que pueden tomar por valor una secuencia de caracteres.
En C, el valor de un dato de tipo cadena se debeEn C, el valor de un dato de tipo cadena se debe
representar entre comillas dobles (").representar entre comillas dobles (").
Ejemplo 5:Ejemplo 5: El título de un libro y el nombre de su autor,El título de un libro y el nombre de su autor,
son datos de tipo cadena.son datos de tipo cadena.
Título...: "La Odisea" (cadena de 9 caracteres)Título...: "La Odisea" (cadena de 9 caracteres)
Autor....: "Homero" (cadena de 6 caracteres)Autor....: "Homero" (cadena de 6 caracteres)
18. Datos de tipo carácterDatos de tipo carácter
UnUn dato de tipo carácterdato de tipo carácter ((charchar) es aquel que) es aquel que
puede tomar por valor un carácter pertenecientepuede tomar por valor un carácter perteneciente
al conjunto de los caracteres que puedeal conjunto de los caracteres que puede
representar el ordenador.representar el ordenador.
En C, el valor de un dato de tipo carácter se debeEn C, el valor de un dato de tipo carácter se debe
representar entre comillas simples (').representar entre comillas simples (').
Ejemplo 3:Ejemplo 3: En un examen con preguntas en lasEn un examen con preguntas en las
que hay que seleccionar la respuesta correctaque hay que seleccionar la respuesta correcta
entre varias opciones dadas (a, b, c, d, e), laentre varias opciones dadas (a, b, c, d, e), la
respuesta correcta de cada una de las preguntasrespuesta correcta de cada una de las preguntas
es un dato de tipo carácter.es un dato de tipo carácter.
19.
20. Nombres de variablesNombres de variables
(identificadores)(identificadores)
UnUn identificadoridentificador es un nombre que define a una variable,es un nombre que define a una variable,
una función o un tipo de datos.una función o un tipo de datos.
Un identificador válido ha de empezar por una letra o por elUn identificador válido ha de empezar por una letra o por el
carácer de subrayadocarácer de subrayado __, seguido de cualquier cantidad de, seguido de cualquier cantidad de
letras, dígitos o subrayados.letras, dígitos o subrayados.
OJO: Se distinguen mayúsculas de minúsculas.OJO: Se distinguen mayúsculas de minúsculas.
No se pueden utilizar palabras reservadas comoNo se pueden utilizar palabras reservadas como intint,, charchar oo
whilewhile..
Muchos compiladores no permiten letras acentuadas oMuchos compiladores no permiten letras acentuadas o
eñes.eñes.
21. Ejemplos válidos:Ejemplos válidos:
char letra;char letra;
int Letra;int Letra;
float CHAR;float CHAR;
int __variable__;int __variable__;
int cantidad_envases;int cantidad_envases;
double precio123;double precio123;
int __;int __;
Ejemplos no válidos:Ejemplos no válidos:
int 123var; /* Empieza por dígitos */int 123var; /* Empieza por dígitos */
char int; /* Palabra reservada */char int; /* Palabra reservada */
int una sola; /* Contiene espacios */int una sola; /* Contiene espacios */
int US$; /* Contiene $ */int US$; /* Contiene $ */
int var.nueva; /* Contiene el punto /int var.nueva; /* Contiene el punto /
int eñe; /* Puede no funcionar */int eñe; /* Puede no funcionar */
22. VariablesVariables
LasLas variablesvariables se utilizan para guardar datos dentro del programa.se utilizan para guardar datos dentro del programa.
Hay queHay que declarardeclarar las variables antes de usarlas.las variables antes de usarlas.
Cada variable tiene unCada variable tiene un tipotipo..
Declaración:Declaración:
tipo nombretipo nombre ;;
Ejemplo:Ejemplo:
int pepe;int pepe;
Las variables globales se declaran justo antes deLas variables globales se declaran justo antes de main()main()..
23. Ejemplo :Ejemplo : Para declarar varias variables delPara declarar varias variables del
mismo tipo de dato se puede escribir:mismo tipo de dato se puede escribir:
intint edadedad;;
intint numero_de_hijosnumero_de_hijos;;
O también, en la misma línea separadas por elO también, en la misma línea separadas por el
caráctercarácter comacoma ((,,):):
intint edadedad,, numero_de_hijosnumero_de_hijos;;
Si se desea declarar una variable para almacenarSi se desea declarar una variable para almacenar
un número entero y que, inicialmente, contengaun número entero y que, inicialmente, contenga
el valorel valor 3535, se debe escribir:, se debe escribir:
intint numeronumero == 3535;;
24. A continuación, se muestra laA continuación, se muestra la
declaración de una variable paradeclaración de una variable para
almacenar una letra del alfabetoalmacenar una letra del alfabeto
y que, inicialmente, contenga ely que, inicialmente, contenga el
valorvalor 'Z''Z'::
charchar letraletra = '= 'ZZ';';
Ejemplo :Ejemplo : Para declarar unaPara declarar una
variable que pueda almacenar elvariable que pueda almacenar el
nombre de una persona y que,nombre de una persona y que,
inicialmente, contenga elinicialmente, contenga el
valorvalor "Isabel""Isabel", escribiremos:, escribiremos:
charchar nombrenombre[[77]] = "= "IsabelIsabel";";
25. Constantes (1/2)Constantes (1/2)
En C, una constante puede ser de tipo entero,En C, una constante puede ser de tipo entero,
real, carácter, de cadena o enumerado., sereal, carácter, de cadena o enumerado., se
pueden expresar de dos formas diferentes:pueden expresar de dos formas diferentes:
1. Por su valor.1. Por su valor.
2. Con un nombre (identificador).2. Con un nombre (identificador).
Ejemplo :Ejemplo : Las siguientes contantes de tipoLas siguientes contantes de tipo
entero están expresadas por su valor:entero están expresadas por su valor:
--55
1010
26. Constantes (2/2)Constantes (2/2)
Para declarar una constante simbólica, en C, sePara declarar una constante simbólica, en C, se
utiliza una nueva directiva del preprocesador:utiliza una nueva directiva del preprocesador:
#define#define <nombre_de_la_constante><nombre_de_la_constante>
<secuencia_de_caracteres><secuencia_de_caracteres>
Ejemplo :Ejemplo : Dos constantes muy habituales son:Dos constantes muy habituales son:
#define#define PI 3PI 3..141592141592
#define#define NUMERO_E 2NUMERO_E 2..718281718281