Professional Documents
Culture Documents
DE SISTEMAS Y ELECTRONICA
EL LENGUAJE C
I. HISTORIA.
II. PALABRAS
RESERVADAS
III. ESTRUCTURA DE UN
PROGRAMA
IV. ENTORNO DE
PROGRAMACION
V. ELEMNTOS DE UN
PROGRAMA
Ing. CIP. Francisco Mori
Historia de C
Inventado e implementado por primera vez
por Dennis Ritchie.
C es un lenguaje de programacin de
computadoras.
Lenguaje de alto nivel
Ms bien medio.
Permite manipulacin de bits y bytes,
direcciones de memoria.
Estructuras de control de alto nivel.
Portabilidad.
Simple, pero poderoso.
Muy ligado al mundo Unix.
Ideal para aplicacin de alto rendimiento.
1960s
BCPL (Martin Richards)
1969
B (Ken Thompson)
1971
NB (Dennis Ritchie)
1972-1973
C (Dennis Ritchie)
1973
Reescritura del kernel de Unix en C
1978
Pcc (Steve Johnson)
Brian Kernighan & Dennis Ritchie The C Programming Language
1982-1989
Proceso de estandarizacin
ANSI-89
1995
Primera enmienda de C
1999
Estndar C99
1997
ANSI C++
C++
Diseado e implementado por Bjarne Stroustrup.
C mejorado
Soporta orientacin a objetos y programacin genrica
Palabras Reservadas
char
void
default
return
int
if
break
auto
float
else
continue
extern
double
do
goto
register
long
while
struct
const
short
for
union
static
signed
switch
enum
volatile
unsigned
case
typedef
sizeof
Estructura gral. de un
programa en C
Programa
principal
Funciones
que sern
usadas en el
main
Ejemplos de programas
Ejem. 1
Escribir un programa en Lenguaje C que enve un
mensaje (Hola mundo) a la pantalla del computador.
Sol.
#include <stdio.h>
main()
{
printf( Hola
mundo );
return 0;
}
Entorno de Programacin de C
Fases de la generacin
de programas
1. Editar
2. Preprocesar
Editor
Disk
Preprocesso
r
Disk
Compiler
Disk
Linker
Disk
Memoria Principal
El enlazador vincula el
cdigo objeto con las
libreras
Cargador coloca el
programa en memoria
Disk
5. Cargar (Load)
6. Ejecutar (Execute)
Preprocesa las
directivas
El compilador crea el
cdigo objeto y lo
almacena en disco
Loader
3. Compilar (Compile)
4. Enlazar (Link)
El programa es creado
en el editor y
almacenado en el disco
..
..
..
Memoria Principal
CPU
..
..
..
Elementos de un
Programa
1. Comentarios.
2. Identificadores.
3. Constantes.
4. Variables.
5. Operadores.
1.- Comentarios
Comentarios multi-lnea
Comienzan con /* y terminan con */
No puede anidarse un comentario dentro de
otro.
Ejemplo:
//Esto es un comentario
/* Esto tambin es
un comentario */
2.- Identificadores
Se utilizan para nombrar variables,
funciones, etiquetas y elementos definidos
por el usuario.
Los primeros seis caracteres deben ser
significativos (distinguirse de otro similar) y
mximo puede tener hasta 31 caracteres.
El primer carcter debe de ser una letra o
subguin. Posteriormente pueden ser
letras, nmeros, signos de subrayado.
Existe diferencia entre maysculas y
minsculas.
Identificadores
No pueden emplearse palabras
reservadas como identificadores.
No pueden emplearse nombres de
funciones que ya existan en el
programa o en la librera de
funciones de C.
No puede llamarse main.
Convenciones
Empezar los nombres de funciones y de variables
con una letra minscula.
Las constantes escritas con #define van con
maysculas como #define PI 3.1416
Las palabras intermedias comienzan con
maysculas.
sumaMatrices
3.- Constantes
Constantes de carcter.
Ej. a, 0, \0x5, \0, \n, \t, $,
\\, NULL
Constantes enteras.
Ej. 5, +5, -5, \05, \0x5, 5L, 5U, 5lu,
etc.
Constantes reales.
Ej. 0.5f, 0.5, 5e-01f, 5.0e-01, (float)5,
etc.
#define
Se utiliza para asignar un
identificador a una constante.
#define PI 3.1416
#define NCOLS 20
El pre-procesador de C, sustituye la
ocurrencia de PI por el valor 3.1416
en todo el programa antes de
efectuar la compilacin, del mismo
modo se sustituye NCOLS por 2.
4.- Variables
Una variable es una localidad de
memoria cuyo valor puede ser cambiado
durante la ejecucin del programa.
Todas las variables deben de ser
declaradas para se utilizadas.
<tipo de dato> espacio(s) <identificador>;
Ejemplo:
int a;
float area, radio, volumen;
const
Es un modificador de acceso que me
permite asignar a una variable un
valor constante, es decir que una vez
asignado a dicha variable su valor no
podr ser modificado durante el
programa.
const <tipo dato> esp <identificador>
= valor;
Ejemplo:
const int a=10;
const char pais[]=MXICO;
const char *nombre=VLADIMIR;
volatile
Es un modificador de acceso que me
permite cambiar el valor de una variable
por medios no explcitamente
especificados por el programa. Por
ejemplo la direccin de una variable
global que apunta a un puerto externo.
volatile <tipo dato> esp <identificador> =
valor;
Ejemplo:
volatile unsigned char *puerto = 0x30;
5.- Operadores
Son palabras o smbolos que implican una
accin sobre ciertas variables. Pueden ser
unarios (1 variable), binarios(2 variables) o
ternarios (3 variables).
Operadores
Operadores
Operadores
Operadores
Operadores
Operadores
Aritmticos
Relacionales
Lgicos
de Asignacin
de Direccin
de Bits
Operadores Aritmticos
Operador
Nombre
Descripcin
+
-
Suma
Resta
5+2 7
5-2 3
5*2 10
Multiplicaci
n
Divisin
%
(tipo de
dato)
Mdulo
Cast
forzado
5%2 1
(double)5
5.0
5/2 2
Operadores Relacionales
Operador
Nombre
Descripcin
==
Igual a
if (a==s)
!=
Diferente de
if (a!=null)
>
Mayor que
if (a>0.5)
<
Menor que
if (a<2l)
>=
Mayor o igual
que
Menor o igual
que
if (a>=2f)
<=
if (a<=3)
Operadores Lgicos
Operador
&&
Nombre
Y (AND)
Descripcin
if ((a>3) &&
(a<9))
||
O (OR)
if ((a==2) ||
(a==3))
!
NEGADO
if (!(a==3)) es
(NOT)
igual a
Importante:
if (a!=3)
FALSO es igual a cero.
VERDADERO es diferente de cero.
Operadores de
Asignacin
Operador
Abreviado
=
++
-+=
-=
*=
/=
%=
a=2;
n++;
n--;
n+=2;
n-=2;
n*=2;
n/=2;
n%=2;
No
Abreviado
a=2;
n=n+1;
n=n-1;
n=n+2;
n=n-2;
n=n*2;
n=n/2;
n=n%2;
Operadores de Bits
Operador
<<
>>
&
|
~
Nombre
Corrimiento a
la izquierda
Corrimiento a
la derecha
Y (AND) entre
bits
O (OR) entre
bits
Complemento
A1
Descripcin
b=a>>2;
b=a<<3;
c=a&128;
c=a|0x0a;
c=~a;
Operadores de Asignacin
para bits
Operador
Abreviado
No
Abreviado
n=n<<2;
n=n>>2;
n=n&0x0a;
n=n|7;
n=^0x03;
n=0x7f;
<<=
n<<=2;
>>=
n>>=2;
&=
n&=0x0a;
|=
n|=7;
^=
n^=0x03;
=
n=0x7f;
Nota:
0x7f, 0x0a, 0x03 son un nmeros
Operadores De Direccin
Operado Nombre
Descripcin
r
*
Operador Me da el valor que
indirecci est almacenado
n
en una direccin
de memoria.
Tambin sirve para
declarar una
variable
apuntador.
&
Operador Me da la direccin
direccin de memoria de una
Variables Apuntador
Sirven para almacenar una direccin de
memoria.
Utilizan el operador & para obtener la
direccin.
Se deben inicializar con NULL (equivale a
cero).
Se declaran como:
<tipo de dato><*> espacio(s)
<identificador>;
Ejemplo:
int *a=NULL;
Precedencia de
Operadores
( ) [ ] ->
! ~ + - ++ -- & *
sizeof
* / %+<< >>
< <= > >= == !=
& ^ | && || ?:
= *= /= %= += -=
&=
^= |= <<= >>=
Alta prioridad
Unarios
Aritmticos
Corrimiento de bits
Relacionales
Bits / Lgicos /
Condicional
Asignacin
6.- Sentencias
(Instrucciones)
Una sentencia es una instruccin o expresin en
C que tiene una consecuencia. Pueden ser
asignaciones, operaciones, llamadas a funciones.
Todas las sentencias terminan con el signo de
punto y coma ;
Pueden ser simples o compuestas. Las
compuestas van entre llaves:
{
sentencia1;
sentencia2;
:
sentencian;
Sentencias (Instrucciones)
Sentencias de Seleccin.
if else, switch case, ?:
Sentencias de Repeticin.
do while, while, for
Sentencias de Salto.
return, break, continue.
Estructura de un
programa en C
I. Directivas del pre-procesador
#include y #define
II. Declaracin de Prototipos
(Declaracin de funciones)
III. Declaracin de variables globales
IV. Funciones definidas por el usuario
V. Funcin Principal main( )
Ejemplo
#include <stdio.h>
#include <math.h>
#define VALOR 5.7
double modulo3D( double x, double y, double z );
double mod3; /* Variable global */
double modulo3D( double x, double y, double z ){
return(sqrt(x*x+y*y+z*z);
}
int main( void ){
int x, y, z;
x=y=z=VALOR;
mod3=modulo3D(x,y,z);
printf(\nEl mdulo es: %lf,mod3);
return(0);
}
if-else
if (expresin)
sentencia;
else
sentencia;
if (expresin)
{
sentencia1;
sentencia2;
}
else
Nota: una expresin en C es todo {
aquello que regresa un valor. Como
sentencia1;
por ejemplo una condicin lgica,
operaciones aritmticas, llamadas
sentencia2;
a funciones, una variable, una
}
constante (nmrica, carcter, etc.).
Operador Condicional ?:
(expresin)? sentencia1 :
sentencia2;
expresin? sentencia1 :
sentencia2;
Se ejecuta:
sentencia1 si expresin =
verdadero
sentencia2 si expresin = falso.
Es un operador ternario y puede
utilizarse para asignar variables:
switch-case
switch(expresin)
{
case 1: sentencias;
break;
case 2: sentencias;
break;
:
case n: sentencias;
break;
default:
sentencias_default;
break;
}