sistema sin format i cos
TRANSCRIPT
-
7/30/2019 Sistema Sin Format i Cos
1/140
SISTEMAS INFORMTICOS
2 INGENIERAQUMICA
Profesores Departamento Curso Acadmico
F. Prez Ingeniera de Sistemas y Automtica 2003-04
Isidro Calvo
-
7/30/2019 Sistema Sin Format i Cos
2/140
-
7/30/2019 Sistema Sin Format i Cos
3/140
TITULACIN: INGENIERA QUMICAASIGNATURA: SISTEMAS INFORMTICOSAO ACADMICO: 2CREDITOS: 3 T y 3 P
AO ACADMICO: 2003-2004
OBJETIVOS:
El objetivo de la asignatura es introducir a los alumnos en el mundo de la
informtica ms all del punto de vista del usuario. Para ello se imparten conocimientos
avanzados sobre arquitectura de computadores, sistemas operativos y lenguajes de
programacin.
TEMARIO TERICO:Tema 1. Introduccin a la informtica.
Conceptos bsicos. Origen y evolucin de los sistemas de clculo. Ordenadores
personales. Estudio comparativo. Sistemas inteligentes. El PC. Memorias.
Tema 2. Estructura general de un sistema de computacin.Descripcin general. Elementos de almacenamiento. Unidad de control. Buses.
Estructura general. Fases de ejecucin de instrucciones.
Tema 3. Codificacin de la informacin.Conceptos generales. Codificacin. Sistemas de numeracin. Representacin
numrica. Cdigos de alfanumricos. Deteccin y correccin de errores.
Tema 4. Fundamentos de sistemas operativos.Elementos de un sistema de computacin. Tipos de sistemas operativos.
Funcionamiento de los sistemas de computacin. Arquitectura de los sistemas
operativos. Elementos de los sistemas operativos.
Tema 5. Lenguajes de programacin.
Objetivos de la programacin. Tipos de lenguajes. Herramientas deprogramacin. Desarrollo de programas.
Tema 6. Programacin estructurada.Elementos del lenguaje. Estructura general de un programa. Comentarios. Pasos
de programacin. Funciones bsicas.
Tema 7. Elementos base de programacin.Identificadores. Palabras reservadas. Constantes. Operadores. Separadores.
Comentarios.
-
7/30/2019 Sistema Sin Format i Cos
4/140
Tema 8. Tipos de datos simples.Tipos simples: Enteros, reales y caracteres. Variables y constantes. Expresiones
y sentencia de asignacin. Conversiones. Operaciones de lectura y escritura..
Tema 9. Operadores.Operadores Aritmticos. Incremento y decremento. Operadores de relacin.
Operadores de comparacin. Operadores lgicos. Operadores de acceso a los
objetos. Direccin de un objeto. Tipos de direccionamiento. Conversin de tipos
de variables. Prioridad de operadores. Evaluacin de expresiones.
Tema 10. Instrucciones.Instrucciones simples y compuestas. Instrucciones de condicionales. Instrucciones
repetitivas. Estructuras anidadas.
Tema 11. SubprogramasConcepto de subprograma. Tiempo de vida y visibilidad de las variables. Paso
de parmetros por valor y por referencia. Efectos laterales.
Tema 12. FuncionesDefinicin, declaracin y llamada. Transmisin de informacin entre funciones.
La funcin principal.
Tema 13. Tipos estructuradosArrays unidimensionales y multidimensionales. Cadenas de caracteres. Funciones
para el tratamiento de cadenas de caracteres. Estructuras. Estructuras anidadas.
Punteros.
Tema 14. ArchivosFicheros binarios y de texto. Entrada y salida estndar. Funciones para el manejo
de ficheros.
PRCTICAS:
- Sesiones 12: Arquitectura del PC.- Sesiones 34: Entorno de programacin.- Sesiones 512: Programacin en C.- Sesiones 1315: Sistema operativo Linux.
-
7/30/2019 Sistema Sin Format i Cos
5/140
Arquitectura del PC Estructura de Sistemas de Computacin
Sistemas Operativos - Linux
Lenguajes de Programacin
Programacin en C
Estructura de Programa
Elementos del Lenguaje
Sentencias de Control
Modularidad
Tipos de Datos Ficheros
Sistemas Bsicos de Comunicacin
Temario
Sistemas OperativosSilberschatz, Galbin
Ed. Pearson, Addison Wesley Longman
Linux - Edicin EspecialTackett, Burnett
Ed. Prentice Hall
Programacin Estructurada en CAntonakos, Mansfield
Ed. Prentice Hall
Curso de Programacin C/C++Ceballos
Ed. RA-MA
Fundamentos de Programacin, Algoritmos y Estructura de DatosJoyanes
Ed. McGraw Hill
Bibliografa
Programacin en CJoyanes, Zahonero
Ed. McGraw Hill
-
7/30/2019 Sistema Sin Format i Cos
6/140
SISTEMAS INFORMTICOSMTODO DE CALIFICACIN
Examen Final Obligatorio (80% de la nota final). Nota mnima de aprobado 5.Calificacin por conocimiento demostrado. Dos partes:
9 Terica: Preguntas tericas, modelo tipo test9 Prctica: Desarrollo de un programa en C
Laboratorio Obligatorio (20% de la nota final). Nota mnima de aprobado 5. Lanota se mantiene durante el ao posterior a la calificacin. Dos tipos de calificacin:
9 Asistencia + trabajos: Asistencia semanal y aprovechamiento. Entrega delos trabajos que se pidan. Disponibilidad de un disco con todas las prcticas
desarrolladas.
9 Examen: Uno por convocatoria
-
7/30/2019 Sistema Sin Format i Cos
7/140
Sistemas Informticos
Introduccin a losSistemas Computacin
Fede Prez
TEMA - Introduccin a los Sistemas de Computacin
1. - Conceptos Bsicos
2. - Origen y Evolucin de los Sistemas de Clculo
2.1 Abaco
2.2 Calculadoras Mecnicas2.3 Las Primeras Computadoras Mark I | ENIAC | ABC
2.4 Las Calculadoras de Von Neuman
3. - Generaciones de Ordenadores
4. - El Ordenador Personal
5. - Razones del xito de los Computadores
6. Estudio Comparativo de la Evolucin de los Computadores
7. Futuro de los Ordenadores
ndice
-
7/30/2019 Sistema Sin Format i Cos
8/140
Informtica: trata de la adquisicin, representacin, tratamiento y transmisin de lainformacin.(Segn la Real Academia Espaola de la Lengua) Es el conjunto de conocimientos
cientficos y tcnicos para hacer posible el tratamiento automtico de lainformacin por medio de computadoras electrnicas
Definiciones
Computadora u Ordenador: Es una mquina electrnica capaz de aceptar unosdatos de entrada, efectuar con ellos una operaciones aritmticas y lgicas, y
proporcionar la informacin resultante a travs de un medio de salida; todo ello sinintervencin de un operador humano y bajo el control de un programa deinstrucciones previamente almacenado en la propia computadora
Calculadora: (acepcin actual) Es una mquina capaz de efectuar operacionesaritmticas bajo el control directo del usuario
Datos: Son conjuntos de smbolos utilizados para expresar o representar un valor numrico,un hecho, un objeto o una idea, codificada en la forma adecuada para ser objeto detratamiento por medio de una computadora
Informacin: Datos tratados y organizados, con significado desde el punto de vista delusuario
DATOS + INTERPRETACION = INFORMACION UTIL
Hardware vs. Software
Hardware: Componentes fsicos, dispositivos de estado slido y similares, de unordenador
Software: Programas que dirigen el funcionamiento de un ordenador
Firmware: Ente intermedio entre el hardware y el software
-
7/30/2019 Sistema Sin Format i Cos
9/140
Ordenadores Dedicados y de Propsito General
Ordenador de Propsito General: Puede ejecutar un amplio rango detareas de proceso de informacin
Ordenador Dedicado: Est diseado para una tarea especfica o para un rangoreducido de tareas
Evolucin de los Sistemas de Calculo baco
baco: Serie de alambres paralelos, sujetos por los extremos en un armaznrectangular, sobre los que se pueden desplazar una serie de bolas ofichas
TIPOS DE BACOS
Origen Nombre Caractersticas
C hin a s uan p an C on st a d e 13 hi lera s d e c uen ta s, di vi di da s en do s p art es por una va ri ll a mo nta datransversalmente en el marco, en la parte superior cada hilera con 2 cuentas con un valor de 5unidades cada una, y en la parte de abajo 5 cuentas, cada una con el valor de una unidad
Japn soroban Consta de 13 h il eras de cuen tas, divididas en dos pa rtes , en l a par te superior cada hi le ra con 1cuenta con valor de 5 unidades cada una, y en la parte de abajo 4 cuentas, cada una con el valorde una unidad
R om a ? S e u ti li za p ied ra ca li za o m r mo l qu e s e d es li za ba n s ob re ra nu ra s d e su pe rfi ci e p la na , l as
pequeas piedras se les denomincon el nombre de calculi.
Rusia stchoty ?
-
7/30/2019 Sistema Sin Format i Cos
10/140
Evolucin Calculadoras Mecnicas 1
La Calculadora de SckickardEn 1623 Wilhelm Sckickard construye la
primera mquina de calcular
La Pascalina1.642 Blaise Pascal. Conjunto de discosdentados, cada uno de los cuales tiene 10divisiones, que representaban un dgito. Escapaz de realizar sumas y restas
La Calculadora Universal1694 Gottfried W. Leibniz. Perfecciona lamquina de Pascal aadindole la
multiplicacin y divisin.
La Lgica MatemticaGeorge Boole (1815-1864), es el fundadorde la teora de la lgica matemtica.
Evolucin Calculadoras Mecnicas 2El Padre de la Computadora
Se considera a Charles Babbage (1791-1871), como el padre de los sistemasactuales de computacin. A CharlesBabbage se le atribuye el desarrollo de dosmquinas de clculo:
La Mquina Diferencial: (1821) capaz decalcular polinomios de sexto grado y tabularmecnicamente hasta veinte cifras y ochodecimales
La Mquina Analtica: (1833) sistemamecnico precursor de la computadora delsiglo XX. Dispona de:Dispositivo de entrada/salida de datos (tarjetas
perforadas)Unidad de memoriaDispositivo de clculo llamado "Mill" (UnidadAritmtica)
Mecanismo de barras y palancas que accionaba elconjunto (Unidad de Control), conducido por unprograma codificado sobre tarjetas perforadas
-
7/30/2019 Sistema Sin Format i Cos
11/140
Evolucin Calculadoras Mecnicas 3
La Mquina de TabularEn 1890 Herman Hollerith (1860-1929),invent su mquina tabuladora que utilizabacorriente elctrica para detectar los agujerosque estaban perforados y as hizo registrarla informacin en tarjetas, y el tiempo totaldel proceso se redujo. Sistema deautomatizacin del censo.
Evolucin Las Primeras Computadoras 1
La ComputadoraElectromecnica
Z-1 (1935)Konrad Zuse en Berln desarroll su computadora Z-1
Mark I Computer (ASCC) Automatic
Sequence Controller Calculator (1944)Desde 1937 hasta 1944, IBM patrocin el proyecto delDr. Howard H. Aiken, profesor de la universidad deHarvard. En 1944 finaliz su objetivo con el nombre deMark I.
-
7/30/2019 Sistema Sin Format i Cos
12/140
Evolucin Primer Bug
Evolucin Las Primeras Computadoras 2
La Computadora Electrnica
ABC (Atanasoff Berry Computer)(1936/37)
John Vicent Atanasoff y Clifford Berry. Principios de lasprimeras computadoras.
ENIAC (Electronic Numerical Integratorand Computer) (1946)Construido en la universidad de Pennsylvania, por JohnW. Mauchly y John Presper Eckert
-
7/30/2019 Sistema Sin Format i Cos
13/140
Evolucin Las Primeras Computadoras 3Calculadoras de Von Neuman
John Von Neumann (1903-1957)
1.946 "First Draft of a Report on to EdvacPrincipios ordenadores del tipo Von Neumann:Concepto de numeracin codificadaAlmacenamiento del programa en memoriaPerfeccionamiento de la ruptura de secuencia
EDSAC (1.949)M. Wikes, de la Universidad de Cambridge
UNIVAC (1.951)Eckert y Mauchly, primera computadora adquirida confines lucrativos.
Babbage vs. Von Newman
Entrada Salida
Memoria
C.P.U.
U.A.Datos
Programa
Resultados
Modelo deComputadorasegn
Babage
Modelo deComputadorasegnVon Newman
Entrada Salida
Memoria
C.P.U.
U.A.
Datos
Programa
Resultados
-
7/30/2019 Sistema Sin Format i Cos
14/140
Generaciones de Ordenadores 11 Generacin (1940-52)
9 Tecnologa empleada: Vlvulas de vaco9 Uso: Cientfico y militar.9 Programacin: Modificando directamente los valores de los circuitos de la mquina. No
existan los lenguajes de programacin, ni siquiera el ensamblador.9 Ordenadores caros, debido a la corta vida de la vlvulas de vaco y al gran calentamiento,
as como al gran consumo de energa elctrica.9 Ordenadores lentos.9 Capacidad de almacenamiento muy pequea.9 Incapacidad de ejecutar ms de una tarea a la vez.
Algunas de las realizaciones son: UNIVAC | EDSAC | EDVAC | ORDAC | ILLIAC |MANIAC | JHONIAK | WEIZAK
Generaciones de Ordenadores 22 Generacin (1952-64)
9 Tecnologa empleada: Transistor9 Dispona ya de una programacin previa, de un Sistema Operativo, capaz de interpretar
instrucciones escritas en lenguajes de programacin como COBOL o FORTRAN.9 Comienza el desarrollo de perifricos de E/S (impresoras) y los Lenguajes de alto nivel
(y el ensamblador).9 El modo de trabajo era generalmente el sistema por lotes.9 Aumento de la velocidad en el clculo
9 Reduccin de tamao9 Reduccin del consumo a energa y potencia disipada9 Tiempo de vida media del transistor superior a la vlvula9 Abaratamiento
Algunas de las realizaciones son: Sperry Rand 1207 | IBM 700 | IBM 1400 | 1700
-
7/30/2019 Sistema Sin Format i Cos
15/140
Generaciones de Ordenadores 33 Generacin (1964-75)
9 Tecnologa empleada: Circuito integrado (lmina de silicio embutida en plstico). Se
utilizan materiales semiconductores en lugar de los ncleos de ferrita en la construccinde memorias.9 Se mejoran los lenguajes de programacin y empezaron a aparecer programas
comerciales, con lo que un usuario no tena que programar sus aplicaciones.9 Capacidad de multiprogramacin, con lo cual los ordenadores son capaces de ejecutar
varias tareas al mismo tiempo.9 Aumento en la velocidad de clculo9 Tamao disminuye
Algunas de las realizaciones son: IBM System/360 | GE 600 | PDP-11
Generaciones de Ordenadores 44 Generacin (1975-?)
9 Tecnologa empleada: Circuitos de alta escala de integracin. Microprocesadores.9 Es el producto de una serie de avances tanto en el hardware, y su tecnologa de
fabricacin, como en el software y sus posibilidades de aplicacin:o Nuevas tecnologas de fabricacin de semiconductores que conducen a velocidades de
transmisin cada vez mayores y mayor capacidad de almacenamiento.o Aparicin de paquetes software, que obedecen a nuevas concepciones y situaciones
especficas: bases de datos, diseo asistido, tratamiento de texto, ...o Nuevas memorias de al almacenamiento: tecnologas Winchester, y burbujas magnticao Aparicin de los ordenadores personaleso Ms lenguajes de alto nivel y herramientas informticas.o Desarrollo de perifricos inteligentes: descargan de trabajo a la CPU.o Hacia mediados de los 80, comienza el desarrollo de redes de computadoras personales que
corren sistemas operativos en red y sistemas operativos distribuidos
-
7/30/2019 Sistema Sin Format i Cos
16/140
Generaciones de Ordenadores 55 Generacin (?)
9 Arquitectura diferente a la propuesta por Von Neumann9
Ordenadores inferentes9 Ordenadores de transputers9 Ordenador ptico9 Mquinas neuronales9 Sistemas informticos distribuidos
El Ordenador Personal9 Aos 70, primer microprocesador, el INTEL 4004, posibilidad de construccin de un
ordenador utilizable por un solo usuario9 1977, S. Wozniaky S. Jobs, fundaron una empresa llamadaApple9 1.981, IBMPC(Personal Computer)9 Evolucin tanto en el microprocesador utilizado (8088, 8086, 80286, 80386, 80486,
Pentium) y en el sistema operativo (UNIX para PC, el OS/2 de IBM y el Windows deMicrosoft)
9 Mediados de los 80, comienza el desarrollo de redes de computadoras personales
-
7/30/2019 Sistema Sin Format i Cos
17/140
Estudio Comparativo de la Evolucin de losComputadores
Tiempo
Potencia
Tamao
Precio
-
7/30/2019 Sistema Sin Format i Cos
18/140
-
7/30/2019 Sistema Sin Format i Cos
19/140
Sistemas Informticos
Fede Prez
Arquitectura y Componentes delPC
TEMA Arquitectura y Componentes del PC
1. Componentes Bsicos
1.1 Funcionalidad
1.2 Emplazamiento
1.3 Caractersticas ms Importantes2. Evolucin
4. - Conclusiones
ndice
-
7/30/2019 Sistema Sin Format i Cos
20/140
El PC - Disposicin
Chasis en disposiciChasis en disposicin de Torren de Torre
MinitorreMinitorre SobremesaSobremesa
Estructura Interna de un Microcomputador
-
7/30/2019 Sistema Sin Format i Cos
21/140
La Placa Base (I)
Elemento principal al quese conectan los restantescomponentes y perifricos.
Formatos
9 Baby AT
8 Conector grueso del teclado.
8 Dificultad al instalar tarjetas deexpansin largas.
8 Mantenimiento farragoso.
Esquema del formato Baby AT.Esquema del formato Baby AT.
La Placa Base (II)
9 ATX
8 Mejora la flexibilidad,integracin y funcionalidad.
8 Reorganizacin de ladistribucin de componentes.
8 Disminucin de la longitud delos cables, mejora de laventilacin.
8 Conectores PS/2
8 USB
Formato ATX.Formato ATX.
-
7/30/2019 Sistema Sin Format i Cos
22/140
Componentes de la Placa Base
Componentes de la Placa Base
-
7/30/2019 Sistema Sin Format i Cos
23/140
La Fuente de Alimentacin
Niveles de c.c.9 +/-12 V Amarillo.
9 +/-5 V Rojo.
9 GNDNegro.
Convierte la energa alternade la red a dos niveles decontinua.
La Fuente de Alimentacin - Conectores
Conectores ATXConectores ATX
Conectores ATX en Placa BaseConectores ATX en Placa Base
Conectores P6Conectores P6
Conectores en YConectores en Y
-
7/30/2019 Sistema Sin Format i Cos
24/140
El Chipset
Determina el rendimiento y caractersticas de la placa. Controla su modo de operacin e integra todas sus funciones.
9 Velocidad del bus
9 Controlador de IRQ
9 Tipos de memoria
9 Tipo de CPU
9 N de CPUs
9 Caractersticas PnP
9 Puente PCI-ISA
9 Controlador de DMA
9 Tipo de cach L2
9 ...
La Memoria
Memoria principal:
9 Ms y mayores programas almismo tiempo.
9
SIMM (5V)-DIMM (3.3-5V), Nde contactos30, 72, 168.
9 Bus de datos { bus dememoria. Organizacin enbancos.
Memoria cach:
9 Acelera los procesos de laCPU, almacn ltimos datostransferidos.
9 Emplazamientosobre placa
o mdulos COAST. MMdulo DIMM.dulo DIMM.
-
7/30/2019 Sistema Sin Format i Cos
25/140
Papel de la memoria en un PC
Al referirnos a memoriageneralmente nos referimos a lamemoria RAM.
Un ordenador utiliza la memoria RAMpara guardar las instrucciones y losdatos temporales que se necesitanpara ejecutar las tareas. Esto permitea la CPU del ordenador (unidad centralde proceso), acceder rpidamente alas instrucciones de acceso y a losdatos almacenados en la memoria .
Adems de la RAM en un PC
encontramos otros muchos tips dememoria9 SDRAM (RAM)
9 ROM FLASH (BIOS)
9 SRAM (cache)
9 etc
TIPOS MEMORIA
Voltiles No voltiles
FIFO ROM
PROM Y EPROM
EEPROMFLASH
MRAM
RAM
DINAMICA(DRAM)
ESTATICA
SRAMVIDEO SISTEMA
FPM
EDO
SDRAM
DDR
RDRAM (RAMBUS)
VRAM
WRAM
SGRAM
SDRAM
DDR-RAM
Clasificacin de la Memoria por Tipos
-
7/30/2019 Sistema Sin Format i Cos
26/140
BIOS Pila
MemoriaROM, EPROM,FLASH que contiene lasrutinas necesarias paraarrancar el PC.
Se apoya en una memoriaCMOS, alimentada por unabatera.
Contiene el programa deconfiguracin del PC.
BIOSBIOS--Pila.Pila.
BIOS Pantalla de Configuracin
-
7/30/2019 Sistema Sin Format i Cos
27/140
Pentium 4Pentium 4
El Procesador (I)
Es el chip ms importantede la placa base.
Est formado por:
9 ALU -Unidad AritmticoLgica.
9 UC -Unidad Central.
9 Memoria Central (R.A.M)
8 Cach interna (L1).
8 Cach externa (L2).
El Procesador (II)
Principales Caractersticas:
9 Velocidad.
9 Tipo de zcalo.
9 Memoria Cach.
9 Instrucciones Especiales.
9 Bus de comunicacin.
9 Tecnologa de fabricacin.
-
7/30/2019 Sistema Sin Format i Cos
28/140
Buses de Expansin (I)
Al conectar una tarjeta a un bus de expansin, stafunciona como si estuviera directamente conectada alprocesador. Caractersticas de las principales:
PCI9 Independiente de la CPU
9 Controlador de bus
9 Plug & Play
9 Color crema
SCSI9 E/S Inteligente
9 Necesita de otros buses
9 Direccionamiento lgico
9 Hasta 15 dispositivos
AGP9 Apartado grfico
9 Color marrn
ISA9 1 en aparecer
9 Color negro
Buses de Expansin (II)
Vesa Local BusVesa Local Bus
PCI BusPCI Bus
-
7/30/2019 Sistema Sin Format i Cos
29/140
Perifricos Internos
Dispositivos que se conectan a la placa base pormedio de los buses o ranuras de expansin.
Los ms comunes son:
9 Unidades de almacenamiento.
8 Disquetera
8 Disco duro
8 CD_ROM
8 DVD
8 Instalacin de varios dispositivos
9 Tarjetas de vdeo
9 Tarjetas de sonido
El Disco Duro (I)
Sistema de almacenamiento, en el se guardan losarchivos de los programas (SO,Word..)
-
7/30/2019 Sistema Sin Format i Cos
30/140
El Disco Duro (II)
Instalacin de Varios Disp. de Almacenamiento
Las controladoras EIDE,disponen de dos canales IDEindependientes, pudiendoinstalar hasta 4 dispositivos, 2por canal.
9 1->primario master.
9 2->primario esclavo.
9 3->secundario master.
9 4->secundario esclavo.
8 El primario master arranca elcomputador.
Una controladora SCSI(lasms rpidas) se puedenconectar hasta 7 dispositivos
o 15 si es WIDE SCSI.
-
7/30/2019 Sistema Sin Format i Cos
31/140
Disquetera y CD-ROM
DISQUETERA9 Slo han existido dos formatos
considerados como estndar, elde 5 y el de 3 .
CD-ROM - DVD
9 Pueden almacenar graninformacin, aunque menor queun disco duro, pero la velocidadde recuperacin de informacin
y la capacidad es menor.9 Hay lectores, grabadores y
regrabadores
Tarjetas de Vdeo y Sonido
TARJETAS DE VDEO
9 Los diferentes programas, envansus salidas a travs de lasllamadas tarjetas de vdeo a lapantalla.
9 Hoy en da, son grficas eincluyen aceleracin porhardware.
TARJETAS DE SONIDO
9 Permiten escuchar msica ysonidos al ejecutar lasaplicaciones.
9 Es conveniente que admitan lamodalidad full duplex, paraprogramas de videoconferencias.
9 Se suele conectar al CD-ROMpara escuchar msica.
-
7/30/2019 Sistema Sin Format i Cos
32/140
Puertos (I)
Sirven para conectar al PC los dispositivos externosde E/S.
Puerto serie (RS232C) COM 1,COM 2, etc.
Puerto paralelo (CENTRONICS): LPT1 o PRN.
Puerto USB
Puertos (II)
-
7/30/2019 Sistema Sin Format i Cos
33/140
Perifricos Externos
Dispositivos que se conectan a la placa base pormedio de los puertos.
Los ms comunes son:
9 Teclados
9 Ratones
9 Monitores
9 Impresoras
9Scaners
9 Modems
Teclados y Ratones
-
7/30/2019 Sistema Sin Format i Cos
34/140
Monitores
CRT LCD (TFT)
Impresoras
Matriciales
Agujas
Inyeccin de Tinta
Laser
-
7/30/2019 Sistema Sin Format i Cos
35/140
Escaners
Conclusiones
Modularidad y caractersticas Plug & Play.
La placa base contiene los elementos mnimosnecesarios.
Las prestaciones de los computadores aumentan a unritmo vertiginoso.
Las posibilidades de configuracin y ampliacionesposteriores son prcticamente ilimitadas.
Por todo ello son computadores a la carta, creados algusto y necesidades del usuario.
-
7/30/2019 Sistema Sin Format i Cos
36/140
-
7/30/2019 Sistema Sin Format i Cos
37/140
Sistemas Informticos
Estructura Generalde un
Sistema de Computacin
Fede Prez
TEMA 2 Estructura General de un Sistemas de Computacin
1. - Introduccin
2. - Seccin Primaria de Almacenamiento. Memoria Principal
2.1 Estructura General
2.2 Organizacin Interna de la Memoria
2.3 Direccionamiento
2.4 Operaciones de Lectura/Escritura en Memoria
2.5 Propiedades Fundamentales de las Memorias
2.6 Parmetros de Tiempo en Memoria
2.7 Tipos de Memoria
2.8 Jerarquas de Almacenamiento
3. - Unidad de Control de Procesos - C.P.U.
3.1 Unidad de Control
3.2 Unidad Aritmtico-Lgica - A.L.U.
4. - Buses
4. - Descripcin General
5. Fases de Ejecucin de una Instruccin
5.1 Fase FETCH - Bsqueda o Lectura de una Instruccin
5.2 Fase EXECUTE - Ejecucin
ndice
-
7/30/2019 Sistema Sin Format i Cos
38/140
Organizacin Bsica de un SC
Estructura General de un SC Memoria
-
7/30/2019 Sistema Sin Format i Cos
39/140
Memoria Principal Organizacin Interna
Memoria Principal Direccionamiento
Direccionamiento cableadoen dos dimensiones Direccionamiento cableadoen tres dimensiones
-
7/30/2019 Sistema Sin Format i Cos
40/140
Memoria Principal Operaciones de Lectura y Escritura
Lectura
1- Direccin de la palabra solicitadaes recogida en registro dedirecciones
2- Seal de control la operacindeseada (lectura)
3- La memoria decodifica ladireccin, activa la celdacorrespondiente y deposita eldato en el registro de palabra; deah la informacin pasa al bus dedatos
Escritura
1- Direccin de la palabra solicitadaes recogida en registro dedirecciones
2- En el bus de datos la informacina escribir en memoria, quedandoalmacenado en el registro dedatos de la memoria
3- Seal de control la operacindeseada (escritura)
4- El dato del registro de datos dela M.P. se almacena en la clulade memoria activada
Memoria Principal Parmetros
Propiedades Fundamentales
1- Coste por Bit2- Tiempo de Acceso
3- Capacidad de Almacenamiento
Parmetros de Tiempo
Ciclo de Lectura: Tiempo que transcurredesde que a la memoria llega la seal de
lectura, hasta que aparece el dato en elbus de datos
Ciclo de Escritura: Tiempo que transcurredesde que a la memoria llega la seal deescritura (se accede a la direccin)
Tiempo de Acceso: Espacio mnimo detiempo requerido entre accesos sucesivos(lectura/escritura) a una memoria
-
7/30/2019 Sistema Sin Format i Cos
41/140
Tipos de Memoria
SRAM DRAM ROM/PROM EPROM/EEPROM FLASHR/W R/W R/W R R R/W
Direccionamientoaleatorio
Si Si Si Si Si
Volatibilidad Si Si No No NoCapacidad Alta Muy Alta Baja Baja Muy Alta
Tiempo de Acceso Alto Muy Alto Bajo Bajo Medio
De Lectura y Escritura - RAM (Random Access Memory / Read-Write Memory)9Dinmicas (DRAM)9Estticas (SRAM)
De Solo Lectura - ROM (Read Only Memory)9ROM (Read Only Memory)9PROM (Programmable Read Only Memory)9EPROM (Erasible Programmable Read Only Memory)9EEPROM (Electrically Erasible Programmable Read Only Memory)
Jerarqua de Almacenamiento
Registro
Cach
Memoria Principal
Disco Electrnico
Disco Magntico
Disco Optico
Cinta Magntica
Almacenamiento
deaccesodirecto
Almacenamiento
secundario
ejepistasector
cilindro
accionador
brazoplato
Cabeza delectura yescritura
Tasa de Transferencia: es la rapidez con quefluyen los datos de la unidad de disco a laCPU
Tiempo de Posicionamiento o Tiempo de Acceso
Aleatorio: es el tiempo que tarda en mover el
brazo del disco al cilindro deseado
Latencia Rotacional: es el tiempo que el sectordeseado tarda en girar hasta quedar debajo dela cabeza de disco
Controladores de Disco: Se encargan de Latransferencia de datos por los buses
-
7/30/2019 Sistema Sin Format i Cos
42/140
Unidad de Control Acepciones y Funciones
Acepciones
1- Microprocesador (P): la UnidadAritmtico-Lgica (ALU) y la Unidad Central(UC)
2- Procesador Central: el P (UC y ALU)ms la Memoria Principal (MP)
3- Ordenador personal (PC): la PlacaBase (P+MP+...), Unidad de Alimentacin,Dispositivos de Almacenamiento Internos(discos, cintas, ...), ...
Funciones
1- selecciona e interpreta lasinstrucciones del programa
2- controla el flujo de datos desde yhacia la memoria
3- supervisa el resto de componentes dela CPU
Unidad de Control Estructura General
-
7/30/2019 Sistema Sin Format i Cos
43/140
Unidad de Control Registro de Instrucciones
Instruccin =Cdigo
deOperacin
+Modo
deDireccionamiento
+Campo
deDirecciones
C.O. M.D. C.D.
Registro de Instrucciones
Modos de Direccionamiento
1- Directo: Absoluto Relativo
2- Indirecto
3- Inmediato
Unidad Aritmtico-Lgica ALU
Flag de CeroFlag de Acarreo
Flag de Desbordamiento (Overflow)Flag de Paridad
Flags de Estado
-
7/30/2019 Sistema Sin Format i Cos
44/140
Buses
Tipos de Buses
1- Bus de Datos
2- Bus de Direcciones
3- Bus de Control Lneas de Control Lneas de Estado
Descripcin General
-
7/30/2019 Sistema Sin Format i Cos
45/140
Fases de Ejecucin de una Instruccin
Fase Fetch- Lectura de una Instruccin
1- Transferir direccin desdeContador de Programa
2- Activacin de celda y paso aregistro de palabra
3- Instruccin hasta registro de
instrucciones
Fase Execute- Lectura de operandos y
decodificacin de la instruccin- Ejecucin de la operacin- Almacenamiento de resultados
1.1- Impulsos al secuenciador1.2- Acciones del secuenciador1.3- Acceso a operandos2- Ejecucin de la instruccin3- Almacenamiento de resultados
-
7/30/2019 Sistema Sin Format i Cos
46/140
-
7/30/2019 Sistema Sin Format i Cos
47/140
Sistemas Informticos
Lenguajes de Programacin
Fede Prez
TEMA - Lenguajes de Programacin
1. - Programacin
2. - Objetivos de la Programacin
3. Tipos de Lenguajes
3.1 Lenguaje Mquina3.2 Lenguajes Ensambladores
3.3 Lenguajes del Alto y Bajo Nivel
4. - Procesadores de Lenguajes
4.1 Compiladores
4.2 Intrpretes
5. - Herramientas de Programacin
6. Desarrollo de Programa que Suma Dos Nmeros
ndice
-
7/30/2019 Sistema Sin Format i Cos
48/140
Programacin
ProblemaEnunciado
del Problema( algortmico )
AlgoritmoPrograma
( en lenguaje deProgramacin )
Anlisis Diseo Codificacin
Objetivos1- Correccin2- Claridad3- Eficiencia
Definicin
Labor de desarrollar programas decomputador
Ciclo de Vida del Software: Cascada de Behm
Anlisis yEspecificacin
Diseo
Codificacin
Validacin ypruebas
Operacin yMantenimiento
Documentacin
-
7/30/2019 Sistema Sin Format i Cos
49/140
Lenguajes de Programacin
Lenguaje Mquina
Mquina Base2
Lenguaje Mquina 2
1111110001110000------------------------------------------------------------------------------------------
---------------------------------------------------------00000011110001110--------------------------------
Programa Objeto 2Datos 1 Resultados 1
Lenguaje Ensamblador
Lenguajes de Alto Nivel
1- Independientes de la arquitectura del computador2- Poseen instrucciones complejas3- Notacin cercana al lenguaje cientfico y natural
Mquina Base1
Lenguaje Mquina 1
0101110111011001------------------------------------------------------------------------------------------
---------------------------------------------------------0111010101110001---------------------------------
Programa Objeto 1Datos 1 Resultados 1
Mquina Base
Lenguaje Mquina
0101110111011001------------------------------------------------------------------------------------------
---------------------------------------------------------0111010101110001---------------------------------
Ensamblador
MOV AX, --
PUSH AX-------------------------ADD SP, 2-------------------------PUSH CX-------------------------END
01011100---------------------------------------------------------------01110101
Programa Objeto- Ejecutable -Programa Fuente
Mquina Base
Lenguaje Mquina
01011100---------------------------------------------------------
---------------------------------------------------------01110101
Prg. Objeto EjecutableDatos Resultados
Lenguaje Mquina
Mquina Base1
Lenguaje Mquina 1Lenguaje Mquina 1
0101110111011001------------------------------------------------------------------------------------------
---------------------------------------------------------0111010101110001---------------------------------
Programa Ejecutable 1Datos 1 Resultados 1
Mquina Base
2
Lenguaje Mquina 2Lenguaje Mquina 2
1111110001110000------------------------------------------------------------------------------------------
---------------------------------------------------------00000011110001110--------------------------------
Programa Ejecutable 2Datos 1 Resultados 1
-
7/30/2019 Sistema Sin Format i Cos
50/140
Lenguaje Ensamblador
Mquina Base
Lenguaje MquinaLenguaje Mquina
01011100---------------------------------------------------------
---------------------------------------------------------
01110101
Programa EjecutableDatos Resultados
Mquina Base
Lenguaje MquinaLenguaje Mquina
0101110111011001------------------------------------------------------------------------------------------
---------------------------------------------------------0111010101110001---------------------------------
Ensamblador
MOV AX, --PUSH AX
-------------------------ADD SP, 2-------------------------PUSH CX-------------------------END
01011100
---------------------------------------------------------------01110101
ProgramaEjecutablePrograma Fuente
a) Obtencin delprogramaejecutable
b) Ejecucin del programaejecutable
Procesadores de Lenguajes
Mquina Base 1
Lenguaje Mquina 1
0101110111011001------------------------------------------------------------------------------------------
---------------------------------------------------------0111010101110001---------------------------------
Traductor 1
/* PROGRA --#include ---
void main ( ){
int Cont, Edad -------------------------printf (El resul -
}
Programa FuentePROGRAMA.C
Mquina Base 2
Lenguaje Mquina 2
0111101111011101------------------------------------------------------------------------------------------
---------------------------------------------------------1111010101010111---------------------------------
Traductor 2
01111111----------------------------------------------------------------------------------------------------------------------------------------------------------------11011011
Programa Ejecutable( en la mquina 2 )
01111010----------------------------------------------------------------------------------------------------------------------------------------------------------------11001000
Programa Ejecutable( en la mquina 1 )
NOTA: Un compilador (traductor) cruzado escapaz de Generar cdigo para unamquina diferente de aquella en laque se eje cuta
-
7/30/2019 Sistema Sin Format i Cos
51/140
Intrpretes
Programa FuentePROGRAMA.BAS
REM PROGRAMA.BAS
INPUT Introduce el valor : , ValorINPUT la cantidad : , CantTotal = Valor*CantPRINT El precio total es: , Total
Datos Resultados
Mquina Base
Lenguaje MquinaLenguaje Mquina
0101110111011001------------------------------------------------------------------------------------------
---------------------------------------------------------0111010101110001---------------------------------
Intrprete
Lenguaje FuenteLenguaje Fuente
Compiladores
Compilado
Enlazado
Ejecucin
Mquina Base
Lenguaje Mquina
0101110111011001------------------------------------------------------------------------------------------
---------------------------------------------------------0111010101110001---------------------------------
Compilador
/* PROGRA --#include --
void main ( ){
int Cont, Edad -------------------------printf (El resul -
}
01011100---------------------------------------------------------------01110101
Programa Objeto- No ejecutable -PROGRAMA.OBJ
Programa FuentePROGRAMA.C
RUTINAS.LIB
PROGRAMA.OBJ
Mquina Base
Lenguaje Mquina
0101110111011001------------------------------------------------------------------------------------------
---------------------------------------------------------0111010101110001---------------------------------
Enlazador (Linker)
01111010----------------------------------------------------------------------------------------------------------------------------------------------------------------11001000
Programa Objeto- Ejecutable -
PROGRAMA.EXE
01011100---------------------------------------------------------------01110101
01111000---------------------------------------------------------------11010001
01111010
----------------------------------------------------------------------------------------------------------------------------------------------------------------11001000
Mquina Base
Lenguaje Mquina
Programa Objeto- Ejecutable -
PROGRAMA.EXE
ResultadosDatos
-
7/30/2019 Sistema Sin Format i Cos
52/140
Compiladores
Caso General
/* PROGRA#include
void main ( ){
int A --printf (El res-
}
Programa FuentePROG_1.C
.../...
Mquina Base
0101110111011001--------------------------------------------------
-------------------------------------0111010101110001
Compilador
Lenguaje Mquina
MquinaBase
0101110111011001--------------------------------------------------
-------------------------------------0111010101110001
Enlazador (Linker)
Lenguaje Mquina
MquinaBase
0101110111011001--------------------------------------------------
-------------------------------------0111010101110001
Compilador
Lenguaje Mquina
/* PROGRA
void InterCamb (int{
int Temp -----------------------
return -----------}
Programa FuentePROG_N.C 00010011
---------------------------------------------------------------01100001
Programa ObjetoPROG_1.OBJ
01011100---------------------------------------------------------------01110101
Programa ObjetoPROG_2.OBJ
11110000---------------------------------------------------------------01100111
00010000---------------------------------------------------------------01011111
Programa ObjetoPROG_N.OBJ
Programa ObjetoRUTINAS.LIB
Programa Objeto- Ejecutable -
PROGRAMA.EXE
01111010----------------------------------------------------------------------------------------------------------------------------------------------------------------11001000
Libreras: Bibliotecas Estticas
RUTINAS.LIB
PROGR_1.OBJ
Mquina Base
Lenguaje MquinaLenguaje Mquina
0101110111011001------------------------------------------------------------------------------------------
---------------------------------------------------------0111010101110001---------------------------------
Enlazador (Linker)
01011100------------------------------------------------------------01110101--------------------------------------------------------------------------------11001000
Programa EjecutablePROGR_1.EXE
01011100---------------------------------------------------------------01110101
01111000---------------------
------------------------------------------11010001
RUTINAS.LIB
PROGR_2.OBJ
Mquina Base
Lenguaje MquinaLenguaje Mquina
0101110111011001------------------------------------------------------------------------------------------
---------------------------------------------------------0111010101110001---------------------------------
Enlazador (Linker)
11100100--------------------01110000--------------------------------------------------------------------------------11001000
Programa EjecutablePROGR_2.EXE
11100100---------------------01110000
01111000------------------------------------------
---------------------11010001
Cdigo de las rutinas(copiado de la Biblioteca)
-
7/30/2019 Sistema Sin Format i Cos
53/140
Libreras: Bibliotecas Estticas
PROGR_1.EXE
01111010------------------------------------------------------------01110101--------------------------------------------------------------------------------11001000
Mquina Base
Lenguaje MquinaLenguaje Mquina
Cdigode las rutinas
PROGR_1.EXE
01111010------------------------------------------------------------01110101--------------------------------------------------------------------------------11001000
11100100--------------------01110000--------------------------------------------------------------------------------11001000
Mquina Base
Lenguaje MquinaLenguaje Mquina
PROGR_2.EXE
Cdigode las rutinas
Cdigode las rutinas
Ejecucin utilizando bibliotecas estticas
Libreras: Bibliotecas Dinmicas
RUTINAS.DLL
PROGR_1.OBJ
Mquina Base
Lenguaje MquinaLenguaje Mquina
0101110111011001------------------------------------------------------------------------------------------
---------------------------------------------------------0111010101110001---------------------------------
Enlazador (Linker)
01011100---------------------------------------------------------------------------01110101-------------
Uso de Librera
Rutinas.DLL
Programa EjecutablePROGR_1.EXE
01011100---------------------------------------------------------------01110101
01111000---------------------------------------------------------------11010001
RUTINAS.DLL
PROGR_2.OBJ
Mquina Base
Lenguaje MquinaLenguaje Mquina
0101110111011001------------------------------------------------------------------------------------------
---------------------------------------------------------0111010101110001---------------------------------
Enlazador (Linker)
11100100--------------------01110000 -------
Uso de Librera
Rutinas.DLL
Programa EjecutablePROGR_2.EXE
11100100---------------------01110000
01111000---------------------------------------------------------------11010001
RUTINAS.DLL
01111000---------------------------------------------------------------11010001
Los programaejecutablesnecesitan el
archivoRUTINAS.DLLpara poderse
ejecutar
-
7/30/2019 Sistema Sin Format i Cos
54/140
Libreras: Bibliotecas Dinmicas
Ejecucin Utilizando Bibliotecas Dinmicas
PROGR_1.EXE
RUTINAS.DLL
01011100---------------------------------------------------------------------------01110101-------------
Uso de Librera
Rutinas.DLL
01111000---------------------------------------------------------------11010001
Mquina Base
Lenguaje MquinaLenguaje Mquina
PROGR_1.EXE01011100---------------------------------------------------------------------------
01110101-------------
Uso de Librera
Rutinas.DLL
11100100--------------------01110000 -------
Uso de Librera
Rutinas.DLL
01111000---------------------------------------------------------------11010001
RUTINAS.DLL
Mquina Base
Lenguaje MquinaLenguaje Mquina
PROGR_2.EXE
Herramientas de Programacin
Entornos de Programacin
Depuradores
Mquina Base
Lenguaje Mquina
0101110111011001------------------------------------------------------------------------------------------
---------------------------------------------------------0111010101110001---------------------------------
Depurador
01111010----------------------------------------------------------------------------------------------------------------------------------------------------11001000
Programa EjecutablePROGRAMA.EXE
Lenguaje Mquina
DatosResultados
TRAZA DEL
PROGRAMA
0101110111011001------------------------------------------------------------------------------------------
---------------------------------------------------------0111010101110001---------------------------------
Editor
1101110111011111------------------------------------------------------------------------------------------
---------------------------------------------------------0000010101110001---------------------------------
Compilador
/* PROGRA#include---
void main ( ){
int A--printf (El res-
}
ProgramaFuente
PROGRAMA.C
ProgramaObjeto
PROGRAMA.OBJ
01011100------------------------------------------01110101
/* PROGRA#include ---
voidmain ( ){
int A --printf (El res-
}
ProgramaFuente
PROGRAMA.C
0001100110010001------------------------------------------------------------------------------------------
---------------------------------------------------------1111011101100001---------------------------------
Enlazador (Linker)
ProgramaObjeto
PROGRAMA.OBJ
01011100------------------------------------------01110101 Programa
EjecutablePROGRAMA.EXE
01111010--------------------------------------------------------------------------------11001000
0001110000011000------------------------------------------------------------------------------------------
---------------------------------------------------------0100000101000001---------------------------------
Depurador
ProgramaEjecutable
PROGRAMA.EXEResultados
TRAZA DEL
PROGRAMADatos
01111101---------------------00000100
01111010--------------------------------------------------------------------------------11001000
Programa ObjetoLibreria de rutinas
RUTINAS.LIB
-
7/30/2019 Sistema Sin Format i Cos
55/140
Suma de dos Nmeros 1
BasicREMREM Programa en BASIC: SUMA_BAS.BASREM
INPUT "Introduce un N entero: ", iEntero_1INPUT "Introduce otro entero: ", iEntero_2
iSuma = iEntero_1 + iEntero_2
PRINT "La suma es: ", iSuma
DiseoSumar
dos nmeros
ObtenerSumando 1
PedirNmero
LeerNmero
ObtenerSumando 2
PedirNmero
LeerNmero
Calcularla suma
Mostrar valorde la suma
Suma de dos Nmeros 2
Pascal(* Programa en PASCAL: SUMA_PAS.PAS *)
PROGRAM suma_pas ;VAR
iEntero_1, iEntero_2, iSuma : Integer ;
BEGINWrite ('Introduce un N entero: ') ;ReadLn (iEntero_1 ) ;
Write ('Introduce otro entero: ') ;ReadLn ( iEntero_2 ) ;
iSuma := iEntero_1 + iEntero_2 ;
WriteLn ('La suma es: ', iSuma)END.
C/* Programa en C: SUMA_C.C */
#include
void main (void)
{int iEntero_1, iEntero_2, iSuma ;
printf ("Introduce un N entero: ") ;scanf ("%d", &iEntero_1) ;
printf ("Introduce otro entero: ") ;scanf ("%d", &iEntero_2) ;
iSuma = iEntero_1 + iEntero_2 ;
printf ("La suma es: %d", iSuma) ;}
-
7/30/2019 Sistema Sin Format i Cos
56/140
Suma de dos NmerosRelacin entre Lenguajes
;|*** /* Programa en C SUMA_C.C */; Line 1;|***;|*** #include ; Line 3;|***;|*** void main (void);|*** {; Line 6
PUBLIC _main_main PROC NEAR
*** 000000 55 push bp*** 000001 8b ec mov bp,sp*** 000003 b8 06 00 mov ax,6*** 000006 e8 00 00 call __aNchkstk
; iEntero_1 = -2; iEntero_2 = -4; iSuma = -6;|*** int iEntero_1, iEntero_2, iSuma ;;|***;|*** printf ("Introduce un N entero: ") ;; Line 9
*** 000009 b8 00 00 mov ax,OFFSET DGROUP:$SG168*** 00000c 50 push ax*** 00000d e8 00 00 call _printf*** 000010 83 c4 02 add sp,2
;|*** scanf ("%d", &iEntero_1) ;; Line 10
*** 000013 8d 46 fe lea ax,WORD PTR [bp-2] ; iEntero_1*** 000016 50 push ax*** 000017 b9 17 00 mov cx,OFFSET DGROUP:$SG169*** 00001a 51 push cx*** 00001b e8 00 00 call _scanf*** 00001e 83 c4 04 add sp,4
;|*** printf ("Introduce otro entero: ") ;; Line 11
*** 000021 b8 1a 00 mov ax,OFFSET DGROUP:$SG170*** 000024 50 push ax*** 000025 e8 00 00 call _printf*** 000028 83 c4 02 add sp,2
;|*** scanf ("%d", &iEntero_2) ;; Line 12*** 00002b 8d 46 fc lea ax,WORD PTR [bp-4] ; iEntero_2*** 00002e 50 push ax*** 00002f b9 31 00 mov cx,OFFSET DGROUP:$SG171*** 000032 51 push cx*** 000033 e8 00 00 call _scanf*** 000036 83 c4 04 add sp,4
;|***;|*** iSuma = iEntero_1 + iEntero_2 ;;|***;|*** printf ("La suma es %d", iSuma) ;; Line 16
*** 000039 8b 46 fc mov ax,WORD PTR [bp-4] ; iEntero_2*** 00003c 03 46 fe add ax,WORD PTR [bp-2] ; + iEntero_1
*** 00003f 89 46 fa mov WORD PTR [bp-6],ax ; iSuma
*** 000042 50 push ax*** 000043 b8 34 00 mov ax,OFFSET DGROUP:$SG172*** 000046 50 push ax*** 000047 e8 00 00 call _printf
;|*** }; Line 17
*** 00004a 8b e5 mov sp,bp*** 00004c 5d pop bp*** 00004d c3 ret
_main ENDP_TEXT ENDSEND;|***
Ensamblador
Lenguaje mquina (hexadecimal)
Direccin de memoria (relativa)
Equivalencia de cdigos
En C: iSuma = iEntero_1 + iEntero_2En Pascal: iSuma := iEntero_1 + iEntero_2
-
7/30/2019 Sistema Sin Format i Cos
57/140
Sistemas Informticos
Programacin en C
Fede Prez
TEMA - Lenguaje de Programacin C
1. - Introduccin
2. - Conceptos Bsicos
2.1Tipos de Datos Base
2.2Funciones de Entrada/Salida
2.3Expresiones y Operadores3. - Sentencias de Control
3.1 - Sentencias Selectivas
3.2 - Sentencias Repetitivas
4. - Funciones
5. Datos Estructurados
5.1Arrays
5.2Cadenas de Caracteres
5.3Estructuras
6. Ficheros
ndice
-
7/30/2019 Sistema Sin Format i Cos
58/140
Historia9 Nacimiento aos 70 laboratorios Bell Telephone junto con UNIX9 UNIX Ken Thompson y Dennis Ritchie9 Transferencia PDP-7 PDP-9, PDP-119 1970 (Ken Thompson) definicin del lenguaje B (proviene del BCPL)9 1972 (Dennis Ritchie) definicin del lenguaje C9 1973 (UNIX versin 5) 90% en C para PDP-119 Aos 80 ANSI C estndar ISO9 Mediados de los 80 C++ estndar ISO 1998
Historia del Lenguaje C
Caractersticas9 Lenguaje de propsito general9 Poco tipificado9 Cercano a la mquina9 Variado juego de operadores9 Reemplaza ventajosamente al ensamblador9 Recursividad y reentrabilidad9 Utilizacin natural de las funciones primitivas del sistema de explotacin
Carencias9 Manejo de tablas y cadenas de caracteres9 Multiprogramacin, control de procesos, sincronizacin9 Entrada/Salida, ficheros
Programoteca Librera estndar
Solucin
Caractersticas del Lenguaje C
-
7/30/2019 Sistema Sin Format i Cos
59/140
9Compilador: software que traduce a lenguaje demquina el programa C contenido en uno o msficheros fuente
9Preprocesador: software que acta siempre pordelante del compilador facilitando su tarea y la del
programador
9Librera Estndar: funciones agrupadas en unconjunto de libreras de cdigo objeto preprogramadasque se venden o se entregan junto con el compilador
Componentes del Lenguaje
Componentes del Lenguaje C
Ventajas de la Utilizacin de Funciones
1. Modularizacin2. Ahorro de memoria y tiempo de desarrollo3. Independencia de datos y ocultamiento de informacin
Programa
Conjunto de instrucciones que se ejecutan ordinariamente de modosecuencial
Funcin
Divisin un programa muy grande en una serie de mdulos mucho mspequeos y manejables. A estos mdulos se les ha slido denominar de
distintas formas (subprogramas,subrutinas,procedimientos,funciones, etc.)segn los distintos lenguajes.
Programa PrincipalFuncin concreta que juega el papel principal y que empieza a actuar
Esta funcin en el lenguaje C ha de llevar por titulo o nombre el de "main"
Estructura General de un Programa I
-
7/30/2019 Sistema Sin Format i Cos
60/140
Funciones de Usuario - Definicin de funciones
Programa Principal main()
Declaraciones Globales- Prototipos de funciones- Variables globales
Estructura General de un Programa II
Directivas de Preprocesador#include#define
#include
main()
{
...
f1(...);
...
}
f1(...)
{
...
f2(...);
...
}
f2(...)
{
...
}
...
stdio.h principal.c
Ficheros Estndar Fichero Principal
Ficheros Fuente en C Un Mdulo
-
7/30/2019 Sistema Sin Format i Cos
61/140
#include
main()
{
...
f1(...);
f5(...);
...
}
f1(...)
{
...
f3(...);
...
}f2(...)
{
...
}
#include aux3.c
f3(...)
{...
f4(...);...
}
f4(...)
{
...
f2(...);
...
}
f5(...){
...}
...
stdio.h principal.c aux1.c
aux2.c
aux3.c
Ficheros Estndar Fichero Principal Ficheros Secundarios
Ficheros Fuente en C Varios Mdulos
Editor
principal.C
Compilador
.LIB Enlazador(Linker)
principal.EXE
Realizacin de un Programa en C No Modular
-
7/30/2019 Sistema Sin Format i Cos
62/140
Edito
r
.LIB
principal.C
auxiliar.C
objeto.O
libreria.LIB
Compila
dor
principal.O
auxiliar.O
Enlazador(Linker)
principal.EXE
Realizacin de un Programa en C Modular
Caractersticas9 Sensible a maysculas y minsculas9 Indentacin y espacios en blanco9 Sentencias (terminan en punto y coma ; )9 Bloques (delimitados entre llaves {} )9 Elementos de un programa
Palabras reservadasFunciones de librera estndarVariables y funciones definidas por el programador
Caractersticas de Edicin de un Programa C
-
7/30/2019 Sistema Sin Format i Cos
63/140
Nombres de Ficheros y ExtensionesEl nombre de un fichero consta de dos partes: el nombre base y la extensin.
Extensiones ms Comunes.c fichero fuente C.h fichero de cabeceras.o (.obj) fichero objeto resultante de la compilacin de un fichero fuente. No es ejecutable.out (.exe) fichero ejecutable.lib librera esttica.dll libreras dinmicas
Caractersticas de Edicin de un Programa C
Errores9 Errores de Sintaxis Edicin9 Errores Lgicos Algoritmo incorrecto9 Errores de Regresin Solucin de errores9 Errores de Ejecucin Situaciones imprevistas
Depuracin de un Programa
Mensajes de Error9 Error Fatal Sistema Operativo9 Error de Sintaxis Compilador/enlazador9 Advertencias (warnings) Compilador/enlazador (no traba)
-
7/30/2019 Sistema Sin Format i Cos
64/140
El Programa Principal
Declaraciones de la Funcin Mainmain()
intmain()
voidmain()
voidmain(void)
intmain(intargc, char*argv[])
Programa PrincipalFuncin concreta que juega el papel principal y que empieza a actuar
Esta funcin en el lenguaje C ha de llevar por titulo o nombre el de "main"
argc representa el nmero total de argumentosargv es el puntero que seala una tabla en cuyos registros estn
contenidos los argumentos bajo la forma de serie de caracteres
#include
main()
{
printf(Hola mundo!!\n);
}
Edicin (Fichero hola.c)
CompiladoEjecucin
Primer Programa C
-
7/30/2019 Sistema Sin Format i Cos
65/140
#include
main()
{printf(Esto s se ejecuta\n);
}
Ejemplo 1
1. Se llega al final del programa principal (funcinmain)2. La funcin main realiza una llamada a la sentencia return()
3. Cualquier funcin realiza una llamada a la funcin exit()
Modos de Finalizacin de un Programa
#include
main()
{
printf(Esto s se ejecuta\n);
return(0);
printf(Esto no se ejecuta\n);
}
Ejemplo 2
#include
#include /* necesario para
exit() */
main()
{
printf(Esto s se ejecuta\n);
exit(0);
printf(Esto no se ejecuta\n);}
Ejemplo 3
Finalizacin de un Programa
Existen seis clases de componentes sintcticos otokens en el vocabulario del lenguaje C:
1. Identificadores
2. Palabras Reservadas3. Constantes4. Operadores5. Separadores6. Comentarios
Elementos Base
Elementos Base del Lenguaje C
-
7/30/2019 Sistema Sin Format i Cos
66/140
1. Un identificador se forma con una secuencia de letras (minsculas de la a a la z; maysculas dela A a la Z; y dgitos del 0 al 9).
2. El carctersubrayado o underscore (_) se considera como una letra ms.
3. Un identificador no puede contener espacios en blanco, ni otros caracteres distintos de los citados,como por ejemplo (* , ; . : - + etc.)
4. El primer carcter de un identificador debe ser siempre una letra o un (_), es decir, no puede serun dgito.
5. Se hace distincin entre letras maysculas y minsculas. As, Masa es considerado como unidentificador distinto de masa y de MASA.
6. ANSI C permite definir identificadores de hasta 31 caracteres de longitud.
Reglas ANSI C
Los identificadores son nombres que permiten sealar, mencionar, hacerreferencia a los diferentes objetos tratados por el programa. En particular a:
las variables las funciones las constantes simblicas
Definicin
Identificadores I
Ejemplos
Identificadores Correctos Identificadores IncorrectosI 8080BUFFER 1erDirecci6n_Memoria Bus de datoscas_01 cas:01Z80 CP/M
Identificadores II
-
7/30/2019 Sistema Sin Format i Cos
67/140
Palabras clave necesarias para la sintaxis y semntica del lenguaje:
especificadores de tipo de objeto especificadores de clase de memoria instrucciones de control operador simblico etiquetas de control
Definicin
Lista de Palabras Reservadas
Tipo Clase Instruccin Operador Etiqueta
intcharshortlong
signed
unsignedfloat
doublevoidstructunionenum
autoexternstatic
registervolatile
consttypedef
ifelse
whiledofor
switchbreak
continuegoto
return
sizeof casedefault
Palabras Reservadas
Valores que permanecen fijos durante la ejecucin de un programa:
nmeros enteros nmeros reales caracteres serie de caracteres expresiones con constantes
constantes simblicas
Definicin
1. Constantes numricas. Son valores numricos, enteros o de punto flotante. Se permitentambin constantes octales (nmeros enteros en base 8) y hexadecimales (base 16).
2. Constantes carcter. Cualquier carcter individual encerrado entre apstrofos (tal como 'a', 'Y',')', '+', etc.) es considerado por C como una constante carcter.
3. Cadenas de caracteres. Un conjunto de caracteres alfanumricos encerrados entre comillas estambin un tipo de constante del lenguaje C, como por ejemplo: "espacio", "Esto es una cadenade caracteres", etc.
4. Constantes simblicas. Las constantes simblicas tienen un nombre (identificador) y en esto se
parecen a las variables. Sin embargo, no pueden cambiar de valor a lo largo de la ejecucin delprograma. En C se pueden definir mediante el preprocesador (#define) o por medio de lapalabra clave const.
Tipos de Constantes
Constantes
-
7/30/2019 Sistema Sin Format i Cos
68/140
Una expresin real puede darse en notacin decimal (2.56) como cientfica (2.56E-4) En una expresin tipo long se aade una L al final (200L)
Una expresin tipo carcter se define entre comillas simples (A) Una expresin de cadena de caracteres se define entre comillas dobles (expresin)
Base Decimal: Expresin en formato normal. Ejemplo: 230 Base Octal: Comienza por cero. Ejemplo: 0346 Base Hexadecimal: Comienza por cero-x. Ejemplo: 0xE6
Expresin de Nmeros Enteros en Diferentes Bases
Tabla de Caracteres de Control
nueva lneatabulaci6nretrocesoretorno de carroavance de pginaantibarraap6strofecomillassonido de alertacarcter nuloocteto binario
NL o LFTAB o HTBSCRFF\BELLNULLddd
\n\t\b\r\f\\\\\a\0\ddd
Es posible definir constantes asociadas a un identificador por medio dela directiva #defineEjemplo:#define PI 3.141593#define MAXIMO 255
#define MAXINT 32767
Definicin de Constantes Mediante Directiva de Preprocesador
Formato Bsico de Expresiones Constantes
Expresiones Constantes
Los operadores pueden estar representados por uno o por dos caracteresespeciales, por una palabra reservada, o por un especificador de tipo puestoentre parntesis.
Definicin
Operadores Mondicos o Unarios: preceden a un identificador, a una expresin o a una constante
Operadores Didicos o Binarios: establecen la relacin entre dos trminos o expresiones Operadores Tridicos o Ternarios: ponen en relacin tres trminos o expresiones
Categoras de Operadores
Tabla de Operadores
Unarios Binarios Ternarios
-
*
&
!
~
++
--
(tipo)
sizeof
+
-
*
/
%
|
&
>>
>=
>=
-
7/30/2019 Sistema Sin Format i Cos
69/140
-
7/30/2019 Sistema Sin Format i Cos
70/140
DefinicinTres tipos fundamentales, que se expresan con la ayuda de palabras clavereservadas en el lenguaje:
1. Nmeros enteros (int)2. Nmeros reales (float)3. Caracteres (char)
ModificadoresCalificacin para adaptarse mejor a los diversos tamaos de la palabrainterna del microprocesador, con el fin de mejorar la precisin o de reducir elespacio ocupado en memoria :
1.short para un entero corto2.long para un entero largo3.unsigned para un entero sin signo4.double para un nmero real flotante de doble precisin
unsigned intsigned char
long int
unsigned long int
Ejemplo
Tipos de Datos Bsicos Definicin y Modificadores
Tipos de Datos Bsicos Notaciones
Tipos de datos fundamentales (notacin completa)
char signed char unsigned char
signed short int signed int signed long int
Datos enteros
unsigned short int unsigned int unsigned long int
Datos reales float double long double
Tipos de datos fundamentales (notacin abreviada)
char signed char unsigned char
short int long
Datos enteros
unsigned short unsigned unsigned long
Datos reales float double long double
-
7/30/2019 Sistema Sin Format i Cos
71/140
Tipo Tamao de palabra
16 bits 32 bitscharintshortlongunsignedfloatdouble
8 bits16 bits16 bits32 bits16 bits32 bits64 bits
8 bits32 bits16 bits32 bits32 bits32 bits64 bits
Operadorsizeof()
El operador sizeof se utiliza para determinar el nmerode bytes de un variable o un tipoint a;
sizeof(a); sizeof(unsigned int);
Tipos de Datos Bsicos Tamaos y Rangos
Tipos de Datos Bsicos Rangos
Tipo Rango
charunsigned char
intshortlong
unsignedfloatdouble
long double
-128..1270.255
-32768..32767-32768..32767-232..232-10..65535
3.4E-38..3.4E+381.7E-308..1.7E+308
3.4E-4932.. 1.1E+4932
Rangos para mquina de 16 bits
-
7/30/2019 Sistema Sin Format i Cos
72/140
char ccar;unsigned int inum;
float freal;
Declaracin Simple
char ccar, cdat;unsigned int inum, icoorx;
float freal, fnum;
Declaracin Mltiple
char ccar = A;
unsigned int inum = 12432, icoorx = 5;float freal = 0.14, fnum = -4.2812e-4;
Declaracin y Asignacin
Tipos de Datos Bsicos Declaracin de variables
Declaracin [tipo de dato] [[Identificador], ...];
Las variable de tipo puntero representan direcciones dondealmacenar valores. Es importante diferenciar entre puntero(espacio de memoria donde se almacena la direccin) y la
propia direccin del puntero.
Se declaran con un asterisco delante del identificador devariable
main()
{
int *px, x = 3;
px = &x; // px apunta a x
*px = 5; // x vale 5}
Definicin Si px es un puntero (direccin): *px es el
contenido del puntero (el valor almacenadoen la direccin)
Si x es la variable: &x es la direccin dememoria donde est almacenada la variable
Operadores de Punteros
? ? ? ?px35;0x39;
?px
x0 0 3 3
Direccin Contenido Grf ica
0 0 0 39px35;0x39;
39 x0 0 3 3
0 0 0 39px35; 0x39; 39 x0 0 5 5
px
px
int *px, x; /* px es un puntero a entero y
x es un entero */
Ejemplo
La declaracin de punteros genricos adirecciones se asocian al tipo void
Declarar un variable que no sea punterode tipo void no tiene sentido
El Tipo void
void *pv, v; /* La variable v
est mal declarada */
Ejemplo
Punteros
-
7/30/2019 Sistema Sin Format i Cos
73/140
La declaracin de las variables lleva asociado un mbito, dentro del cual lavariable es visible:
mbito Global: La variable es visible en todas las funciones delprograma
mbito Local: La variable es visible dentro del bloque o funcin en elque encuentra definida. (Tiene prioridad sobre el mbito global)
int x, y; // variables glogales
main()
{
float x, z; // variables locales
/* Aqu x, z son reales e y un entero */}
/* Aqu x e y son variables enteras */
/* La variable z no existe fuera de la funcindonde est definida */
Ejemplo
mbito de las Variables
A menudo es necesario convertir valores de variables o expresiones de un tipo a otrodiferente. Hay dos tipos de conversiones:
Conversiones Implcitas (Promocin): Las realiza automticamente el programa.Variables o expresiones de menor rango promocionan a rangos superiores.
Conversiones Explcitas (Casting): Conversin forzada por el programador. Seutiliza el tipo a convertir entre parntesis.
int inum;float rnum;
char ccar;
rnum = 65.0
inum = (int)rnum; //inum vale 65
ccar = (char)inum; //ccar vale 65 (cdigo ASCII de A)
Ejemplo de Casting
Definicin
long double > double > float > unsigned long > long > unsigned int > int > char
Rangos de Conversiones Implcitas
Conversiones de Tipo Casting
-
7/30/2019 Sistema Sin Format i Cos
74/140
Cdigo ASCII
American
Standard
CodeInformation
Interchange
ASCII
Cdigo ASCII Caracteres imprimibles y no imprimibles
-
7/30/2019 Sistema Sin Format i Cos
75/140
Cdigo ASCII Caracteres extendidos
Los operadores pueden estar representados por uno o por dos caracteres especiales, por una palabrareservada, o por un especificador de tipo puesto entre parntesis.
Definicin
Operadores Mondicos o Unarios: preceden a un identificador, a una expresin o a una constante Operadores Didicos o Binarios: establecen la relacin entre dos trminos o expresiones Operadores Tridicos o Ternarios: ponen en relacin tres trminos o expresiones
Categoras de Operadores
Tabla de OperadoresUnarios Binarios Ternarios
-
*
&
!
~
++
--
(tipo)
sizeof
+
-
*
/
%
|
&
>>
>=
>=
-
7/30/2019 Sistema Sin Format i Cos
76/140
Operadores Aritmticos
+ la adicin
- la sustraccin y e l menos mondico
* la multiplicacin
/ la divisin
% el residuo o resto de la divisin
#include
main() /* comprobaciones de prioridad */{
int c = 2, d = 3, y = 4;
printf(c * d %%y = %d\n, c * d % y);printf((c * d) %%y = %d\n, (c * d) % y);
printf(c * (d %%y) = %d\n, c * (d % y));
}
Ejemplo
Depende de los operandos:
4 / 3 1 Entero4.0 / 3 1.3333 Real4/ 3.0 1.3333 Real4.0 / 3.0 1.3333 Real
Divisin Entera vs Real
c * d % y = 2
(c * d) % y = 2
c * (d % y) = 6
Solucin
El operador de asignacin bsico es el igual (=)
Nota
Operadores Aritmticos
#include
main()
{
long n = 0x12345678; // entero sobre 32 bits
printf(%lx & 0X0F0F0F0F = %lx, n, n & 0x0f0f0f0f);
}
Ejemplo
Solucin
Operadores de Manipulacin de Bits
& Y lgico inclusivo (AND)
| O lgico inclusivo (OR)
^ O lgico exclusivo (XOR)
negacin, complementos a uno
> desplazamiento hacia la derecha
12345678 & 0X0F0F0F0F = 02040608
Operadores de Manipulacin de Bits
-
7/30/2019 Sistema Sin Format i Cos
77/140
Operadores de Asignacin
= Asignacin
+= Suma y asignacin
= Resta y asignacin
*= Producto y asignacin
/= Divisin y asignacin
%= Resto y asignacin
|= OR y asignacin
&= AND y asignacin
^= XOR y y asignacin
>>= Desplazamiento a izquierdas y asignacin
-
7/30/2019 Sistema Sin Format i Cos
78/140
Operadores de Comparacin
> Mayor que
>= Mayor o igual a< Menor que
7; // a vale 0 (falso)
a = (3 > 2 || 5 == 4) && !1 // a vale 0 (falso)
(index < MAX - 1 && (c = getchar()) != '\n') && c != EOF)
Ejemplos
Operadores de Relacin
Clasificacin de los Operadores segn sus Prioridades
( ) [ ] -> .
! ++ -- - * & (type) sizeof
* / %
+ -
>
< >=== !=
&
|
&&
||
? :
= += -= *= /= %= >>=
-
7/30/2019 Sistema Sin Format i Cos
79/140
Las funciones de E/S en C no pertenecen a las palabras reservadas del lenguaje. Son funciones de la librera estndarcuyo formato se encuentra en el fichero de cabecera stdio.h.
Las funciones de E/S bsicas recogen/insertan variables o constantes en los ficheros de E/S(stdin/stdout teclado/monitor)
Definicin
Funciones de E/S Bsicas
TiposLas principales funciones de E/S se dividen por su propsito:
Funciones de E/S de caracteres: recoger/insertar un carcter del fichero de E/S9 getchar()/putchar()
Funciones de E/S de cadenas de caracteres: recoger/insertar una cadena de caracteres del fichero de E/S9 gets()/puts()
Funciones de E/S con formato: leer/escribir con formato del fichero de E/S9 scanf()/printf()
Leer un carcter desde techado: caracter = getchar();getchar()
Funciones de E/S Bsicas E/S de Caracteres
Presenta un carcter en pantalla: putchar(caracter);putchar()
#include // necesario para utilizar funciones de E/S
main()
{
char ccar; // variable caracter
ccar = getchar(); // recoge carcter de teclado
putchar(ccar); // escribe carcter en monitorputchar(A); // escribe una A en monitor
putchar(getchar()); // escribe lo ledo
}
Ejemplo de getchar/putchar
-
7/30/2019 Sistema Sin Format i Cos
80/140
Leer una cadena de caracteres desde techado: gets(cadena);gets()
Funciones de E/S BsicasE/S de Cadenas de Caracteres
Presenta una cadena de caracteres en pantalla: puts(cadena);puts()
#include // necesario para utilizar funciones de E/S
main()
{
char cadena[100]; // variable cadena de caracteres
gets(cadena); // recoge la cadena de tecladoputs(cadena); // escribe la cadena en monitorputs(Hola socio); // escribe la cadena constante en monitor
puts(gets(cadena)); // escribe lo ledo
}
Ejemplo de gets/puts
Escribir en pantalla con formato: printf (formato, arg1, arg2, ..., argn);
formato: cadena de formato de salida de datos.
argi
: argumentos a incluir dentro del formato (pueden ser variables o expresiones).
printf()
Formato Expresin Resultado%d, %i entero Entero decimal con signo%u entero Entero decimal sin signo%o entero Entero octal sin signo%x, %X entero Entero hexadecima l sin signo%f real Real en notacin punto%e, %E real Real en notacin cientfica%g, %G real Real en notacin ms corta%c carcter Carcter%s string Cadena de caracteres%p puntero Direccin de memoria%ld, %lu, entero largo Entero largo (distitos formatos)
Signo : ajuste a la izquierda.
nmero: longitud mnima en caracteres
punto decimal: precisin de la parte fraccionaria
Otras Opciones de Formato
#include
#define PI 3.141593
main()
{int inum = 3;
char ccar = A;
printf(Hola mundo !!\n);
printf(El nmero %8d\n, inum);
printf(Un nmero %d y un carcter %c\n,
inum + 2, ccar);
printf(El valor de PI es %6.4f\n, PI);
}
Ejemplo
Funciones de E/S Bsicas printf()
-
7/30/2019 Sistema Sin Format i Cos
81/140
Leer de teclado con formato: scanf (formato, dir1, dir2, ..., dirn);
formato: cadena de formato de entrada de datos.
diri
: argumentos a incluir dentro del formato (direcciones de variables donde se almacenaran valores ledos).
scanf()
#include
main()
{int inum, *pinum;
float rnum;char ccar;
scanf(%d, &inum); // lee un entero y lo almacena en inum
scanf(%f %c, &rnum, &ccar); // lee un rnum y ccar
scanf(%d, pinum); // PELIGROSO
pinum = &inum;
scanf(%d, pinum); // CORRECTO, lee inum
}
Ejemplo
Es importante destacar que los argumentos son direcciones. Cuando se utilizan variables base es necesarioutilizar el operador de indireccin &.
Nota
Funciones de E/S Bsicas scanf()
#include
main()
{
char *pstr, str[100], cad[20];
scanf(%s, pstr); // PELIGROSO
scanf(%s, str); // CORRECTO, lee str hasta blanco o fin de lnea
pstr = str;
scanf(%s, pstr); // CORRECTO, lee str hasta blanco o fin de lnea
scanf(%[^\n], str); // Lee toda la lnea sobre str
scanf(%s %*s %s, cad, str); /* Lee cad hasta blanco, deja una palabra y la
siguiente palabra sobre str hasta blanco o fin de lnea */
}
Ejemplo
Funciones de E/S Bsicas scanf() Lectura de strings
-
7/30/2019 Sistema Sin Format i Cos
82/140
#include
#define DIAS_ANIO 365
main()
{
char nombre[100];
int dias, anios;
printf(Cual es tu nombre? );
scanf(%s, nombre);
printf(Y tu edad? );scanf(%d, &anios);
dias = anios * DIAS_ANIO;
printf(%s tienes aproximadamente %d das, nombre, dias);
}
Ejemplo
Cual es tu nombre? Jose
Y tu edad? 20
Jose tienes aproximadamente 7300 das
Solucin
Funciones de E/S Bsicas printf()/scanf() Ejemplo
Las sentencias de control van a determinar la cadena de ejecucin de las instrucciones.
Definicin
Sentencias Condicionales o Selectivas: permiten la bifurcacin de la cadena de ejecucin9 Sentencia if9 Sentencia if ... else9 Sentencia switch
Sentencias Repetitivas o Iterativas: permiten la repeticin de un conjunto de instrucciones9 Sentencia while9 Sentencia do ... while9 Sentencia for
Tipos de Sentencias de Control
Sentencias de Control
-
7/30/2019 Sistema Sin Format i Cos
83/140
condicin?
expresin(es)
falso
verdadero
#include
#define MAXIMO 100
main(){int inum;
printf(Dame un nmero -> );scanf(%d, &inum);
if(inum > MAXIMO)
{
printf(El nmero introducido es mayor que el mximo\n);}
}
Ejemplo
if(condicin){
expresin(es)
}
Ejecucin
Diagrama de Flujo
Sentencia if
#include
#define MAX_EDAD_JOVEN 25
main()
{
int edad;
printf(Dime tu edad -> ");
scanf(%d, &edad);
if(edad
-
7/30/2019 Sistema Sin Format i Cos
84/140
if(condicin1){
if(condicin2){expresin(es) if condicin 2
if(condicin3)
{expresin(es) if condicin 3
}}
else{expresin(es) else condicin 2
}}
else{if(condicin4)
{expresin(es) if condicin 4
}else
{expresin(es) else condicin 4
}}
Ejemplo de Ejecucin
Sentencia if...else Anidadas
#include
main()
{char letra;
printf(Dame una inicial y te dar un animal -> );scanf(%c, &letra);
switch(letra)
{case a:printf(antlope\n);
break;case b:
printf(buitre\n);break;
case c:
printf(cocodrilo\n);break;
default:
printf(No se me ocurre\n);}
}
switch(variable_opcin)
{
case opcion_1:
expresin(es) opcion_1;
break;
case opcion_2:
expresin(es) opcion_1;break;
...
case opcion_N:
expresin(es) opcion_N;
break;
default:
expresin(es) default;}
Ejecucin
Ejemplo
Sentencia switch
-
7/30/2019 Sistema Sin Format i Cos
85/140
Equivalencia a Sentencia Condicional if..else
#include
main(){
float num, abs;
printf(Dame un nmero -> );
scanf(%f, &num);
abs = num > 0 ? num : -num;
printf(El valor absoluto de %6.4f es %6.4f\n, num, abs);
}
Ejemplo
Operador Condicional
" : Condicionalidad
si (expresin1) entonces expresin2 en_caso_contrario expresin3
expresin1 ? expresin2 : expresin3
if(num > 0){
abs = num;}else
{
abs = -num;}
equiv
alen
te
El Operador Condicional
#include
#define TOPEMINIMO 250
main(){
int total = 0, nuevas;
while(total < TOPEMINIMO){
printf(Tienes %d piezas acumuladas\n, total);printf(Cuantas piezas nuevas tienes -> );
scanf(%d, &nuevas);total += nuevas;}
printf(Has acumulado %d piezas.\n, total);}
Ejemplo
while(condicin)
{
expresin(es)
}
EjecucinDiagrama de Flujo
condicin?
expresin(es)
falso
verdadero
Sentencia while
-
7/30/2019 Sistema Sin Format i Cos
86/140
#include
#define ESCAPE \x1b //escape = ASCII(27), octal(33)//hexadecimal(1b)
main(){
char caracter;
do
{printf(Dame un caracter -> );caracter = getchar();
}while(caracter != ESCAPE);}
Ejemplo
do
{
expresin(es)}
while(condicin);
EjecucinDiagrama de Flujo
condicin?
expresin(es)
falso
verdadero
Sentencia do...while
for(expresin inicial; condicin; expresin bucle){
expresin(es)}
EjecucinDiagrama de Flujo
condicin?
expresin(es)
falso
verdaderoexpresin bucle
expresin inicial
#include
main(){
int i;
for(i = 0; i < 10; i++)
{printf(Nmero -> %5d Cuadrado -> %5d\n,
i, i * i);
}}
Ejemplo
Sentencia for
-
7/30/2019 Sistema Sin Format i Cos
87/140
break: permiten la salida del bucle sin tener en cuenta la expresin que lo controla continue: permiten la vuelta a la cabecera del bucle sin ejecutar las sentencias restantes
#include
main(){char car;
while((car = getchar()) != X)
{if(car == \x1b){
break;
}printf(Has introducido %c\n, car);}
}
Ejemplo break
#include
main()
{char car;
while((car = getchar()) != X &&ccar != \x1b)
{
printf(Has introducido %c\n, car);}
}
Solucin estructurada
#include
main(){char car;
while((car = getchar()) != X)
{if(car == \x1b){
continue;
}printf(Has introducido %c\n, car);}
}
Ejemplo continue
#include
main()
{char car;
while((car = getchar()) != X)
{
if(car != \x1b)
{
printf(Has introducido %c\n, car);
}
}
}
Solucin estructurada
Sentencias break, continue
#include
main(){int i;
for(i = 0;
(i < 100) && (i % 17 != 0);i++)
{if(i % 2 != 0)
{printf(Nuestro nmero es %d\n, i);}
}}
Solucin estructurada#include
main(){int i;
for(i = 0; i < 100; i++)
{if(i % 2 == 0)
{continue; // comienza la iteracin
}
if(i % 17 == 0)
{break; // sale del bucle
}
printf(Nuestro nmero es %d\n, i);
}
}
Ejemplo break/continue
Sentencias break, continue Ejemplo
-
7/30/2019 Sistema Sin Format i Cos
88/140
for(expresin inicial; condicin1; expresin bucle){
while(condicin2){expresin(es) while condicin 2
for(expresin inicial;
condicin3;expresin bucle)
{expresin(es) for condicin 3
do{
expresin(es) do..while condicin 4}
while(condicin4)}
}
expresin(es) for condicin 1
}
Ejemplo de Ejecucin
Sentencias Repetitivas Anidadas
#include
main(){int base, linea, columna;
printf(Nmero de asteriscos en base -> );scanf(%d, &base);
linea = 0;
while(linea < base){for(columna = 0;
columna < linea;columna++)
{printf(*);
}
printf(\n);linea++;}
}
Ejemplo
#include
main(){int base, linea, columna;
printf(Nmero de asteriscos en base -> );
scanf(%d, &base);
for(linea = 0; linea < base; linea++){
for(columna = 0; columna < linea; columna++){printf(*);
}
printf(\n);}
}
Ejemplo
Generar un tringulo de asteriscos, indicando elnmero de asteriscos en la base:
*
*********
*****
Enunciado
Los dos ejemplos expuestos son equivalentesNota
Sentencias Repetitivas Anidadas Ejemplo
-
7/30/2019 Sistema Sin Format i Cos
89/140
Subrutinas9Procedimientos: son mdulos de programa que no ofrecen ningn tipo de valor asociado al
nombre de la subrutina
9 Funciones: son mdulos de programa que ofrecen un valor asociado al nombre de la subrutina
FuncinParte de cdigo independiente, que puede ser llamada envindole unos datos (o sin enviarle nada),
para que realice una determinada tarea y/o proporcione unos resultados
Definicin, Declaracin y Llamada de una Funcin9Definicin: cuerpo de la funcin en donde reside el cdigo de la misma.
9Declaracin: presentacin de la funcin donde se expresa su nombre, parmetros y tipo de valordevuelto.
9Llamada: utilizacin de la funcin desde un punto de programa referenciada por su nombre,indicando el valor de los parmetros de trabajo y utilizacin del valor devuelto.
Parmetros Formales vs. Parmetros Actuales9Parmetros Formales: lista de declaraciones de variables, precedidas por su tipo correspondiente
y separadas por comas (,) declarados en el encabezamiento de la funcin.
9Parmetros Actuales: lista de constantes, variables y expresiones de un tipo determinado, queaparecen en la llamada a una funcin.
Funciones
Una funcin se invoca provocando valores a los argumentos de la llamada.
9 Los argumentos se pasansiempre por valor
9 El valor se devuelve por medio de la sentencia return()
9 Los procedimientos son funciones de tipo void
9 El control del nmero y tipo de argumentos es mnimo
9 Las funciones en C permiten recursividad y reentrabilidad
#include
int factorial(int numero);
main()
{int factor;
printf("Introduzca un nmero -> ");scanf("%d", &factor);
printf("El factorial de %d es %d\n",factor, factorial(factor));
}
Ejemplo
int factorial(int numero)
{int i, out;
for(i = 1, out = 1; i
-
7/30/2019 Sistema Sin Format i Cos
90/140
Definicin de una FuncinConsiste en la definicin del cdigo necesario para que sta realice las tareas para las que ha sido
prevista. La definicin de una funcin se debe realizar en alguno de los ficheros que forman parte del
programa.
La primera lnea recibe el nombre de encabezamiento (header) y el resto de la definicin encerradoentre llaves es el cuerpo (body) de la funcin.
Formato General[clase] [tipo] nombre_funcion([lista de argumentos con tipos])
{
[declaracin de variables y/o de otras funciones]
codigo ejecutable // sentenciasreturn (expresin); // optativo
}
9
clase: define el mbito de la funcin, esto es, desde dnde puede ser llamada. La clase puede serextern ostatic.
9 tipo: indica el tipo de valor devuelto por la funcin.
9 nombre: es el identificador que indica el nombre de la funcin.
9 lista de argumentos: secuencia de declaracin de parmetros separados por comas y encerradosentre parntesis. Son los llamados parmetros formales.
Funciones Definicin de una Funcin
Declaracin de una FuncinToda funcin debe ser declarada antes de ser utilizada en la funcin o programa que realiza lallamada.
Formato General[clase] [tipo] nombre_funcion([lista de tipos de argumentos]);
Formas de Declarar una Funcin
9Mediante una llamada a la funcin: Se supone int como tipo del valor de retorno, y el tipo de losargumentos actuales como tipo de los argumentos formales
9Mediante una definicin previa de la funcin
9Mediante una declaracin explcita, previa a la llamada
Ejemploint factorial(int numero);
int factorial(int);
int factorial();
Funciones Declaracin de una Funcin
-
7/30/2019 Sistema Sin Format i Cos
91/140
Llamada de una FuncinLa llamada a una funcin se hace incluyendo su nombre en una expresin o sentencia del programa
principal o de otra funcin. Este nombre puede ir seguido de una lista de argumentos separados por
comas y encerrados entre parntesis, losparmetros actuales.
Cuando se llama a una funcin se ejecuta el cdigo correspondiente a la funcin hasta que se llega auna sentencia return o al final del cuerpo de la funcin, y entonces se devuelve el control al
programa que realiz la llamada, junto con el valor de retorno si es que existe.
Formato Generalvariable = expresin([parmetros actuales]);
9 variable: especifica la variable en donde va a ser almacenado el valor devuelto por la funcin. Lallamada puede prescindir del valor devuelto por la funcin.
9 expresin: especifica la direccin que referencia a la funcin. En general se corresponde con el
nombre de la funcin.9parmetros actuales: lista de expresiones separadas por comas. Las expresiones son evaluadas,
pasadas a la funcin y asignadas a los parmetros formales. El nmero de parmetros actualescoincide con el parmetros formales, a no ser que especifique un nmero variable de parmetros.
Funciones Llamada de una Funcin
#include
double valor_abs(double); /* declaracin */
void main (void)
{
double z, y;
y = -30.8;
z = valor_abs(y) + y * y; /* llamada enuna expresin */
printf("El valor calculado es %g\n", z);}
double valor_abs(double x)
{if (x < 0.0)
return -x;else