INFORMATICA ILenguaje de Programación C (2)
CLASE 10
AGENDA
1 Repaso
2 Operadores
3 Directivas
1 Repaso
4 Entrada y Salida de Datos
CaracterísticasEs un lenguaje compilado.
Potencia y flexibilidadPopularidadPortabilidadSencillezEstructura y modularidad
Repaso
Estructura General
INICIO
FIN
Declaración de variables
Acciones del Algoritmo
Encabezado
Directivas
Repaso
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
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
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
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
Palabras reservadas
Repaso
Nombres de las variables
Declaración errónea de las variables
Declaración correcta de las variables
Repaso
Resumen declaración de variables
Una variable no puede ser usada antes no ha sido
previamente declarada.
Repaso
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
AGENDA
1 Repaso
2 Operadores
3 Directivas
2 Operadores
4 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
Constantes
• Definición de constantes
– Constantes definidas (simbólicas)
#define PI 3.1415929
– Constantes declaradas const y volatileconst int c = 30;
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.
Asignación• Operador de asignación (=)– Sintaxis:
Variable = expresión;
– Ejemplos: • a = b*n;• c = c + 1;• d = d%3;• e = 14;
Operadores
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
Aritméticos• Operadores aritméticos– De dos operandos (+, -, *, /, %)
Operadores
OPERADOR ASOCIATIVIDAD() Izquierda - derecha
*,/,% Izquierda – derecha+,- Izquierda - derecha= Derecha - izquierdaPr
iorid
ad
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
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
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
Incrementales y Decrementales• Ejemplo: Las siguientes expresiones
pueden tener el mismo significado:
student = student + 1;student +=1;++student;
Operadores
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
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
AGENDA
1 Repaso
2 Operadores
3 Directivas3 Directivas
4 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”
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 #
#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”
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
#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"
AGENDA
1 Repaso
2 Operadores
3 Directivas
4 Entrada y Salida de Datos4 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
ENTRADA Y SALIDA DE DATOSEntrada y Salida de Datos
Se debe incluir la librería de sistema stdio.h
scanf (“-----);
printf(“-----);
SALIDA DE INFORMACIÓNESCRIBA(‘cadena1’,…,’cadenaN’,var1,…,varM)
printf(“cadena de caracteres”, variable);
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);
Entrada y Salida de Datos
printf
printf(“mensaje1 mensaje2 mensajeN ”,dato1,dato2…,datoN);
Especificadores
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
Entrada de información
LEA(var1,var2,…,varN)
scanf(“%formato1%formato2,…”, &var1,&var2,…);
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);
#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;}
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++
GRACIAS POR SU ATENCIÓN