Está en la página 1de 41

UNIVERSIDAD NACIONAL AUTNOMA DE MXICO

FACULTAD DE INGENIERIA
DIVISIN DE INGENIERA ELCTRICA
COMPUTACIN PARA INGENIEROS

PROF. M.I. JAIME ALFONSO REYES CORTS

El compilador de C
errores de sintaxis y semntica

Cdigo
fuente

Cdigo
Preprocesador
Preprocesador

fuente

Compilador
Compilador

con
adecuaciones

Cdigo
objeto

datos

resultados

Cdigo
mquina
errores de
memoria y
de ejecucin

ligador
ligador

bibliotecas

Gua de referencia rpida de lenguaje


C

Identificadores
Un identificador es una palabra o secuencia de
caracteres que forman el nombre de un objeto del
programa
Deben empezar con letra, excepto o , o guin
bajo y estar seguidos de cero o ms letras, nmeros
o guiones bajos
No se permiten smbolos como
$ ! ? | & - % # @ , . / \ o espacios en blanco ni
tabuladores

Gua de referencia rpida de lenguaje


C

Palabras reservadas en C
C posee un conjunto de palabras que no pueden ser
utilizadas como nombres de identificadores ni de
funciones. Son las siguientes:
auto, break, case, char, const, continue, default,
do, double, else, enum, extern, float, for, goto, if,
int, long, register, return, short, signed, sizeof,
static, struct, switch, typedef, union, unsigned,
void, volatile, while

Gua de referencia rpida de lenguaje


C

Palabras reservadas en C++


Adems de las palabras reservadas de C, C++ tambin posee
un conjunto de palabras que se deben de considerar cuando
se programe en C con compiladores de C++. Son las
siguientes:
asm, auto, bool, break, case, catch, char, class, const,
const_cast, continue, default, delete, do, double,
dynamic_cast, else, enum,explicit, extern, false, float, for,
friend, goto, if, inline, int, long, mutable, namespace, new,
operator, private, protected, public, register,
reinterpret_cast, return, short, signed, sizeof, static.
static_cast, struct, switch, template, this, throw, true, try,
typedef, typeid, typename, union, unsigned, using, virtual,
void, volatile, while

Gua de referencia rpida de lenguaje


C

Constante: Un valor declarado u objeto que no cambia


durante la ejecucin y que se especifica mediante la directiva
de sustitucin o macro #define, por ejemplo:
#define LMAX 21
#define PI 3.1416
Variable: Un objeto declarado que toma un valor que se puede
modificar durante la ejecucin del programa y que se
especifica en la parte de declaracin de variables. Las
variables se representan por identificadores vlidos y se les
antepone el tipo de dato que representan. Por ejemplo:
int a;
float b;
Se le denomina mbito al alcance o utilizacin que pueden
tener las variables en C. De acuerdo a esto existen variables
globales y variables locales

Gua de referencia rpida de lenguaje


C

Variable global: Aquella variable que puede ser


modificada y utilizada en cualquier parte del
programa, es decir su mbito o alcance no est
restringido
Variable local: Aquella variable que slo puede ser
modificada y utilizada solamente en la parte del
programa donde fue definida, como en el caso de
las variables que se declaran dentro de las
funciones. En otras palabras el mbito de una
variable local se encuentra restringido a la funcin
donde fue declarada

Gua de referencia rpida de lenguaje


C

Tipos de datos en C
Los tipos bsicos en C son

int (entero)
float (real de precisin sencilla)
double (real de precisin doble)
char (carcter)
char nombre[TAMAO] (cadenas)
Los booleanos no existen en C. En su lugar se toman int
con valor 0 para falso y diferente de 0 como verdadero

C cuenta con otros tipos de datos. Para ello hace


uso de modificadores. Vase el artculo
Tipos de datos en C.

Gua de referencia rpida de lenguaje


C
Estructura general de un programa en C

La forma ms sencilla de elaborar un programa en C es:

#include <biblioteca1.h>
#include <biblioteca2.h>
#define MACRO1 valor
#define MACRO2 valor

/*Bibliotecas o archivos de cabecera*/


/*donde estn las funciones que usa C*/
/*Declaracin de constantes donde */
/*tambin se pueden definir expresiones
compuestas*/
/*funcin principal*/

int main()
{
/*Declaracin de variables*/
/*Asignacin de variables*/
/*Cuerpo de la funcin principal*/
return 0;
/*Devuelve el control al S.O. indicando que
todo termin bien*/
}

Gua de referencia rpida de lenguaje


C
Estructura general de un programa en C

En realidad existen dos estructuras formales que se pueden


usar al elaborar un programa en C.
Estructura 1

#include <biblioteca1.h>
#include <biblioteca2.h>
#define MACRO1 valor
#define MACRO2 valor

/*Bibliotecas o archivos de cabecera*/


/*donde estn las funciones que usa C*/
/*Declaracin de constantes donde */
/*tambin se pueden definir expresiones
compuestas*/

tipo1 funcion1(lista de parmetrosA);/*Declaracin de los prototipos*/


tipo2 funcion2(lista de parmetrosB);/*de funciones definidas por el
usuario*/

tipoA variabletipoA;
/*Variables globales*/
tipoB variabletipoB;

Gua de referencia rpida de lenguaje


C
int main()
/*funcin principal*/
{
/*Declaracin de variables locales*/
/*Asignacin de variables*/
/*Cuerpo de la funcin principal*/
return 0;
/*Devuelve el control al S.O. indicando que
todo
termin bien*/
}
/*funciones definidas por el usuario*/
tipo1 funcion1(lista de parmetrosA)
/*funcin1 que devuelve un
valor de tipo1*/
{
/*Declaracin de variables locales*/
/*Asignacin de variables*/
/*Cuerpo de la funcin1*/
return valor_de_tipo1;
/*Devuelve el valor a la funcin
que
la invoc*/
}

Gua de referencia rpida de lenguaje


C
tipo2 funcion2(lista de parmetrosB)

/*funcin2 que devuelve un


valor de tipo1*/

{
/*Declaracin de variables locales*/
/*Asignacin de variables*/
/*Cuerpo de la funcin2*/
return valor_de_tipo1;
}

/*Devuelve el valor a la
que la invoc*/

Gua de referencia rpida de lenguaje


C
Estructura general de un programa en C

Estructura 2

#include <biblioteca1.h>
#include <biblioteca2.h>
#define MACRO1 valor
#define MACRO2 valor

/*Bibliotecas o archivos de cabecera*/


/*donde estn las funciones que usa C*/
/*Declaracin de constantes donde */
/*tambin se pueden definir expresiones
compuestas*/

tipoA variabletipoA;
/*Variables globales*/
tipoB variabletipoB;

/*funciones definidas por el usuario*/


/*Aqu se definen los cuerpos de las funciones antes de la funcin
principal main*/
/*No es necesario declarar su prototipo. Cada funcin termina con ;
despus de definirla a diferencia de la Estructura 1*/

Gua de referencia rpida de lenguaje


C
tipo1 funcion1(lista de parmetrosA)
/*funcin1 que devuelve un
valor de tipo1*/
{
/*Declaracin de variables locales*/
/*Asignacin de variables*/
/*Cuerpo de la funcin1*/
return valor_de_tipo1;
/*Devuelve el valor a la
funcin que
la invoc*/
};
tipo2 funcion2(lista de parmetrosB)
/*funcin2 que devuelve un
valor de tipo1*/
{
/*Declaracin de variables locales*/
/*Asignacin de variables*/
/*Cuerpo de la funcin2*/
return valor_de_tipo1;
/*Devuelve el valor a la funcin
que
la invoc*/
};

Gua de referencia rpida de lenguaje


C

int main()
/*funcin principal*/
{
/*Declaracin de variables locales*/
/*Asignacin de variables*/
/*Cuerpo de la funcin principal*/
return 0;
/*Devuelve el control al S.O.
indicando que todo termin bien*/
}

Gua de referencia rpida de lenguaje


C
Operador

de asignacin

=
Operadores

aritmticos

Precedencia
-

(operador monario)
*, / (divisin), % (residuo de divisin entera)
+, -

Gua de referencia rpida de lenguaje


C
Operadores

relacionales

Precedencia
>,

<
>=, <=
== (igualdad)
!= (desigualdad)

Gua de referencia rpida de lenguaje


C
Operadores

lgicos

Precedencia
!

not (negado)
&& (AND)
|| (OR )
Nota: En C un valor
falso se toma como 0 y
un valor verdadero se
toma como cualquier
valor diferente de cero

&&

||

Gua de referencia rpida de lenguaje


C

Operador sizeof
Este es un operador muy til. Nos permite conocer el tamao
en bytes de una variable. De esta manera no tenemos que
preocuparnos en recordar o calcular cuanto ocupa en
memoria. Adems el tamao de una variable cambia de un
compilador a otro, es la mejor forma de asegurarse. Se usa
poniendo el nombre de la variable despus de sizeof y
separado de un espacio:
#include <stdio.h>
int main()
{
int variable;
printf( "Tamao de la variable: %i\n", sizeof (variable) );
return 0;

Gua de referencia rpida de lenguaje


C

Operador (++) : Incremento


Este operador equivale a sumar uno a la variable

Operador (--) : Decremento


Este operador equivale a restar uno a la variable

a++ (postincremento)
++a (preincremento)

a-- (postdecremento)
--a (predecremento)

NOTA: Existen otros operadores que no se tratan


en este texto pero que se pueden consultar en
los manuales de referencia de C

Gua de referencia rpida de lenguaje


C
Sentencias

de asignacin
int a = 5, b;
b = 12;
Expresiones aritmticas
5*A/2%4-5

Expresiones

lgicas o booleanas

(a < 5) && (b > 4)


(x <= 0.23) || (x > 0.25)
((a != b) && !c) || (c == d)

Gua de referencia rpida de lenguaje


C
Notacin

abreviada. Se usa cuando una variable


opera consigo misma y con una constante o una
expresin
int a = 5, b = 12;
a += 7; /* a = a + 7; */
b *= 2; /* b = b * 2; */
a/=2;
/*a = a / 2; */
suma*=x/fact; /*suma = suma*x/fact */

Gua de referencia rpida de lenguaje


C

Funciones predefinidas. Existen varias funciones predefinidas en C que se


pueden usar al momento de programar. Necesitan de su respectiva Biblioteca
para poder ser utilizadas. De hecho C agrupa a las funciones en Bibliotecas de
acuerdo a las tareas que realizan. Las ms comunes son:
Biblioteca

Descripcin

Funciones

stdio.h

Funciones de entrada/salida estndar

printf, scanf, gets, puts, fflush,


etc.

math.h

Funciones matemticas y
trigonomtricas

sin, cos, tan, asin, acos,


atan,etc.
exp, sqrt, log, log10, pow, etc.

string.h

Funciones que manipulan cadenas

strlen, strcpy, strcat, strcmp, etc.

ctype.h

Funciones que manipulan y clasifican


caracteres

toupper, tolower, isalpha,


isalnum, isdigit, etc.

stdlib.h

Funciones usadas comnmente: rutinas


de conversin, bsqueda/ordenamiento y
miscelaneas

abs, atoi, atof, max, min,


random, randomize, etc

Gua de referencia rpida de lenguaje


C
Operaciones

de entrada/salida
Entrada (leer valores por va teclado)
scanf(%cf_tipo1%cf_tipo2, &var_tipo1,
&var_tipo2,);

Salida

Mostrar en pantalla una cadena con


formato y/o una lista de variables

printf(texto %cf_tipo1 %cf_tipo2,var_tipo1,


var_tipo2,);
*cf = cdigo de formato

Gua de referencia rpida de lenguaje


C

Estructuras de control
Un algoritmo simple presenta flujo secuencial, sin
embargo, no todos los algoritmos son as ya que es
necesario realizar procedimientos ms complejos
que involucren ya sea elegir una o varias alternativas
o realizar el mismo procedimiento varias veces
El control de flujo de un lenguaje especifica el orden
en el que se ejecuta cada sentencia o instruccin
Tenemos entonces tres tipos principales de
estructuras de control: Estructura secuencial,
estructuras de decisines o selecciones y los ciclos
o estructuras de repeticin

Gua de referencia rpida de lenguaje


C
Estructuras

de control
Estructura secuencial

Gua de referencia rpida de lenguaje


C
Estructuras

de control

Gua de referencia rpida de lenguaje


C
Decisiones

simples

Gua de referencia rpida de lenguaje


C
Decisiones

dobles

Gua de referencia rpida de lenguaje


C
Decisiones if (condicin1)
{ /*bloque1*/}
anidadas
else if(condicin2)
{ /*bloque2*/}
else if(condicin3)
{}
else if(condicinN)
{/*bloqueN*/}
else
{/*bloqueN+1*/}

Gua de referencia rpida de lenguaje


C
Decisin

mltiple

Gua de referencia rpida de lenguaje


C
Expresin condicional
Se usa para simplificar una decisin doble que
afecta a una nica variable.
var = condicin ? expresin1: expresin2;

Por ejemplo:

if(condicin)
a = 5.7;
else
a = sqrt(10.0);

Se puede abreviar como

a = condicin ? 5.7 : sqrt(10.0);

Gua de referencia rpida de lenguaje


C

Estructuras de control
Estructuras de repeticin (ciclos, loops, lazos o
bucles)

Gua de referencia rpida de lenguaje


C

Estructuras de control
Ciclo while

Gua de referencia rpida de lenguaje


C

Estructuras de control
Ciclo do-while

Gua de referencia rpida de lenguaje


C

Estructuras de control

Gua de referencia rpida de lenguaje


C

Arreglos
Un arreglo es un conjunto ordenado de variables del
mismo tipo que se encuentran reunidas bajo un mismo
nombre
La forma de declarar un arreglo en C es
tipo nombredelarreglo[tamao];
La forma de acceder a cada elemento del arreglo es
por medio de un ndice, p. ej.
arrentero[4] = 18;
0

10

14

18

-10

Cadenas en C
En

C las cadenas no se definen en forma


explcita, se definen como arreglos de
caracteres:
char nombre_cadena[tamao]
char cadena[7];
scanf(%s,cadena); /*suponiendo
que se tecleo hola*/
0

\0

Cadenas en C
Se

considera que toda cadena lleva al final de


ella un fin de cadena o terminador nulo, el
cul permite delimitar a la cadena.
Se debe considerar el fin de cadena cuando se
trabaje con ellas, as al definir el tamao de la
cadena siempre se debe de tener en cuenta su
terminador nulo y reservar siempre un espacio
adicional para el tamao que se quiera asignar a
la cadena.

Funciones que manipulan cadenas


Nombre

Descripcin

gets

Lee cadenas con espacios en


blanco

puts

Muestra una cadena en pantalla

strcpy

Copia el contenido de una cadena


en otra

strcat

Concatena 2 cadenas

strcmp

Compara 2 cadenas

strlen

Longitud de una cadena

Estn definidas en la biblioteca string.h

Apuntadores en C

También podría gustarte