Académique Documents
Professionnel Documents
Culture Documents
Página 1
En todas partes y con muchas formas
Luis Hernández Yáñez
Memoria
temporal
Dispositivos Dispositivos
C.P.U.
de entrada de salida
Teclado Monitor
Ratón Impresora
Escáner Altavoz
Luis Hernández Yáñez
Táctil Almacenamiento …
… permanente
Dispositivos de E/S
A.L.U.
Unidad Aritmético-Lógica
Memoria
Luis Hernández Yáñez
Unidad de Control
Bus 05 1 Bit = 0 / 1
de 06 1 Byte = 8 bits = 1 carácter
datos 07
1 Kilobyte (KB) = 1024 Bytes
08
1 Megabyte (MB) = 1024 KB
...
1 Gigabyte (GB) = 1024 MB
1 Terabyte (TB) = 1024 GB
1 Petabyte (PB) = 1024 TB
Luis Hernández Yáñez
Dirección
210 = 1024 1000
Lenguaje de programación C
1974 Protocolo TCP. Primera red local
IBM PC (Wikipedia)
Siglo XXI
2001 Windows XP
Mac OS X
2002 Mozilla Firefox
2007 iPhone
2008 Android ...
Luis Hernández Yáñez
Software
Programas, instrucciones
y reglas informáticas
para ejecutar tareas
en una computadora
Luis Hernández Yáñez
Programa
Secuencia de instrucciones
Instrucciones que entiende la computadora
Y que persiguen un objetivo: ¡resolver un problema!
Luis Hernández Yáñez
Lenguaje máquina
Códigos hexadecimales que representan instrucciones,
registros de la CPU, direcciones de memoria o datos
Instrucción Significado Lenguaje de bajo nivel
A0 2F Acceder a la celda de memoria 2F Dependiente de la máquina
3E 01 Copiarlo el registro 1 de la ALU
A0 30 Acceder a la celda de memoria 30 Programación difícil
3E 02 Copiarlo en el registro 2 de la ALU
Luis Hernández Yáñez
1D Sumar
B3 31 Guardar el resultado en la celda de memoria 31
Mayor legibilidad:
READ 2F Código fuente
REG 01 (lenguaje ensamblador)
READ 30
REG 02
ADD Programa
WRITE 31 ensamblador
(lenguaje máquina)
FORTRAN C#
1954 CPL C
2000
1963 1971
Python
ALGOL Pascal Modula 1991
1958 1970 1975
BASIC
1964
Ada Eiffel
1979 1986
Simula
Fuente: 1964 Smalltalk
http://www.levenez.com/lang/ Ruby
1971 1993
Luis Hernández Yáñez
Haskell
Lisp Scheme 1987
1958 1975
Logo
1968
Análisis ¿Qué?
Diseño ¿Cómo?
Programación Implementación
Prueba y depuración
Luis Hernández Yáñez
Mantenimiento
Ejemplo
Si a un experimentado conductor se le preguntase como pone en
movimiento su automóvil, el contestaría: “Se pone en marcha el motor
y se mete la primera”.
Efectivamente es fácil. Pero ¿Qué ocurriría si el individuo nunca
condujo un automóvil?. El resultado no sería muy efectivo debido a que
según las instrucciones o pasos impartidos anteriormente, si estuviera
en algún cambio, al poner en marcha se hubiese estrellado con lo
primero que estuviese adelante o atrás.
La conclusión que se debe sacar de este ejemplo es que el conductor con
experiencia no tuvo en cuenta todas las posibilidades que se pueden
presentar para obtener el resultado de poner el automóvil en
movimiento. Por lo tanto, su algoritmo sería:
Poner en marcha el motor
Meter la primera
Ejemplo
En cambio, el algoritmo más correcto podría ser:
Pisar el embrague con el pie izquierdo
Poner en punto muerto
Dar a la llave de contacto
Pisar el embrague
Meter la primera
Quitar el freno de mano si lo tuviese puesto.
Levantar lentamente el pie del embrague a la vez que pisa
el pedal del acelerador con el pie derecho
¿Por qué es más correcto este algoritmo?
1) Desglosa el problema en instrucciones simples y
concretas, comprensibles para cualquier individuo.
2) Indica claramente el orden en que deben ejecutarse
dichas instrucciones.
4.2.1 Caracteristicas
Se puede observar que el número de operaciones que realiza un algoritmo es finito
siempre y cuando sus datos sean adecuados. Por consiguiente, el número de
operaciones que necesitamos realizar al ejecutar un algoritmo dependerá de los
datos del problema y solamente se conocerá al ejecutar este.
Un algoritmo debe ser:
Preciso: Debe indicar el orden de realización de cada paso.
Definido: Si se ejecuta dos veces el algoritmo con los mismos datos éste debe dar
el mismo resultado.
Finito: Debe finalizar en algún momento o sea tener un número finito de pasos.
Todo algoritmo tiene tres partes: entrada, proceso y salida, y sus pasos describen la
transformación de la entrada en la salida.
Si tomamos el ejemplo acerca del promedio de notas de los alumnos tenemos que:
ENTRADA: las notas de los alumnos
PROCESO: cálculo del promedio
SALIDA: Promedio de los alumnos
Contenido
125,25
Importe
Nombre de Variable
+ Suma
- Resta
* Multiplicación
/ División
** o ^ Potenciación
= Igual
< Menor que
<= Menor o igual que
> Mayor
>= Mayor o Igual que
<> Distinto
Reglas de Prioridad
Las operaciones aritméticas siguen reglas de prioridad o
precedencia y son:
operador exponencial *, ^
operadores de multiplicación y división, /
operadores de suma y resta +, -
prioridad:
● Operador exponencial
Aritméticas
Cualquier operación aritmética que se desea realizar es llamada con
este nombre. Tienen dos etapas:
La ejecución de la operación, que implica la obtención de un resultado.
Una transferencia para almacenar en un campo de la memoria el
resultado obtenido.
La forma general de la instrucción aritmética es:
ba o a=b
donde:
a es el nombre de una variable donde se almacena el resultado de b,
y b es una expresión aritmética
Aritméticas
Ejemplo: Sumar el contenido de los campos A y B
La instrucción sería (ver figura 1.16):
A + B Co C=A+B
ANTES
10 20 8
A B C
DESPUES
10 20 30
A B C
FUNDAMENTOS Y METODOLOGÍA DE LA PROGRAMACIÓN Página 52
Resolución de Problemas con Computadoras. Algoritmos y Programas
4.3.2 Instrucciones
Instrucciones de Comienzo y Fin
Instrucciones de transferencia
Instrucciones de entrada
Instrucciones de salida
Instrucciones de control
Esta instrucción introduce datos desde algún dispositivo de entrada.
Una instrucción de Entrada implica la introducción de datos en la
memoria principal del ordenador desde dispositivos externos a la
misma, por ejemplo, el teclado, un diskette, etc.-
En la memoria principal solo pueden guardarse valores mediante su
almacenamiento en variables. Por eso, cualquier operación de
entrada lleva implícita la asignación del valor introducido en una
variable de memoria a la que se deberá hacer referencia cuando se
necesite.
DISPOSITIVO MEMORIA
EXTERNO PRINCIPAL
DISPOSITIVO MEMORIA
EXTERNO PRINCIPAL
Ejemplo
Si queremos imprimir o visualizar en pantalla los valores de las
variables anteriores A, B y C, el resultado sería: 10, 20, 30
Condicional
Recibe también el nombre de bifurcación condicional, y es aquella
que, bajo la comprobación de veracidad o falsedad de una condición,
ejecuta dos grupos de acciones diferentes.
En diagramación las interrogaciones
se realizan mediante el símbolo de ACCION 2 NO A<B SI ACCION 1
ACCION 3
Accion 3
Contadores
13.50 + 8
SUMANOTAS SUMANOTAS
NOMBRE DE VARIABLE
Secuencial
Seleccion
Repetición o Iteración
Posee un solo punto de entrada y uno de salida o fin para control del
programa.
Existen caminos desde la entrada hasta la salida que se pueden seguir y
que pasan por todas las partes del programa.
Todas las instrucciones son ejecutables y no existen lazos o bucles
infinitos.