Juan Ignacio Rodríguez...

34
Programación Juan Ignacio Rodríguez Hernández Escuela Superior de Física y Matemáticas Instituto Politécnico Nacional Enero 2012

Transcript of Juan Ignacio Rodríguez...

Page 1: Juan Ignacio Rodríguez Hernándezw3.esfm.ipn.mx/~juan/programacionI/presentaciones/Introduccion2013.pdfJuan Ignacio Rodríguez Hernández Escuela Superior de Física y Matemáticas

Programación

Juan Ignacio Rodríguez Hernández

Escuela Superior de Física y MatemáticasInstituto Politécnico Nacional

Enero 2012

Page 2: Juan Ignacio Rodríguez Hernándezw3.esfm.ipn.mx/~juan/programacionI/presentaciones/Introduccion2013.pdfJuan Ignacio Rodríguez Hernández Escuela Superior de Física y Matemáticas

¿Qué es una computadora?

¿Para qué sirve una computadora?

Page 3: Juan Ignacio Rodríguez Hernándezw3.esfm.ipn.mx/~juan/programacionI/presentaciones/Introduccion2013.pdfJuan Ignacio Rodríguez Hernández Escuela Superior de Física y Matemáticas

¿Qué es una computadora?

¿Para qué sirve una computadora?

Page 4: Juan Ignacio Rodríguez Hernándezw3.esfm.ipn.mx/~juan/programacionI/presentaciones/Introduccion2013.pdfJuan Ignacio Rodríguez Hernández Escuela Superior de Física y Matemáticas

¿Qué es una computadora?

Dispositivos de Salida

Dispositivos de ENTRADA

CPUCentral Processing Unit

Disco Externo

Page 5: Juan Ignacio Rodríguez Hernándezw3.esfm.ipn.mx/~juan/programacionI/presentaciones/Introduccion2013.pdfJuan Ignacio Rodríguez Hernández Escuela Superior de Física y Matemáticas

Internal StorageMemoria interna

Control UnitUnidad de control

Arithmetic Logic Unit (ALU)

Diagrama de una computadora

input=entrada Processingprocesamiento

output=salida

Memoria principal (RAM: Random Access

Memory)

Memoria Secundaria (Disco duro)

Memoria

input=entrada output=salida

Page 6: Juan Ignacio Rodríguez Hernándezw3.esfm.ipn.mx/~juan/programacionI/presentaciones/Introduccion2013.pdfJuan Ignacio Rodríguez Hernández Escuela Superior de Física y Matemáticas

Diagrama de una computadora

Memoria principal (RAM:

Random Access Memory)

Memoria Secundaria (Disco duro)

Memoria

1. Acceso Rápido2. Volatile (temporal)3. Acesso aleatorio4. Todos los programas ejecutandose se almacenan en RAM5. Cara ($$$)

1. Acceso Lento2. Permanente5. Barata ($)

Page 7: Juan Ignacio Rodríguez Hernándezw3.esfm.ipn.mx/~juan/programacionI/presentaciones/Introduccion2013.pdfJuan Ignacio Rodríguez Hernández Escuela Superior de Física y Matemáticas

Internal StorageMemoria interna

Control UnitUnidad de control

Arithmetic Logic Unit (ALU)

Diagrama de una computadora

Memoria

input=entrada output=salida

Page 8: Juan Ignacio Rodríguez Hernándezw3.esfm.ipn.mx/~juan/programacionI/presentaciones/Introduccion2013.pdfJuan Ignacio Rodríguez Hernández Escuela Superior de Física y Matemáticas

Computadoras (procesador) a través del tiempo

Page 9: Juan Ignacio Rodríguez Hernándezw3.esfm.ipn.mx/~juan/programacionI/presentaciones/Introduccion2013.pdfJuan Ignacio Rodríguez Hernández Escuela Superior de Física y Matemáticas

Internal StorageMemoria interna

Control UnitUnidad de control

Arithmetic Logic Unit (ALU)

Diagrama de una computadora

Memoria

input=entrada output=salida

Page 10: Juan Ignacio Rodríguez Hernándezw3.esfm.ipn.mx/~juan/programacionI/presentaciones/Introduccion2013.pdfJuan Ignacio Rodríguez Hernández Escuela Superior de Física y Matemáticas

¿Cómo almacena y procesa información una computadora?

Page 11: Juan Ignacio Rodríguez Hernándezw3.esfm.ipn.mx/~juan/programacionI/presentaciones/Introduccion2013.pdfJuan Ignacio Rodríguez Hernández Escuela Superior de Física y Matemáticas

La memoria de una computadora esta compuesta de billones de pequeños interruptores (“switch”) que pueden estar solamente en dos estados “on” (prendido) y “off” (apagado), de aquí que el lenguaje “natural” para almacenar y procesar información de una computadora es el SISTEMA BINARIO.

Código Binario

Cada “switch” (punto en la figura) representa un DIGITO BINARIO (o “bit”).

Page 12: Juan Ignacio Rodríguez Hernándezw3.esfm.ipn.mx/~juan/programacionI/presentaciones/Introduccion2013.pdfJuan Ignacio Rodríguez Hernández Escuela Superior de Física y Matemáticas

¿Qué dice este mensaje?

00101010001010100010101001001110010011110010000001001000010000010101100100100000010000110100000101001101010010010100111001001111010100110010000001010000010000010101001001000001001000000100110001000001001000000101000001000001010110100010000001010011010010010100111001001111001000000101000101010101010001010010000000101010001010100100110001000001001000000101000001000001010110100010000001000101010100110010000001000101010011000010000001000011010000010100110101001001010011100100111100101010001010100010101000101010

***NO HAY CAMINOS PARA LA PAZ SINO QUE LA PAZ ES EL CAMINO***

Page 13: Juan Ignacio Rodríguez Hernándezw3.esfm.ipn.mx/~juan/programacionI/presentaciones/Introduccion2013.pdfJuan Ignacio Rodríguez Hernández Escuela Superior de Física y Matemáticas

“bit” & “byte”

00101010001010100010101001001110010011110010000001001000010000010101100100100000010000110100000101001101010010010100111001001111010100110010000001010000010000010101001001000001001000000100110001000001001000000101000001000001010110100010000001010011010010010100111001001111001000000101000101010101010001010010000000101010001010100100110001000001001000000101000001000001010110100010000001000101010100110010000001000101010011000010000001000011010000010100110101001001010011100100111100101010001010100010101000101010

***NO HAY CAMINOS PARA LA PAZ SINO QUE LA PAZ ES EL CAMINO***

bit byte(8bits)

Page 14: Juan Ignacio Rodríguez Hernándezw3.esfm.ipn.mx/~juan/programacionI/presentaciones/Introduccion2013.pdfJuan Ignacio Rodríguez Hernández Escuela Superior de Física y Matemáticas

“bits” & “words”

00101010001010100010101001001110010011110010000001001000010000010101100100100000010000110100000101001101010010010100111001001111010100110010000001010000010000010101001001000001001000000100110001000001001000000101000001000001010110100010000001010011010010010100111001001111001000000101000101010101010001010010000000101010001010100100110001000001001000000101000001000001010110100010000001000101010100110010000001000101010011000010000001000011010000010100110101001001010011100100111100101010001010100010101000101010

***NO HAY CAMINOS PARA LA PAZ SINO QUE LA PAZ ES EL CAMINO***

64-bit word (palabra)

32-bit word (palabra)

Page 15: Juan Ignacio Rodríguez Hernándezw3.esfm.ipn.mx/~juan/programacionI/presentaciones/Introduccion2013.pdfJuan Ignacio Rodríguez Hernández Escuela Superior de Física y Matemáticas

Código ASCIIEl código ASCII (“American Standard Code for Information Interchange”) es un código para representar caracteres mediante números. A cada carácter se le asocia un número decimal:

Page 16: Juan Ignacio Rodríguez Hernándezw3.esfm.ipn.mx/~juan/programacionI/presentaciones/Introduccion2013.pdfJuan Ignacio Rodríguez Hernández Escuela Superior de Física y Matemáticas
Page 17: Juan Ignacio Rodríguez Hernándezw3.esfm.ipn.mx/~juan/programacionI/presentaciones/Introduccion2013.pdfJuan Ignacio Rodríguez Hernández Escuela Superior de Física y Matemáticas
Page 18: Juan Ignacio Rodríguez Hernándezw3.esfm.ipn.mx/~juan/programacionI/presentaciones/Introduccion2013.pdfJuan Ignacio Rodríguez Hernández Escuela Superior de Física y Matemáticas

Sistema Numérico Binario

● El sistema numérico DECIMAL es un sistema posicional de base 10. Ejemplo:

837.568=8×1023×101

7×1005×10−1

6×10−28×10−3

● El sistema numérico BINARIO es un sistema posicional de base 2. Ejemplo:

110101.101=1×251×24

0×231×22

0×211×20

1×2−10×2−2

1×2−3

110101.101=53.625

Page 19: Juan Ignacio Rodríguez Hernándezw3.esfm.ipn.mx/~juan/programacionI/presentaciones/Introduccion2013.pdfJuan Ignacio Rodríguez Hernández Escuela Superior de Física y Matemáticas

Tipos de datos almacenados/procesados por una computadora

● CARACTERES (letras, símbolos, etc. )

● Números ENTEROS

● Números REALES

Page 20: Juan Ignacio Rodríguez Hernándezw3.esfm.ipn.mx/~juan/programacionI/presentaciones/Introduccion2013.pdfJuan Ignacio Rodríguez Hernández Escuela Superior de Física y Matemáticas

CARACTER

Los datos de tipo CARACTER se almacenan en: 1 byte = 8 bits

Numero de simbolos

Tipo Valor

26 Letras mayusculas A-Z

26 Letras minusculas a-z

10 Digitos 0-9

1 Caracter para subrayar

_

5 Simbolos aritmeticos

+ - * / **

17 Varios simbolos 9 0 . = , ' $ : ! “ % & ; < > ?

El número de números enteros distintos generados con un byte es igual a: 28

=256

Page 21: Juan Ignacio Rodríguez Hernándezw3.esfm.ipn.mx/~juan/programacionI/presentaciones/Introduccion2013.pdfJuan Ignacio Rodríguez Hernández Escuela Superior de Física y Matemáticas
Page 22: Juan Ignacio Rodríguez Hernándezw3.esfm.ipn.mx/~juan/programacionI/presentaciones/Introduccion2013.pdfJuan Ignacio Rodríguez Hernández Escuela Superior de Física y Matemáticas

Números ENTEROS

Los números ENTEROS se almacenan en 4 bites = 32 bits

PRECISION SIMPLE (Predeterminada)

[ -2³¹ = -2147483648, 2³¹-1 2147483647 ]Rango:

[ -2³¹ = -2147483648, 2³¹-1 2147483647 ]

Los números ENTEROS se almacenan en 8 bytes = 64 bits

PRECISION DOBLE

Rango:

[−263 ,263]

NOTA: Un bit es destinado para el signo

Page 23: Juan Ignacio Rodríguez Hernándezw3.esfm.ipn.mx/~juan/programacionI/presentaciones/Introduccion2013.pdfJuan Ignacio Rodríguez Hernández Escuela Superior de Física y Matemáticas

Números REALES (Punto flotante)

Los números REALES se almacenan en 4 bites = 32 bits En notación científica (punto flotante).

PRECISION SIMPLE (Predeterminada)

101010101010101001010101010010101010001010101

Mantisa: 24 bits Exponente: 8 bits

2374.852×10224

Rango:

[−1038 , -10-38] 6-7

Cifras significativas:

[ 10 -38 , 1038 ]

Page 24: Juan Ignacio Rodríguez Hernándezw3.esfm.ipn.mx/~juan/programacionI/presentaciones/Introduccion2013.pdfJuan Ignacio Rodríguez Hernández Escuela Superior de Física y Matemáticas

Números REALES (Punto flotante)

Los números REALES se almacenan en 8 bites = 64 bits

PRECISION DOBLE

Números REALES (PUNTO FLOTANTE)

Mantisa: 53 bits Exponente: 11 bits

Rango:

[−10 308 , -10-308] 15-16

Cifras significativas:

[ 10 -308 , 10308 ]

NOTA: Un bit tanto en la mantisa como en el exponente es destinado para el signo

Page 25: Juan Ignacio Rodríguez Hernándezw3.esfm.ipn.mx/~juan/programacionI/presentaciones/Introduccion2013.pdfJuan Ignacio Rodríguez Hernández Escuela Superior de Física y Matemáticas

Internal StorageMemoria interna

Control UnitUnidad de control

Arithmetic Logic Unit (ALU)

Diagrama de una computadora

Memoria

input=entrada output=salida

Page 26: Juan Ignacio Rodríguez Hernándezw3.esfm.ipn.mx/~juan/programacionI/presentaciones/Introduccion2013.pdfJuan Ignacio Rodríguez Hernández Escuela Superior de Física y Matemáticas

¿¿¿ Cómo dar instrucciones a una computadora que solo “entiende”

el código binario ?????

Page 27: Juan Ignacio Rodríguez Hernándezw3.esfm.ipn.mx/~juan/programacionI/presentaciones/Introduccion2013.pdfJuan Ignacio Rodríguez Hernández Escuela Superior de Física y Matemáticas

Lenguaje MáquinaPara procesar información, la computadora ejecuta “programas” los cuales son listas de instrucciones para ejecutar operaciones simples (suma, resta, multiplicación, “leer/cargar datos” & “guardar datos”) en código binario. Es decir, cada operación son listas binarias conocidas como código de operación. Las instrucciones a ejecutar por una computadora es una conjunto de códigos de operación que usualmente se conoce como LENGUAJE MAQUINA.

MUY DIFICIL DE PROGRAMAR !!!!!

Page 28: Juan Ignacio Rodríguez Hernándezw3.esfm.ipn.mx/~juan/programacionI/presentaciones/Introduccion2013.pdfJuan Ignacio Rodríguez Hernández Escuela Superior de Física y Matemáticas

COMPILADORES/LENGUAJESDE ALTO NIVEL

Un LENGUAJE ALTO NIVEL es un lenguaje para dar instrucciones a la computadora mediante sentencias parecidas al lenguaje del humano (inglés, español, etc.) y al usado en matemáticas (aritmética, algebra, etc). Entonces, programas especiales llamados COMPILADORES se encargan en convertir estas instrucciones a lenguaje máquina.

Page 29: Juan Ignacio Rodríguez Hernándezw3.esfm.ipn.mx/~juan/programacionI/presentaciones/Introduccion2013.pdfJuan Ignacio Rodríguez Hernández Escuela Superior de Física y Matemáticas

1.- Código fuente

LENGUAJE MAQUINA

EJECUCION DE PROCESOS POR LA COMPUTADORA

2.- Compilador COMPILAR

Page 30: Juan Ignacio Rodríguez Hernándezw3.esfm.ipn.mx/~juan/programacionI/presentaciones/Introduccion2013.pdfJuan Ignacio Rodríguez Hernández Escuela Superior de Física y Matemáticas

LENGUAJES de ALTO NIVEL

● FORTRAN ● C, C++● COBOL● PASCAL● JAVA● BASIC

Existen varios lenguajes de alto nivel, los cuáles son usados de acuerdo al tipo de aplicación para la cual sean requeridos. Ejemplos de algunos de ellos son:

●El MEJOR lenguaje para análisis numérico en ciencia e ingeniería

Page 31: Juan Ignacio Rodríguez Hernándezw3.esfm.ipn.mx/~juan/programacionI/presentaciones/Introduccion2013.pdfJuan Ignacio Rodríguez Hernández Escuela Superior de Física y Matemáticas

FORTRAN 90/95 FORTRAN 2003

● El MEJOR lenguaje para análisis numérico en ciencia e ingeniería

● Aplicaciones:

Diseño aeronáutico Control de radares y sistemas de defensa aérea

Page 32: Juan Ignacio Rodríguez Hernándezw3.esfm.ipn.mx/~juan/programacionI/presentaciones/Introduccion2013.pdfJuan Ignacio Rodríguez Hernández Escuela Superior de Física y Matemáticas

FORTRAN 90/95 FORTRAN 2003

● El MEJOR lenguaje para análisis numérico en ciencia e ingeniería

● Aplicaciones:

Estudio y Diseño de materiales a nivel MOLECULAR, “diseño” de nuevos antivirales, etc.

Page 33: Juan Ignacio Rodríguez Hernándezw3.esfm.ipn.mx/~juan/programacionI/presentaciones/Introduccion2013.pdfJuan Ignacio Rodríguez Hernández Escuela Superior de Física y Matemáticas

FORTRAN 90/95 FORTRAN 2003

● El MEJOR lenguaje para análisis numérico en ciencia e ingeniería

● SUPERCOMPUTADORAS y PROGRAMAS para ser ejecutados en PARALELO

Page 34: Juan Ignacio Rodríguez Hernándezw3.esfm.ipn.mx/~juan/programacionI/presentaciones/Introduccion2013.pdfJuan Ignacio Rodríguez Hernández Escuela Superior de Física y Matemáticas

FORTRAN a través del tiempo

● FORTRAN (1953) ● FORTRAN IV (1962)● FORTRAN 66● FORTRAN 77● FORTRAN 90● FORTRAN 95● FORTRAN 2003

FORTRAN viene de “FORmula TRANslation” (“traducción de Fórmulas”, lo que indicaba que fue creado pata “traducir” formulas científicas a lenguaje máquina), es una de los primeros lenguajes existentes.

●El MEJOR lenguaje MODERNO para análisis numérico. Formato libre, eficiente, bibliotécas, computo en PARALELO.