CLASE 10. AGENDA 1 Repaso 2 Operadores 3 Directivas 14 Entrada y Salida de Datos.

43
INFORMATICA I Lenguaje de Programación C (2) CLASE 10

Transcript of CLASE 10. AGENDA 1 Repaso 2 Operadores 3 Directivas 14 Entrada y Salida de Datos.

Page 1: CLASE 10. AGENDA 1 Repaso 2 Operadores 3 Directivas 14 Entrada y Salida de Datos.

INFORMATICA ILenguaje de Programación C (2)

CLASE 10

Page 2: CLASE 10. AGENDA 1 Repaso 2 Operadores 3 Directivas 14 Entrada y Salida de Datos.

AGENDA

1 Repaso

2 Operadores

3 Directivas

1 Repaso

4 Entrada y Salida de Datos

Page 3: CLASE 10. AGENDA 1 Repaso 2 Operadores 3 Directivas 14 Entrada y Salida de Datos.

CaracterísticasEs un lenguaje compilado.

Potencia y flexibilidadPopularidadPortabilidadSencillezEstructura y modularidad

Repaso

Page 4: CLASE 10. AGENDA 1 Repaso 2 Operadores 3 Directivas 14 Entrada y Salida de Datos.

Estructura General

INICIO

FIN

Declaración de variables

Acciones del Algoritmo

Encabezado

Directivas

Repaso

Page 5: CLASE 10. AGENDA 1 Repaso 2 Operadores 3 Directivas 14 Entrada y Salida de Datos.

Pseudocódigo → Lenguaje C

algoritmo(nombre)

INICIODeclaracion variables sentencia_1 sentencia_2 . . . sentencia_NFIN_INICIO

#include <librerias>#include ”librerias”

variables_globales;

int main(void) { variables_locales; sentencia_1; sentencia_2; . . . sentencia_N;return 0;}

Repaso

Page 6: CLASE 10. AGENDA 1 Repaso 2 Operadores 3 Directivas 14 Entrada y Salida de Datos.

Anatomía de un programa en C#include<stdio.h>

int main(void){

int a, b, c = 0;

printf(“Digite el primer numero: ”); scanf(“%d”,&a); printf(“Digite el segundo numero: ”); scanf(“%d”,&b); c = a + b; printf(“El resultado de la suma es: %d\n”,c); return 0;

}

Librerías (uso de directivas del preprocesador)

Declaración de variables (las variables son locales en este caso).

Instrucciones (Expresiones, condicionales, ciclos).

Programa principal

Repaso

Page 7: CLASE 10. AGENDA 1 Repaso 2 Operadores 3 Directivas 14 Entrada y Salida de Datos.

Resumen declaración de variables

• Cuando declaro una variable la elección del tipo de dato depende del propósito para el cual voy a usar la variable.

tipo nom_var1,nom_var2, nom_var3 = valor_inicial, nom_varN;

Repaso

Tipo Ejemplo Tamaño en bytes Rango

char ‘C’ 1 0 a 255

short -15 2 -128 a 127

int 1024 2 -32768 a 32767

unsigned int 42325 2 0 a 65535

long 262144 4 -2147483648 a 2147483637

float 10.5 4 3.4x10-38 a 4.4x1038

double 0.00045 8 1.7x10-308 a 1.7x10308

long double 1e-8 8 Igual que double

Page 8: CLASE 10. AGENDA 1 Repaso 2 Operadores 3 Directivas 14 Entrada y Salida de Datos.

Declaración de variables

int num_est = 45, num_prof = 3;float c = -9, d, e = 1.5e-15;char grado = ‘A’, caracter = 64;bool diaLunes = FALSE;

Repaso

Page 9: CLASE 10. AGENDA 1 Repaso 2 Operadores 3 Directivas 14 Entrada y Salida de Datos.

Palabras reservadas

Repaso

Page 10: CLASE 10. AGENDA 1 Repaso 2 Operadores 3 Directivas 14 Entrada y Salida de Datos.

Nombres de las variables

Declaración errónea de las variables

Declaración correcta de las variables

Repaso

Page 11: CLASE 10. AGENDA 1 Repaso 2 Operadores 3 Directivas 14 Entrada y Salida de Datos.

Resumen declaración de variables

Una variable no puede ser usada antes no ha sido

previamente declarada.

Repaso

Page 12: CLASE 10. AGENDA 1 Repaso 2 Operadores 3 Directivas 14 Entrada y Salida de Datos.

Variables Globales

• Declaraciones globales– Indican al usuario que las variables y constantes

definidas son comunes a todas las funciones del programa

#include <stdio.h>

/* Declaraciones globales*/int calificaciones;int ejemplo(int x)

int main(){ …}

Repaso

Page 13: CLASE 10. AGENDA 1 Repaso 2 Operadores 3 Directivas 14 Entrada y Salida de Datos.

AGENDA

1 Repaso

2 Operadores

3 Directivas

2 Operadores

4 Entrada y Salida de Datos

Page 14: CLASE 10. AGENDA 1 Repaso 2 Operadores 3 Directivas 14 Entrada y Salida de Datos.

Constantes

• Una constante es un valor que no puede cambiar su valor a lo largo de la ejecución de un programa

Constantes enteras: Sucesión de dígitos precedidas por + ó – dentro de un rango determinado (-345, 234, etc)

Constantes reales: Números reales (82.347, .63, 6e+4) Constantes carácter (char): Carácter del código ASCII encerrado

entre apóstrofes (‘a’, ‘B’) Constantes cadena: “Hola”, “Informática I”, “Esto es una cadena de

caracteres”. En memoria, las cadenas se representan por una serie de caracteres ASCII más un 0 o nulo que es definido en C mediante la constante NULL

Page 15: CLASE 10. AGENDA 1 Repaso 2 Operadores 3 Directivas 14 Entrada y Salida de Datos.

Constantes

• Definición de constantes

– Constantes definidas (simbólicas)

#define PI 3.1415929

– Constantes declaradas const y volatileconst int c = 30;

Page 16: CLASE 10. AGENDA 1 Repaso 2 Operadores 3 Directivas 14 Entrada y Salida de Datos.

Expresiones y operadoresOperadores

•Operadores y expresiones:AsignaciónAritméticosIncrementales y DecrementalesDe manipulación de bits.Relacionales.Lógicos.•Cuando concurren en una misma expresión

diferentes tipos de operadores se dan las reglas de prioridad y asociatividad.

Page 17: CLASE 10. AGENDA 1 Repaso 2 Operadores 3 Directivas 14 Entrada y Salida de Datos.

Asignación• Operador de asignación (=)– Sintaxis:

Variable = expresión;

– Ejemplos: • a = b*n;• c = c + 1;• d = d%3;• e = 14;

Operadores

Page 18: CLASE 10. AGENDA 1 Repaso 2 Operadores 3 Directivas 14 Entrada y Salida de Datos.

Aritméticos• Operadores aritméticos– De dos operandos (+, -, *, /, %)

Operadores

OPERACIÓN OPERADOR EJEMPLOSuma + f + 7Resta - p – c

Multiplicación * b * nDivisión / x * yMódulo % r % s

Agrupación () (a + b) * c

Page 19: CLASE 10. AGENDA 1 Repaso 2 Operadores 3 Directivas 14 Entrada y Salida de Datos.

Aritméticos• Operadores aritméticos– De dos operandos (+, -, *, /, %)

Operadores

OPERADOR ASOCIATIVIDAD() Izquierda - derecha

*,/,% Izquierda – derecha+,- Izquierda - derecha= Derecha - izquierdaPr

iorid

ad

Page 20: CLASE 10. AGENDA 1 Repaso 2 Operadores 3 Directivas 14 Entrada y Salida de Datos.

Incrementales y Decrementales• De asignación aritmética:– Es una abreviatura de las expresiones de

asignación:

Operadores

OPERACIÓN OPERADOR EJEMPLO SIGNIFICADOSuma += c += 7 c = c + 7Resta -= d -= 4 d = d – 4

Multiplicación *= e *= 5 e = e * 5División /= f /= 3 f = f / 3Módulo %= g %=9 g = g % 9

Page 21: CLASE 10. AGENDA 1 Repaso 2 Operadores 3 Directivas 14 Entrada y Salida de Datos.

Incrementales y Decrementales• Aritméticos:– De un operando (++, – –)

Operadores

OPERACIÓN OPERADOR EJEMPLO SIGNIFICADO

Preincremento ++ ++a 1. Se incrementa2. Se utiliza el valor

Predecremento -- --a 1. Se decrementa2. Se utiliza el valor

Postincremento ++ b++ 1. Se utiliza el valor2. Se incrementa

Postdecremento -- b-- 1. Se utiliza el valor2. Se decrementa

Page 22: CLASE 10. AGENDA 1 Repaso 2 Operadores 3 Directivas 14 Entrada y Salida de Datos.

Incrementales y Decrementales• Ejemplo: Para analizar

Operadores

#include <stdio.h>

int main(void) { int c;

c=5; printf(“%d”,c); printf(“%d”,c++); printf(“%d”,c);

c=5; printf(“%d”,c); printf(“%d”,++c); printf(“%d”, c);return 0;}

c Pantalla

5 5566

5 5

6 66

Page 23: CLASE 10. AGENDA 1 Repaso 2 Operadores 3 Directivas 14 Entrada y Salida de Datos.

Incrementales y Decrementales• Ejemplo: Las siguientes expresiones

pueden tener el mismo significado:

student = student + 1;student +=1;++student;

Operadores

Page 24: CLASE 10. AGENDA 1 Repaso 2 Operadores 3 Directivas 14 Entrada y Salida de Datos.

Relacionales• Operadores Relacionales– Sintaxis:

operador_1 operador_relacional operador_2

Operadores

OPERACIÓN OPERADOR EJEMPLO SIGNIFICADOIgualdad == x == y x es igual a yDiferente != x != y x no es igual a y

Menor < x < y x es menor que yMayor > x > y x es mayor que y

Menor Igual <= x <= y x es menor o igual que yMayor Igual >= x >= y x es mayor o igual que y

Page 25: CLASE 10. AGENDA 1 Repaso 2 Operadores 3 Directivas 14 Entrada y Salida de Datos.

Lógicos

• Operadores Lógicos

INSTRUCCIONES

OPERACIÓN OPERADOR EJEMPLO SIGNIFICADONegación ! !m No m (inverso de m)

Y && m && n m Y nO || m || n m Ó n

Page 26: CLASE 10. AGENDA 1 Repaso 2 Operadores 3 Directivas 14 Entrada y Salida de Datos.

AGENDA

1 Repaso

2 Operadores

3 Directivas3 Directivas

4 Entrada y Salida de Datos

Page 27: CLASE 10. AGENDA 1 Repaso 2 Operadores 3 Directivas 14 Entrada y Salida de Datos.

Directivas del preprocesador

– El preprocesador consta de directivas que son instrucciones al compilador

– Comienzan con el símbolo (#)– No son instrucciones de lenguaje C– #include <nombrearch.h> indica al compilador

que lea el archivo fuente (de cabecera o de inclusión) que viene a continuación de ella.

– También es de la forma #include “archivo.h”

Page 28: CLASE 10. AGENDA 1 Repaso 2 Operadores 3 Directivas 14 Entrada y Salida de Datos.

Directivas

Directivas

#include<stdio.h>#define PI 3.1416

int main(void){

int a, b, c = 0;

printf(“Digite el primer numero: ”); scanf(“%d”,&a); printf(“Digite el segundo numero: ”); scanf(“%d”,&b); c = a + b; printf(“El resultado de la suma es: %d\n”,c); return 0; }

Directivas(uso de directivas del preprocesador): Librerías y MACROS

Son las líneas que comienzan por el carácter #

Page 29: CLASE 10. AGENDA 1 Repaso 2 Operadores 3 Directivas 14 Entrada y Salida de Datos.

#include

Directivas

Una librería es un conjunto de recursos (algoritmos) prefabricados, que pueden ser utilizados por el programador para realizar determinadas operaciones.

Estos ficheros se suelen llamar "de cabecera“.La directiva #include incluye la librería que se desee.

#include <libreriaSistema.h>#include “libreriaUsuario.h”

Page 30: CLASE 10. AGENDA 1 Repaso 2 Operadores 3 Directivas 14 Entrada y Salida de Datos.

Librerías de sistema

DirectivasLibrería Contenido

assert.h macros para el diagnóstico dentro de los programas

ctype.h funciones para comprobación de tipos y transformación de caracteres

errno.h macros usadas para informar de errores

limits.h macros que definen constantes para el tamaño de tipo enteros

float.h macros que definen constantes para el tamaño de tipo flotante

math.h macro y varias funciones matemáticas

stddef.h tipos y macros que también están definidas en otras librerías, como size_t

stdio.h tipos, macros y funciones para la realización de tareas de E/S

stdlib.h tipos, macros y funciones para la conversión numérica, generación de números aleatorios, búsquedas y ordenación, gestión de memoria y tareas similares

string.h tipos, macros y funciones para la manipulación de cadenas de caracteres

time.h tipos, macros y funciones para la manipulación de información sobre fechas y horas

Page 31: CLASE 10. AGENDA 1 Repaso 2 Operadores 3 Directivas 14 Entrada y Salida de Datos.

#define

Directivas

La directiva #define define una macro.

Las macros proporcionan un mecanismo de reemplazo directo, alias. Se utilizan para definir constantes o mensajes que se utilizaran mucho en el programa.

#define PI 3.1416#define mensaje "Bienvenidos"

Page 32: CLASE 10. AGENDA 1 Repaso 2 Operadores 3 Directivas 14 Entrada y Salida de Datos.

AGENDA

1 Repaso

2 Operadores

3 Directivas

4 Entrada y Salida de Datos4 Entrada y Salida de Datos

Page 33: CLASE 10. AGENDA 1 Repaso 2 Operadores 3 Directivas 14 Entrada y Salida de Datos.

Elementos de un programa en C

• Signos de puntuación y separadores: – Todas las sentencias en C deben terminar con punto y coma– Los separadores en C son espacios en blanco, tabulaciones, retornos

de carro y avances de línea.– Existen otros signos de puntuación como: ! % ^ & * () - + “ ‘ , etc.

• Archivos de cabecera– Un archivo de cabecera contiene las declaraciones de objetos y

funciones de la biblioteca que son añadidos en el lugar donde se insertan.

– Un archivo de cabecera se inserta con la directiva #include

Repaso

Page 34: CLASE 10. AGENDA 1 Repaso 2 Operadores 3 Directivas 14 Entrada y Salida de Datos.

ENTRADA Y SALIDA DE DATOSEntrada y Salida de Datos

Se debe incluir la librería de sistema stdio.h

scanf (“-----);

printf(“-----);

Page 35: CLASE 10. AGENDA 1 Repaso 2 Operadores 3 Directivas 14 Entrada y Salida de Datos.

SALIDA DE INFORMACIÓNESCRIBA(‘cadena1’,…,’cadenaN’,var1,…,varM)

printf(“cadena de caracteres”, variable);

Entrada y Salida de Datos

Page 36: CLASE 10. AGENDA 1 Repaso 2 Operadores 3 Directivas 14 Entrada y Salida de Datos.

• Descripción: Permite mostrar en pantalla un texto (cadena), con formato. – Sintaxis:

• Cadena de control: Contiene los datos y la forma de mostrarlos. Es lo que va entre comillas, los formatos los identificamos porque van precedidos de un %.

• Datos (dato1, dato2,…,datoN): Variables, constantes o en general expresiones de salida.

printf

Entrada y Salida de Datos

printf(“cadena_de_control_y_formato”,dato1,…,datoN);

Page 37: CLASE 10. AGENDA 1 Repaso 2 Operadores 3 Directivas 14 Entrada y Salida de Datos.

Entrada y Salida de Datos

printf

printf(“mensaje1 mensaje2 mensajeN ”,dato1,dato2…,datoN);

Especificadores

Page 38: CLASE 10. AGENDA 1 Repaso 2 Operadores 3 Directivas 14 Entrada y Salida de Datos.

Especificadores de conversión con printf()%c Carácter sencillo%d Entero decimal con signo (int)%e Valor flotante con signo en notación científica (E)%f Valor flotante con signo (float)

%g Valor flotante con signo en notación %e o %f, dependiendo de la representación mas corta

%i Entero decimal sin signo (int)%o Entero octal (en base 8) sin signo (int)%s Cadena de caracteres%u Decimal entero sin signo (int)%x Entero hexadecimal (base 16) sin signo

Entrada y Salida de Datos

printf

Page 39: CLASE 10. AGENDA 1 Repaso 2 Operadores 3 Directivas 14 Entrada y Salida de Datos.

Entrada de información

LEA(var1,var2,…,varN)

scanf(“%formato1%formato2,…”, &var1,&var2,…);

Entrada y Salida de Datos

Page 40: CLASE 10. AGENDA 1 Repaso 2 Operadores 3 Directivas 14 Entrada y Salida de Datos.

• Descripción: Permite ingresar los datos mediante el teclado. – Sintaxis:

• formatos: Indican que tipo de datos deben ser ingresados por el usuario.• &: indica la dirección de la variable. Siempre debe ir

(excepto con cadena de caracteres y matrices)• Datos (dato1, dato2,…,datoN): Nombre de las

Variables.

scanf

Entrada y Salida de Datos

scanf(“formatos”,&dato1,…,&datoN);

Page 41: CLASE 10. AGENDA 1 Repaso 2 Operadores 3 Directivas 14 Entrada y Salida de Datos.

#include <stdio.h> int main (void){

char nombre[10]; int edad;

printf(“Ingrese su nombre: "); scanf("%s",nombre); printf(“Ingrese su edad: "); scanf("%d",&edad);

printf(“Su nombre es: %s y tienes %d años",nombre,edad);

return 0;}

Page 42: CLASE 10. AGENDA 1 Repaso 2 Operadores 3 Directivas 14 Entrada y Salida de Datos.

Bibliografía

• Joyanes Aguilar, Luis. PROGRAMACIÓN EN C. Metodología, algoritmos y estructura de datos Capitulo3.

• H.M. Deitel, P.J. Deitel. Como programar en C y C++

• Google

Page 43: CLASE 10. AGENDA 1 Repaso 2 Operadores 3 Directivas 14 Entrada y Salida de Datos.

GRACIAS POR SU ATENCIÓN