You are on page 1of 50

Lenguaje C/C++

Dennys G. Snchez Zavala

Primera Parte
Programacin Estructurada Lenguaje C

Dennys G. Snchez Zavala

Sesin 1 :
Introduccin al C

Dennys G. Snchez Zavala

Temas Sesin 1
Introduccin a la programacin Estructura general de un programa en C Identificadores, palabras reservadas y comentarios Tipos de datos y modificadores de tipo Variables y constantes Conversin de tipos implcitas y explicitas (casting) Entrada / Salida en C Modificadores y sentencias de escape Operadores y expresiones
Dennys G. Snchez Zavala

Estructura General
Todo programa en C consta de una o ms funciones, una de las cuales se llama main. El programa comienza en la funcin main, desde la cual es posible llamar a otras funciones. En C todas las lneas de cdigo terminan con punto y coma (;).

declaraciones globales ___________________________ main( ) { variables locales bloque de instrucciones } ___________________________ funcion 1( ) { variables locales bloque de instrucciones } ________________________________ ... funcion N( ) { variables locales bloque de instrucciones }

Nota: Para terminar esta sesin debo resaltar que C es un lenguaje Case Sensitive es decir es sensible tanto a las maysculas y minsculas (en otras palabras diferencia entre las mayusculas y minusculas)

Dennys G. Snchez Zavala

Comentarios
A la hora de programar es conveniente aadir comentarios (cuantos ms mejor) para poder saber que funcin tiene cada parte del cdigo. Para poner comentarios en un programa escrito en C usamos los smbolos /* y */: Nota: El comentario no /* Este es un comentario */ ser tenido en cuenta por el compilador
/* Un comentario tambin puede estar escrito en varias lneas */

Dennys G. Snchez Zavala

Palabras Reservadas
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

Dennys G. Snchez Zavala

Identificadores
Un identificador es el nombre que damos a las variables y funciones. Est formado por una secuencia de letras y dgitos, aunque tambin acepta el caracter de subrayado _. Por contra no acepta los acentos ni la /. El primer caracter de un identificador no puede ser un nmero, es decir que debe ser una letra o el smbolo _ Se diferencian las maysculas de las minsculas, as num, Num y nuM son distintos identificadores. A continuacin vemos unos ejemplos de identificadores validos y no validos Validos No Validos num 1num Var1 nmero2 fecha_nac ao_nac

Dennys G. Snchez Zavala

Salida en Pantalla
Sentencia printf( ) La rutina printf permite la aparicin de valores numricos, caracteres y cadenas de texto por pantalla.
Sintaxis: printf(control,arg1,arg2...);
Dennys G. Snchez Zavala

Salida en Pantalla
En la cadena de control, indicamos la forma en que se mostrarn los argumentos posteriores. Tambin podemos introducir una cadena de texto (sin necesidad de argumentos), o combinar ambas posibilidades, as como secuencias de escape (ver diapositiva siguiente).
En el caso de que utilicemos argumentos deberemos indicar en la cadena de control tantos modificadores como argumentos vayamos a presentar

Dennys G. Snchez Zavala

Secuencias de Escape
El carcter de barra invertida ( \ ) se puede usar para indicar caracteres especiales
\n \b \t \v \\ \f \ \ \0 : : : : : : : : : salto de lnea retroceso tabulacin horizontal tabulacin vertical contrabarra salto de pgina apstrofe comillas dobles fin de una cadena de caracteres

Dennys G. Snchez Zavala

Modificadores
Los modificadores mas utilizados son:
%c %d %u %o %x %e %f %s %p : : : : : : : : : Un nico carcter Un entero con signo, en base decimal Un entero sin signo, en base decimal Un entero en base octal Un entero en base hexadecimal Un nmero real en coma flotante, con exponente Un nmero real en coma flotante, sin exponente Una cadena de caracteres Un puntero o direccin de memoria

Dennys G. Snchez Zavala

Modificadores
El formato completo de los modificadores es el siguiente: % [signo] [longitud] [.precisin] [l/L] conversin

Signo: indicamos si el valor se ajustar a la izquierda, en cuyo caso


utilizaremos el signo menos, o a la derecha ( por defecto ).

Longitud: especifica la longitud mxima del valor que aparece por

pantalla. Si la longitud es menor que el nmero de dgitos del valor, ste aparecer ajustado a la izquierda.

Precisin: indicamos el nmero mximo de decimales que tendr el


valor.

l/L: utilizamos l cuando se trata de una variable de tipo long y L


cuando es de tipo double.

Dennys G. Snchez Zavala

Entrada por Teclado


Sentencia scanf( ) La rutina scanf permite entrar datos en la memoria del ordenador a travs del teclado.
Sintaxis: scanf(control,arg1,arg2...);
Dennys G. Snchez Zavala

Entrada por Teclado


En la cadena de control indicaremos, por regla general, los modificadores que harn referencia al tipo de dato de los argumentos. Al igual que en la sentencia printf los modificadores estarn formados por el caracter % seguido de un caracter de conversin. Los argumentos indicados sern, nuevamente, las variables. La principal caracterstica de la sentencia scanf es que necesita saber la posicin de la memoria del ordenador en que se encuentra la variable para poder almacenar la informacin obtenida. Para indicarle esta posicin utilizaremos el smbolo ampersand ( & ), que colocaremos delante del nombre de cada variable. ( Esto no ser necesario en los arrays ).

Dennys G. Snchez Zavala

Tipos de Datos Atmicos en C


Tipo
char

Tamao
1 byte

Rango
-128 a 127

int
fload double void

2 byte
4 byte 8 byte 0 byte

-32768 a 37767
3.4 E-38 a 3.4 E+38 1.7 E-308 a 1.7 E+308 Sin valor
Dennys G. Snchez Zavala

Variables
Para declarar variables se sigue el siguiente formato : tipo lista_de_variables;
En este modelo, tipo es un tipo de dato vlido de C y la lista_de_variables puede consistir en uno o ms nombres de identificadores separados por comas. int a; float x, y, z; char letra, Letra, LETRA;

Dennys G. Snchez Zavala

Operadores y Expresiones

Dennys G. Snchez Zavala

Operadores Aritmticos
Oper Nombre
+ * / % Suma Resta Multiplicacin Divisin Modulo

Descripcin
Suma dos valores Resta dos valores Multiplica dos valores Divide dos valores Resto de dividir dos valores

++ --

Incremento Decremento

Incrementa en una unidad Decremento en una unidad

Dennys G. Snchez Zavala

Operadores de Asignacin
Oper Descripcin
Asigna a la parte derecha el valor izquierdo Realiza la suma de la derecha con la izquierda y lo asigna a la derecha Realiza la resta de la derecha con la izquierda y lo asigna a la derecha Realiza la multip. de la derecha con la izquierda y lo asigna a la derecha Realiza la divisin de la derecha con la izquierda y lo asigna a la derecha Se obtiene el resto y se asigna Concatena el valor de la izquierda con la derecha y lo asigna a la derecha

= += -= *= /= %= .=

Dennys G. Snchez Zavala

Operadores Lgicos
Oper Descripcin
&& Devuelve True si ambas condiciones son True

and Devuelve True si ambas condiciones son True || or ! xor Devuelve True cuando al menos una de las 2 es True Devuelve True cuando al menos una de las 2 es True Niega el valor de la expresin Devuelve True si alguno es True pero nunca ambos
Dennys G. Snchez Zavala

Operadores de Comparacin
Oper Nombre Descripcin (devuelve True en caso cumpla)

==
!= > < >=

Igual
Diferente Mayor que Menor que

Comprueba si 2 valores son iguales


Comprueba si 2 valores son diferentes Derecha Mayor que Izquierda Derecha Menor que Izquierda

Mayor igual Derecha Mayor o igual que Izquierda

<=

Menor igual Derecha Menor o igual que Izquierda


Dennys G. Snchez Zavala

Sesin 2 :
Estructuras de Control

Dennys G. Snchez Zavala

Temas Sesin 2
Estructuras de decisin (bifurcaciones)

Sentencia if, if... else, if .... else mltiple, if anidadas Sentencia switch Sentencia while Sentencia for Sentencia do while Sentencias break , continue y goto
Dennys G. Snchez Zavala

Estructuras de repeticin (bucles)


if else
if (condicin) { Sentencias q se ejecutan cuando la condicin es True } else { Sentencias q se ejecutan cuando la condicin es False }

Dennys G. Snchez Zavala

if elseif else
if (condicin1) {
Sentencias q se ejecutan cuando la condicin1 es True

} elseif (condicin2) {
Sentencias q se ejecutan cuando la condicin2 es True

} else {
Sentencias q se ejecutan cuando las condiciones son False

}
Dennys G. Snchez Zavala

switch
switch (expresin) { case valor1: sentencias a ejecutar cuando cumpla valor1; break; //la instruccin break es opcional case valor2: sentencias a ejecutar cuando cumple valor2; break; default: sentencias a ejecutar cuando no se cumpla ninguna de las condiciones anteriores }
Dennys G. Snchez Zavala

while / do while
while (condicin) { sentencias a ejecutar; } ----------------------------------------------do { sentencias a ejecutar; } while (condicin)

Dennys G. Snchez Zavala

for
for (inicializacin; condicin; actualizacin) { sentencias a ejecutar; }
Inicializacin: Se ejecuta tan solo al iniciar por primera vez el bucle. En esta parte se suele colocar la variable que contar el numero de veces que se repite el bucle. Condicin: Es la condicin que se evaluar cada vez que se inicie el bucle. actualizacin: Sirve para indicar los cambios que queremos ejecutar en las variables cada vez que se ejecuta el bucle

Dennys G. Snchez Zavala

break, continue y goto


break Se usa para detener el bucle y dejar de interpretar el cdigo que sigue despus del break continue Sirve para volver al principio del bucle desde cualquier parte del bucle. goto permite al programa saltar hacia un punto identificado con una etiqueta (su utilizacin no es recomendable)

Dennys G. Snchez Zavala

Sesin 3 :
Funciones

Dennys G. Snchez Zavala

Temas Sesin 3
Definicin y utilidad de una funcin Declaracin y llamada de una funcin Tipos de retorno de una funcin Paso de argumentos: por valor, por referencia Argumentos de main ( ) : argc, argv Casting de funciones Recursividad de funciones

Dennys G. Snchez Zavala

Sesin 4 :
Arreglos

Dennys G. Snchez Zavala

Temas Sesin 4
Definicin de arreglos: vectores y matrices Operaciones con arreglos (inicializacin, ordenacin y bsqueda) Paso de arreglos como argumentos a una funcin Manejo de cadenas

Dennys G. Snchez Zavala

Sesin 5 :
Punteros

Dennys G. Snchez Zavala

Temas Sesin 5
Concepto de puntero o apuntador Operadores direccin (&) e indireccin (*) Aritmtica de punteros Punteros como valor de retorno Punteros a funciones y punteros a punteros Gestin dinmica de memoria: funciones malloc, calloc y free

Dennys G. Snchez Zavala

Sesin 6 :
Estructuras, uniones, enumeraciones y typedef

Dennys G. Snchez Zavala

Temas Sesin 6
Estructuras o registros Uniones Constantes de enumeracin Tipos definidos por el usuario: typedef

Dennys G. Snchez Zavala

Sesin 7 :
El Procesador

Dennys G. Snchez Zavala

Temas Sesin 7
#define #include #undef, #if, #ifdef, #else, #endif y #elif

Dennys G. Snchez Zavala

Lenguaje C/C++

Prof. : Dennys G. Snchez Zavala


Dennys G. Snchez Zavala

Segunda Parte
Programacin Orientada a Objetos Lenguaje C++

Dennys G. Snchez Zavala

Sesin 8 :
C++ como un C mejorado

Dennys G. Snchez Zavala

Temas Sesin 8
Palabras reservadas en C++ Entrada y Salida en C++ Flexibilidad en declaracin de variables Funciones en lnea y funciones amigas Estructuras mejoradas

Dennys G. Snchez Zavala

Sesin 9 :
Clases

Dennys G. Snchez Zavala

Temas Sesin 9
Definicin de clase Miembros de una clase: datos miembro (atributos) y funciones miembro (mtodos) Especificadores de acceso : pblicos, privados y protegidos Constructores y destructores Creacin de objetos: operadores new y delete Autoreferencia: Uso del puntero implcito this y flecha (->)

Dennys G. Snchez Zavala

Sesin 10 :
Trabajando con Objetos

Dennys G. Snchez Zavala

Temas Sesin 10
Qu es un objeto? Objeto : Instancia de una clase Encapsulacin Herencia (clase base / clases derivadas) y herencia mltiple Polimorfismo, clases abstractas y funciones virtuales

Dennys G. Snchez Zavala

Sesin 11 :
Otros aspectos de C++

Dennys G. Snchez Zavala

Temas Sesin 11
Sobrecarga / homonimia de funciones y operadores Operadores new y delete para gestin dinmica de memoria

Dennys G. Snchez Zavala