Introducción a la
Introducción a la
Programación
CONTENIDO
CONTENIDO
ARQUITECTURA DE UN COMPUTADOR
PROBLEMAS
ALGORITMOS
Arquitectura de un computador
La arquitectura de un computador está dividida en dos partes importantes:
Hardware: Es la que hace referencia a la parte física de un computador.Hardware
Unidad Central de Proceso
Dispositivos de entrada/salida
Memoria
Unidad Central de Proceso
Dispositivos de entrada/salida
Representación en Memoria
Elementos que pueden estar en dos estados (prendidos o apagados).
El sistema de numeración binario:
Código Binario
Cada 1 en un número binario representa
una potencia de 2 según su posición
Ejemplo:
El número binario 100110
representa el valor 38
1 0 0 1 1 0 25 24 23 22 21 20
Medida de la Memoria
Unidad básica de información:
BIT que
corresponde a un único dígito binario
(puede tomar los valores 1 o 0).
Cantidades de Memoria
1 Kilo Byte = 210 Bytes = 1024 Bytes 1 Mega Byte = 210 KBytes = 220 Bytes = 1048576 Bytes
Almacenamiento de Información
Enterosson representados utilizando 2, 4 u 8 bytes.
2 bytes:
rango(0 - 65536) enteros sin signo.
Almacenamiento de Información
Realesson representados utilizando dos esquemas:
Punto Flotante: Real representado como unentero y un byte adicional que indica la posición del punto.
Punto Fijo: Real representado como unamantisa y un exponente; que son representados como enteros.
12345.6789 es representado como:
Mantisa = 1.23456789
Exponente =104
Almacenamiento de Información
alfanuméricos:representados en codificación ASCII, se asigna a cada carácter un valor numérico representado por un byte.
Almacenamiento de Información
Existe un código ASCII para cada carácter representable (lista utilizada en los Laboratorios), algunos ejemplos:Espacio 32
; 59
0 48
* 42
1 49
a 97
Software: conjunto de instrucciones que le dicen al hardware que hacer.
Lenguaje de programación: lenguaje que permite escribir un software.
Programa: representación de algún software en un lenguaje de programación específico.Lenguaje Maquina Lenguaje
Alto Nivel LenguajeEnsamblador Hardware
Sistema Operativo
Aplicaciones Herramientas
Lenguaje de Máquina
Único lenguaje que entiende el hardware (máquina).
Específico para cada hardware (procesador, dispositivos, etc.).
Usa exclusivamente el sistema binario.
Estructura de una instrucción:CODIGO ARGUMENTO(S)
Lenguaje Ensamblador
Usa mnemónicos (palabras cortas escritas con caracteres alfanuméricos), para codificar las operaciones. Los datos y/o direcciones son codificados generalmente como números en sistema hexadecimal.
Es específico (aunque no único) para cada lenguaje de máquina.
Estructura de una instrucción:Lenguaje Ensamblador
ENSAMBLADOR: software, generalmente escrito en lenguaje de máquina, capaz de traducir de lenguaje ensamblador a lenguaje de máquina.
Lenguaje de Alto Nivel
Basado en una estructura gramatical que permite el anidamiento de instruccionesLenguaje de Alto Nivel
Permite el uso de símbolos aritméticos y/o relacionales.
Permite al programador olvidarse del direccionamiento de memoria.Lenguaje de Alto Nivel
COMPILADORES e INTERPRETES:Sistema Operativo
Software encargado de administrar los recursos del sistema.Sistema Operativo
Ofrece un conjunto de comandos a los humanos, para interactuar con la máquina.Aplicaciones
APLICACIÓN: software que le permite al computador realizar una tarea específica y con el cual no se puede construir otro software.Herramientas
HERRAMIENTA: software construido especialmente para el desarrollo de nuevo software, (tanto de aplicaciones como de herramientas).Arquitectura de Software
Print(Document) <Enter> Hwnd=CreateWindow(10,10,200,200)
Lenguaje Maquina Lenguaje
Alto Nivel LenguajeEnsamblador Hardware
Sistema Operativo Aplicaciones Herramientas . . 0010 00011010 1010 10111000 0101 11010001 . . . . ADD R1 F4 MOV F4 C2
. .
.
FOR i:=1 TO 10 DO BEGIN
Definición de problema
Se tiene un
PROBLEMA
cuando se
buscan
VARIABLES DESCONOCIDAS
que
cumplan con ciertas
CONDICIONES
y/o
Solución de problema
Solucionar el problema es encontrar
las variables desconocidas.
Primer paso en la búsqueda de
Tipos de problemas
Problemas solubles
Problemas insolubles
Ejemplo de problema soluble
Un granjero tiene cincuenta animales
entre conejos y gansos. Si la cantidad
de patas de los animales es ciento
cuarenta, Cuantos conejos y cuantos
Ejemplo de problema soluble
VARIABLES CONOCIDAS: La cantidad total de animales, cantidad de patas totales.
VARIABLES DESCONOCIDAS: La cantidad de conejos y la cantidad de gansos.Ejemplos de problemas
insoluble
Ejemplos de problemas
indecidible
Algoritmo
Características de un
Algoritmo
Preciso.
Definido o determinístico.
Ejemplo de algoritmo
Un estudiante se encuentra en su casa (durmiendo) y debe ir a la universidad (a
1.
Dormir.
2.
Hacer 1 hasta que suene el
despertador (o lo llame la
mamá).
3.
Mirar la hora.
4.
Hay tiempo suficiente?
4.1.
Si, entonces
4.1.1.
Bañarse.
4.1.2.
Vestirse.
4.1.3.
Desayunar.
4.2.
No,
4.2.1.
Vestirse.
5.
Lavarse la boca.
6.
Despedirse de la mamá y el
papá.
7.
Hay tiempo suficiente?
7.1.
Si, Caminar al paradero.
7.2.
No, Correr al paradero.
8.
Hasta que pase un bus para la
universidad hacer:
8.1.
Esperar el bus
8.2.
Ver a las demás personas
que esperan un bus.
9.
Tomar el bus.
10.
Mientras que no llegue a la
universidad hacer:
10.1.
Seguir en el bus.
10.2.
Pelear mentalmente con
el conductor.
11.
Timbrar.
12.
Bajarse.
13.
Entrar a la universidad.
Representación de
Algoritmos
Las representaciones más conocidas
son:
Diagramas de Flujo
Esquema de representación gráfico
de algoritmos.
Usa elementos gráficos como
rectángulos y rombos.
Se pueden usar operaciones
A, B, C
Pseudo Código
Esquema
de
representación
de
algoritmos que usa un subconjunto del
lenguaje natural del diseñador de
algoritmos.
Elimina
posibles
ambigüedades
sino
si B>C
Mayor
B sinoMayor
C fin_sifin_si
escribir Mayor
Pseudo Código
leer A, B, C si A>B
si A>C
Mayor A sino
Solución de Problemas
con computador
Problema
Pasos de una metodología:
Análisis del problema
Especificación.
Diseño.
Prueba y Verificación.
Codificación.
Depuración y refinamiento
Análisis del Problema
Entender de manera clara el problema
que se esta resolviendo.
Esta fase de la metodología concuerda
con el proceso de identificación de
variables
conocidas,
variables
La especificación de un problema se hace mediante una descripción clara y precisa de:
Las entradas que el problema recibirá.
Las salidas que dan solución al problema.
Las condiciones, es decir la dependencia que mantendrán las salidas obtenidas con las entradas recibidas.Ejemplo de Especificación
ENTRADAS: La cantidad de conejos y la cantidad de gansos.
SALIDAS: La cantidad total de animales, cantidad de patas totales.
ProblemaConstruir un algoritmo que determine el mayor de tres números enteros.
Especificación:
Entradas: A,B,C (números de entrada) de tipo entero.
Salidas: Mayor (valor mayor) de tipo entero.
Condiciones:Mayor debe ser el valor máximo de A, B y C.