Está en la página 1de 63

Arquitectura de computadores -

interna

1
Arquitectura de computadores -
externa

2
Que sin ayuda de los computadores no se
Permite resolver podran resolver en trminos prcticos de

problemas complejos.
tiempo, costo, y dems recursos.
Es una de las bases actuales en el
desarrollo de las ciencias, las tecnologas,
el conocimiento.
Facilita obtener mejores soluciones a
problemas ms complejos.

El software es el conjunto de programas que permiten y

Software.
facilitan la utilizacin de un computador. Se le denomina,
tambin, la parte lgica de la mquina.
Categoras de software: Sistema Operativo, Entornos de
programacin, Automatizacin de oficina, redes, etc..

Comprende la parte electrnica, electromecnica y

Hardware.
mecnica de los computadores.
Tambin puede incluir programacin.
Microelectrnica. Chips. Memorias RAM, ROM.


Facilita resolver
problemas de clculos.
3
Representacin de los datos en
la computadora
El nico cdigo que entiende la CPU son los bits.
Los bits son representados en circuitos
electrnicos que pueden estar en estado on (1) u
off (0)
Las instrucciones se mandan a la CPU en forma de
bytes, que son palabras de 8 bits
1 byte = 8 bits
1 kilobyte = 1 024 bytes
1 megabyte = 1 024 kilobytes = 1 048 576 bytes

4
Base 10:
Dgitos = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
1111 = 1*103 + 1*102 + 1*101 + 1*100
Base 2:
Dgitos = {0, 1}
1111 = 1*23 + 1*22 + 1*21 + 1*20 = 8 + 4 + 2 + 1 = 15
Cuntos valores puede representar un byte?
1 byte = 8 bits (Ej: 01100101)
Cada bit puede representar 2 valores (0 y 1)
Un byte puede representar 28 = 256 valores

5
Representacin de textos

TEXTO: My name is Anders.


ASCII: 77-121-32-110-97-109-101-32-105-115-32-65-110-100-101-114-
115-46
6 18 bytes
Representacin de imagen
00000000
00110110
00100010
00100010
00110110
00000000
00110110
00000000

Divisin de la imagen en una matriz de pixeles


(unidad de la imagen)
Cada pixel asociado con un color

7
Representacin de sonido

4 8 12 13 12 10 8

Discretizacin de la amplitud
Un byte para cada valor

8
Introduccin a la Programacin
El diseo de soluciones a la medida de nuestros problemas, requiere
como en otras disciplinas una metodologa que nos ensee de manera
gradual, la forma de llegar a estas soluciones.
A las soluciones creadas por computador se les conoce como
programas y no son ms que una serie de operaciones que realiza el
computador para llegar a un resultado, con un grupo de datos
especficos. Lo anterior nos lleva al razonamiento de que un programa
nos sirve para solucionar un problema especifico.
Computador: Es un dispositivo electrnico utilizado para procesar datos
y obtener resultados. Los datos y la informacin se pueden introducir en
el computador como entrada (input) y a continuacin se procesan para
producir una salida (output).

9
Programa: Es el conjunto de instrucciones escritas de algn lenguaje
de programacin y que ejecutadas secuencialmente resuelven un
problema especifico.

Lenguaje: Es una serie de smbolos que sirven para transmitir uno o


mas mensajes (ideas) entre dos entidades diferentes. A la
transmisin de mensajes se le conoce comnmente como
comunicacin.

Lenguaje Maquina
Lenguaje de Bajo Nivel (Ensamblador)
Lenguaje de Alto Nivel

10
Qu es programar?
Idear y ordenar las actividades necesarias
para realizar un proyecto. (RAE).

Es ejecutar una serie de instrucciones de


forma ordenada, de tal forma que la
computadora realice actividades que
faciliten la labor del usuario. (estipular
declaraciones).

11
Qu es un Lenguaje de Programacin?

Un lenguaje de programacin es
un lenguaje formal diseado para
expresar procesos que pueden ser
llevados a cabo por mquinas como
las computadoras.

12
Lenguajes de programacin

Lenguajes mquina
Lenguajes ensamblador
Lenguajes de alto nivel: C, C++,Visual Basic, Java,
Pascal, Prolog, LISP,

13
Lenguajes mquina
Programas son secuencias de instrucciones compuestas
de bytes:
16 29 156 9 82 75
Ventajas:
La CPU entiende estos programas
Desventajas:
Pensar en modo de 0s y 1s es muy difcil para nosotros

14
Lenguajes ensamblador
Instrucciones compuestas de palabras cortas y
nmeros:
LOD 15 6
LOD 16 8
ADD 15 16 17
JMP 10
Ventajas:
Ms fcil a entender
Desventajas:
Todava bastante abstracto
Necesita traducir el cdigo a lenguajes mquina

15
Lenguajes de alto nivel
Diseados para ser ms parecidos a lenguaje natural
Ventajas:
Mucho ms fcil de dar instrucciones
Desventajas:
Ms complicado convertir en lenguajes mquina

16
Lenguajes de programacin:
Por qu hay tantos?
Cmo nacen, sobreviven y caducan?
1. Diferentes dominios de aplicacin:
Programacin de sistemas rapidez y acceso de
bajo nivel: C
Inteligencia artificial computacin simblica: LISP,
Prolog
Programacin cientfica frmulas matemticas:
Fortran
Negocios transacciones: COBOL
Uso especfico: SQL (bases de datos), Perl
(manipulacin de textos), JavaScript (pginas web),
Pascal (formacin)
17
1. Diferentes necesidades:
Fiabilidad: Ada
Escabilidad, paradigma orientado a objeto: C
C++
Portabilidad: Java
2. Evolucin:
Mejora del hardware
Mejor comprensin de como reforzar criterios de
legibilidad, facilidad de aprender y escribir,
fiabilidad
3. Importancia de la estandardizacin
4. Nmero de usuarios!

18
Traductores del Lenguaje

A) Intrpretes; Toma un
programa fuente lo traduce
e inmediatamente lo ejecuta.

Traduccin y
Programa fuente Intrprete ejecucin en lnea
Traductores del Lenguaje
(cont.)
B) Compiladores; traduce un
programa fuente a cdigo objeto.
Programa fuente Programa Programa ejecutable
Objeto

Compilador Montador
(Compiler) (Linker)
Traductores de lenguaje:
compiladores
OPCION 1 OPCION 2
PROGRAMA FUENTE
Fase de compilacin

Fase de compilacin COMPILADOR


programa
ENLAZADOR objeto
programa
ejecutable (binder, linker)
Fase de ejecucin

Fase de ejecucin
EJECUCION

21
Componentes de un lenguaje

Sintaxis (gramtica): reglas que determinan de


manera estricta el vocabulario, orden y formato de
las instrucciones permitidas
Errores sintcticos: el programa no compila y/o no se puede
interpretar
Semntica (sentido): el programa, al ejecutarlo,
produce el resultado correcto que uno quiere

22
Errores de programacin

Modificar o crear un
archivo .java

Compilar
errores de compilacin (sintaxis) Editar para
corregir errores

no hay errores

Ejecutar programa
Depurar
errores de ejecucin (semntica) (debugging)

23
Ms usados

C PHP
C++ Python
C# Objective-C
Java Ruby
JavaScript Visual Basic
Perl

24
Escribir el cdigo fuente
El cdigo fuente de un programa informtico es un
conjunto de lneas de texto que son las instrucciones que
debe seguir la computadora para ejecutar dicho programa.

EDITOR DE TEXTO
IDE (Entorno de Desarrollo Integrado)

25
La palabra algoritmo se deriva
de la traduccin al latn de la
palabra rabe alkhowarizmi,
nombre de un matemtico y
astrnomo rabe que escribi un
tratado sobre manipulacin de
nmeros y ecuaciones en el
siglo IX.

Un algoritmo es una serie de


pasos organizados que describe
el proceso que se debe seguir,
para dar solucin a un problema
especifico.

26
Caractersticas de los
algoritmos
Preciso, indicar el orden de cada
paso.
Definido, el mismo resultado se
obtendr al ejecutar el algoritmo
n ocasiones.
Finito, deber terminar en algn
momento.
28
ALGORITMOS
Solucin de problemas

La mayora de problemas tienen algunos


elementos en comn: un estado inicial; una
meta, lo que se pretende lograr; un conjunto
de recursos, lo que est permitido hacer y/o
utilizar; y un dominio, el estado actual de
conocimientos, habilidades y energa de quien va
a resolverlo.
Estrategias para solucin de problemas
A travs del tiempo, la humanidad ha utilizado
diversas estrategias generales para resolver
problemas, destacan los siguientes mtodos o
estrategias de tipo general:
Ensayo y error: Consiste en actuar hasta que algo
funcione.
Heurstica : Se basa en la utilizacin de reglas
empricas para llegar a una solucin.
Algoritmos : Consiste en aplicar adecuadamente
una serie de pasos detallados que aseguran una
solucin correcta.
Lluvia de ideas : Consiste en formular soluciones
viables a un problema.
Fases para solucionar un problema
1. Analizar el problema (Entender el problema)
2. Disear un algoritmo (Trazar un plan)
3. Traducir el algoritmo a un lenguaje de programacin
(Ejecutar el plan)
4. Depurar el programa (Revisar)
Fase 1: Analizar el Problema
Etapas a desarrollar en la fase 1
1. Especificar claramente los resultados que se desean
obtener (meta y submetas)
2. Identificar la informacin disponible (estado inicial)
3. Definir los procesos que llevan desde los datos
disponibles hasta el resultado deseado (operaciones)
Formular el problema
La solucin de un problema debe iniciar por determinar y
comprender exactamente en qu consiste ese problema.

La comprensin lingstica del problema (entender el


significado de cada enunciado) es muy importante. Se debe
realizar una lectura previa del problema con el fin de obtener
una visin general de lo que se pide y una segunda lectura
para poder responder preguntas como:

Puedo definir mejor el problema?


Qu palabras del problema me son desconocidas?
Cules son las palabras clave del problema?
He resuelto antes algn problema similar?
Qu informacin es importante?
Qu informacin puedo omitir?
Precisar los resultados esperados
Para establecer los resultados que se esperan (meta) es
necesario identificar la informacin relevante, ignorar
los detalles sin importancia, entender los elementos del
problema y activar el esquema correcto que permita
comprenderlo en su totalidad.

Es necesario analizar qu resultados se solicitan y qu


formato deben tener esos resultados (impresos, en
pantalla, diagramacin, orden, etc). Debe preguntarse:

Qu informacin me solicitan?
Qu formato debe tener esta informacin?
Identificar datos disponibles
Otro aspecto muy importante en la etapa de
anlisis del problema consiste en determinar cul
es la informacin disponible. Debe preguntarse:

Qu informacin es importante?
Qu informacin no es relevante?
Cules son los datos de entrada? (conocidos)
Cul es la incgnita?
Qu informacin me falta para resolver el
problema? (datos desconocidos)
Puedo agrupar los datos en categoras?
Determinar las restricciones
En este punto se deben exponer las necesidades
y restricciones (no una propuesta de solucin). El
estudiante debe preguntarse:

Qu condiciones me plantea el problema?


Qu est prohibido hacer y/o utilizar?
Qu est permitido hacer y/o utilizar?
Cules datos puedo considerar fijos (constantes)
para simplificar el problema?
Cules datos son variables?
Cules datos debo calcular?
Establecer procesos (operaciones)
Consiste en determinar los procesos que
permiten llegar a los resultados esperados a
partir de los datos disponibles. Debe
preguntarse:

Qu procesos necesito?
Qu frmulas debo emplear?
Cmo afectan las condiciones a los
procesos?
Qu debo hacer?
Cul es el orden de lo que debo hacer?
Ejemplo:
De acuerdo con la metodologa descrita,
analizar el problema de hallar el rea de un
tringulo rectngulo cuya Base mide 3 cm, la
Altura 4 cm y la Hipotenusa 5 cm.
Respuesta:
Formular el problema:Ya se encuentra claramente planteado.
Resultados esperados: El rea de un tringulo rectngulo.
Datos disponibles: Base, Altura, Hipotenusa, tipo de tringulo.
La incgnita es el rea y todos los valores son constantes. El
valor de la hipotenusa se puede omitir. Debe preguntarse si
sus conocimientos actuales de matemticas le permiten resolver
este problema; de no ser as, debe plantear una estrategia para
obtener los conocimientos requeridos.
Determinar las restricciones: Utilizar las medidas dadas.
Procesos necesarios: Guardar en dos variables los valores de
Base y Altura; Guardar en una constante el divisor 2; aplicar
la frmula rea=base*altura/2; comunicar el resultado (rea).
Actividad
Basndose en la metodologa expuesta, hacer un anlisis
detallado (Formular el problema, Resultados
esperados, Datos disponibles, Determinar las
restricciones y Procesos necesarios) del siguiente
problema:

Hallar el rea de un cuadrado cuyo lado mide 5 cm.


Fase 2: Disear un Algoritmo
Luego de analizar detalladamente el problema hasta
entenderlo completamente, se procede a disear un
algoritmo (trazar un plan) que lo resuelva por medio de
pasos sucesivos y organizados en secuencia lgica.
Ejemplo:
Un procedimiento que realizamos varias veces al da consiste en lavarnos
los dientes. Veamos la forma de expresar este procedimiento como un
Algoritmo:
1. Tomar la crema dental
2. Destapar la crema dental
3. Tomar el cepillo de dientes
4. Aplicar crema dental al cepillo
5. Tapar la crema dental
6. Abrir la llave del lavamanos
7. Remojar el cepillo con la crema dental
8. Cerrar la llave del lavamanos
9. Frotar los dientes con el cepillo
10. Abrir la llave del lavamanos
11. Enjuagarse la boca
12. Enjuagar el cepillo
13. Cerrar la llave del lavamanos
14. Secarse la cara y las manos con una toalla
Actividad:
Realizar un algoritmo del procedimiento
de cambiar un foco.
Diferencia entre un Algoritmo y un Programa

Una diferencia notoria entre un algoritmo y un


programa es que el algoritmo incorpora las
caractersticas estructurales bsicas de la computacin,
independientemente de los detalles de su
implementacin; mientras que un programa tiene un
conjunto especfico de detalles para resolver un
problema. Se puede observar que una tcnica de
solucin (correspondiente al algoritmo) se puede
utilizar en diferentes situaciones problemticas
(correspondiente a los programas).
Qu es un Programa?
Un programa consiste de uno o ms procedimientos
con instrucciones paso a paso que pueden ejecutarse en
una computadora.

Por ejemplo, asignar la tarea de disear un procesador


de texto bsico (ingreso del texto mediante teclado,
mostrarlo en la pantalla y guardarlo en el disco duro) es
una tarea relativamente sencilla. Pero el proyecto puede
aumentar su complejidad si se aaden funciones para
dar formato al texto (fuentes, tamao y caractersticas
especiales). Posteriormente el proyecto puede crecer si
se agregan funcionalidades para manejar imgenes y
tablas.
Procedimientos
En resumen, los procedimientos son un tipo particular
de tarea que busca solucionar problemas especficos y al
desarrollarlos se ponen en juego los pensamientos
algortmico y procedimental.
REPRESENTACIN DE
ALGORITMOS
50
Es una representacin grafica de
un algoritmo o proceso. Se
utiliza en disciplinas como la
programacin, la economa, los
procesos industriales y la
psicologa cognitiva.

Un diagrama de flujo siempre


tiene un nico punto de inicio y
un nico punto de trmino.
Adems, todo camino de
ejecucin debe permitir llegar
desde el inicio hasta el trmino.

51
Ventajas del Diagrama de flujo

Favorecen la comprensin del proceso a


travs de mostrarlo como un dibujo. El
cerebro humano reconoce fcilmente los
dibujos.

Permiten identificar los problemas y las


oportunidades de mejora del proceso.

52
Simbologa

Favorecen la comprensin del proceso a


travs de mostrarlo como un dibujo. El
cerebro humano reconoce fcilmente los
dibujos.

Permiten identificar los problemas y las


oportunidades de mejora del proceso.

53
Smbolo Descripcin
Inicio / Terminacin. Este smbolo se utiliza para
sealar el comienzo as como el final de un diagrama.
Tradicionalmente se colocan las palabras INICIO
FIN dentro de la figura para hacerlo ms explcito.
Es el nico smbolo que solamente tiene una conexin
(flecha) ya sea de salida, en el de inicio, o de entrada, para
el de fin.

Smbolo Descripcin
Entrada de datos. En este smbolo se indican los
valores inciales que deber recibir el proceso. Esto se
hace asignndoles letras o nombres de variables para cada
uno de los valores y anotando estas letras en el interior
de la figura.
Smbolo Descripcin
Proceso de datos. Este smbolo lo utilizaremos para
sealar operaciones matemticas, aritmticas o procesos
especficos que se realicen con nuestros datos.
La manera de anotar dichos procesos, puede ser mediante
una descripcin breve de la operacin o mediante una
asignacin de dicha operacin hacia una variable como
54 por ejemplo: R A + B
Smbolo Descripcin
Decisin. Este smbolo nos representa una disyuntiva lgica
o decisin. En su interior se anota una instruccin o pregunta
que pueda ser evaluada como cierta o falsa y que determine
el flujo del programa.
Este smbolo es el nico que puede contener dos salidas y en
cada una de las salidas se suele poner un rtulo de si/no o
cierto/falso indicando con esto cual de ellas se tomar
segn el resultado de la evaluacin de la funcin. Es una
buena prctica de diagramacin utilizar siempre el mismo
lado para los positivos siempre que esto sea posible.

Smbolo Descripcin
Desplegado de informacin. Este smbolo se utiliza para
mostrar un resultado, el cual puede representar la solucin al
problema que se pretende resolver y que fue conseguida a
travs del resto del diagrama. Dentro de su interior se
anotar la variable con el resultado final o el mensaje que
represente el resultado del algoritmo. Generalmente
veremos este smbolo muy cerca del final del proceso y
precedido por el smbolo de terminacin.

55
Smbolo Descripcin
Ciclo for. Su funcin es ejecutar un bloque de objetos
mientras que la variable contadora no alcance el lmite
establecido por el valor final. El contador es siempre una
variable de tipo de dato Real. Contiene adems un valor
inicial que ser asignado al contador al iniciar la ejecucin del
ciclo, un valor final y un valor de incremento. Si el contador
excede el valor final, la ejecucin continuar a partir del
objeto que sigue al Cierre. En caso contrario, se ejecutar el
cuerpo del ciclo y el contador ser incrementado en el valor
indicado por el incremento.

Smbolo Descripcin
Ciclo mientras (while). El objeto Ciclo Mientras tiene
como funcin el ejecutar un bloque de objetos mientras que
una condicin sea verdadera. La condicin debe ser siempre
una expresin que al ser evaluada de como resultado un
valor de tipo de dato lgico. Si al evaluar la condicin se
obtiene el valor .F. la ejecucin del algoritmo continuar a
partir del objeto que sigue al cierre.

56
57
Reglas para la elaboracin de diagramas de flujo

Cuando el algoritmo se desea expresar en forma de diagrama de


flujo, se deben tener en cuenta algunas reglas o principios bsicos
para su elaboracin:
Poner un encabezado que incluya un ttulo que identifique la
funcin del algoritmo; el nombre del autor; y la fecha de
elaboracin;
Slo se pueden utilizar smbolos estndar (ISO 5807);
Los diagramas se deben dibujar de arriba haca abajo y de izquierda
a derecha;
La ejecucin del programa siempre empieza en la parte superior
del diagrama;
Los smbolos de Inicio y Final deben aparecer solo una vez;
La direccin del flujo se debe representar por medio de flechas
(lneas de flujo);
Todas las lneas de flujo deben llegar a un smbolo o a otra lnea;
Reglas para la elaboracin de diagramas de flujo

Una lnea de flujo recta nunca debe cruzar a otra.


Cuando dos lneas de flujo se crucen, una de ellas debe incluir una lnea
arqueada en el sitio donde cruza a la otra (ilustracin 2-5);
Se deben inicializar las variables que se utilicen o permitir la asignacin de
valores mediante consulta al usuario;
Las bifurcaciones y ciclos se deben dibujar procurando una cierta simetra;
Cada rombo de decisin debe tener al menos dos lneas de salida (una
para SI y otra para NO);
Las acciones y decisiones se deben describir utilizando el menor numero
de palabras posible; sin que resulten confusas o poco claras;
Si el Diagrama se vuelve complejo y confuso, es mejor utilizar smbolos
conectores para reducir las lneas de flujo;
Todo el Diagrama debe ser claro, ordenado y fcil de recorrer;
El Diagrama se debe probar recorrindolo con datos iniciales simples
(prueba de escritorio).
60
Ejemplo:
Elaborar un Algoritmo para calcular el rea de cualquier tringulo
rectngulo y presentar el resultado en pantalla.

PSEUDOCDIGO
Paso 1: Inicio
Paso 2:Asignar el nmero 2 a la constante "Div"
Paso 3: Conocer la base del tringulo y guardarla en la variable
"Base"
Paso 4: Conocer la altura del tringulo y guardarla en la variable
"Altura"
Paso 5: Guardar en la variable "Area" el valor de multiplicar "Base
por "Altura"
Paso 6: Guardar en la variable "Area" el valor de dividir "Area
entre "Div"
Paso 7: Reportar el valor de la variable "Area
Paso 8: Final
Ejemplo:
Actividad:
Disear diagramas de flujo y pseudocdigo para los
siguientes problemas:
1. Hallar el rea de un cuadrado cuyo lado mide 5 cm.
2. Hallar uno de los lados de un rectngulo cuya rea es de 15
cm2 y uno de sus lados mide 3 cm.
3. Hallar el rea y el permetro de un crculo cuyo radio mide 2
cm.
4. Hallar el rea de un pentgono regular de 6 cm de lado y con
4 cm de apotema.