Asignatura: Lenguaje de Programación de Sistema PPT No.01
-
Upload
chalondra-naiser -
Category
Documents
-
view
47 -
download
1
description
Transcript of Asignatura: Lenguaje de Programación de Sistema PPT No.01
Asignatura: Lenguaje de Programación de Sistema PPT No.01
Programa vespertino de Ingeniería (E) en Sistemas Computacionales
Profesor: José Estay ArayaSitio de la asignatura:http://www.jiiea.com/SyPrgLan/User: sist2014 psw: sist#C10
Asignatura: Lenguaje de Programación de Sistema
Objetivos: • 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.
Objetivos (cont): • Aprender a combinar código fuente
ensamblador en un programa fuente C• Aprender a combinar Assembly x86 con
fuente C/C++ Visual corriendo sobre maquina virtual de Microsoft .NET Framework.
• Adquirir una visión global del uso de compiladores IDE en lenguaje C, tanto nativo como de maquina virtual.
Plan de la asignatura
De acuerdo al plan de estudios, modalidad asignatura de un semestre académico.
La asignatura contempla horas teóricas mas horas de laboratorio.
Material de la asignatura:http://www.jiiea.com/SyPrgLan/user:sist2014psw:sist#C10
SESION FECHA ACTIVIDAD DESCRIPCION
1 18/Marzo Introducción a la asignatura Fundamentos de C
2 25 Exp 1: Microsoft Visual C/C++ Express Edition 2010 o superior
IDE, “holaMundo!”, operaciones aritm +,-,*,/
3 1/Abril Exp 2.Win32: solución ecc cuadratica
4 8 Exp 3
5 15 Exp 4
6 22 C-1
7 29 Exp 5
8 6/Mayo Exp 6
9 13 Exp 7
10 20 Exp 8
11 27 C-2
12 3/Junio Exp 9
13 10 Exp 10
14 17 Exp 11
15 24 Exp 12
16 1/Julio C-3
17 8 Notas finales y cierre del curso
Conceptos: el TRADUCTOR
Traductores: ensambladores (ASSEMBLER), interpretadores, compiladores, enlazadores
Lenguaje de máquina
Características generales de un lenguaje
Transportabilidad Facilidad de aprendizaje Facilidades para el usuario Bibliotecas: dinámicas y estáticas Control electrónico
Lenguaje C
Compilador: MICROSOFT VISUAL C/C++ Express Edition 2010 o superior
Obtener desde Microsoft
Lenguaje C
Instalación Importancia de las bibliotecas Bajar e instalar Directorios DISPLAY: modo de consola y modo
Windows
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
Ventajas Desventajas de C
Top-down Estructurado Modular + Eficiente +/- Transportable + Control del computador + Aplicación en microcontroladores y
microprocesadores, pequeños subsistemas +
Poco legible -
Estructuración de un programa
Programación estructurada Programación modular
Elementos de C
Componentes léxicos (token), ejemplo main { +
Palabras reservadas ANSI C
Tipos de Datos
char int float Entero-32768..+32767 Flotante+/-3.4 e +/- 38 ...entre otros...ver HELP de C
Sentencias (instrucciones)
Simples: ejemplo x = 3+5; Compuestas: delimitada por { }
Funciones
Display o despliegues en pantalla Monitor, proyector, LCD todos con
características VGA Función printf()
Especificador de formato
%d %o %u %x %f %e %c %s ...entre otros...ver HELP de C.
Identificadores
Función Sensibilidad may/min Palabras reservadas Declaración de variables
Operadores aritméticos
+ - * / %
Precedencia
() - * / + -
Operador de asignación
Asigna zona de memoria Antes dirección física Ahora dirección mnemónica o literal Ejemplo x = 10 significado
Asignación compuesta
x= x + 5 x +=5 Extensible a las otras operaciones
aritméticas.
Secuencias de escape
\n \t
...entre otras secuencias de escape. Ver HELP de C.
Especificador de ancho de campo
“el numero %5.2f lo usa”, 6.0 Despliega 6.00
Donde signo, mantisa, punto decimal, dos decimales
Entrada estándar Funcion scanf() Especificador de
formato
printf()
scanf()
Comentarios
Comentarios en C // /* rem */ Ayuda para debugging
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
Funciones printf() scanf() sin(x) cos(x) tan(x) sqrt() Funciones creadas por el programador
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
Toma de decisiones
Operadores relacionales: >>=<<===!=
Sentencia if Sintaxis:
if (expresion) sentencia
yes
noproceso
Sentencia if-else Sintaxis: if
(expresion) sentencia1 else sentencia2
process1
process2yes
no
switch Sintaxis: switch(expresion) {case exp1:sentencia1;break;case exp2:sentencia2;break;
.
.default}
switch
var
S1 S3S2 Default
1 2 3
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
Operador condicional
Sintaxis:
expresion1 ? expresion2 : expresion3
Si expresion1 es TRUE devuelve expresion2, caso contrario devuelve expresion3
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");
}
Lazo o bucle for
Sintaxis:for(expresion_inicial;
expresion_condicional; expresion_de_lazo){
sentencias}
Nota:si es 1 sentencia las {} no son necesarias
Lazo while
Sintaxis:while(expresion) sentencia;
while(expresion){sentencias}
while…..
sentencia(s)
true
false
do-while
Sintaxis:do sentencia while(expresion)
do {sentencias
}while(expresion)
do-while…….
sentencia(s)
true
false
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
Recursividad
Estudio personal: significado y aplicación
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
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
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}
};
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
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
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 */
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;
Estructura de datos
La gran potencialidad está en poder escribir vectores y matrices de estructuras.
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;
…………………………………………………………………………………
}
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
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
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.
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
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)
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
Distintos métodos de …(cont.)Acceso Random Se utiliza la función fseek(p,d,m ) la cual tiene 3 argumentos: p: puntero a archivo, d: desplazamiento, m: modoModo puede tomar 3 valores• SEEK_SET(0) desplazamiento desde
el inicio• SEEK_SET(1)desplazamiento desde
posición actual• SEEK_SET(2)desplazamiento desde
el final del archivo
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
Operaciones sobre archivos
“a” Abierto para añadir datos. Los datos se añaden al final del archivo o se crea un archivo nuevo si no existe.
“r” Abierto para lectura. El archivo debe existir
“w” Abierto para escritura. Los datos son escritos desde el principio, o se crea un nuevo archivo si no existe.
“a+” Abierto para lectura y añadir datos. Si el archivo no existe, se crea.
“r+” Abierto para lectura y escritura. El archivo debe existir.
“w+” Abierto para lectura y escritura. Se escribe desde el principio del archivo
Operaciones sobre archivos(Cont)