2. ORIGENES DEL C
• EL LENGUAJE C FUE INVENTADO POR DENNIS RITCHIE EN
1972 CUANDO TRABAJABA, JUNTO CON KEN THOMPSON, EN
EL DISEÑO DEL SISTEMA OPERATIVO UNIX.
• EL LENGUAJE C DERIVA DEL LENGUAJE B DE THOMPSON, EL
CUAL, A SU VEZ, DERIVA DEL LENGUAJE BCPL DESARROLLADO
POR MARTIN RICHARDS. DURANTE MUCHOS ANOS EL
ESTÁNDAR DE C FUE LA VERSIÓN PROPORCIONADA CON EL
SISTEMA OPERATIVO UNIX VERSIÓN 5.
1
3. CARACTERISTICAS DEL LENGUAJE C
• ES UN LENGUAJE DE PROPÓSITO GENERAL. ESTE LENGUAJE SE
HA UTILIZADO PARA EL DESARROLLO DE APLICACIONES TAN
DISPARES COMO: HOJAS DE CÁLCULOS, GESTORES DE BASES
DE DATOS, COMPILADORES, SISTEMAS OPERATIVOS, ...
• ES UN LENGUAJE DE MEDIO NIVEL. ESTE LENGUAJE PERMITE
PROGRAMAR A ALTO NIVEL (PENSANDO A NIVEL LÓGICO Y
NO EN LA MAQUINA FÍSICA) Y A BAJO NIVEL (CON LO QUE SE
PUEDE OBTENER LA MÁXIMA EFICIENCIA Y UN CONTROL
ABSOLUTO DE CUANTO SUCEDE EN EL INTERIOR DEL
ORDENADOR).
4. • ES UN LENGUAJE PORTÁTIL. LOS PROGRAMAS ESCRITOS EN C
SON FÁCILMENTE TRANSPORTABLES A OTROS SISTEMAS.
• ES UN LENGUAJE POTENTE Y EFICIENTE. USANDO C, UN
PROGRAMADOR PUEDE CASI ALCANZAR LA EFICIENCIA DEL
CÓDIGO ENSAMBLADOR JUNTO CON LA ESTRUCTURA DEL
ALGOL O PASCAL.
CARACTERISTICAS DEL LENGUAJE C
5. USO DEL C
• 1.- ESCRIBIRLO EN UN EDITOR.
• 2.- COMPILARLO EN UN COMPILADOR.
• 3.- ENLAZARLO EN UN ENLAZADOR.
• 4.- EJECUTARLO.
6. EN ALGUNOS DE ELLOS SE PUEDEN REALIZAR LOS PASOS DE
COMPILADO, ENLAZADO Y EJECUTADO CON LA PULSACIÓN DE UNA
SOLA TECLA.
EN TURBO C TIENE LAS SIGUIENTES TECLAS RELACIONADAS CON
ESTE TEMA:
• ALT-F9: COMPILAR A OBJ.
• F9: HACER FICHERO EXE.
• CTRL-F9: EJECUTAR.
SE PUEDE PULSAR DIRECTAMENTE CTRL-F9 PARA COMPILAR,
ENLAZAR Y EJECUTAR.
7. PRIMER PROGRAMA C
#include <stdio.h>
main ()
{
printf ("mi primer programa en c.");
}
LA SALIDA DE ESTE PROGRAMA POR PANTALLA ES:
mi primer programa en c.
8. • LOS PROGRAMAS C ESTÁN COMPUESTOS DE UNIDADES DE PROGRAMA
LLAMADAS FUNCIONES, LAS CUALES SON LOS MÓDULOS BÁSICOS DEL
PROGRAMA.
• TODOS LOS PROGRAMAS C DEBEN TENER UNA FUNCIÓN main (EN ESPAÑOL
SIGNIFICA PRINCIPAL) PUES ES LA PRIMERA FUNCIÓN QUE SE EJECUTA CUANDO
SE HACE FUNCIONAR EL PROGRAMA.
• LOS PARÉNTESIS QUE SIGUEN A main IDENTIFICAN A ESTA COMO NOMBRE DE
FUNCIÓN.
• UN MÉTODO DE COMUNICACIÓN DE DATOS ENTRE FUNCIONES ES EL USO DE
ARGUMENTOS. LOS ARGUMENTOS SON LOS DATOS QUE SE LES PASA A LAS
FUNCIONES. ESTOS SE ENCIERRAN ENTRE PARÉNTESIS; main ES UNA FUNCIÓN
SIN ARGUMENTOS, LO QUE SE INDICA MEDIANTE ().
9. • LA LÍNEA CON:
printf ("mi primer programa en c.");
• REALIZA UNA LLAMADA A UNA FUNCIÓN DENOMINADA printf,
CON EL ARGUMENTO "MI PRIMER PROGRAMA EN C."; printf ES UNA
FUNCIÓN DE BIBLIOTECA QUE REALIZA UNA ESCRITURA EN LA
SALIDA ESTÁNDAR. NORMALMENTE LA SALIDA ESTÁNDAR ES EL
MONITOR.
• LA FUNCIÓN printf ESCRIBE CONCRETAMENTE UNA CADENA
(CONOCIDO TAMBIÉN CON LOS NOMBRES DE CADENA DE
CARACTERES, CONSTANTE DE CARACTERES Y STRING).
• UNA CADENA ES UNA SECUENCIA DE CARACTERES.
10. • CADA INSTRUCCIÓN EN C TERMINA CON UN PUNTO Y COMA. LA
LÍNEA DEL main () NO VA SEGUIDA DE PUNTO Y COMA PORQUE NO
SE TRATA DE UNA LLAMADA A UNA FUNCIÓN SINO DE LA
DEFINICIÓN DE UNA FUNCIÓN. LA DEFINICIÓN DE UNA FUNCIÓN
ESPECIFICA LAS INSTRUCCIONES QUE POSEE DICHA FUNCIÓN ASÍ
COMO LOS ARGUMENTOS QUE TIENE.
• PRINTF ES UNA FUNCIÓN DE LIBRERÍA QUE ESTA DEFINIDA EN EL
FICHERO stdio.h (STANDARD INPUT/OUTPUT HEADER). LAS
FUNCIONES DE LIBRERÍA SON AQUELLAS SUMINISTRADAS POR EL
COMPILADOR Y QUE ESTÁN A NUESTRA DISPOSICIÓN. PARA
UTILIZAR UNA FUNCIÓN DE LIBRERÍA ES NECESARIO INCLUIR EL
CORRESPONDIENTE FICHERO DE CABECERA ANTES DE UTILIZARLA.
11. • LA FUNCIÓN
main ()
{
printf ("mi primer programa en c.");
}
• TAMBIÉN SE PODÍA HABER ESCRITO ASÍ:
main(){printf("mi primer programa en c.");}
• PERO EN ESTE CASO EL CÓDIGO ES MENOS LEGIBLE PARA EL USUARIO.
12. • EL C ES SENSITIVO AL CASO. ESTO SIGNIFICA QUE LAS LETRAS
MAYÚSCULAS SON DISTINTAS A LAS MINÚSCULAS. DE ESTE MODO,
NO ES LO MISMO PARA EL C printf QUE PRINTF O QUE PRINTF.
• TODAS LAS LÍNEAS QUE EMPIEZAN CON # NO SON EN REALIDAD
INSTRUCCIONES DEL LENGUAJE C SINO QUE SON LÍNEAS PARA SER
MANIPULADAS POR EL PREPROCESADOR. EL PREPROCESADOR
REALIZA ALGUNAS TAREAS ANTES DE EMPEZAR A ACTUAR EL
COMPILADOR.
• LA LÍNEA
#include <stdio.h>
LO QUE HACE ES INCLUIR LA INFORMACIÓN QUE HAY EN EL FICHERO
stdio.h EN NUESTRO PROGRAMA.
13. • EN EL FICHERO stdio.h SE ENCUENTRA LA DEFINICIÓN DE LA
FUNCIÓN printf. SI NO SE PUSIERA ESTE include EN NUESTRO
PROGRAMA, EL COMPILADOR NO SABRÍA COMO ES LA FUNCIÓN
printf Y DARÍA ERROR.
14. SEGUNDO PROGRAMA C
#include <stdio.h>
main ()
{
printf ("mi segundo programa en c.n");
printf ("pulsa la tecla return para terminar.");
getchar ();
}
• LA SALIDA POR PANTALLA DE ESTE PROGRAMA ES:
mi segundo programa en c.
pulsa la tecla return para terminar.
15. • HAY DOS NOVEDADES CON RESPECTO AL PRIMER EJEMPLO: LA PRIMERA ES LA
APARICIÓN DEL CÓDIGO n DENTRO DE LA CADENA DEL PRIMER printf. LA
SEGUNDA ES LA APARICIÓN DE UNA NUEVA FUNCIÓN DE LIBRERÍA: getchar ().
• EN C, TODO LO QUE VA ENTRE COMILLAS ES UNA CADENA. LA SECUENCIA n ES
UN CARÁCTER ESPECIAL QUE DENOTA EL CARÁCTER DE NUEVA LÍNEA. AL SER n
UN CARÁCTER SE PUEDE INCLUIR EN CUALQUIER PARTE DE UNA CADENA COMO
CUALQUIER OTRA CARÁCTER. EN NUESTRO PROGRAMA, SI NO SE HUBIESE
INCLUIDO, LA SALIDA HABRÍA SIDO:
mi segundo programa en c. pulsa la tecla return para terminar.
16. • A CONTINUACIÓN SE VAN A MOSTRAR TRES PROGRAMAS
EQUIVALENTES AL DEL EJEMPLO.
main ()
{
printf ("mi segundo programa en c.");
printf ("npulsa la tecla return para terminar.");
getchar ();
}
18. #include <stdio.h>
main ()
{
printf ("mi segundo programa en c.");
printf ("n");
printf ("pulsa la tecla return para terminar.");
getchar ();
}
19. • A TODOS LOS CARACTERES EMPEZADOS POR SE LES LLAMAN
SECUENCIAS DE ESCAPE.
• LAS SECUENCIAS DE ESCAPE SON MECANISMOS PARA REPRESENTAR
CARACTERES NO IMPRIMIBLES.
• LA SECUENCIA DE ESCAPE n QUE REPRESENTABA A LA NUEVA
LÍNEA.
• OTRAS SECUENCIAS DE ESCAPE SON r PARA EL RETORNO DE
CARRO, t PARA EL TABULADOR, b PARA RETROCESO.
20. • LOS PROGRAMAS SE LOS EJECUTA DESDE UN ENTORNO
INTEGRADO, EN MUCHOS DE ESTOS ENTORNOS, A LA
FINALIZACIÓN DE LA EJECUCIÓN DE NUESTRO PROGRAMA C, LA
FRASE IMPRESA DESAPARECE INMEDIATAMENTE Y SE VUELVE A LA
PANTALLA DEL ENTORNO.
• TODOS ESTOS ENTORNOS POSEEN MECANISMOS PARA VISUALIZAR
LA PANTALLA DE EJECUCIÓN.
• EN TURBO C, PULSANDO ALT-F5 SE PUEDE VER LA PANTALLA DE
EJECUCIÓN.
21. • UNA SOLUCIÓN ALTERNATIVA ES INCLUIR LA FUNCIÓN getchar () AL
FINAL DE LA FUNCIÓN main ().
• getchar () ES UNA FUNCIÓN QUE ESPERA LA PULSACIÓN DE LA TECLA
RETURN POR PARTE DEL USUARIO.
• ESTA FUNCIÓN NO NECESITA ARGUMENTOS PERO LOS PARÉNTESIS SON
NECESARIOS PUESTO QUE SE TRATA DE UNA FUNCIÓN.
• getchar () SE ENCUENTRA EN LA LIBRERÍA stdio.h, POR LO TANTO,
SIEMPRE QUE UTILICEMOS ESTA FUNCIÓN EN UN PROGRAMA ES
NECESARIO INCLUIR LA LÍNEA:
#include <stdio.h>
22. TERCER PROGRAMA C
#include <stdio.h>
main ()
{
int horas, minutos;
horas = 3;
minutos = 60 * horas;
printf (“Hay %d minutos en %d horas.", minutos, horas);
getchar ();
}
• LA SALIDA POR PANTALLA DE ESTE PROGRAMA ES:
hay 180 minutos en 3 horas.
23. • LA LÍNEA:
int horas, minutos;
• ES UNA SENTENCIA DE DECLARACIÓN.
• EN ESTE CASO SE DECLARAN DOS COSAS:
1) EN ALGÚN SITIO DE LA FUNCIÓN SE UTILIZARAN LAS "VARIABLES" hora y
minutos.
2) ESTAS DOS VARIABLES SON DE TIPO ENTERO (integer).
• EL PUNTO Y COMA FINAL DE LA LÍNEA DE DECLARACIÓN LA IDENTIFICAN COMO
UNA SENTENCIA O INSTRUCCIÓN C.
24. • TAMBIÉN SE PODRÍA HABER ESCRITO:
int horas;
int minutos;
• LAS VARIABLES SON POSICIONES DE MEMORIA DONDE EL VALOR
DE SU CONTENIDO PUEDE VARIAR A LO LARGO DEL PROGRAMA.
• EN C, TODAS LAS VARIABLES UTILIZADAS HA DE SER DECLARADAS
ANTES DE SU USO.
25. • LAS LÍNEAS
horas = 3;
minutos = 60 * horas;
• SON SENTENCIAS DE ASIGNACIÓN.
• LA PRIMERA LÍNEA SIGNIFICA: "DAR A LA VARIABLE horas EL VALOR
3". LA SEGUNDA LÍNEA SIGNIFICA: "DAR A LA VARIABLE minutos EL
RESULTADO DE MULTIPLICAR 60 POR horas". NÓTESE QUE LAS DOS
LÍNEAS TERMINAN EN PUNTO Y COMA POR SER DOS SENTENCIAS O
INSTRUCCIONES.
26. • EN LA LÍNEA
int horas, minutos;
• SE RESERVA ESPACIO EN MEMORIA A LAS VARIABLES HORAS Y MINUTOS.
• EN LAS LÍNEAS
hora = 3;
minutos = 60 * horas;
• SE LES DA VALOR A DICHAS VARIABLES (AL CONTENIDO DE LOS ESPACIOS
RESERVADOS). POSTERIORMENTE SE LES PUEDE ASIGNAR A ESTAS VARIABLES
VALORES DIFERENTES.
= ES EL OPERADOR DE ASIGNACIÓN Y * ES EL OPERADOR DE MULTIPLICACIÓN.
27. • OTROS OPERADORES SON: + (NUMERO POSITIVO USADO COMO OPERADOR
UNARIO Y SUMA USADO COMO OPERADOR BINARIO), - (NUMERO NEGATIVO
USADO COMO OPERADOR UNARIO Y SUSTRACCIÓN USADO COMO OPERADOR
BINARIO), / (OPERADOR DE DIVISIÓN), % (OPERADOR MODULO, ESTO ES, RESTO
DE LA DIVISIÓN DE DOS NÚMEROS ENTEROS).
28. • LA LÍNEA
printf (“Hay %d minutos en %d horas.", minutos, horas);
• ESCRIBE:
Hay 180 minutos en 2 horas.
• COMO SE VE LOS DOS %d NO SE HAN ESCRITO Y SIN EMBARGO SE HA
ESCRITO EN SU LUGAR LOS VALORES DE LAS VARIABLES MINUTOS Y
HORAS.
• EL SÍMBOLO % AVISA A LA FUNCIÓN printf QUE SE VA A IMPRIMIR UNA
VARIABLE EN ESTA POSICIÓN; LA LETRA d INFORMA QUE LA VARIABLE A
IMPRIMIR ES ENTERA.
29. LA ESTRUCTURA DE TODA FUNCIÓN C ES:
{
declaración_de_variables
sentencias
}
• DONDE declaración_de_variables ES UNA LISTA DEL TIPO:
tipo_de_datos lista_de_variables;
• Y lista_de_variables ES UNO O MAS NOMBRES DE VARIABLES SEPARADOS
POR COMAS.
30. • LA DECLARACIÓN DE VARIABLES HA DE IR AL PRINCIPIO DE LA
FUNCIÓN, ANTES DE LA PRIMERA SENTENCIA EJECUTABLE.
31. LAS VARIABLES Y CONSTANTES SON LOS OBJETOS BÁSICOS QUE SE
MANIPULAN EN UN PROGRAMA.
LAS DECLARACIONES INDICAN LAS VARIABLES QUE SE VAN A
UTILIZAR Y ESTABLECEN SU TIPO Y, QUIZÁ, SU VALOR INICIAL.
LOS OPERADORES ESPECIFICAN LO QUE SE VA A HACER CON
ELLAS.
LAS EXPRESIONES COMBINAN VARIABLES Y CONSTANTES PARA
PRODUCIR NUEVOS VALORES.
2