You are on page 1of 53

Programación I

Matemáticas Aplicadas y
Computación
Andrés Hernández Balderas

2017
1. El software

Hardware: Software:
• La parte física • La parte lógica
• La que hace • La que dice cómo se hace

Video 1. Historia de la computadora


Video 2. Alan Turing

Andrés Hernández Balderas - 2017 2


1.1. Introducción al software

• ¿Por qué es necesario el software?


• ¿Desde hace cuándo existe?

Video 3. Historia del Software

Andrés Hernández Balderas - 2017 3


1.1.1. Definición de software

“Es el conjunto de los programas de


cómputo, procedimientos, reglas,
documentación y datos asociados, que
forman parte de las operaciones de un
sistema de computación.”
Estándar 729 del IEEE

Andrés Hernández Balderas - 2017 4


1.1.2. Software de propósito específico

• Fueron creados para tener sólo un uso


• Enfocados a personas de actividades similares
• Generalmente su distribución es limitada
• Ejemplos:
– Sistemas operativos
– Paquetes estadísticos
– Programas médicos
– Compiladores de lenguajes de programación

Andrés Hernández Balderas - 2017 5


1.1.3. Software de propósito general

• Fueron creados para tener muchos uso


• Enfocados a personas de diferentes actividades
• Generalmente su distribución es extensa
• Ejemplos:
– Procesadores de texto
– Hojas de cálculo
– Editores de imágenes
– Reconocedores de rostros y voz

Andrés Hernández Balderas - 2017 6


1.1.4. El sistema operativo

Andrés Hernández Balderas - 2017 7


1.1.4.1. Concepto

Un sistema operativo es un programa, o


conjunto de programas, que en un sistema
informático gestiona los recursos de hardware
y provee servicios a los programas de
aplicación, ejecutándose en modo privilegiado
respecto de los restantes.

Andrés Hernández Balderas - 2017 8


1.1.4.2. Funciones

• Proporcionar ya sea una interfaz de línea de comando o una


interfaz gráfica al usuario, para que este último se pueda
comunicar con la computadora.

Andrés Hernández Balderas - 2017 9


1.1.4.2. Funciones

• Administrar los dispositivos de hardware en la computadora:


memoria, monitor, las unidades de disco, los puertos de
entrada/salida ,etc. El SO sirve de intermediario entre los
programas y el hardware.

Andrés Hernández Balderas - 2017 10


1.1.4.2. Funciones

• Administrar y mantener los sistemas de archivo de disco. Los SO


agrupan la información dentro de compartimientos lógicos para
almacenarlos en el disco. Estos grupos de información son
llamados archivos.

Andrés Hernández Balderas - 2017 11


1.1.4.2. Funciones

• Proporcionar servicios a otros programas, similares a aquellos que


el SO proporciona directamente a los usuarios. Por ejemplo, listar
los archivos, grabarlos a disco, eliminar archivos, revisar espacio
disponible, etc. Cuando los programadores escriben programas
de computadora, incluyen en sus programas instrucciones que
solicitan los servicios del SO.

Andrés Hernández Balderas - 2017 12


1.1.4.3. Capas

1 2 3 4 5

Cada nivel proporciona un conjunto específico de funciones primitivas que podrán


usar las funciones de la capa superior.

Andrés Hernández Balderas - 2017 13


1.1.4.3. Capas

1 2 3 4 5 1. Núcleo

El núcleo o kernel gestiona todos los procesos, es el encargado de


llevar la cuenta de todos los procesos activos y de la planificación de
los mismos. Al seleccionar cuál de ellos ocupará tiempo del
procesador, esta capa es muy importante, dado que define el
rendimiento del sistema.

Andrés Hernández Balderas - 2017 14


1.1.4.3. Capas

1 2 3 4 5 2. Entrada y salida básica

Proporciona funciones primitivas para la gestión de la memoria


secundaria, es decir, se encarga de proveer las primitivas necesarias
para la localización, escritura y lectura de bloques de datos en el
disco duro, sin llegar a proporcionar muchos detalles. Cabe señalar
que en esta capa la información almacenada no se representa como
archivos, la cual es una implementación de una capa superior.
Andrés Hernández Balderas - 2017 15
1.1.4.3. Capas

1 2 3 4 5 3. Gestión de memoria

Administra la memoria principal (RAM), se encarga de asignar los


bloques de memoria a los procesos y de liberarlos cuando éstos han
terminado. También se encarga de retirar algunos procesos de la
memoria y almacenar una imagen de ellos en el disco duro, para
simular que existe más memoria de la que hay físicamente
(memoria virtual).
Andrés Hernández Balderas - 2017 16
1.1.4.3. Capas

1 2 3 4 5 4. Sistema de archivos

Esta capa proporciona las funciones necesarias para almacenar la


información en archivos, se apoya en las primitivas de la capa2 y la
decisión de qué procesos hacen uso de memoria se ubican en esta
capa.

Andrés Hernández Balderas - 2017 17


1.1.4.3. Capas

1 2 3 4 5 5. Intérprete de comando

En esta última capa se ubica la interfaz visible para el usuario, ya sea


como una línea de comando o como una GUI (Interfaz Gráfica de
Usuario). Esta capa traduce al conjunto de primitivas de las capas
anteriores lo que el usuario comunica.

Andrés Hernández Balderas - 2017 18


1.2. Sistemas de numeración

• Los sistemas de numeración son conjuntos de dígitos


usados para representar cantidades.
• Sistemas de numeración decimal, binario, octal,
hexadecimal, romano, etc.
• Los cuatro primeros se caracterizan por tener una base
(número de dígitos diferentes: diez, dos, ocho, dieciseis
respectivamente).
• El romano no posee base y resulta más complicado su
manejo.
Video 3. Historia y evolución de los sistemas numéricos

Andrés Hernández Balderas - 2017 19


1.2. Sistemas de numeración

• Los sistemas de numeración que poseen una


base tienen la característica de cumplir con la
notación posicional, es decir, la posición de cada
número le da un valor o peso, así el primer dígito
de derecha a izquierda después del punto
decimal, tiene un valor igual a b veces el valor del
dígito, y así el dígito tiene en la posición n un
valor igual a: (bn) * An
• b = valor de la base del sistema
• n = número del dígito o posición del mismo
• A = dígito.

Andrés Hernández Balderas - 2017 20


1.2. Sistemas de numeración

Video 5. Sistema de Numeración Decimal

Video 6. Sistema de Numeración Binario

Video 7. Sistema de Numeración Maya

Andrés Hernández Balderas - 2017 21


1.2.1. Sistema binario, octal y
hexadecimal

BINARIO:
Base: 2
Dígitos: 0, 1

Andrés Hernández Balderas - 2017 22


1.2.1. Sistema binario, octal y
hexadecimal

OCTAL:
Base: 8
Dígitos: 0, 1, 2, 3, 4, 5, 6, 7

Andrés Hernández Balderas - 2017 23


1.2.1. Sistema binario, octal y
hexadecimal

HEXADECIMAL:
Base: 16
Dígitos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F

Andrés Hernández Balderas - 2017 24


1.2.2. Conversiones entre
Sistemas (2, 8 y 16)

De un sistema de base b al sistema decimal:

(N)10 = bnAn + bn-1An-1+…+b0A0+b-1A-1+…b-mA-m

Ejemplo: Convertir (EA3.FC)16 a decimal

(162)14+(161)10+(160)3+(16-1)15+(16-2)12 = (3747.984375)10

Andrés Hernández Balderas - 2017 25


1.2.2. Conversiones entre
Sistemas (2, 8 y 16)

De decimal a sistema de base b (parte entera):

1. Dividir el número deseado entre la base b


2. Reservar el residuo
3. Tomar como nuevo número al cociente
4. Repetir los pasos 1, 2 y 3 hasta que el cociente sea 0
5. El número que se busca es el que se compone de la
unión de los residuos en el orden inverso en que se
obtuvieron

Andrés Hernández Balderas - 2017 26


1.2.2. Conversiones entre
Sistemas (2, 8 y 16)

De decimal a sistema de base b (parte entera):

Ejemplo: Convertir (3747)10 a base hexadecimal


234 14 0
16 3747 16 234 16 14
3 10 14

(3747)10 = (EA3)16
Andrés Hernández Balderas - 2017 27
1.2.2. Conversiones entre
Sistemas (2, 8 y 16)

De decimal a sistema de base b (fracción):

1. Multiplicar el número deseado por la base b


2. Reservar la parte entera resultante
3. Tomar como nuevo número a la fracción
4. Repetir los pasos 1, 2 y 3 hasta que la fracción sea 0
o se llegue a la cantidad deseada de dígitos
5. El número que se busca es el que se compone de la
unión de las partes enteras en el orden en que se
obtuvieron
Andrés Hernández Balderas - 2017 28
1.2.2. Conversiones entre
Sistemas (2, 8 y 16)

De decimal a sistema de base b (fracción):

Ejemplo: Convertir (.984375)10 a base hexadecimal

(.984375)(16)  15.75

(.75)(16)  12.0

(.984375)10 = (.FC)16
Andrés Hernández Balderas - 2017 29
1.2.3. Operaciones en binario

Las operaciones para el sistema numérico binario


se realizan con las mismas reglas que en el sistema
decimal al que estamos acostumbrados, solamente
hay que tener en mente que los símbolos son
diferentes.

Video 8. Operaciones con binarios

Andrés Hernández Balderas - 2017 30


1.2.3. Operaciones en binario
• Suma

1 1 1 1 1 1 1

1 1 1 0 1 1 1 (119)10

0 0 1 1 1 1 1 (31)10
+
1 0 0 1 0 1 1 0 (150)10

Andrés Hernández Balderas - 2017 31


1.2.3. Operaciones en binario
• Resta

1 1 1 0 1 1 1 (119)10

0 0 1 1 1 1 1 (31)10

- 1 1

1 0 1 1 0 0 0 (88)10

Andrés Hernández Balderas - 2017 32


1.2.3. Operaciones en binario
• Multiplicación
1 0 1 1 (11)10

x 1 0 1 (5)10

1 0 1 1

0 0 0 0

1 0 1 1

1 1 0 1 1 1 (55)10

Andrés Hernández Balderas - 2017 33


1.2.3. Operaciones en binario
• División
1 0 1 1 (11)10
(5)10

1 0 1 1 1 0 1 1 1 (55)10

1 0 1
0 0 1 1 1
1 0 1
0 1 0 1
1 0 1
0 0 0

Andrés Hernández Balderas - 2017 34


1.3 Representación de los datos
en la computadora

• Dato: conjunto de símbolos necesarios para


expresar un número, valor, palabra o concepto
• Información: conjunto de datos que permiten
aclarar algo que es desconocido. Es susceptible
de aportar un conocimiento.
• Computadora: es una máquina destinada a
procesar información.

Andrés Hernández Balderas - 2017 35


1.3 Representación de los datos
en la computadora

• Dentro del ordenador, la información se


representa mediante el sistema de numeración
binario, es decir, mediante 0's y 1's.
• La unidad básica de información es el bit (BInary
digiT).
• El byte es el conjunto de 8 bits. En la memoria,
un byte suele ser la unidad de direccionamiento,
es decir, se puede hacer referencia a cada byte
mediante un número que es su dirección.
Andrés Hernández Balderas - 2017 36
1.3 Representación de los datos
en la computadora

• El byte puede almacenar 8 dígitos binarios.


• Las características de información hoy en día son
grandes por lo que se utilizan múltiplos del byte:
✓1 Kilobyte (KB) son 1024 bytes (210 bytes)
✓1 Megabyte (MB) son 1024 KB (220 bytes)
✓1 Gigabyte (GB) son 1024 MB (230 bytes)
✓1 Terabyte (TB) son 1024 GB (240 bytes)
✓Etc.

Andrés Hernández Balderas - 2017 37


1.3.1 Tipos de datos primitivos o
normalizados

Los tipos de datos primitivos también conocidos


como tipos de datos Normalizados, son aquellos
que forman parte de la mayoría de las
computadoras:

• Enteros
• Reales
• Valores lógicos
• Conjunto de caracteres
Andrés Hernández Balderas - 2017 38
1.3.1 Tipos de datos primitivos o
normalizados
• Cualquiera de estos conjuntos de números es
infinito, mientras que el espacio material de
representación de los computadores es finito,
por lo tanto, no es posible representar todos los
valores.
• En informática, se asigna un número fijo de n bits
para representar un número. Esos n bits
permiten representar 2n números distintos.

Andrés Hernández Balderas - 2017 39


1.3.2 Representación de enteros
Signo y magnitud
• Consiste en reservar un bit para el signo.
• Con n bits disponibles, uno indica el signo y los n-1
restantes indican la magnitud.
• El bit de la izquierda se reserva para el signo.
• El bit de signo en 0 indica que el número es positivo,
mientras que si es 1, indica que el número es negativo.
• Esta representación, ampliamente utilizada en los
computadores de la tercera generación, ya no se utiliza.

(-14)10 con n=8 1 0 0 0 1 1 1 0

Andrés Hernández Balderas - 2017 40


1.3.2 Representación de enteros

Complemento a 1
• Para un positivo, se representa el número en binario de
forma normal.
• Para un negativo, se representa igual que un número
positivo pero se complementa cada uno de los bits. (se
cambian 0’s por 1’s y 1’s por 0’s).

(-14)10 con n=8 0 0 0 0 1 1 1 0

1 1 1 1 0 0 0 1

Andrés Hernández Balderas - 2017 41


1.3.2 Representación de enteros
Complemento a 2
• Para un positivo, se representa igual que un número positivo
en complemento a uno.
• Para un negativo, se representa igual que un número
negativo en complemento a uno pero se le suma 1 al
resultado obtenido (de derecha a izquierda, dejar los
números sin cambio hasta el primer 1, los restantes
cambiarlos).
• Es la representación más utilizada para negativos.

(-14)10 con n=8 0 0 0 0 1 1 1 0

1 1 1 1 0 0 1 0
Andrés Hernández Balderas - 2017 42
1.3.3 Representación de reales
Principalmente se utiliza el estándar IEEE
754 utilizando 32 o 64 bits

• Cuando se usan 32 bits se está utilizando una precisión


simple.
• Una precisión doble es aquella que usa 64 bits.
• El estándar asume que el número que se va a representar
está en forma de punto flotante y normalizada.

Andrés Hernández Balderas - 2017 43


1.3.3 Representación de reales
Normalización en base 10
• Un número en punto flotante puede ser representado como
±d0.d1d2d3...dk x 10e donde:
✓ d0.d1d2d3...dk es la mantisa
✓ e es el exponente
• Se dice que el número está normalizado si 0<d0<10
• Ejemplo: Representar a 108.3 en punto flotante normalizado

1 . 0 8 3 X 10 2

M a n t i s a Base Exponente
Andrés Hernández Balderas - 2017 44
1.3.3 Representación de reales
Normalización en base b
• Un número en punto flotante puede ser representado como
±d0.d1d2d3...dk x be donde:
✓ d0.d1d2d3...dk es la mantisa
✓ b es la base
✓ e es el exponente
• Se dice que el número está normalizado si 0<d0<b
• Ejemplo: Representar (101.1)2 en punto flotante normalizado

1 . 0 1 1 X 2 2

M a n t i s a Base Exponente

Andrés Hernández Balderas - 2017 45


1.3.3 Representación de reales
Precisión simple (32 bits)
• Esta representación tiene el siguiente formato:
signo exponente con signo mantisa
8 23
bits 1
Alinear derecha Alinear izquierda

• El bit de signo es 0 si el número es positivo y 1 si es negativo


• El exponente está representado en exceso 127 (se le suma
127 para evitar usar signo, en caso de que sea negativo)
• La mantisa se representa en magnitud SIN el primer 1 ni el
punto fraccionario
Andrés Hernández Balderas - 2017 46
1.3.3 Representación de reales
Precisión simple (32 bits)
Ejemplo: Representar (-21)10 en binario
• (21)10 = (10101)2 = (1.0101)2 X (24)
• Mantisa: 0101
• Exponente: (4 + 127)10 = (10000011)2
Signo (1) Exponente (8) Mantisa (23)

1 10000011 01010000000000000000000

32 bits
Andrés Hernández Balderas - 2017 47
1.3.3 Representación de reales
Precisión doble (64 bits)
• Esta representación tiene el siguiente formato:
signo exponente con signo mantisa
11 52
bits 1
Alinear derecha Alinear izquierda

• El bit de signo es 0 si el número es positivo y 1 si es negativo


• El exponente está representado en exceso 1023 (se le suma
1023 para evitar usar signo, en caso de que sea negativo)
• La mantisa se representa en magnitud SIN el primer 1 ni el
punto fraccionario
Andrés Hernández Balderas - 2017 48
1.3.3 Representación de reales
Precisión doble (64 bits)
Ejemplo: Representar (-21)10 en binario
• (21)10 = (10101)2 = (1.0101)2 X (24)
• Mantisa: 0101
• Exponente: (4 + 1023)10 = (10000000011)2
Signo (1) Exponente (11) Mantisa (52)

1 10000000011 0101000000000000000000000000000000000000000000000000

64 bits
Andrés Hernández Balderas - 2017 49
1.3.4 Representación de
booleanos

• Los booleanos representan valores verdaderos o


falsos.
• Al ser tan simples la mayoría de las
representaciones utilizan solo un byte.
• Si el valor es verdadero: 00000001
• Si es falso: 00000000
• Para ahorra memoria, algunos lenguajes tienen
tipos especiales que utilizan solo un bit.
Andrés Hernández Balderas - 2017 50
1.3.5 Representación de
caracteres
• La representación de caracteres ha sufrido
muchos cambios a lo largo de la historia.
• El objetivo es representar símbolos como “A”,
“$”, “@” utilizando solamente ceros y unos.
• La forma natural de hacerlo es mediante una
tabla de equivalencia que asocie una
combinación de ceros y unos con cada uno de los
símbolos existentes.
• Han existido múltiples tablas o “códigos”.
Andrés Hernández Balderas - 2017 51
1.3.5 Representación de
caracteres
• El código más difundido, aunque no el más
moderno, es el código ASCII (American Standard
Code for Information Interchange)
• Es un código de caracteres basado en el alfabeto
latino (idioma Inglés).
• Publicado como estándar en 1967 y actualizado
en 1986.
• La tabla se muestra a continuación.

Andrés Hernández Balderas - 2017 52


1.3.5 Representación de
caracteres

Andrés Hernández Balderas - 2017 53

You might also like