Juan Ignacio Rodríguez...

Post on 29-Aug-2020

14 views 0 download

Transcript of Juan Ignacio Rodríguez...

Programación

Juan Ignacio Rodríguez Hernández

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

Enero 2012

¿Qué es una computadora?

¿Para qué sirve una computadora?

¿Qué es una computadora?

¿Para qué sirve una computadora?

¿Qué es una computadora?

Dispositivos de Salida

Dispositivos de ENTRADA

CPUCentral Processing Unit

Disco Externo

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

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 ($)

Internal StorageMemoria interna

Control UnitUnidad de control

Arithmetic Logic Unit (ALU)

Diagrama de una computadora

Memoria

input=entrada output=salida

Computadoras (procesador) a través del tiempo

Internal StorageMemoria interna

Control UnitUnidad de control

Arithmetic Logic Unit (ALU)

Diagrama de una computadora

Memoria

input=entrada output=salida

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

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”).

¿Qué dice este mensaje?

00101010001010100010101001001110010011110010000001001000010000010101100100100000010000110100000101001101010010010100111001001111010100110010000001010000010000010101001001000001001000000100110001000001001000000101000001000001010110100010000001010011010010010100111001001111001000000101000101010101010001010010000000101010001010100100110001000001001000000101000001000001010110100010000001000101010100110010000001000101010011000010000001000011010000010100110101001001010011100100111100101010001010100010101000101010

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

“bit” & “byte”

00101010001010100010101001001110010011110010000001001000010000010101100100100000010000110100000101001101010010010100111001001111010100110010000001010000010000010101001001000001001000000100110001000001001000000101000001000001010110100010000001010011010010010100111001001111001000000101000101010101010001010010000000101010001010100100110001000001001000000101000001000001010110100010000001000101010100110010000001000101010011000010000001000011010000010100110101001001010011100100111100101010001010100010101000101010

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

bit byte(8bits)

“bits” & “words”

00101010001010100010101001001110010011110010000001001000010000010101100100100000010000110100000101001101010010010100111001001111010100110010000001010000010000010101001001000001001000000100110001000001001000000101000001000001010110100010000001010011010010010100111001001111001000000101000101010101010001010010000000101010001010100100110001000001001000000101000001000001010110100010000001000101010100110010000001000101010011000010000001000011010000010100110101001001010011100100111100101010001010100010101000101010

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

64-bit word (palabra)

32-bit word (palabra)

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:

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

Tipos de datos almacenados/procesados por una computadora

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

● Números ENTEROS

● Números REALES

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

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

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 ]

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

Internal StorageMemoria interna

Control UnitUnidad de control

Arithmetic Logic Unit (ALU)

Diagrama de una computadora

Memoria

input=entrada output=salida

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

el código binario ?????

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 !!!!!

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.

1.- Código fuente

LENGUAJE MAQUINA

EJECUCION DE PROCESOS POR LA COMPUTADORA

2.- Compilador COMPILAR

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

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

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.

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

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.