Está en la página 1de 61

Programación

Introducción  a  C  
César  Flores  
Introducción  Programa,  Lenguajes  
de  Programación,  Compilador  
Programa  
•  Un  programa  es  la  secuencia  de  instrucciones  
u;lizadas  para  producir  un  resultado  
concreto.  
•  Al  proceso  de  escribir  un  programa,  se  le  
llama  programación.  
Lenguaje  de  Programación  
•  Conjunto  de  símbolos  y  reglas  que  se  
combinan  para  escribir  programas.  
•  Léxico:  Conjunto  de  símbolos  permi;dos  
(vocabulario).  
•  Sintaxis:  Reglas  que  indican  como  realizar  las  
construcciones  del  lenguaje  
•  Semán;ca:  Reglas  que  permiten  determinar  el  
significado  de  cualquier  construcción  del  
lenguaje.  
Lenguaje  de  Máquina  
•  Directamente  inteligible  por  la  máquina  
•  Instrucciones  son  cadenas  binarias  
(010010101).  
•  Se  especifica  operación  y  las  direcciones  de  
memoria  implicadas.  
•  Dependen  del  HW  del  computador  
(arquitectura).  
Lenguajes  de  Bajo  Nivel  
•  Más  fácil  de  usar  que  el  
lenguaje  de  maquina  
(Assembler)  
•  Depende  de  la  maquina  
en  par;cular  
•  No  puede  ser  
directamente  
ejecutado.  
•  Instrucciones  se  
conocen  como  
nemotécnicos.  
Lenguaje  de  Alto  Nivel  
•  Con  un  poco  de  prác;ca,  
seres  humanos  pueden  
leer  y  escribir  de  manera  
más  fácil.  
•  Independientes  de  la  
maquina,  sus  intrucciones  
no  dependen  del  diseño  
del  HW.  
•  Deben  ser  traducidos  
(compilados).  
 
Ejecución  de  un  Programa  
•  Para  ejecutar  un  programa  en  un  computador  
debemos  traducirlo  primero  a  Lenguaje  de  
Maquina.  
•  Para  ello  ocupamos  un  traductor.  
•  En  el  caso  de  C,  el  traductor  es  un  compilador.  
Proceso  para  crear  Programa.  

Programa  
Compilador   Linker   Ejecutable  
Fuente  
Diagrama  de  Flujo  
Estructura  de  un  programa  en  C  
Direc;vas  al  compilador  (inclusión   #include  <stdio.h>  
de  archivos  y  definición  de   #include  <stdlib.h>  
#define  CERO  0  
constantes  
 
Declaración  de  variables  globales,   int  a;  
proto;po  de  funciones,  nuevos    
int  main()  
;pos   {  
   int  a,b,mayor;  
   a  =  CERO;  
   b  =  82;  
Función  main      mayor  =  mayor(a,b);  
   prinb(“Numero  mayor  %d”,mayor);  
}  
 
Int  mayor(int  a,  int  b)  
{  
Función    if(a>b)  return  a;  
 else  return  b;  
{  
Elementos  básicos  de  un  
programa  en  C.  
Elementos  básicos  de  un  programa  en  
C  
•  Comentarios  
•  Palabras  Reservadas  
•  Bibliotecas  de  Funciones  
•  Tipos  de  Datos  
•  Iden;ficadores,  variables,  constantes  
•  Operadores  
•  Funciones  E/S  
Palabras  Reservadas  
•  Cumplen  una  función  especifica  
•  No  pueden  ser  usadas  como  iden;ficadores  
de  variables,  constantes,  nuevos  ;pos,  
funciones  
•  Ejemplos:  char,  int,  float,  double,  if,  ese,  do,  
while,  for,  etc.  
Bibliotecas  de  Funciones  
•  Para  usar  funciones  predefinidas  se  agrega  la  
direc;va  #include.  

•  Sintaxis:  #include  <stdio.h>.  


Tipos  de  Datos  
Tipo  de  dato   Tamaño   Valores  posibles  

Char   1  byte   -­‐128  a  127  

Int   4  bytes   -­‐2147483648  a  +2147483648    

Float   4  bytes   Posi;vos:  3.4E-­‐38  a  3.4E38  


Nega;vos:  -­‐3.4E-­‐38  a  -­‐3.4E38  

double   8  bytes   Posi;vos:  1.7E-­‐308  a  1.7E308  


Nega;vos:  -­‐1.7E-­‐308  a  -­‐1.7E308  
Cualificadores  
Cualificadores   Tamaño   Valores  posibles  

Short  int   2  bytes   -­‐128  a  127  

Long  int   4  bytes   -­‐2147483648  a  +2147483648  

Long  double   10  bytes   Posi;vos:  3.4E-­‐4932  a  1.1E4932  


Nega;vos:  -­‐3.4E-­‐4932  a  -­‐1.1E4932  
Cualificadores  
Cualificadores  
Cualificadores   Tamaño  
Tamaño   Valores  
Valores  p posibles  
osibles  
Signed  short   2  bytes   -­‐32768  a  32767  
Short   int   short  
Unsigned   2  
2  bbytes  
ytes   -­‐128   a  127  
0  a  65535  
Signed   int  
Long  int   4  
4  bbytes  
ytes   -­‐2147483648  
-­‐2147483648  aa    ++2147483648  
2147483648  a  

Unsigned   int  
Long  double   4  
10  bb
ytes  
ytes   0   a  4294967295  
Posi;vos:   3.4E-­‐4932  a  1.1E4932  
  Nega;vos:  -­‐3.4E-­‐4932  a  -­‐1.1E4932  
Signed  long   4  bytes   -­‐2147483648  a  +2147483648  
 
Unsigned  long   4  bytes   0  a  4294967295  

Signed  char   1  byte   -­‐128  a  127  

Unsigned  char   1  byte   0  a  255  


Iden;ficadores  
Variables  en  C  
•  Para  usar  una  variable  primero  se  debe  declarar:  
–  Sintaxis:  [cualificador]  <;po>  <nombre>;  
–  Ejemplo:  unsigned  int  edad;  
•  Se  puede  declarar  mas  de  una  variable  del  mismo  
;po  en  una  linea  separado  por  coma  
–  Ejemplo:  unsigned  int  a,b,c,d,e;  
•  Una  variable  puede  ser  inicializada  en  su  
declaracion.  
–  Ejemplo  int  suma  =  0,  edad  =  1;  
 
Scope  de  Variables  
•  Variables  globales.  
–  Se  declaran  antes  de  la  definición  de  la  función  main()  
–  Pueden  ser  usadas  en  cualquier  función  declara  en  el  
programa  
–  Se  destruyen  al  finalizar  la  ejecución  del  programa.  
•  Variables  Locales  
–  Se  declaran  dentro  de  la  función  en  las  que  serán  
u;lizadas.  
–  Solo  pueden  ser  usadas  en  la  función  en  la  que  se  
declararon  
–  Se  destruyen  al  finalizar  la  ejecución  de  la  función.  
#define  <stdio.h>  
 
Variables  Globales   int  a,z;  
 
void  Mifuncion();  
 
int  main()  
{  
 int  x;  
Variables  Locales  a  Main()    a=10;  
 x=a+1;  
 return  0;  
}  
 
void  Mifuncion()  
{  
 float  z;  
Variables  locales  a  Mifuncion()    z=0;  
 a=10;  
}  
 
Funciones  de  Entrada  y  Salida  
Función  de  Escritura  
•  Prinb:  Permite  enviar  valores  numéricos,  
caracteres  y  cadenas  de  texto  al  disposi;vo  de  
salida  por  defecto.  
–  Sintaxis:  prinb(“cadena  y  
argumentos”,arg1,..,argn);  
–  Cadena:  Especifica  el  formato  en  que  se  
mostraran  los  argumentos.  
–  Ejemplo:  prinb(“%d”,a);  
Especificadores  de  Formato  
•  %c    (carácter)    

•  %s    (cadena  de  caracteres)    

•  %d    (entero  decimal  con  signo)  

•  Prefijo  h  o  l    (entero  corto  o  largo)  

•  %i    (entero  con  signo,  en  base  10,  base  8  o  base  16)  

•  %u    (entero  sin  signo,  en  base  10)  

•  %o    (entero  en  base  8)  

•  %x    o  %X  (entero  en  base  16)  

•  %e    %E    %g    %G  %f  (real  con/sin  exponente)  

•  %lf    %Lf  (double  /  long  double)  

•  %p    (dirección  de  memoria)  


Función  de  Lectura  
•  Scanf:  permite  obtener  datos  desde  el  
disposi;vo  de  entrada  por  defecto.  
–  Sintaxis:  scanf(“cadena”,arg1,…,argn);  
–  Ejemplo:    
Int  dia;  
scanf(“Ingrese  numero  de  dia:  %d”,&dia);  
Estructuras  de  Control  
Estructuras  Secuenciales  
•  En  ellas  cada  instrucción  se  ejecuta  en  el  orden  en  que  es  escrita.  
Ejemplo:  
 
Int  main()  
{  
 int  a,b,c;  
 b=0;  
 c=3;  
 a=b+c;  
 prinb(“%d”,a);  
 return  0;  
}  
Estructuras  Selec;vas  
•  If  simple.  
Ejemplo:  
 
Int  main()  
{  
 int  a,b;  
 a  =  0;  
 b  =  3;  
 if(a>b){  
   prinb(“por  aca  no  paso”);  
 }  
 return  0;  
}  
Estructuras  Selec;vas  
•  Doble  if-­‐else  
Ejemplo:  
 
Int  main()  
{  
 int  a,b;  
 a  =  0;  
 b  =  3;  
 if(a>b){  
   prinb(“por  aca  no  paso”);  
 }else{  
   prinb(“por  aca  si  paso”);  
 }  
 return  0;  
}  
 
 
Estructuras  Selec;vas  
•  Switch  
Ejemplo:  
Int  dia;  
Prinb(“Ingrese  dia  de  la  semana  [1…7]”);  
Scanf(“%d”,&dia);  
switch(dia)  
{  
 case  1:  prinb(“Lunes”);  
     break;  
 case  2:    prinb(“Martes”);  
     break;  
 case  3:  prinb(“Miercoles”);  
             break;  
 case  4:  prinb(“Jueves”);  
     break;  
 ….  
 default:  prinb(“Numero  no  valido”);  
}  
Estructuras  Repe;;vas  
•  While  
Ejemplo:  
 
Int  main(){  
 int  suma=0,  contador=0;  
 while(contador<10){  
   suma  =  suma  +  contador;  
 }  
 return  0;  
}  
 
Estructuras  Repe;;vas  
•  Do-­‐while  
Ejemplo:  
 
Int  main(){  
 int  contador=0,  suma=0;  
 do{  
   contador  =  contador  +  1;  
   suma  =  suma  +  contador;  
 }while(contador<10);  
}  
Estructuras  Repe;;vas  
•  For(inicializacion;condicion;incremento)  
Ejemplo:  
 
Int  main  (){  
 int  i;  
 for(i=0;i<10;i++){  
   prinb(“este  es  mi  ciclo  numero  %d\n”,i);  
 }  
 return  0;  
}  
Operadores  Aritmé;cos,  de  
Asignación  y  Lógicos.  
Operadores  Aritmé;cos  
Operador  Binario   Significado   Operandos  

+   Suma   Op1+op2  

-­‐   Resta   Op1-­‐op2  

*   Mul;plicación   Op1*op2  

/   División  real  o  entera   Op1/op2  

%   Resto  de  la  división   Op1%op2  


Operadores  Unarios  
Operador  Unario   Significado   Operandos  

++   Incremento  (Aumenta  en   Op++,  ++op  


1)  

-­‐-­‐   Decremento  (disminuye  en   Op-­‐-­‐,-­‐-­‐op  


1)  

-­‐   Cambio  de  signo   -­‐op  


Operadores  ++  y  -­‐-­‐  
•  OPERADOR  DE  INCREMENTO  Y  DECREMENTO  

1.  Al  usar  operador  incremento  o  decremento  como  PREFIJO  ++a,  -­‐-­‐a  el  
efecto  se  produce  ANTES  que  su  valor  se  u;lice.  

2.  Al  usar  operador  incremento  o  decremento  como  POSTFIJO  a++,  a-­‐-­‐  el  
efecto  se  produce  DESPUÉS  que  su  valor  se  u;lice.  

Ejemplo:  
 
N=5;  
X=++N;  (X=6  y  N=6)  
 
N=5;  
X=N++;      (X=5  y  N=6)  
Jerarquía  de  Operadores  
Operador  

()  

-­‐,++,-­‐-­‐  

*,/,%  

+,-­‐  

Si  dos  operadores  estan  en  la  misma  jerarquia,  se  evaluan  de  izquierda  a  derecha.  
Operadores  de  Asignación  
OPERADOR   SIGNIFICADO   OPERANDOS  

=   Asignación  Simple   Variable=valor  

+=   Suma   Variable+=valor  

-­‐=   Resta   Variable-­‐=valor  

*=   Mul;plicación   Variable*=valor  

/=   División   Variable/=valor  

%=   Modulo   Variable%=valor  
Operadores  relacionales  
OPERADOR   SIGNIFICADO   OPERANDOS  

>   Mayor  que   Op1  >  op2  

<   Menor  que   Op1  <  op2  

>=   Mayor  o  igual  que   Op1  >=  op2  

<=   Menor  o  igual  que   Op1  <=  op2  

!=   Dis;nto  de   Op1  !=  op2  

==   Igual  que   Op1  ==  op2  


Operadores  Lógicos  
OPERADOR   SIGNIFICADO   OPERANDOS  

&&   AND   OP1  &&  OP2  

||   OR   OP1  ||  OP2  

!   NOT   !  Op  
Constantes  en  C  
Constantes  en  C  
•  Constantes  simbólicas  
–  Sintaxis:  #define  <iden;ficador>  <valor>  
–  Ejemplo:  #define  PI  3.1415  
•  Constantes  Enumeradas  
–  Ejemplo:  enum  boolean  {TRUE,  FALSE}  (True  =  0,  
FALSE  =  1)  
–  Ejemplo:  enum  meses  {ENE=1,  FEB,  MAR,…}  
Ejemplo  
Constantes  Literales  
•  Tipo  entero  y  real.  
–  15,  17.78,  etc.  
•  Tipo  Carácter.  
–  ‘A’,  ‘1’,  ‘#’  
•  Cadenas  de  Caracteres    
–  “HOLA”  
Constantes:  Secuencias  de  escape  
•  Ciertos  caracteres  se  pueden  representar  mediante  lo  
que  se  conoce  como  secuencia  de  escape.  
 
•  Ejemplos:  
 
\n    Nueva  línea          \b    Retroceso  
 \f    Avance  de  hoja      \a    Alarma  (campana)  
\r    Retorno  de  carro      \t    Tabulador  horizontal  
\v    Tabulador  ver;cal    \\  Diagonal  inver;da  
\?  Signo  de  Interrogación  \’  Apostrofé  
\”    Comillas          \000  Número  octal  
\xhh    Número  hexadecimal  
Comentarios.  
•  Obje;vo:  Documentar  programas/  Facilitar  
letura  y  mantención  del  código  

•  Sintaxis:  //  Este  es  un  comentario  

•  Sintaxis:  /*  Este  tambien  


         es  un  comentario*/