Sei sulla pagina 1di 54

Introducción a la

Programación.
M. I. Jaime Alfonso Reyes Cortés
Referencia rápida de lenguaje C
El compilador de C
errores de sintaxis y semántica

Código
Código Código
Preprocesador
Preprocesador fuente Compilador
Compilador
fuente objeto
con
adecuaciones

datos

Código
resultados ligador
ligador
máquina

errores de
memoria y
bibliotecas
de ejecución
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> /*Bibliotecas o archivos de cabecera*/


#include <biblioteca2.h> /*donde están las funciones que usa C*/
#define MACRO1 valor /*Declaración de constantes donde */
#define MACRO2 valor /*también se pueden definir expresiones
compuestas*/
int main() /*función principal*/
{
/*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> /*Bibliotecas o archivos de cabecera*/
#include <biblioteca2.h> /*donde están las funciones que usa C*/

#define MACRO1 valor /*Declaración de constantes donde */


#define MACRO2 valor /*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> /*Bibliotecas o archivos de cabecera*/
#include <biblioteca2.h> /*donde están las funciones que usa C*/

#define MACRO1 valor /*Declaración de constantes donde */


#define MACRO2 valor /*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; /*Devuelve el valor a la función 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
A !
 Precedencia
0 1
 ! not (negado)
1 0
 && (AND)
 || (OR ) A B && ||
 Nota: En C un valor 0 0 0 0
falso se toma como 0 y 0 1 0 1
un valor verdadero se 1 0 0 1
toma como cualquier
valor diferente de cero 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
 a++ (postincremento)
 ++a (preincremento)
 Operador (--) : Decremento
 Este operador equivale a restar uno a la variable
 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 sin, cos, tan, asin, acos,
trigonométricas 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 toupper, tolower, isalpha,
caracteres isalnum, isdigit, etc.
stdlib.h Funciones usadas comúnmente: rutinas abs, atoi, atof, max, min,
de conversión, búsqueda/ordenamiento random, randomize, etc
y miscelaneas
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
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 if (condición1)
{ /*bloque1*/}
anidadas 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)
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 que indica la posición del
elemento dentro del arreglo, p. ej.
arrentero[4] = 18;
índices
del 0 1 2 3 4 5 6
arreglo
arrentero 10 0 7 14 18 2 -10
Guía de referencia rápida de lenguaje
dirección índices
C de memoria del
memoria arreglo
0x2000
10 0
0x2001

 Arreglos (cont.) 0x2002


0 1
 Un arreglo se utiliza para 0x2003
manejar un conjunto de
variables que están 0x2004
relacionadas entre sí como los
7 2
0x2005
componentes de un vector o los
coeficientes de un polinomio. 0x2006
 Los elementos de un arreglo 14 3
0x2007
ocupan direcciones contiguas
en memoria, p. ej. 0x2008
18 4
0x2009
0x200A
2 5
0x200B
0x200C
-10 6
0x200D
Guía de referencia rápida de lenguaje
C

 Arreglos
 La forma de declarar un arreglos de varias
dimensiones en C es
tipo nombredelarreglo[dimensión1]
[dimensión2]…[dimensiónN];
 La forma de acceder a cada elemento del arreglo es
por medio del índice en cada dimensión, p. ej.
int matriz[2][2] = {{1,0},{2,1}};

matriz[0][1]= -1;
Guía de referencia rápida de lenguaje
dirección índices
C de memoria del
memoria arreglo
0x200E
1 0,0
0x200F

 Arreglos (cont.) 0x2010


0 0,1
0x2011
 También los elementos
de un arreglo 0x2012
2 1,1
multidimensional 0x2013
ocupan direcciones
0x2014
contiguas en memoria, 1 1,2
0x2015
para el ejemplo anterior.
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 5 6

‘h’ ‘o’ ‘l’ ‘a’ ‘\0’


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


Estructuras en C (struct)

 A los registros en C se les denomina


estructuras o struct
 Conjunto de variables del mismo tipo o de
distintos tipos agrupados bajo un mismo
nombre.
Estructuras (struct)

 Las estructuras se utilizan para agrupar


variables de distintos tipos que tienen
relación entre sí, por ejemplo:
– Una persona posee un nombre propio, un
apellido, una edad, un género, un estado civil, un
domicilio, etc.
– Otro ejemplo podría ser un polinomio que
contiene un grado y un conjunto de coeficientes.
 Cada uno de los componentes de una
estructura se denomina campo.
Estructuras (struct)

 La forma de definir una estructura en C es:


struct id_estructura
{

tipo1 id_campo1;
tipo2 id_campo2;

tipon id_campon;
};
Estructuras en C (struct)

 A un ejemplo específico de una estructura se


le denomina instancia
 Una instancia se puede declarar ya sea
después de definir la estructura
struct id_estructura
{
tipo1 id_campo1;
tipo2 id_campo2;

tipon id_campon;
} variable_de_tipo_id_estructura;
Estructuras en C (struct)

 o anteponiendo el nombre de la estructura


seguido del nombre de la o las variables que se
desean declarar.
id_estructura variable_de_tipo_id_estructura;
Estructuras en C (struct)
 Retomando el ejemplo de la persona
struct Persona
{
char nombre[30];
char apellido[30];
int edad;
char genero;
};
 Podemos declarar variables de tipo estructura como:
struct Persona A;
 Asignamos valores a sus campos usando el operador .
–scanf(“%s”,A.nombre);
–scanf(“%s”,A.apellido);
–A.edad = 22;
–A.genero = ‘M’;
Estructuras en C (struct)

 Con las variables definidas podemos hacer


operaciones entre sus campos:
– A.edad = A.edad*2;
 Y los podemos mostrar en pantalla
 printf(“Persona 1:\nnombre:
%s\napellido: %s\nedad: %d\n
género: %c”, A.nombre, A.apellido,
A.edad, A.genero);
Diferencias entre arreglos y
estructuras

 Un arreglo puede almacenar N elementos del mismo


tipo, mientras que una estrutura puede almacenar N
elementos de diferentes tipos.
 Los elementos de una arreglo se accesan por medio
de índices (posición del elemento en el arreglo)
mientras que los elementos de una estructura
(campos) se acceden directamente por su nombre
 En un arreglo es posible establecer un orden entre
sus elementos, mientras que en una estructura no
existe orden entre los campos
Estructuras en C (struct)

 Una persona también tiene un domicilio


struct Domicilio
{
char calle[30];
int número_int;
int número_ext;
char colonia[30];
char deleg_munic[50];
unsigned long cp;
};
Estructuras en C (struct)

 Podemos tener arreglos de estructuras


struct Persona contactos[10];
Apuntadores en C

 Un apuntador es una variable que almacena


una dirección de memoria de otra variable
 La forma de declararlos es:
– tipo1 *id_variabletipo1;
– tipo2 *id_variabletipo2;

Potrebbero piacerti anche