Está en la página 1de 49

rogramación de

omputadores

Universidad Nacional de Colombia


Facultad de Ingeniería
Departamento de Ingeniería de
Sistemas e Industrial
Introducción a la
Programación
CONTENIDO

 Arquitectura de un computador
 Problemas
 Algoritmos
 Solución de problemas algorítmicos
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.

Software: Es la que hace referencia a la


parte lógica de un computador.
Hardware

• Unidad central de Proceso


• Dispositivos de entrada, salida,
almacenamiento, comunicación y
cómputo
• Memoria
Unidad Central de Proceso
Dispositivos
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.
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.
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
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).
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
Software

Software: conjunto de instrucciones que


le dicen al hardware que hacer.
Arquitectura de Software
Lenguaje Lenguaje Lenguaje Hardware
Alto Nivel Ensamblador Maquina

Sistema Operativo

Aplicaciones Herramientas
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.
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.


Programa: almacenado en memoria,
contiene instrucciones y datos.
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.
Lenguaje de Alto Nivel

Es un lenguaje basado en una estructura


gramatical para codificar estructuras de
control e instrucciones.

Cuenta con un conjunto de palabras


reservadas, para codificar estructuras de
control e instrucciones.

Permite el uso de símbolos aritméticos y


relacionales.
Lenguaje de Alto Nivel

COMPILADORES e INTERPRETES:
software capaz de traducir de un lenguaje de
alto nivel al lenguaje ensamblador específico
de una 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.

Ejemplos: procesadores de texto como


WORD, las hojas electrónicas como EXCEL.
Herramientas
HERRAMIENTA: es un programa 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++.
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.
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.
Tipos de problemas

Problemas solubles
Problemas insolubles
Problemas indecidibles
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
gansos tiene el granjero?
Ejemplos de problemas
insoluble

De las siguientes imágenes,


cuál es la más llamativa?
Ejemplos de problemas
indecidible

¿Existe en la expansión decimal


de  una secuencia de tamaño n
del número n?.
Algoritmos

Secuencia bien definida y finita de


tareas bien definidas, cada una de las
cuales se puede realizar con una
cantidad de recursos finitos.
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.
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.
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?
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.
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.
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.
Representación de
Algoritmos

Las representaciones más


conocidas son:

Diagramas de flujo.
Pseudo-código.
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.
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.
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
Solución de Problemas
Algorítmicos

Problema

Metodología

Programa
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.
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.
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.
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.
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.
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.
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.
Codificación

 Proceso en el cual se escribe el


algoritmo en un lenguaje de
programación, utilizando el editor de la
herramienta.
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.
FIN
Gracias por la
atención prestada

También podría gustarte