Está en la página 1de 24

Programación Estructurada

Dr. Ruslan Gabbasov

• Oficina: HP-8
• Correo: ruslan.gabb@gmail.com
• Sitio:
https://sites.google.com/site/progestructuradauam2018

• Clases: martes, jueves 16:00 – 18:15



-Curso de introduccción a la programación en lenguaje "C" dirigido a
Ingenieros Electrónicos, Eléctricos y de Producción.

- Se presenta el concepto de algoritmo y como representar y diseñar


algoritmos para solucionar problemas.

- Se introducen los conceptos fundamentales de un lenguaje de


programación: tipos de datos, variables, estructuras de control, arreglos, y
finalmente subprogramas y funciones.

- Se imparten técnicas para lograr un buen estilo de programación.

- Enfasis en la programación estructurada.

LIBROS DE TEXTO
•Brian Kernighan, Dennis Ritchie, El lenguaje de programación C
•Deitel H. M. Deitel P. J., Como Programar en C/C++
•Peter Norton, Introducción a la Computación
•Luis Joyanes A, Programación en C, Libro de Problemas
•Francisco J. Ceballos, Enciclopedia del Lenguaje C
EVALUACIÓN
- Teoría: 70 % (2 Parciales 35% c/u),
- Práctica: 30% (Tareas)
- Proyecto final (Requisito)

SITIOS DE INTERÉS EN LA WEB


https://www.youtube.com/

https://www.tutorialspoint.com/compile_c_online.php

http://www.cprogramming.com/

http://www.elrincondelc.com/portal/

Software libre: compilador de C Dev C++


https://sourceforge.net/projects/orwelldevcpp/

Compilador en linea (sin necesidad de instalar y se puede acceder por celular):


https://www.onlinegdb.com/online_c_compiler
Que no les pase esto :)

https://www.youtube.com/watch?v=HigVyp2wtfE
Evolución del Computador
Antecedentes históricos
Máquinas mecánicas: las computadoras de Charles
Babbage
Máquinas electromecánicas: el computador de
Konrad Zuse
Generaciones tecnológicas
Primera generación: válvulas
Segunda generación: transistores
Tercera generación: circuitos integrados
Cuarta generación: microprocesadores
¿Quinta generación?: el microprocesador como
elemento básico
Antecedentes históricos
Primer reto: operaciones básicas

El ábaco: primer instrumento


para calcular.

Tablilla dividida en varias


columnas. Cada una con un
conjunto de cuentas
engarzadas en una varilla.

Su origen se remonta a los


siglos III o IV a. de C.

Sigue en uso
Antecedentes históricos
Máquina aritmética
Desarrollada por Blas Pascal (1642, a los 18 años)
Constaba de un conjunto de ruedas dentadas, cada una de ellas
numerada del 0 al 9. Al pasar una rueda del 9 al 0 avanzaba un diente
de rueda a la siguiente.

Máquina Mecánica. Charles Babbage (1791-1871)


“Uno de los padres del computador actual”
“Adelantado” para la tecnología de la época
Consta de una memoria, una unidad aritmética, sistema de engranajes
para transferir datos entre memoria y la unidad aritmética y un
dispositivo para introducir y sacar datos de la máquina
Empleaba tarjetas perforadas para Programarse
Antecedentes históricos
Máquina Electromecánicas
Herman Hollerith (1860-1929). Censo de los Estados Unidos
Tarjetas perforadas
Crea la empresa (TMC) que da lugar a IBM
Konrad Zuse
Construye (1941) el primer máquina universal programable (Z3).
Trabaja en binario. Prototipos previos: Z1 (1938) y Z2 (1939)
Computador Harvard MARK-I (1947) Howard Aiken
Evolución:
- Mark-II máquina de relés mecánicos (Babbadge)
- Mark-III y Mark-IV máquinas de tubos de vacío con
programa almacenado.
1ª Generación: válvulas de vacío
Periodo: 1946-1959
Velocidad de proceso en ms.
Disipación calorífica muy elevada
Gran tamaño y poca capacidad
Lenguaje máquina
Monoprogramación
Sin sistema operativo
1ª Generación: válvulas de vacío
Colossus: grupo de científicos ingleses con Alan
Turing (1943). Ayudó a descifrar el código enigma de
los alemanes.
ENIAC Electronic Numerical Integrator and Calculator.
Eckert y Mauchly (1943)
1er computador electrónico de propósito general.
Programa cableado
Cálculo de tablas de fuego de artillería
Operativo durante la II Guerra Mundial. Conocido en
1946
1ª Generación: válvulas de vacío
ENIAC Características:
(1946)
30 Toneladas
18,000 tubos de vacío
160 Kw
100 KHz
Operaciones: suma,
resta, multiplicación y
división (suma: 200µs)
20 registros de 10
dígitos (2 pies/registro)
Entrada/Salida de datos: Tarjetas perforadas
Tarjeta perforada de formato de 80 columnas de IBM (1928)
Instrucción en Fortran: Z(1) = Y + W(1)
1ª Generación: válvulas de vacío
EDVAC: (1946) Electronic Discrete Variable Automatic
Computer. (Autores: Eckert-Mauchly-von Neumann)
Bases de la Arquitectura von Neumann
Programa almacenado
6,000 Tubos de vacío + 12,000 diodos
Aritmética binaria
5 unidades: Entrada, Memoria, UAL, Control, Salida
UNIVAC I - Remington-Rand Co. (Oficina de Censos)
1er computador comercial con éxito (1951)
48 sistemas a 1,250,000 $
2ª Generación: transistores (1948)
Período 1959-1965
Menor tamaño, menor disipación de calor, mayor fiabilidad
Primeros lenguajes de alto nivel:
FORTRAN
COBOL
ALGOL

Sistema Operativo

Extensión de los computadores comerciales


2ª Generación: transistores
Innovadores, con poca repercusión comercial:
UNIVAC LARC
IBM STRETCH (o 7030)
Burroughs D-825
ATLAS
Comerciales:
CDC 1604 y 3600
IBM 1410
PDP 1 de DEC
Serie 1100 de Univac
3ª Generación: circuitos integrados
Período: 1965-1971
Menor tamaño, más baratos, menor consumo de energía

Primera familia de computadores, compatibles a nivel de


arquitectura: IBM360

Supercomputadores: 6600 de Control Data (Cray).

Minicomputadores:
PDP-8 y PDP-11

Sistemas Operativos:
Multiprogramación, tiempo compartido

Lenguajes: alto nivel estructurado (Dijkstra, 1968)


4ª Generación: microprocesadores VLSI
Período 1971 – 1981: Desarrollo de
microprocesadores y memorias
basados en semiconductores.

Very Large Scale Integrated (VLSI)

1971: 1er microprocesador


comercial INTEL 4004 (4 bits)

8 bits: Intel 8080-85,


Motorola 6800 y Zilog Z-80

16 bits: Intel 8086-88,


Motorola 68000 y Z-8000

32 bits: Intel 80386, Válvula, transistor,


Motorola 68030 circuito integrado,
microprocesador
4ª Generación: microprocesadores VLSI
Computadores personales y estaciones de trabajo

Otras aplicaciones: electrodomésticos, equipos de


música y vídeo, etc.

Arquitectura RISC (MIPS R2000, SPARC)

Supercomputadores: computadores paralelos

Lenguajes de programación: C y Ada

Sistemas Operativos. Estandarización: UNIX

Interfaces gráficas

Generalización de las redes de computadores


¿5ª Generación?: microprocesadores
1982 – ahora. ULSI (Ultra Large Scale Integration)

El microprocesador como elemento básico

La computación masivamente paralela

Inteligencia artificial y proc. lenguaje natural

La comunicación y las interfaces multimedia.

Internet como una computadora distribuida


Las computadoras actuales
(+ smarphones, tablets etc..)
Integrados con millones de transistores

Velocidades > 1 GHz

UAL y UC Microprocesador o CPU + GPU

Memoria Principal (capacidad > 1 Giga)

Unidad de E/S en chipsets

Diversidad y compatibilidad de periféricos (USB)

Interconectividad de sistemas
Futuro de los microprocesadores
Límite tecnológico de CMOS
Chips neuromorfos

Chips con base en graféno

Chips orgánicos/biológicos

Chips ópticos (fotónica)

Computadoras quánticas

Nuevos procesadores requieren


nuevos lenguajes de programación!
Reflexión

• Generaciones y dependencia tecnológica:


- X (boomers) 1960-1973
- Y (millenials) 1980-1993,
- Z (post-millenials) 1995-2007,
- T (táctil) 2010-2022
• Tareas a diferentes grados de ejecución:
hacer un omelette, pagar recibo de luz,
conducir un auto…
Discusión
• ¿Que es una computadora? ¿Para que?

• ¿Cuantas generaciones de computadoras


hay y cuales son sus características?

• ¿Por qué se necesitan nuevos CPUs?

• ¿Qué principios físicos podrían ser la


base de los nuevos procesadores?