Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Algoritmos y Programas
Algoritmos y Programas
direccin http://creativecommons.org/licenses/by-nc-sa/2.5/es/legalcode.es
(3)
(1)
algoritmos y programas
esquema de la unidad
(1.1) computadora y sistema operativo __________________________________ 6
(1.1.1) computadora
(1.1.2) hardware y software
(1.1.3) Sistema Operativo
6
8
9
11
11
12
17
17
18
18
19
20
20
20
21
23
28
29
30
31
31
31
32
32
(5)
fundamentos de programacin
(Unidad 1) algoritmos y programas
(6)
(7)
fundamentos de programacin
(Unidad 1) algoritmos y programas
En definitiva los componentes sobre los que actualmente se hace referencia son:
sirven para almacenar de forma permanente los datos que se deseen del
ordenador. Los principales son el disco duro (unidad de gran tamao
interna al ordenador), la disquetera (unidad de baja capacidad y muy
lenta, ya en desuso), el CD-ROM y el DVD.
(8)
Unix. Sistema operativo muy robusto para gestionar redes de todos los
(9)
fundamentos de programacin
(Unidad 1) algoritmos y programas
Red Hat
Debian
Mandriva
SUSE
(11)
fundamentos de programacin
(Unidad 1) algoritmos y programas
La historia ha demostrado que los sistemas posicionales son mucho mejores para
los clculos matemticos por lo que han retirado a los no posicionales. La razn:
las operaciones matemticas son ms sencillas utilizando sistemas posicionales.
Todos los sistemas posicionales tienen una base, que es el nmero total de
smbolos que utiliza el sistema. En el caso de la numeracin decimal la base es
10; en el sistema binario es 2.
El Teorema Fundamental de la Numeracin permite saber el valor decimal que
tiene cualquier nmero en cualquier base. Dicho teorema utiliza la frmula:
...+ X3B3 + X2B2 + X1B1 + X0B0 + X-1B-1 + X-2B-2+...
Donde:
Pesos:
128 64
32
16
1 0 1 0 0 1 0 1
ahora se suman los pesos que tienen un 1: 128 + 32 + 4 +1=165
(12)
2
22
02
0
2
11
1
2
2
0
5
1
2
1
Ahora las cifras binarias se toman al revs. Con lo cual, el nmero 10110011
es el equivalente en binario de 179.
Otra posibilidad ms rpida es mediante restas sucesivas. En este caso se
colocan todas las potencias de dos hasta sobrepasar el nmero decimal. La
primera potencia (el primer peso) que es menor a nuestro nmero ser un 1 en
el nmero binario. Se resta nuestro nmero menos esa potencia y se coge el
resultado. Se ponen a 0 todas las potencias mayores que ese resultado y un 1 en
la primera potencia menor. Se vuelve a restar y as sucesivamente. Ejemplo:
(13)
fundamentos de programacin
(Unidad 1) algoritmos y programas
As:
0 1 1 1 0 1 0 1 es el nmero 117
1 1 1 1 0 1 0 1 es el nmero -117
El rango representable con 1 bit sera del -127 al 127. Hay otra posibilidad y es la
representacin en complemento a uno. En esta representacin, a los nmeros
negativos se les invierten todos los bits. Ejemplo:
1 0 0 0 1 0 1 0 es el nmero -117 en complemento a uno
El problema en ambos casos es que hay dos representaciones para el nmero
cero (la 00000000 y la 10000000) y por ello es ms popular el complemento a
dos. Esta forma consiste en sumar uno al complemento a uno. De este modo se
aade al rango el nmero -128 que se representa como 10000000. Ejemplo de
complemento a dos:
1 0 0 0 1 0 1 1 es el nmero -117 en complemento a dos
operaciones con nmeros binarios
suma
La suma se efecta igual que con los decimales, slo que usando binarios segn
esta tabla:
Suma
0+0
0+1
1+0
1+1
Ejemplo:
Resultado
0
1
1
0 (ms un acarreo de 1)
acarreos
1 0 1 0 1 0 1 0
0 1 0 0 1 1 1 1
1 1 1 1 1 0 0 1
resta
Funciona como la resta normal, los acarreos se ponen en el segundo nmero.
Suma
0-0
0-1
1-0
1-1
Resultado
0
1 (ms un acarreo de 1)
1
0
(14)
Ejemplo:
11 0 1 0 1 0 1 0
1
1 1
1
1
0 1 0 0 1 1 1 1
0 1 0 1 1 0 1 1
acarreos
Resultado
0
0
0
1
OR
0 OR
0 OR
1 OR
1 OR
Resultado
1
1
1
0
0
1
0
1
1 0 1 0 1 0 1 0
AND 0 1 0 0 1 1 1 1
0 0 0 0 1 0 1 0
Ejemplo de uso de OR:
1 0 1 0 1 0 1 0
OR 0 1 0 0 1 1 1 1
1 1 1 0 1 1 1 1
Otra operacin es NOT que trabaja con un solo nmero al que le invierte las
cifras:
NOT
NOT 0
NOT 1
Resultado
1
0
(15)
fundamentos de programacin
(Unidad 1) algoritmos y programas
NOT 0 1 0 0 1 1 1 1
1 0 1 1 0 0 0 0
sistema octal
Un caso especial de numeracin es el sistema octal. En este sistema se utiliza
base ocho, es decir cifras de 0 a 7. As el nmero 8 en decimal, pasa a escribirse
10 en octal.
Lo interesante de este sistema es que tiene una traduccin directa y rpida al
sistema binario, ya que una cifra octal se corresponde exactamente con tres
cifras binarias (tres bits). La razn es que el nmero ocho es 23. De ah que tres
bits signifique una cifra octal. Los nmeros del 0 al 7 en octal pasados a binario
quedaran as:
Decimal
0
1
2
3
4
5
6
7
Decimal
0
1
2
3
4
5
6
7
8
(16)
Hexadecimal
9
10
11
12
13
14
15
Decimal
9
A
B
C
D
E
F
fundamentos de programacin
(Unidad 1) algoritmos y programas
BIT (de Binary diGIT). Representa un dgito binario. Por ejemplo se dice
que el nmero binario 1001 tiene cuatro BITS.
(1.3) algoritmos
(1.3.1) nocin de algoritmo
Segn la RAE: conjunto ordenado y finito de operaciones que permite hallar
la solucin de un problema.
Los algoritmos, como indica su definicin oficial, son una serie de pasos que
permiten obtener la solucin a un problema. La palabra algoritmo procede del
matemtico rabe Mohamed Ibn Al Kow Rizmi, el cual escribi sobre los aos
800 y 825 su obra Quitad Al Mugabala, donde se recoga el sistema de
numeracin hind y el concepto del cero. Fibonacci, tradujo la obra al latn y la
llam: Algoritmi Dicit.
El lenguaje algortmico es aquel que implementa una solucin terica a un
problema indicando las operaciones a realizar y el orden en el que se deben
efectuarse. Por ejemplo en el caso de que nos encontremos en casa con una
bombilla fundida en una lmpara, un posible algoritmo sera:
(1)
(2)
(3)
fundamentos de programacin
(Unidad 1) algoritmos y programas
(1.4) aplicaciones
(1.4.1) programas y aplicaciones
Programa. La definicin de la RAE es: Conjunto unitario de
Diseo
Codificacin
Pruebas
Mantenimiento
Ilustracin 4, Ciclo de vida de una aplicacin
(21)
fundamentos de programacin
(Unidad 1) algoritmos y programas
Una de las cosas que se han definido tras el nacimiento de la ingeniera del
software ha sido el ciclo de vida de una aplicacin. El ciclo de vida define los
pasos que sigue el proceso de creacin de una aplicacin desde que se propone
hasta que finaliza su construccin. Los pasos son:
(1)
Anlisis. En esta fase se determinan los requisitos que tiene que cumplir
la aplicacin. Se anota todo aquello que afecta al futuro funcionamiento
de la aplicacin. Este paso le realiza un analista
(2)
(3)
(4)
(5)
(1.5) errores
Cuando un programa obtiene una salida que no es la esperada, se dice que posee
errores. Los errores son uno de los caballos de batalla de los programadores ya
que a veces son muy difciles de encontrar (de ah que hoy en da en muchas
aplicaciones se distribuyan parches para subsanar errores no encontrados en la
creacin de la aplicacin).
(22)
tipos de errores
(23)
fundamentos de programacin
(Unidad 1) algoritmos y programas
(25)
fundamentos de programacin
(Unidad 1) algoritmos y programas
Poco a poco fueron evolucionando los lenguajes formando lenguajes cada vez
mejores (ver ). As en 1958 se crea LISP como lenguaje declarativo para
expresiones matemticas.
Programa que escribe Hola mundo en lenguaje LISP:
(format t "Hola, mundo!")
En 1960 la conferencia CODASYL se creo el COBOL como lenguaje de gestin en
1960. En 1963 se creo PL/I el primer lenguaje que admita la multitarea y la
programacin modular. En COBOL el programa Hola mundo sera ste (como se
ve es un lenguaje ms declarativo):
IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
ENVIRONMENT DIVISION.
DATA DIVISION.
PROCEDURE DIVISION.
MAIN SECTION.
DISPLAY "Hola mundo"
STOP RUN.
BASIC se creo en el ao 1964 como lenguaje de programacin sencillo de
aprender en 1964 y ha sido, y es, uno de los lenguajes ms populares. En 1968 se
crea LOGO para ensear a programar a los nios. Pascal se creo con la misma
idea acadmica pero siendo ejemplo de lenguaje estructurado para
programadores avanzados. El creador del Pascal (Niklaus Wirdth) creo Modula
en 1977 siendo un lenguaje estructurado para la programacin de sistemas
(intentando sustituir al C).
Programa que escribe por pantalla Hola mundo en lenguaje Pascal):
PROGRAM HolaMundo;
BEGIN
Writeln('Hola, mundo!');
END.
lenguajes de cuarta generacin (4GL)
En los aos 70 se empez a utilizar ste trmino para hablar de lenguajes en los
que apenas hay cdigo y en su lugar aparecen indicaciones sobre qu es lo que el
programa debe de obtener. Se consideraba que el lenguaje SQL (muy utilizado
en las bases de datos) y sus derivados eran de cuarta generacin. Los lenguajes
de consulta de datos, creacin de formularios, informes,... son lenguajes de
cuarto nivel. Aparecieron con los sistemas de base de datos
Actualmente se consideran lenguajes de ste tipo a aquellos lenguajes que se
programan sin escribir casi cdigo (lenguajes visuales), mientras que tambin se
propone que ste nombre se reserve a los lenguajes orientados a objetos.
(26)
(27)
fundamentos de programacin
(Unidad 1) algoritmos y programas
(1.6.3) intrpretes
A la hora de convertir un programa en cdigo mquina, se pueden utilizar dos
tipos de software: intrpretes y compiladores.
En el caso de los intrpretes se convierte cada lnea a cdigo mquina y se
ejecuta ese cdigo mquina antes de convertir la siguiente lnea. De esa forma si
las dos primeras lneas son correctas y la tercera tiene un fallo de sintaxis,
veramos el resultado de las dos primeras lneas y al llegar a la tercera se nos
notificara el fallo y finalizara la ejecucin.
El intrprete hace una simulacin de modo que parece que la mquina
entiende directamente las instrucciones del lenguaje, pareciendo que ejecuta
cada instruccin (como si fuese cdigo mquina directo).
El BASIC era un lenguaje interpretado, se traduca lnea a lnea. Hoy en da la
mayora de los lenguajes integrados en pginas web son interpretados, la razn
es que como la descarga de Internet es lenta, es mejor que las instrucciones se
vayan traduciendo segn van llegando en lugar de cargar todas en el ordenador.
Por eso lenguajes como JavaScript (o incluso, en parte, Java) son interpretados.
proceso
Un programa que se convierte a cdigo mquina mediante un intrprete sigue
estos pasos:
(1)
(2)
Comprueba si es correcta
(3)
(4)
(5)
ventajas
(29)
fundamentos de programacin
(Unidad 1) algoritmos y programas
No hace falta cargar todas las lneas para empezar a ver resultados (lo
que hace que sea una tcnica idnea para programas que se cargan
desde Internet)
desventajas
una sola lnea cada vez. El cdigo optimizado permite estudiar varias
lneas a la vez para producir el mejor cdigo mquina posible, por ello
no es posible mediante el uso de intrpretes.
(1.6.4) compiladores
Se trata de software que traduce las instrucciones de un lenguaje de
programacin de alto nivel a cdigo mquina. La diferencia con los intrpretes
reside en que se analizan todas las lneas antes de empezar la traduccin.
Durante muchos aos, los lenguajes potentes han sido compilados. El uso
masivo de Internet ha propiciado que esta tcnica a veces no sea adecuada y
haya lenguajes modernos interpretados o semi-interpretados, mitad se compila
hacia un cdigo intermedio y luego se interpreta lnea a lnea (esta tcnica la
siguen Java y los lenguajes de la plataforma .NET de Microsoft).
ventajas
(30)
(31)
fundamentos de programacin
(Unidad 1) algoritmos y programas
(32)
(33)