Cp15.autonomía e independencia de las organizaciones sociales en tiempos de g...
Modulo1
1. Módulo 1
Introducción
rogramación de
omputadores
Facultad Ingeniería UN - Virtual
Departamento de Ingeniería de Sistemas e Industrial 2008
2. Programación de Computadores
Modulo 1. Introducción
CONTENIDO
1. Arquitectura de un Computador
2. Problemas
3. Algoritmo
4. Solución de problemas Algorítmicos
Facultad Ingeniería UN - Virtual
Departamento de Ingeniería de Sistemas e Industrial 2008
3. Programación de Computadores
Modulo 1. Introducción
1. Arquitectura de un Computador
Está dividida en dos
partes importantes:
CPU
Hardware: Es la que
hace referencia a la
parte física de un
computador y de
cualquier dispositivo
electrónico. La Arquitectura Von
Newman
Software: Es la que
hace referencia a la
parte lógica de un
computador.
Facultad Ingeniería UN - Virtual
Departamento de Ingeniería de Sistemas e Industrial 2008
4. Programación de Computadores
Modulo 1. Introducción
Hardware
• Unidad central de Proceso
• Dispositivos de entrada, salida, almacenamiento,
comunicación y cómputo
• Memoria
CPU
La Arquitectura Von Newman
Facultad Ingeniería 1. Arquitectura de Computador
Departamento de Ingeniería de Sistemas e Industrial
5. Programación de Computadores
Modulo 1. Introducción
Unidad Central de Proceso
(CPU)
Micropocesador
Athlon 64 X2 E6 3800+
Facultad Ingeniería 1. Arquitectura del Computador
Departamento de Ingeniería de Sistemas e Industrial
6. Programación de Computadores
Modulo 1. Introducción
Dispositivos
Entrada Salida
Cómputo
Almacenamiento
Comunicación
Facultad Ingeniería 1. Arquitectura de un
Departamento de Ingeniería de Sistemas e Industrial Computador
7. Programación de Computadores
Modulo 1. Introducción
Tipos de memoria
•RAM (Random Access Memory): Memoria de escritura y
lectura. El contenido solo se mantiene mientras el
computador está encendido.
•ROM (Read Only Memory): Memoria de solo lectura, es
permanente y no se afecta por el encendido o apagado del
computador.
•Caché: Memoria de acceso muy rápido, usada como
puente entre la UCP y la memoria RAM, para evitar las
demoras en la consulta de la memoria RAM.
Facultad Ingeniería 1. Arquitectura de un
Departamento de Ingeniería de Sistemas e Industrial Computador
8. Programación de Computadores
Modulo 1. Introducción
Representación en Memoria
Elementos que pueden estar en dos estados
(prendidos o apagados).
El sistema de numeración binario:
representación de este tipo de datos. Utiliza
dos símbolos el 1 y el 0.
Facultad Ingeniería 1. Arquitectura de un
Departamento de Ingeniería de Sistemas e Industrial Computador
9. Programación de Computadores
Modulo 1. Introducción
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
1*32 + 0*16+ 0*8+ 1*4+ 1*2+ 0*1= 38
Facultad Ingeniería 1. Arquitectura de un
Departamento de Ingeniería de Sistemas e Industrial Computador
10. Programación de Computadores
Modulo 1. Introducción
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).
BYTE: conjunto de 8 bits. 256 valores
diferentes: desde el 00000000 (0 en decimal) al
11111111 (255 en decimal).
Facultad Ingeniería 1. Arquitectura de un
Departamento de Ingeniería de Sistemas e Industrial Computador
11. Programación de Computadores
Modulo 1. Introducción
Cantidades de Memoria
Ejemplos:
1 Kilo Byte = 210 Bytes = 1024 Bytes
1 Mega Byte = 210 KBytes = 220 Bytes
= 1048576 Bytes
1 Giga Byte = 210 MBytes = 230 Bytes
1 Tera Byte = 210 GBytes = 240 Bytes
Facultad Ingeniería 1. Arquitectura de un
Departamento de Ingeniería de Sistemas e Industrial Computador
12. Programación de Computadores
Modulo 1. Introducción
Software
Software: conjunto de instrucciones que le dicen
al hardware que hacer.
Sistema Operativo
Herramientas de Desarrollo
Aplicaciones
Facultad Ingeniería 1. Arquitectura de un
Departamento de Ingeniería de Sistemas e Industrial Computador
13. Programación de Computadores
Modulo 1. Introducción
Arquitectura de Software
Lenguaje Lenguaje Lenguaje Hardware
Alto Nivel Ensamblador Maquina
Sistema Operativo
Aplicaciones Herramientas
Facultad Ingeniería 1. Arquitectura de un
Departamento de Ingeniería de Sistemas e Industrial Computador
14. Programación de Computadores
Modulo 1. Introducción
Sistema Operativo
Software encargado de administrar los recursos del
sistema.
Ofrece un conjunto de comandos a los humanos,
para interactuar con la máquina.
Puede ser escrito en lenguaje de alto nivel, en
lenguaje ensamblador y/o en lenguaje máquina.
Facultad Ingeniería 1. Arquitectura de un
Departamento de Ingeniería de Sistemas e Industrial Computador
15. Programación de Computadores
Modulo 1. Introducción
Lenguaje de Máquina
Único lenguaje que entiende el hardware
(máquina).
Específico para cada hardware (procesador,
dispositivos, etc.).
Programa: almacenado en memoria, contiene
instrucciones y datos.
Facultad Ingeniería 1. Arquitectura de un
Departamento de Ingeniería de Sistemas e Industrial Computador
16. Programación de Computadores
Modulo 1. Introducción
Lenguaje Ensamblador
Software, generalmente escrito en lenguaje de
máquina, capaz de traducir de lenguaje ensamblador
a lenguaje de máquina.
Usa mnemónicos 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.
Facultad Ingeniería 1. Arquitectura de un
Departamento de Ingeniería de Sistemas e Industrial Computador
17. Programación de Computadores
Modulo 1. Introducción
Lenguaje de Alto Nivel
Es un lenguaje con una estructura sintáctica mas
rica que le permite mayor expresividad.
Cuenta con un conjunto de palabras reservadas,
para codificar estructuras de control e
instrucciones.
Permite el uso de expresiones aritméticas y
relacionales.
Facultad Ingeniería 1. Arquitectura de un
Departamento de Ingeniería de Sistemas e Industrial Computador
18. Programación de Computadores
Modulo 1. Introducción
Lenguaje de Alto Nivel
COMPILADORES e INTERPRETES: software
capaz de traducir de un lenguaje de alto nivel al
lenguaje de máquina.
C++ Java Python
Facultad Ingeniería 1. Arquitectura de un
Departamento de Ingeniería de Sistemas e Industrial Computador
19. Programación de Computadores
Modulo 1. Introducción
Aplicaciones
APLICACIÓN: software que le permite al
computador realizar una tarea específica.
Procesadores de Texto Video Juegos Hojas de Calculo
Facultad Ingeniería 1. Arquitectura de un
Departamento de Ingeniería de Sistemas e Industrial Computador
20. Programación de Computadores
Modulo 1. Introducción
Herramientas de Desarrollo
Es una aplicación que presenta un ambiente en el
que, empleando un lenguaje de programación, se
puede desarrollar nuevo software.
Ejemplos: ambientes integrados de desarrollo
como DevC++, Visual C++, en los que se emplea
el lenguaje C++.
Facultad Ingeniería 1. Arquitectura de un
Departamento de Ingeniería de Sistemas e Industrial Computador
21. Programación de Computadores
Modulo 1. Introducción
2. Problemas
Se tiene un problema cuando se desea
encontrar uno o varios objetos desconocidos
(ya sean estos números, símbolos, diagramas,
figuras, u otras cosas), que cumplen
condiciones o relaciones, previamente
definidas, respecto a uno o varios objetos
conocidos.
Facultad Ingeniería UN-Virtual
Departamento de Ingeniería de Sistemas e Industrial
22. Programación de Computadores
Modulo 1. Introducción
Solución de problema
Solucionar el problema es encontrar los
objetos desconocidos.
Para solucionar un problema se debe
determinar de manera clara y concisa: cuáles
son los objetos conocidos, las condiciones y
de que tipo son los objetos desconocidos.
Facultad Ingeniería 2. Problemas
Departamento de Ingeniería de Sistemas e Industrial
23. Programación de Computadores
Modulo 1. Introducción
Tipos de problemas
Problemas bien condicionados
Problemas mal condicionados
Problemas indecidibles
Facultad Ingeniería 2. Problemas
Departamento de Ingeniería de Sistemas e Industrial
24. Programación de Computadores
Modulo 1. Introducción
Ejemplo de problema bien
condicionado
Un granjero tiene cincuenta animales entre
conejos y gansos. Si la cantidad de patas de
los animales es ciento cuarenta, Cuantos
conejos y cuantos gansos tiene el granjero?
Facultad Ingeniería 2. Problemas
Departamento de Ingeniería de Sistemas e Industrial
25. Programación de Computadores
Modulo 1. Introducción
Ejemplos de problemas mal
condicionados
De las siguientes imágenes, cuál
es la más llamativa?
Facultad Ingeniería 2. Problemas
Departamento de Ingeniería de Sistemas e Industrial
26. Módulo 1
Introducción
Ejemplos de problemas
indecidible
¿Existe en la expansión decimal de Pi una secuencia de
tamaño n para cualquier número natural n?
Facultad Ingeniería 2. Problemas
Departamento de Ingeniería de Sistemas e Industrial
27. Programación de Computadores
Modulo 1. Introducción
3. Algoritmo
Secuencia bien definida y finita de tareas
bien definidas, cada una de las cuales se
puede realizar con una cantidad de
recursos finitos.
Facultad Ingeniería UN- Virtual
Departamento de Ingeniería de Sistemas e Industrial
28. Programación de Computadores
Modulo 1. Introducción
Características de un Algoritmo
De finitud o
Precisión Finitud
Determinismo
Hay un orden Todas las veces que se El algoritmo
preciso en el realicen las tareas o debe terminar
cual deben pasos de un algoritmo, en algún mo-
ejecutarse las con las mismas condi- mento y debe
tareas que ciones iniciales, se de- usar una can-
conforman el ben obtener resultados tidad finita de
algoritmo. idénticos. recursos.
Facultad Ingeniería 2. Problemas
Departamento de Ingeniería de Sistemas e Industrial
29. Programación de Computadores
Modulo 1. Introducción
Estructura de un Algoritmo
Datos Instrucciones Estructuras de
control
Para almacenar Las acciones o Las que determinan
información: da- procesos que el el orden en que se
tos de entrada, algoritmo realiza ejecutarán las ins-
de salida o inter- sobre los datos. trucciones del algo-
medios. ritmo.
Facultad Ingeniería 2. Problemas
Departamento de Ingeniería de Sistemas e Industrial
30. Programación de Computadores
Modulo 1. Introducción
Ejemplo de algoritmo
Un estudiante se encuentra en su casa
(durmiendo) y debe ir a la universidad (a tomar
la clase de programación!!),
¿Que debe hacer el estudiante?
Facultad Ingeniería 2. Problemas
Departamento de Ingeniería de Sistemas e Industrial
31. Programación de Computadores
Modulo 1. Introducción
Ejemplo de algoritmo
1. Dormir hasta que suene el
despertador (o lo llame la mamá).
2. Mirar la hora.
3. Hay tiempo suficiente?
3.1. Si, entonces
3.1.1. Bañarse.
3.1.2. Vestirse.
3.1.3. Desayunar.
3.2. No, entonces
3.2.1. Vestirse.
Facultad Ingeniería 2. Problemas
Departamento de Ingeniería de Sistemas e Industrial
32. Módulo 1
Introducción
Ejemplo de algoritmo
4. Lavarse la boca.
5. Despedirse de la mamá y el papá.
6. Hay tiempo suficiente?
6.1. Si, entonces
6.1.1. Caminar al paradero.
6.2. No, entonces
6.2.1. Correr al paradero.
7. Hasta que pase un bus para la universidad
hacer:
7.1. Esperar el bus
7.2. Ver a las demás personas que
esperan un bus.
Facultad Ingeniería 3. Algoritmos
Departamento de Ingeniería de Sistemas e Industrial
33. Programación de Computadores
Modulo 1. Introducción
Ejemplo de algoritmo
8. Tomar el bus.
9. Mientras que no llegue a la universidad
hacer:
9.1. Seguir en el bus.
9.2. Pelear mentalmente con el conductor.
10. Timbrar.
11. Bajarse.
12. Entrar a la universidad.
13. Caminar hasta llegar al salón donde se
dicta su curso de programación.
14. Ingresar al salón.
Facultad Ingeniería 3. Algoritmos
Departamento de Ingeniería de Sistemas e Industrial
34. Programación de Computadores
Modulo 1. Introducción
Representación de
Algoritmos
Las representaciones más conocidas
son:
Diagramas de flujo.
Pseudo-código.
Facultad Ingeniería 3. Algoritmos
Departamento de Ingeniería de Sistemas e Industrial
35. Programación de Computadores
Modulo 1. Introducción
Diagramas de Flujo
Esquema de representación gráfico de
algoritmos.
Usa elementos gráficos como rectángulos y
rombos.
Se pueden usar operaciones matemáticas.
Facultad Ingeniería 3. Algoritmos
Departamento de Ingeniería de Sistemas e Industrial
36. Programación de Computadores
Modulo 1. Introducción
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 empleando una
notación que aunque libre es más restringida
que la del lenguaje natural.
Facultad Ingeniería 3. Algoritmos
Departamento de Ingeniería de Sistemas e Industrial
37. Programación de Computadores
Modulo 1. Introducción
Pseudo Código
leer A, B, C sino
si A>B si B>C
si A>C Mayor ← B
Mayor ← A sino
sino
Mayor ← C
Mayor ← C
fin_si
fin_si
fin_si
escribir Mayor
Facultad Ingeniería 3. Algoritmos
Departamento de Ingeniería de Sistemas e Industrial
38. Módulo 1
Introducción
4. Solución de Problemas
Algorítmicos
Problema
Metodología
Programa
Facultad Ingeniería UN - Virtual
Departamento de Ingeniería de Sistemas e Industrial
39. Programación de Computadores
Modulo 1. Introducción
Metodología de
Programación
Análisis del problema.
Especificación del problema.
Diseño del algoritmo.
Prueba del algoritmo y refinamiento.
Codificación.
Prueba y verificación.
Facultad Ingeniería 4. Solución de Problemas
Departamento de Ingeniería de Sistemas e Industrial Algoritmicos
40. Programación de Computadores
Modulo 1. Introducción
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 objetos conocidos,
objetos desconocidos y condiciones usado en la
sección de problemas.
Facultad Ingeniería 4. Solución de Problemas
Departamento de Ingeniería de Sistemas e Industrial Algoritmicos
41. Programación de Computadores
Modulo 1. Introducción
Especificación del Problema
Descripción clara y precisa de:
Las entradas del problema.
Las salidas del problema.
Las condiciones, es decir la dependencia que
mantendrán las salidas obtenidas con las
entradas recibidas.
Facultad Ingeniería 4. Solución de Problemas
Departamento de Ingeniería de Sistemas e Industrial Algoritmicos
42. Programación de Computadores
Modulo 1. Introducción
Ejemplo de Especificación
Entradas: La cantidad total de animales (50),
cantidad de patas totales (140).
Salidas: La cantidad de conejos y la cantidad de
gansos.
Condiciones: La suma de conejos y gansos es
igual a cincuenta. La suma de las patas de los
conejos (cuatro por cada uno) y de los gansos
(dos por cada uno) es igual a ciento cuarenta.
Facultad Ingeniería 4. Solución de Problemas
Departamento de Ingeniería de Sistemas e Industrial Algoritmicos
43. Programación de Computadores
Modulo 1. Introducción
Ejemplo de Especificación
Problema:
Construir 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 de tipo entero.
Condiciones: Mayor debe ser el valor máximo
de A, B y C.
Facultad Ingeniería 4. Solución de Problemas
Departamento de Ingeniería de Sistemas e Industrial Algoritmicos
44. Programación de Computadores
Modulo 1. Introducción
Diseño del algoritmo
Es la fase en la que se construye el algoritmo
que permitirá encontrar la solución al
problema.
La forma adecuada de realizar este proceso
es subdividirlo.
Facultad Ingeniería 4. Solución de Problemas
Departamento de Ingeniería de Sistemas e Industrial Algoritmicos
45. Programación de Computadores
Modulo 1. Introducción
Prueba del Algoritmo y
Refinamiento
Proceso de seguimiento del algoritmo para
verificar que cumple con la especificación. Si
no se cumple con la especificación se va
refinando hasta lograr el objetivo.
Facultad Ingeniería 4. Solución de Problemas
Departamento de Ingeniería de Sistemas e Industrial Algoritmicos
46. Programación de Computadores
Modulo 1. Introducción
Codificación
Proceso en el cual se escribe el algoritmo en
un lenguaje de programación, utilizando el
editor de la herramienta.
Facultad Ingeniería 4. Solución de Problemas
Departamento de Ingeniería de Sistemas e Industrial Algoritmicos
47. Programación de Computadores
Modulo 1. Introducción
Prueba y
Verificación
Proceso en el cual se corrigen los errores de
sintaxis y de lógica del programa, hasta lograr
que el programa resuelva el problema.
Facultad Ingeniería 4. Solución de Problemas
Departamento de Ingeniería de Sistemas e Industrial Algoritmicos
48. Programación de Computadores
Modulo 1. Introducción
FIN
Gracias por la atención
prestada
Facultad Ingeniería UN- Virtual
Departamento de Ingeniería de Sistemas e Industrial