Vous êtes sur la page 1sur 26

17/07/2005 Ing.

J uan Gregorio Choque Uo 1


Introduccin
C es un lenguaje elegantemente simple, y un reto para los
programadores. A veces lo querra, y a veces lo odiara.
C tiene mucho de agradable: es pequeo, potente, y si se usa
apropiadamente, C es rapido, eficiente y portable, esto es, que puede
ser facilmente trasladado de un ordenador o un sistema operativo a
otro.
C le permite hacer cosas maravillosas, tales como construir
compiladores, sistemas operativos y editores, o cualquier otra cosa que
pueda usted almacenada en la memoria del sistema.
El C ha demostrado ser un lenguaje extremadamente eficaz y efectivo
en una amplia gama de aplicaciones.
17/07/2005 Ing. J uan Gregorio Choque Uo 2
Evolucin de los lenguajes
17/07/2005 Ing. J uan Gregorio Choque Uo 3
Fases del Compilador
Al compilar un programa en C, se crea dos archivos, el archivo (.obj) y
el archivo (.exe), tal como muestra la siguiente figura:
.cpp
compilador
linker .exe
modulo.c
modulo.exe
Otrosmodulos modulo.obj modulo.exe
bcc
bcc -opciones ficheros
17/07/2005 Ing. J uan Gregorio Choque Uo 4
Porque realizar programas
El objetivo de un programa es el de procesar informacin en forma de
datos, para obtener un determinado resultado.
Lo que diferencia un lenguaje computacional de otro es la forma de
representar los datos y las herramientas que ofrece para procesarlos.
Es decir:
La estructura general de un programa, tipos de datos,
declaracin de variables, constantes, comentarios,
iteraciones, operaciones condicionales, operaciones de
entrada/salida
17/07/2005 Ing. J uan Gregorio Choque Uo 5
Estructura de un programa
Todo programa en C consta de una o ms funciones, una de ellas se
llama main. El programa comienza en la funcin main, desde la cual
es posible llamar a otras funciones.
Cada funcin estar formada por la cabecera, compuesta por el
nombre de la misma y la lista de argumentos, la declaracin de las
variables a utilizar y la secuencia de sentencias a ejecutar.
Ejemplo:
declaraciones globales
main( )
{
variables locales bloque
}
funcion1( )
{
variables locales bloque
}
17/07/2005 Ing. J uan Gregorio Choque Uo 6
Comentarios
A la hora de programar es conveniente aadir comentarios (cuantos
ms mejor) para poder saber que funcin tiene cada parte del
cdigo, en caso de que no lo utilicemos durante algn tiempo.
Adems facilitaremos el trabajo a otros programadores que puedan
utilizar nuestro archivo fuente.
Para poner comentarios en un programa escrito en C usamos los
smbolos /* y */:
/ * Este es un ejemplo de comentario */
/ * Un comentario tambin puede
estar escrito en varias lneas */
El smbolo /* se coloca al principio del comentario y el smbolo */ al
final.
El comentario, contenido entre estos dos smbolos, no es tomado en
cuenta por el compilador.
17/07/2005 Ing. J uan Gregorio Choque Uo 7
Palabras clave
Existen una serie de indicadores reservados, con una finalidad
determinada, que no podemos utilizar como identificadores.
A continuacin vemos algunas de estas palabras clave:
char int float
double if else
do while for
switch short long
extern static default
continue break register
sizeof typedef
17/07/2005 Ing. J uan Gregorio Choque Uo 8
Identificadores
Nombran los objetos que intervienen en los programas ya sea a las
variables o funciones.
Son sensibles a las maysculas o minsculas (a1, A1)
No pueden comenzar por un dgito y pueden llevar _ pero NO blancos:
este_es_un_nombre_de_variable_algo_largo
_mivariable_83 // para uso del propio lenguaje
Conviene no usar identificadores de ms de 31 caracteres por
cuestiones de portabilidad
17/07/2005 Ing. J uan Gregorio Choque Uo 9
Tipos de datos elementales
Definicin.
Un tipo de dato es un conjunto de valores y un conjunto de operaciones
Tipos elementales del C
Nmeros
enteros: i nt , shor t , l ong, unsi gned i nt
reales: f l oat , doubl e, l ong doubl e
Caracteres
char , unsi gned char
Tipo Nulo
voi d
17/07/2005 Ing. J uan Gregorio Choque Uo 10
Los nmeros enteros
Valores o Constantes
shor t : -32766 .. 32767 (16 bits)
l ong: -2147483647 .. 2147483647 (32 bits)
unsi gned i nt : 0 .. 4294967295 (32 bits)
i nt : shor t o l ong
Operaciones
Operadores
Aritmticos: + - * / %
Comparaciones: == ! = > < >= <=
Funciones
Predefinidas: pow( x, y) ( #i ncl ude <mat h> )
Definidas por el programador
17/07/2005 Ing. J uan Gregorio Choque Uo 11
Expresiones con nmeros enteros
Definicin.
Una expresin es una secuencia formada por variables, constantes,
operadores, funciones y parntesis, se evala de acuerdo con los
parntesis y las reglas de precedencia y asociatividad de los
operadores, y produce un valor de un determinado tipo, este es el tipo
de la expresin.
Ejemplos ( int x = 1, y = 0, z = 2;)
(y + z) + 2 + 1 Entera
3 / z * y Real
z >= 3 Lgica
17/07/2005 Ing. J uan Gregorio Choque Uo 12
Los nmeros reales
Valores o Constantes
f l oat : 1.17 * (10^-38) .. 3.4 * (10^38) (32 bits)
doubl e: 2.22*( 10^-308) .. 1.78*(10^308) (64 bits)
Representacin de las constantes
externa
decimal con punto (punto fijo): 12.045
exponencial con base 10 (punto flotante): 12.34E-23
interna
exponencial con base 2
Operaciones
Operadores Aritmticos: + - * /
Comparaciones y Funciones
17/07/2005 Ing. J uan Gregorio Choque Uo 13
Expresiones con nmeros reales
double x = 0.0, y = 1.23, z = -2.3E-3;
Aritmticas (reales)
(y + z) * 2 + 1.98
3.0 / z + 1
((2.3E-2 * z) + (5.98 * y))
Aritmticas (enteras)
Cast (int)24.78 + 45
Lgicas
z >= 3.6
(x + y) < pow(z,2.0)
z == y x != y /* NO DEBEN HACERSE! */
17/07/2005 Ing. J uan Gregorio Choque Uo 14
Los caracteres
Valores o Constantes
char , unsi gned char (8 bits)
normales a A + 1 ; . . . .
especiales \ n \ t . . . .
Operaciones
Comparaciones
== ! = > < >= <=
CdigoASCII
unsi gned char [0..255]
char [-128..127]
El operador st at i c_cast <T>( . . . )
Funciones
.......
17/07/2005 Ing. J uan Gregorio Choque Uo 15
El tipo Nulo
void
el tipo que representa la nada
el tipo que devuelve un procedimiento
el tipo de los parmetros de las funciones sin parmetros
el tipo indefinido
referencias a memoria de la que no se conoce el tipo
17/07/2005 Ing. J uan Gregorio Choque Uo 16
Conversiones
Automticas
promocin al de ms rango
int + float -> float
char, short -> int
prdida de informacin
char = int; int = double;
Manuales (cast)
(double) integer
17/07/2005 Ing. J uan Gregorio Choque Uo 17
Las Variables
Una variable es un tipo de dato, referenciado mediante un
identificador (que es el nombre de la variable). Su contenido
podr ser modificado a lo largo del programa.
Una variable slo puede pertenecer a un tipo de dato. Para
poder utilizar una variable, primero tiene que ser declarada:
[calificador] <tipo> <nombre>;
int x1,x2;
las declaraciones pueden incluir valores iniciales
[calificador]<tipo><nom1>,<nom2>=<val>;
int x1 = 0, x2 = 47, suma = 21;
corresponden a direcciones de memoria de la computadora
17/07/2005 Ing. J uan Gregorio Choque Uo 18
Donde se declaran ?
Las variables pueden ser de dos tipos segn el lugar en que
las declaremos: globales o locales.
La variable global se declara antes de la main( ). Puede ser
utilizada en cualquier parte del programa y se destruye al
finalizar ste.
La variable local se declara despus de la main( ), en la
funcin en que vaya a ser utilizada. Slo existe dentro de la
funcin en que se declara y se destruye al finalizar dicha
funcin.
17/07/2005 Ing. J uan Gregorio Choque Uo 19
Constantes
Al contrario que las variables, las constantes mantienen su
valor a lo largo de todo el programa.
Para indicar al compilador que se trata de una constante,
usaremos la directiva #define:
#define <identificador> <valor>
Observa que no se indica el punto y coma de final de
sentencia ni tampoco el tipo de dato.
La directiva #define no slo nos permite sustituir un nombre
por un valor numrico, sin tambin por una cadena de
caracteres.
El valor de una constante no puede ser modificado de ninguna
manera.
17/07/2005 Ing. J uan Gregorio Choque Uo 20
Inclusion de ficheros cabecera
En la programacin en C es posible utilizar funciones que no
estn incluidas en el propio programa. Para ello utilizamos la
directiva #include, que permite aadir libreras o funciones
que se encuentran en otros ficheros.
Para incluir ficheros externos existen dos maneras (siempre
antes de las declaraciones).
1. Indicndole al compilador la ruta donde se encuentra el
fichero.
#include "misfunc.h"
#include "c:\ includes\ misfunc.h"
2. Indicando que se encuentran en el directorio por defecto
del compilador.
#include <misfunc.h>
17/07/2005 Ing. J uan Gregorio Choque Uo 21
Operadores
Aritmticos
+ - * / %
Relacionales y lgicos
> >= < <= == != && || !
Manejo de bits
& | ^ << >> ~
17/07/2005 Ing. J uan Gregorio Choque Uo 22
Asignaciones
Son operadores (devuelven un valor)
a = b + 1;
x = y = z = 3;
u = (v = x) + (y = z);
Combinables con otros operadores
i += 2;
z *= y - 1;
mask <<= 3;
17/07/2005 Ing. J uan Gregorio Choque Uo 23
Otros operadores
Incremento/ decremento
i ++; a [ ++i ] -- ;
Evaluacin condicional
X=( a > b) ? a : b;
Tamao en bytes
sizeof ( variable );
sizeof ( tipo);
Secuencia
i = j ++ ,j=2 * j;
17/07/2005 Ing. J uan Gregorio Choque Uo 24
Las Operaciones de Entrada-Salida
Una operacin de entrada tiene por objeto el obtener datos de
los diferentes dispositivos de entrada; generalmente del teclado,
y de almacenarlos en memoria principal.
Una operacin de salida tiene por objeto el obtener datos de
memoria principal y sacarlos a los dispositivos de salida,
generalmente la pantalla.
C cuenta con dos funciones para realizar lo anterior:
1. printf()
2. scanf()
17/07/2005 Ing. J uan Gregorio Choque Uo 25
La funcin printf
Sintaxis:
printf("formato", var1, var2, ..., varN)
Donde "formato": es una serie de caracteres. Secuencias
especiales:
%d: escribir un entero;
%o: escribir en octal;
%x: escribir en hexadecimal;
%u: escribir en entero sin signo;
%f: escribir un flotante o doble;
%%: escribir caracter '%';
Despliega en pantalla lo especificado por formato, sustituye
var1 por la primera secuencia %, var2 por la segundo %y as
sucesivamente.
17/07/2005 Ing. J uan Gregorio Choque Uo 26
La funcin scanf
Sintaxis:
scanf("formato", &var1, &var2, ..., &varN)
"formato": debe contener una las secuencias siguientes:
%d, %o, %x: se refiere a un decimal, octal o hexadecimal;
%ld, %lo, %lx: lo mismo solo que para un long;
%hd, %ho, %hx: lo mismo solo que para un short;
%c: hace referencia a un caracter;
%f, %lf: referencia a un float o double
Los valores correspondientes a las secuencias %se asignan a las
variables var1, var2, hasta varN

Vous aimerez peut-être aussi