Asignatura: Computadores T.U.Especialidad Sistemas Computacionales Profesor: José Estay Araya Sitio...

58
Asignatura: Computadores T.U.Especialidad Sistemas Computacionales Profesor: José Estay Araya Sitio de la asignatura: http://www.jiiea.com/Computers/ User: cpu2014 psw : cpu#X86

Transcript of Asignatura: Computadores T.U.Especialidad Sistemas Computacionales Profesor: José Estay Araya Sitio...

Page 1: Asignatura: Computadores T.U.Especialidad Sistemas Computacionales Profesor: José Estay Araya Sitio de la asignatura:  User:

Asignatura: Computadores

T.U.Especialidad Sistemas Computacionales

Profesor: José Estay ArayaSitio de la asignatura:http://www.jiiea.com/Computers/User: cpu2014psw: cpu#X86

Page 2: Asignatura: Computadores T.U.Especialidad Sistemas Computacionales Profesor: José Estay Araya Sitio de la asignatura:  User:

Asignatura: ComputadoresObjetivos: • Aprender a programar, en sus aspectos

elementales, un lenguaje de alto nivel, y para aplicaciones en modo nativo y plataforma virtual.

• Usar un compilador 32 bits: Microsoft Visual C/C++ Express 2010 o superior

• Aplicar el Lenguaje C en el uso y programación con recursos del sistema.

• Usar un compilador para MCU Microchip CCSv4

Page 3: Asignatura: Computadores T.U.Especialidad Sistemas Computacionales Profesor: José Estay Araya Sitio de la asignatura:  User:

SESION FECHA ACTIVIDAD DESCRIPCION

1 Introducción a la asignatura Fundamentos de C

2 Exp 1

3 Exp

4 Exp 3

5 Exp 4

6 C-1

7 Exp 5

8 Exp 6

9 Exp 7

10 Exp 8

11 C-2

12 Exp 9

13 Exp 10

14 Exp 11

15 Exp 12

16 C-3

17 Notas finales y cierre del curso

Page 4: Asignatura: Computadores T.U.Especialidad Sistemas Computacionales Profesor: José Estay Araya Sitio de la asignatura:  User:

Conceptos: el TRADUCTOR

Traductores: ensambladores (ASSEMBLER), interpretadores, compiladores, enlazadores

Lenguaje de máquina

Page 5: Asignatura: Computadores T.U.Especialidad Sistemas Computacionales Profesor: José Estay Araya Sitio de la asignatura:  User:

Características generales de un lenguaje

Transportabilidad Facilidad de aprendizaje Facilidades para el usuario Bibliotecas: dinámicas y estáticas Control electrónico

Page 6: Asignatura: Computadores T.U.Especialidad Sistemas Computacionales Profesor: José Estay Araya Sitio de la asignatura:  User:

Lenguaje C

Compilador: MICROSOFT VISUAL C/C++ Express Edition 2010 o superior

Obtener desde Microsoft

Page 7: Asignatura: Computadores T.U.Especialidad Sistemas Computacionales Profesor: José Estay Araya Sitio de la asignatura:  User:

Lenguaje C

Instalación Importancia de las bibliotecas Bajar e instalar Directorios DISPLAY: modo de consola y modo

Windows

Page 8: Asignatura: Computadores T.U.Especialidad Sistemas Computacionales Profesor: José Estay Araya Sitio de la asignatura:  User:

Ambito o entorno de C

*.C *.OBJ *.EXE Edición / Creación Código de máquina no-linkeado Enlazar (Linking) Código de máquina ejecutable

Page 9: Asignatura: Computadores T.U.Especialidad Sistemas Computacionales Profesor: José Estay Araya Sitio de la asignatura:  User:

Ventajas Desventajas de C

Top-down Estructurado Modular + Eficiente +/- Transportable + Control del computador + Aplicación en microcontroladores y

microprocesadores, pequeños subsistemas +

Poco legible -

Page 10: Asignatura: Computadores T.U.Especialidad Sistemas Computacionales Profesor: José Estay Araya Sitio de la asignatura:  User:

Estructuración de un programa

Programación estructurada Programación modular

Page 11: Asignatura: Computadores T.U.Especialidad Sistemas Computacionales Profesor: José Estay Araya Sitio de la asignatura:  User:

Elementos de C

Componentes léxicos (token), ejemplo main { +

Palabras reservadas ANSI C

Page 12: Asignatura: Computadores T.U.Especialidad Sistemas Computacionales Profesor: José Estay Araya Sitio de la asignatura:  User:

Tipos de Datos

char int float Entero-32768..+32767 Flotante+/-3.4 e +/- 38 ...entre otros...ver HELP de C

Page 13: Asignatura: Computadores T.U.Especialidad Sistemas Computacionales Profesor: José Estay Araya Sitio de la asignatura:  User:

Sentencias (instrucciones)

Simples: ejemplo x = 3+5; Compuestas: delimitada por { }

Page 14: Asignatura: Computadores T.U.Especialidad Sistemas Computacionales Profesor: José Estay Araya Sitio de la asignatura:  User:

Funciones

Display o despliegues en pantalla Monitor, proyector, LCD todos con

características VGA Función printf()

Page 15: Asignatura: Computadores T.U.Especialidad Sistemas Computacionales Profesor: José Estay Araya Sitio de la asignatura:  User:

Especificador de formato

%d %o %u %x %f %e %c %s ...entre otros...ver HELP de C.

Page 16: Asignatura: Computadores T.U.Especialidad Sistemas Computacionales Profesor: José Estay Araya Sitio de la asignatura:  User:

Identificadores

Función Sensibilidad may/min Palabras reservadas Declaración de variables

Page 17: Asignatura: Computadores T.U.Especialidad Sistemas Computacionales Profesor: José Estay Araya Sitio de la asignatura:  User:

Operadores aritméticos

+ - * / %

Page 18: Asignatura: Computadores T.U.Especialidad Sistemas Computacionales Profesor: José Estay Araya Sitio de la asignatura:  User:

Precedencia

() - * / + -

Page 19: Asignatura: Computadores T.U.Especialidad Sistemas Computacionales Profesor: José Estay Araya Sitio de la asignatura:  User:

Operador de asignación

Asigna zona de memoria Antes dirección física Ahora dirección mnemónica o literal Ejemplo x = 10 significado

Page 20: Asignatura: Computadores T.U.Especialidad Sistemas Computacionales Profesor: José Estay Araya Sitio de la asignatura:  User:

Asignación compuesta

x= x + 5 x +=5 Extensible a las otras operaciones

aritméticas.

Page 21: Asignatura: Computadores T.U.Especialidad Sistemas Computacionales Profesor: José Estay Araya Sitio de la asignatura:  User:

Secuencias de escape

\n \t

...entre otras secuencias de escape. Ver HELP de C.

Page 22: Asignatura: Computadores T.U.Especialidad Sistemas Computacionales Profesor: José Estay Araya Sitio de la asignatura:  User:

Especificador de ancho de campo

“el numero %5.2f lo usa”, 6.0 Despliega 6.00

Donde signo, mantisa, punto decimal, dos decimales

Page 23: Asignatura: Computadores T.U.Especialidad Sistemas Computacionales Profesor: José Estay Araya Sitio de la asignatura:  User:

Entrada estándar Funcion scanf() Especificador de

formato

printf()

scanf()

Page 24: Asignatura: Computadores T.U.Especialidad Sistemas Computacionales Profesor: José Estay Araya Sitio de la asignatura:  User:

Comentarios

Comentarios en C // /* rem */ Ayuda para debugging

Page 25: Asignatura: Computadores T.U.Especialidad Sistemas Computacionales Profesor: José Estay Araya Sitio de la asignatura:  User:

Desarrollo de un programa en C

Ejemplos con la ley de ohm. Diseño del código Todo el proceso hasta llegar al código

ejecutable

Page 26: Asignatura: Computadores T.U.Especialidad Sistemas Computacionales Profesor: José Estay Araya Sitio de la asignatura:  User:

Funciones printf() scanf() sin(x) cos(x) tan(x) sqrt() Funciones creadas por el programador

Page 27: Asignatura: Computadores T.U.Especialidad Sistemas Computacionales Profesor: José Estay Araya Sitio de la asignatura:  User:

Nombres de funciones creadas por el programador

Similar a reglas para nombres de variables

Se le pasan valores a través de una lista de parámetros formales

La función puede retornar un valor

Page 28: Asignatura: Computadores T.U.Especialidad Sistemas Computacionales Profesor: José Estay Araya Sitio de la asignatura:  User:

Toma de decisiones

Operadores relacionales: >>=<<===!=

Page 29: Asignatura: Computadores T.U.Especialidad Sistemas Computacionales Profesor: José Estay Araya Sitio de la asignatura:  User:

Sentencia if Sintaxis:

if (expresion) sentencia

yes

noproceso

Page 30: Asignatura: Computadores T.U.Especialidad Sistemas Computacionales Profesor: José Estay Araya Sitio de la asignatura:  User:

Sentencia if-else Sintaxis: if

(expresion) sentencia1 else sentencia2

process1

process2yes

no

Page 31: Asignatura: Computadores T.U.Especialidad Sistemas Computacionales Profesor: José Estay Araya Sitio de la asignatura:  User:

switch Sintaxis: switch(expresion) {case exp1:sentencia1;break;case exp2:sentencia2;break;

.

.default}

Page 32: Asignatura: Computadores T.U.Especialidad Sistemas Computacionales Profesor: José Estay Araya Sitio de la asignatura:  User:

switch

var

S1 S3S2 Default

1 2 3

Page 33: Asignatura: Computadores T.U.Especialidad Sistemas Computacionales Profesor: José Estay Araya Sitio de la asignatura:  User:

Conversión de tipos

La conversión se realiza teniendo en cuenta el rango de cada tipo:

Rango inferior <= char, int, long, float, double => Rango superior

Page 34: Asignatura: Computadores T.U.Especialidad Sistemas Computacionales Profesor: José Estay Araya Sitio de la asignatura:  User:

Operador condicional

Sintaxis:

expresion1 ? expresion2 : expresion3

Si expresion1 es TRUE devuelve expresion2, caso contrario devuelve expresion3

Page 35: Asignatura: Computadores T.U.Especialidad Sistemas Computacionales Profesor: José Estay Araya Sitio de la asignatura:  User:

Operador condicional (cont.)#include <stdio.h>main(){int eleccion; /* Elección del usuario. */

printf("Introduzca un 1 o un 0 => ");scanf("%d",&eleccion);eleccion? printf("Un uno.\n") : printf("Un cero.\n");

}

Page 36: Asignatura: Computadores T.U.Especialidad Sistemas Computacionales Profesor: José Estay Araya Sitio de la asignatura:  User:

Lazo o bucle for

Sintaxis:for(expresion_inicial;

expresion_condicional; expresion_de_lazo){

sentencias}

Nota:si es 1 sentencia las {} no son necesarias

Page 37: Asignatura: Computadores T.U.Especialidad Sistemas Computacionales Profesor: José Estay Araya Sitio de la asignatura:  User:

Lazo while

Sintaxis:while(expresion) sentencia;

while(expresion){sentencias}

Page 38: Asignatura: Computadores T.U.Especialidad Sistemas Computacionales Profesor: José Estay Araya Sitio de la asignatura:  User:

while

sentencia(s)

true

false

Page 39: Asignatura: Computadores T.U.Especialidad Sistemas Computacionales Profesor: José Estay Araya Sitio de la asignatura:  User:

do-while

Sintaxis:do sentencia while(expresion)

do {sentencias

}while(expresion)

Page 40: Asignatura: Computadores T.U.Especialidad Sistemas Computacionales Profesor: José Estay Araya Sitio de la asignatura:  User:

do-while…….

sentencia(s)

true

false

Page 41: Asignatura: Computadores T.U.Especialidad Sistemas Computacionales Profesor: José Estay Araya Sitio de la asignatura:  User:

Lazos anidados Se admiten lazos anidados siempre y

cuando ellos no se traslapen:

lazo1(mas externo)

lazo 2

lazo3(mas interno) Lazos mal anidadosno validos

Page 42: Asignatura: Computadores T.U.Especialidad Sistemas Computacionales Profesor: José Estay Araya Sitio de la asignatura:  User:

Recursividad

Estudio personal: significado y aplicación

Page 43: Asignatura: Computadores T.U.Especialidad Sistemas Computacionales Profesor: José Estay Araya Sitio de la asignatura:  User:

Vectores numéricos

Declaración: int vector[3], define un vector con 3 elementos vector[0], vector[1], vector[2]

Los vectores pueden declararse en alguno de los 3 formatos básicos: int, float o char, entre otros

La carga de un vector int se puede realizar por asignación

Page 44: Asignatura: Computadores T.U.Especialidad Sistemas Computacionales Profesor: José Estay Araya Sitio de la asignatura:  User:

Vectores…………..

La carga de un vector float se puede realizar por asignación

El contenido de las celdas de un vector determinado debe ser homogéneo

Page 45: Asignatura: Computadores T.U.Especialidad Sistemas Computacionales Profesor: José Estay Araya Sitio de la asignatura:  User:

Vectores multidimensionales o matrices numéricas(array)

Declaración: int matriz[2][3] Carga de valores:

int matriz[2][3]={ /*fila columna*/{10,20,30},{11,21,31}

};

Page 46: Asignatura: Computadores T.U.Especialidad Sistemas Computacionales Profesor: José Estay Araya Sitio de la asignatura:  User:

Cadenas (strings) de caracteres

Definición: char cadena[]=“hola”; También: char cadena[5]=“hola”; El último elemento del vector de

cadena es siempre ‘\0’ Э funciones de biblioteca para

comprobar el tipo de carácter. Ver Tabla 6.1

Page 47: Asignatura: Computadores T.U.Especialidad Sistemas Computacionales Profesor: José Estay Araya Sitio de la asignatura:  User:

Cadenas (strings) de caracteres

Э funciones para manejar cadenas de caracteres

Por ejemplo, la función que retorna la longitud de la cadena de caracteres strlen()

Ver HELP de C para otras funciones

Page 48: Asignatura: Computadores T.U.Especialidad Sistemas Computacionales Profesor: José Estay Araya Sitio de la asignatura:  User:

Estructura de datos Declaración:main() {

struct {char fabricante[20]; /* Fabricante */int cantidad; /*Número de R’s*/float precio_unitario; /* Precio cada

R*/} resistencias; /* Estructura */

Page 49: Asignatura: Computadores T.U.Especialidad Sistemas Computacionales Profesor: José Estay Araya Sitio de la asignatura:  User:

Estructura de datos

Asignación de valores: gets(resistencias.fabricante);/*permite

introducir blancos*/ scanf("%d",&resistencias.cantidad); scanf("%f",&resistencias.precio_unitario); Cálculo del valor total:valor_total = resistencias.cantidad *

resistencias.precio_unitario;

Page 50: Asignatura: Computadores T.U.Especialidad Sistemas Computacionales Profesor: José Estay Araya Sitio de la asignatura:  User:

Estructura de datos

La gran potencialidad está en poder escribir vectores y matrices de estructuras.

Page 51: Asignatura: Computadores T.U.Especialidad Sistemas Computacionales Profesor: José Estay Araya Sitio de la asignatura:  User:

Estructura de datos Por ejemplo:struct{

char pieza[20]; /* Tipo de pieza. */int cantidad; /* Número de piezas. */float precio_unitario; /* Precio de cada pieza. */char existe; /* Comprobar si el registro existe. */

} registro_piezas;main(){

static registro_piezas contenido_cajas[3];int registro;int i;

…………………………………………………………………………………

}

Page 52: Asignatura: Computadores T.U.Especialidad Sistemas Computacionales Profesor: José Estay Araya Sitio de la asignatura:  User:

I/O- Manejo de puertos

Leer un puerto: inportb() Escribir un puerto: outportb() Ejemplos:outportb(port_a,0xAA);entrada=inportb(port_c);La dirección de los puertos debe

conocerse y tener soporte de ROM-BIOS

Page 53: Asignatura: Computadores T.U.Especialidad Sistemas Computacionales Profesor: José Estay Araya Sitio de la asignatura:  User:

Dispositivos de almacenamiento de datos, en memoria secundaria(discos magnéticos, memorias flash)

La administración de archivos se maneja bajo modalidad FAT o NTFS

C provee las funciones necesarias para escribir o leer archivos en memoria secundaria

Page 54: Asignatura: Computadores T.U.Especialidad Sistemas Computacionales Profesor: José Estay Araya Sitio de la asignatura:  User:

E/S de disco (memoria 2aria.) Condiciones de archivos de disco1 El archivo de disco no existe y se

quiere crearlo y añadir información2 El archivo de disco existe y se quiere

extraer información de él3 El archivo de disco existe y se quiere

añadir más información, conservando la información que ya estaba en él.

4 El archivo de disco existe y se quiere borrar la información, y agregar información nueva.

Page 55: Asignatura: Computadores T.U.Especialidad Sistemas Computacionales Profesor: José Estay Araya Sitio de la asignatura:  User:

Distintos métodos de lectura y escritura de datos

Un carácter a la vez Lee y escribe a memoria 2aria. Un carácter a la vez

Leer y escribir cadenas de caracteres

Lee y escribe a memoria 2aria. Cadenas de caracteres.

Método mixto E/S de caracteres, cadenas de caracteres, reales y enteros

Método de estructura de bloques

E/S de vectores y estructuras

Page 56: Asignatura: Computadores T.U.Especialidad Sistemas Computacionales Profesor: José Estay Araya Sitio de la asignatura:  User:

Distintos métodos de …(cont.) Para todos los casos se usan las

siguientes funciones:

• FILE *puntero• fopen(nombre_archivo, modo de

operación)• fclose(puntero a archivo)

Page 57: Asignatura: Computadores T.U.Especialidad Sistemas Computacionales Profesor: José Estay Araya Sitio de la asignatura:  User:

Distintos métodos de …(cont.)

Un carácter a la vez o cada vez

TXT

Lee y escribe a memoria 2aria. Un carácter a la vezputc() //para escribir; getche() //para leer

Leer y escribir cadenas de caracteres

TXT

Lee y escribe a memoria 2aria. Cadenas de caracteres.putc() //para escribir; getc() //para leer

Método mixtoMIX

E/S de caracteres, cadenas de caracteres, reales y enterosfprintf(); fscanf()

Método de estructura de bloques

BIN

E/S de vectores y estructurasfread(); fwrite

Page 58: Asignatura: Computadores T.U.Especialidad Sistemas Computacionales Profesor: José Estay Araya Sitio de la asignatura:  User:

Archivos de texto frente a binariosIncide en el rendimiento de la transferencia de los datos. Por ejemplo, se tiene el siguiente número entero:

12345678Si almacenamos el número como texto31 32 33 34 35 36 37 38 8 bytesSi almacenamos binario

BC614E 3 bytesPor lo cual el ahorro de espacio es considerable