UNIVERSIDAD NACIONAL AUTÓNOMA DE MÉXICO
FACULTAD DE INGENIERIA
DIVISIÓN DE INGENIERÍA ELÉCTRICA
COMPUTACIÓN PARA INGENIEROS
PROF. M.I. JAIME ALFONSO REYES CORTÉS
El compilador de C
errores de sintaxis y semántica
Código
Código
fuente
Preprocesador
fuente
Código
Compilador
con
adecuaciones
objeto
datos
resultados
Código
máquina
errores de
memoria y
de ejecución
ligador
bibliotecas
Guía de referencia rápida 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 guión
bajo y estar seguidos de cero o más letras, números
o guiones bajos
No se permiten símbolos como
$ ¡ ! ¿ ? ° | & - % # @ , . ‘ “ / \ o espacios en blanco
ni tabuladores
Guía de referencia rápida 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
Guía de referencia rápida de lenguaje
C



Palabras reservadas en C++
Además de las palabras reservadas de C, C++ también 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
Guía de referencia rápida de lenguaje
C







Constante: Un valor declarado u objeto que no cambia
durante la ejecución y que se especifica mediante la directiva
de sustitución 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 ejecución del programa y que se
especifica en la parte de declaración de variables. Las
variables se representan por identificadores válidos y se les
antepone el tipo de dato que representan. Por ejemplo:
int a;
float b;
Se le denomina ámbito al alcance o utilización que pueden
tener las variables en C. De acuerdo a esto existen variables
globales y variables locales
Guía de referencia rápida 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 sólo 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 función
donde fue declarada
Guía de referencia rápida de lenguaje
C


Tipos de datos en C
Los tipos básicos en C son
–
–
–
–
–
–

int (entero)
float (real de precisión sencilla)
double (real de precisión doble)
char (carácter)
char nombre[TAMAÑO] (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. Véase el artículo Tipos de
datos en C.
Guía de referencia rápida de lenguaje
C
Estructura general de un programa en C

La forma más 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 están las funciones que usa C*/
/*Declaración de constantes donde */
/*también se pueden definir expresiones
compuestas*/
/*función principal*/
int main()
{
/*Declaración de variables*/
/*Asignación de variables*/
/*Cuerpo de la función principal*/
return 0;
/*Devuelve el control al S.O. indicando que
todo terminó bien*/
}
Guía de referencia rápida 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 están las funciones que usa C*/
/*Declaración de constantes donde */
/*también se pueden definir expresiones
compuestas*/
…
tipo1 funcion1(lista de parámetrosA);/*Declaración de los prototipos*/
tipo2 funcion2(lista de parámetrosB);/*de funciones definidas por el
usuario*/
…
tipoA variabletipoA;
/*Variables globales*/
tipoB variabletipoB;
…
Guía de referencia rápida de lenguaje
C
int main()
/*función principal*/
{
/*Declaración de variables locales*/
/*Asignación de variables*/
/*Cuerpo de la función principal*/
return 0;
/*Devuelve el control al S.O. indicando que
todo terminó bien*/
}
/*funciones definidas por el usuario*/
tipo1 funcion1(lista de parámetrosA)
/*función1 que devuelve un
valor de tipo1*/
{
/*Declaración de variables locales*/
/*Asignación de variables*/
/*Cuerpo de la función1*/
return valor_de_tipo1;
/*Devuelve el valor a la función
que la invocó*/
}
Guía de referencia rápida de lenguaje
C
tipo2 funcion2(lista de parámetrosB)
/*función2 que devuelve un
valor de tipo1*/
{
/*Declaración de variables locales*/
/*Asignación de variables*/
/*Cuerpo de la función2*/
return valor_de_tipo1;
}
…
/*Devuelve el valor a la
que la invocó*/
Guía de referencia rápida 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 están las funciones que usa C*/
/*Declaración de constantes donde */
/*también 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 función
principal main*/
/*No es necesario declarar su prototipo. Cada función termina con ;
después de definirla a diferencia de la Estructura 1*/
Guía de referencia rápida de lenguaje
C
tipo1 funcion1(lista de parámetrosA)
/*función1 que devuelve un
valor de tipo1*/
{
/*Declaración de variables locales*/
/*Asignación de variables*/
/*Cuerpo de la función1*/
return valor_de_tipo1;
/*Devuelve el valor a la
función que la invocó*/
};
tipo2 funcion2(lista de parámetrosB)
/*función2 que devuelve un
valor de tipo1*/
{
/*Declaración de variables locales*/
/*Asignación de variables*/
/*Cuerpo de la función2*/
return valor_de_tipo1;
función
};
/*Devuelve el valor a la
que la invocó*/
Guía de referencia rápida de lenguaje
C
…
int main()
/*función principal*/
{
/*Declaración de variables locales*/
/*Asignación de variables*/
/*Cuerpo de la función principal*/
return 0;
/*Devuelve el control al S.O.
indicando que todo terminó bien*/
}
Guía de referencia rápida de lenguaje
C







Operador de asignación
=
Operadores aritméticos
Precedencia
- (operador monario)
*, / (división), % (residuo de división entera)
+, -
Guía de referencia rápida de lenguaje
C






Operadores relacionales
Precedencia
>, <
>=, <=
== (igualdad)
!= (desigualdad)
Guía de referencia rápida de lenguaje
C






Operadores lógicos
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
A
0
1
!
1
0
A
B
&&
||
0
0
0
0
0
1
0
1
1
0
0
1
1
1
1
1
Guía de referencia rápida de lenguaje
C


Operador sizeof
Este es un operador muy útil. Nos permite conocer el tamaño
en bytes de una variable. De esta manera no tenemos que
preocuparnos en recordar o calcular cuanto ocupa en memoria.
Además el tamaño de una variable cambia de un compilador a
otro, es la mejor forma de asegurarse. Se usa poniendo el
nombre de la variable después de sizeof y separado de un
espacio:
#include <stdio.h>
int main()
{
int variable;
printf( "Tamaño de la variable: %i\n", sizeof (variable) );
return 0;
}
Guía de referencia rápida 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
Guía de referencia rápida de lenguaje
C

Sentencias de asignación
int a = 5, b;
b = 12;

Expresiones aritméticas


5*A/2%4-5

Expresiones lógicas o booleanas
(a < 5) && (b > 4)
(x <= 0.23) || (x > 0.25)
((a != b) && !c) || (c == d)
Guía de referencia rápida de lenguaje
C






Notación abreviada. Se usa cuando una variable
opera consigo misma y con una constante o una
expresión
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 */
Guía de referencia rápida 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 más comunes son:
Biblioteca
Descripción
Funciones
stdio.h
Funciones de entrada/salida estándar
printf, scanf, gets, puts, fflush,
etc.
math.h
Funciones matemáticas y trigonométricas
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 comúnmente: rutinas
de conversión, búsqueda/ordenamiento y
miscelaneas
abs, atoi, atof, max, min,
random, randomize, etc
Guía de referencia rápida de lenguaje
C

Operaciones de entrada/salida
Entrada (leer valores por vía 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 = código de formato
Guía de referencia rápida 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 más 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 instrucción
Tenemos entonces tres tipos principales de
estructuras de control: Estructura secuencial,
estructuras de decisiónes o selecciones y los ciclos
o estructuras de repetición
Guía de referencia rápida de lenguaje
C


Estructuras de control
Estructura secuencial
Guía de referencia rápida de lenguaje
C

Estructuras de control
Simple
Doble
Decisión
Anidada
Múltiple
Expresión
condicional
Guía de referencia rápida de lenguaje
C
 Decisiones
simples
Guía de referencia rápida de lenguaje
C
 Decisiones
dobles
Guía de referencia rápida de lenguaje
C
 Decisiones
anidadas
if (condición1)
{ /*bloque1*/}
else if(condición2)
{ /*bloque2*/}
else if(condición3)
{…}
else if(condiciónN)
{/*bloqueN*/}
else
{/*bloqueN+1*/}
Guía de referencia rápida de lenguaje
C
 Decisión
múltiple
Guía de referencia rápida de lenguaje
C
Expresión condicional
 Se usa para simplificar una decisión doble que
afecta a una única variable.
var = condición ? expresión1: expresión2;

Por ejemplo:
if(condición)
a = 5.7;
else
a = sqrt(10.0);
Se puede abreviar como
a = condición ? 5.7 : sqrt(10.0);
Guía de referencia rápida de lenguaje
C


Estructuras de control
Estructuras de repetición (ciclos, loops, lazos o
bucles)
while
simples
do-while
anidados
for
Ciclos
Guía de referencia rápida de lenguaje
C


Estructuras de control
Ciclo while
Guía de referencia rápida de lenguaje
C


Estructuras de control
Ciclo do-while
Guía de referencia rápida de lenguaje
C

Estructuras de control
Guía de referencia rápida 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[tamaño];
La forma de acceder a cada elemento del arreglo es
por medio de un índice, p. ej.
arrentero[4] = 18;
0
1
2
3
4
5
6
10
0
7
14
18
2
-10
Cadenas en C




En C las cadenas no se definen en forma
explícita, se definen como arreglos de
caracteres:
char nombre_cadena[tamaño]
char cadena[7];
scanf(“%s”,cadena); /*suponiendo
que se tecleo hola*/
0
1
2
3
4
‘h’
‘o’
‘l’
‘a’
‘\0’
5
6
Cadenas en C


Se considera que toda cadena lleva al final
de ella un “fin de cadena” o “terminador
nulo”, el cuál permite delimitar a la cadena.
Se debe considerar el fin de cadena cuando
se trabaje con ellas, así al definir el tamaño
de la cadena siempre se debe de tener en
cuenta su terminador nulo y reservar
siempre un espacio adicional para el tamaño
que se quiera asignar a la cadena.
Funciones que manipulan cadenas
Nombre
Descripción
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

Están definidas en la biblioteca string.h
Apuntadores en C
Descargar

Parte 1