Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Mdulo Informtica
ndice
Presentacin ............................................................................................................ 3
1.
Contenidos ...................................................................................................... 3
2.
Objetivos ......................................................................................................... 3
3.
Metodologa ..................................................................................................... 4
4.
5.
Cronograma .................................................................................................... 4
Mdulo Informtica
Presentacin
Este mdulo busca acercar al futuro estudiante de Licenciatura en Sistemas de
Informacin a los temas propios de la disciplina, con un enfoque
fundamentalmente prctico que destaca la importancia de la resolucin de
problemas utilizando computadoras.
Se inicia con la presentacin de los conceptos fundamentales de la Informtica,
definiciones, alcances y trminos propios de la disciplina.
Luego se abordan cuestiones relacionados con las unidades de medida de la
informacin almacenada, las caractersticas de los principales sistemas numricos
que estn relacionados con la Informtica, las conversiones y operaciones entre
los distintos sistemas, como temas de base para entender los temas propios de la
disciplina. Luego se realiza una introduccin a la resolucin de problemas
utilizando computadoras, mediante una aproximacin a los conceptos sobre datos
y operaciones con los datos, y el concepto de algoritmos, que permitirn introducir
una metodologa sencilla para la construccin de soluciones factibles de ser
implementadas, posteriormente, en una computadora.
1. Contenidos
Informtica: definicin, alcances. Informacin. Carcter y dato. Unidades de
medida de la informacin. La computadora: hardware y software. Programas e
instrucciones. Unidades de medida de la informacin almacenada.
Sistemas numricos. Conversiones y operaciones entre sistemas.
Datos y operaciones. Evaluacin de expresiones.
Algoritmos: concepto, caractersticas. Estructuras de control: secuencia, seleccin,
repeticin.
2. Objetivos
Que el alumno ingresante a la Licenciatura en Sistemas de Informacin:
Mdulo Informtica
3. Metodologa
Se dictarn clases fundamentalmente de tipo prctica, enfocadas en lograr
conocimiento de tipo procedimental, con el objetivo de ir afianzando en el alumno
destrezas que le permitan enfrentar con xito las actividades formales de la
carrera.
Los temas tendrn una breve introduccin de los conceptos tericos, a cargo del
docente-tutor, y luego se propondr a los alumnos la resolucin de las guas de
ejercicios. Los docentes estarn a disposicin de los alumnos para las dudas y
dificultades que se planteen. Los ejercicios sern resueltos en la pizarra por los
propios alumnos y puestos a consideracin de la clase, el docente-tutor atender
las consultas que se realicen en relacin a los resultados o procedimientos
involucrados.
5. Cronograma
1 a 3 de febrero (3 das)
Gua 1
6 al 10 de febrero (5 das)
Gua 2
22 al 24 y 28 y 29 de febrero (5 das)
Gua 3
1y 2, 5 al 8/03 (6 das)
Gua 4
6/2/2012:
22/2/2012:
9 y 10/03:
Curso de Nivelacin
n y Ambientacin 2012
FACENA - UNNE
Mdulo Informtica
Conceptos tericos
ericos
1. Informtica
ca
Por Informtica se entiende al Conjunto de conocimientos cientficos
ntficos y tcnicas
que hacen posible
le el tratamiento automtico y racional de la informacin
rmacin por medio
de computadoras.
s.
Justamente la palabra informtica, de origen francs, est formada por la
contraccin de los
os vocablos: INFORmacin y autoMTICA.
En esta definicin
n se destacan dos trminos relevantes:
-
Tratamiento
ento automtico: Se refiere a que son las propias
pias mquinas (las
computadoras)
adoras) las que realizan las tareas de captura,
ptura, proceso y
presentacin
acin de la informacin.
Tratamiento
ento raciona
racional: Se refiere a que todo el proceso
o est regulado a
travs de una secuencia de instrucciones (programa)
a) que siguen el
razonamiento
miento humano.
El objetivo marcado
cado es el tratamiento automtico de la informacin
macin y el medio
utilizado para lograrlo
grarlo es la computadora.
Por lo tanto, para
ara entender en qu consiste la Informtica, es imprescindible
conocer:
-
Los distintos
ntos tipos de informacin y datos que se manejarn
arn (sistem
(sistemas de
representacin,
ntacin, archivos y bases de datos).
Los procesos
cesos y mtodos aplicados a la informacin o datos
os (programas).
de
las
computadoras
utadoras
sus
Los sistemas
emas de comunicacin que permitirn tratar la informacin a
distancia
a y compartirla de forma confiable (redes de comunicacin de
datos).
Conocer con detalle
talle estos aspectos y la relacin que existe entre
tre ellos, permitir
entender cmo se realiza el tratamiento automtico de la informacin
rmacin utilizando
computadoras.
En la definicin se hace mencin a la utilizacin de computadoras.
as. En realidad, el
trmino es ms amplio y debe entenderse como sistema informtico,
tico, siendo este
un conjunto de recursos
ecursos destinados al tratamiento de la informacin.
n.
La Informtica
ca como disciplina
La Association for Computing Machinery (ACM) y la IEEE
IEEE-C
Computer Society
elaboraron una serie de recomendaciones sobre la Currcula de
e Computacin
Computacin, y
en este documento
ento especifican la siguiente definicin (se aclara
lara que en este
contexto, las palabras
abras Computacin e Informtica se utilizan como
o sinnimos):
La Computacin
n como disciplina comprende el estudio de procesos
cesos algortmicos
que describen y transforman a la informacin; estudian su teora,
a, anlisis, diseo,
eficiencia, implementacin
mentacin y aplicacin. La pregunta fundamental
tal subyacente en
toda la computacin
cin es: qu
qu puede ser automatizado (en forma eficiente)?
Esta disciplina naci
aci al inicio de la dcada de 1940 con la conjuncin
uncin de la teora
de los algoritmos,
os, la lgica matemtica y la invencin de la computadora
electrnica con programa almacenado.
Licenciatura en Sistemas
stemas de Informacin
Mdulo Informtica
Informacin
Como se ha notado, la Informtica tiene como objetivo principal proporcionar
informacin en forma automatizada, por lo tanto es necesario tener claro qu se
entiende por informacin.
Por una parte, se puede denominar informacin a la comunicacin o adquisicin
de conocimientos que permiten ampliar o precisar los que se poseen sobre una
materia determinada. Por ejemplo, porcentaje de alumnos que aprobaron la
materia Redes.
Por otra parte, algunos autores denominan informacin al conjunto de smbolos
con los que se representan convencionalmente hechos, objetos e ideas. Este
enfoque es ms material y podra llevar a pensar que cualquier conjunto de
smbolos es informacin aunque no tenga sentido. Por ejemplo, un archivo de
datos de alumnos almacenado en el disco rgido.
En general, la naturaleza de la informacin se
comprende mejor en un escenario de comunicacin,
donde se da por supuesto un contexto cognitivo
compartido por un emisor y un receptor, y se transmiten
mensajes (informaciones) a travs de un canal que
propaga smbolos, de manera tal que se presenta:
-
Mdulo Informtica
Datos del
problema
Solucin
Smbolos de
entrada
Smbolos de
salida
Proceso
informtico
Numricos: 0,1,2, 9
Alfabticos: a, b, c,, z, A, B, C, Z
Especiales: *, /, +, #,
Mdulo Informtica
La computadora
La Informtica trata exclusivamente el procesamiento realizado por una
computadora.
Computador, computadora u ordenador (se consideran
trminos equivalentes), se define como una mquina
capaz de aceptar unos datos de entrada, efectuar con
ellos operaciones lgicas y aritmticas, y proporcionar
la informacin resultante a travs de un medio de
salida; todo ello sin intervencin de un operador
humano y bajo el control de un programa de
instrucciones previamente almacenado en el propio
computador.
Las operaciones lgicas permiten comparar valores o determinar condiciones de
verdad o falsedad, y las aritmticas son anlogas a las usuales en matemtica
(suma, multiplicacin, etc.).
Programas e instrucciones
Una instruccin es un conjunto de smbolos que representa una orden de
operacin o tratamiento para la computadora. En general, estas operaciones se
realizan con datos. Por ejemplo: Sumar A + B.
Un programa es un conjunto ordenado de instrucciones que se dan a la
computadora indicndole las operaciones o tareas que se desea que realice.
Las instrucciones se forman con elementos o smbolos tomados de un
determinado repertorio, el juego de instrucciones de una CPU particular, y se
construyen siguiendo unas reglas precisas.
Los programas son formulaciones concretas de algoritmos abstractos (soluciones
expresadas en trminos generales), que utilizan representaciones de datos e
instrucciones especficas de la plataforma en la que van a ser implementados.
Ejemplos de programas son aquellos que permiten emitir un cheque de pago para
los empleados de una empresa, operar las funciones de un cajero automtico,
emitir resmenes de tarjetas de crdito, realizar el clculo de la trayectoria de un
misil, obtener un pronstico del tiempo, gestionar correo electrnico, software de
redes sociales (Facebook), editor de imgenes, etc.
Todo lo relativo a los smbolos y reglas para escribir programas se denomina
lenguaje de programacin. Por ejemplo: Pascal, C, Java, Python, etc.
Hardware y software
En general, en una computadora o en un sistema
informtico, se encuentran dos partes fundamentales
que interactan entre s:
El elemento fsico o hardware: Es el conjunto de
elementos materiales: computadoras, impresoras,
perifricos, redes de comunicacin, etc.
Mdulo Informtica
Se utiliza la codificacin para asignar valores a los estados: el valor numrico "0" si
la lmpara est apagada y "1" cuando est encendida. Este cdigo sencillo
permite transmitir informacin. Por ejemplo, si establecemos que una lmpara
prendida en la puerta de una habitacin significa "no se puede entrar" estaremos
recibiendo un mensaje perfectamente definido. Una sola lmpara permite codificar
dos informaciones distintas (por ejemplo: "se puede entrar" y "no se puede entrar").
2
Mdulo Informtica
mtica
Figura 3. Representacin
R
digital de la letra A
Figura 4. Representacin
presentacin interna de la informacin
10
Mdulo Informtica
EQUIVALENCIA
1 Byte
8 bits
1 Kilobyte (KB)
1024 bytes = 2
EJEMPLOS
Una letra, un nmero o un smbolo
10
bytes
Un archivo de texto, 20 KB
20
1 Megabyte (MB)
1024 KB = 2 bytes =
1.048.576 bytes
1 Gigabyte (GB)
1024 MB = 2 bytes =
1.073.741.824 bytes
1 Terabyte (TB)
1024 GB = 2
1 Petabyte (PB)
1024 TB = 2
1 Exabyte (EB)
1024 PB = 2
60
bytes
La informacin almacenada en el
mundo (al 2011) es de
aproximadamente 300 EB
1 Zettabyte (ZB)
1024 EB = 2
70
bytes
1 YottaBytes
1024 ZB = 2
80
bytes
Un archivo mp3, 3 MB
30
40
bytes
800 pelculas, 1 TB
50
bytes
http://vistoalreves.es/tag/megabyte/
11
Mdulo Informtica
mtica
2. Sistemas Numricos
cos
El estudio de las computadoras
oras y del procesamiento de
datos requiere algn conocimiento
ocimiento de los sistemas
numricos, ya que stos constituyen
stituyen la base de todas las
transformaciones de informacin
macin que ocurren en el
interior de la computadora. Los sistemas numricos que
interesa conocer son:
c
por los smbolos 1 y 0, es el que utiliza
iza la
El sistema binario, compuesto
computadora en su funcionamiento interno. La computadora opera
ra en
binario debido a qu
ue sus componentes fsicos, pueden representar
sentar
solamente dos estados
dos de condicin: apagado/prendido, abierto/cerrado,
rrado,
magnetizado/no magnetizado,
netizado, etc. Estados de condicin a los que se les
asigna el valor 1 0.
El sistema decimal, compuesto por los smbolos 0 al 9, es el sistema
stema
numrico que utilizamos
mos a diario.
El sistema hexadecimal
cimal, con 16 smbolos, ofrece la posibilidad
d de
comprimir los nmeros
os binarios para hacerlos ms sencillos de tratar.
Los sistemas numricos difieren
ieren en cuanto a la disposicin y al tipo de
e los
smbolos que utilizan.
Sistema decimal
El ms importante factor en
n el desarrollo de la
ciencia y la matemtica fue
ue la invencin del
sistema decimal de numeracin.
acin. Este sistema
utiliza diez smbolos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,
denominados generalmente "cifras decimales".
Quizs deriva de la cantidad
ad de dedos de las
manos que se puede utilizar
zar como un baco
primitivo.
Sistema binario
El sistema numrico binario (de base 2) usa solamente dos smbolos
diferentes, 0 y 1, que significan
ifican "ninguna unidad" y "una unidad"
respectivamente. A diferencia
a del sistema decimal, el valor relativo de
los dgitos binarios a la izquierda
zquierda del dgito menos significativo
aumenta en una potencia de
e dos cada vez, en lugar de hacerlo en
potencias de diez.
Especficamente, los valores de posicin de la parte entera de un nmero binario
inario
son las potencias positivas de
e dos:
4
3
2
1
0
2
2
2
2
2
(de derecha a izquierda)
Y los valores de posicin de
e la parte fraccionaria de un nmero binario son
on las
potencias negativas de dos:
-1
-2
-3
-4
2
2
2
2
(de izquierda a derecha).
Por ejemplo, el nmero binario
o 101101,11 =
=
1x 2
0x 2
1x 32
1x 2
1 2
1x
0x 2
1x8
1x4
12
1x 2
1x 2
-1
1x1
0,5 + 1
-2
1x 2
1 x 0,25
=
=
Mdulo Informtica
Sistema hexadecimal
Los nmeros binarios de gran magnitud consisten en largas series de ceros y unos,
que son difciles de interpretar y manejar. Como un medio conveniente para
representar esos nmeros binarios de gran magnitud se utiliza el sistema numrico
hexadecimal (de base 16). Cada dgito hexadecimal representa cuatro dgitos
binarios.
La notacin hexadecimal requiere el uso de 16 smbolos
para representar 16 valores numricos. Dado que el sistema
decimal proporciona solamente diez smbolos numricos (de
0 a 9), se necesitan seis smbolos adicionales para
representar los valores restantes. Se han adoptado para este
fin las letras A, B, C, D, E, y F.
La lista completa de smbolos hexadecimales consta, por lo
tanto, del 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E y F, en
orden ascendente de valor. La tabla 1 muestra los nmeros
decimales, hexadecimales y binarios equivalentes (hasta el nmero 31). Ntese
que al alcanzarse el nmero decimal 16, se terminan los smbolos hexadecimales
y se coloca un "1 de acarreo" delante de cada smbolo hexadecimal en el segundo
ciclo, que abarca los nmeros decimales de 16 a 31.
Tabla 2: Equivalencias entre los sistemas decimal, hexadecimal y binario
Decimal
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Hexadecimal
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
10
11
12
13
14
15
16
17
18
Binario
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111
10000
10001
10010
10011
10100
10101
10110
10111
11000
13
Mdulo Informtica
25
26
27
28
29
30
31
19
1A
1B
1C
1D
1E
1F
11001
11010
11011
11100
11101
11110
11111
N=
n
i=
i
(
dgito
)
x
(
base
)
i
d
- base = 10
- i = posicin respecto de la coma
- d = nro. de dgitos a la derecha de la coma
- n = nro. de dgitos a la izquierda de la coma, menos 1
- dgito = cada uno de los que componen el nmero
Supongamos una cantidad expresada en un sistema cuya base es B y
representamos por Xi, cada uno de los dgitos que contiene dicha cantidad, donde
el subndice indica la posicin del dgito con respecto a la coma decimal, posicin
que hacia la izquierda de la coma se numera desde 0 en adelante y de 1 en 1, y
hacia la derecha se enumera desde -1 y con incremento -1.
El Teorema Fundamental de la Numeracin relaciona una cantidad expresada en
cualquier sistema de numeracin, con la misma cantidad expresada en el sistema
decimal:
4
3
2
1
0
N =..........+ X4 * B + X3* B + X2* B + X1* B + X0* B
-1
-2
-3
-4
+ X-1* B + X-2* B + X-3* B + X-4* B + .......
Ejemplo: 201,13 es una cantidad expresada en un sistema de numeracin en base
3. Cul ser la representacin de la misma cantidad en el sistema decimal?
2
1
0
-1
201,1 = 2 * 3 + 0 * 3 + 1 * 3 + 1 * 3
Multiplicado por:
Valor posicional
0,25
0,5
0,25
-1
-2
14
Mdulo Informtica
Ej. AE1B = A x 16 + E x 16 + 1 x 16 + B x 16
= 10 x 4096 + 14 x 256 + 1 x 16 + 11 x 1
=
40960 +
3584 +
16 +
11 = (44571)10
c) Decimal a binario: Para cambiar de base decimal a cualquier otra base se
divide el nmero que se quiere convertir por la base del sistema al que se
quiere cambiar. Los resultados que se obtengan en el cociente deben seguir
dividindose hasta que este resultado sea menor que la base. Los residuos que
resulten de todas las divisiones en orden progresivo se toman de derecha a
izquierda para conformar el nmero binario resultante de la conversin.
Ejemplo: convertir el nmero decimal 39 a binario.
39 : 2 =
19
Resto =
19 : 2 =
Resto =
9:2=
Resto =
4:2=
Resto =
2:2=
Resto =
0
(100111)2
15
Mdulo Informtica
Operaciones aritmticas
Las reglas de la aritmtica son las mismas en todos los sistemas numricos de
posiciones de valor relativo. Por ello, basta slo recordar las reglas
correspondientes de la aritmtica decimal para poder efectuar operaciones
aritmticas con nmeros de cualquier otra base.
Suma binaria.
En esencia, la suma abrevia la operacin de contar. Sumamos dos dgitos
contando los valores de ambos dgitos en orden correlativo, o bien, lo que es ms
simple memorizando la suma de los dgitos mediante una tabla de sumar. Cuando
la suma de los dos dgitos excede los smbolos numricos disponibles de la
notacin (es decir, el lmite de cualquier posicin de dgito), se lleva un 1 a la
posicin de dgito inmediatamente superior. Por lo tanto, en el sistema decimal,
3+5 = 8, pero 9+1 =0 con acarreo de un 1 (es decir 10).
En el sistema binario hay solamente dos smbolos, 0 y 1. Por lo tanto, al sumar
1+1 en la notacin binaria se excede el lmite de la cuenta (ya que no hay otro
smbolo disponible) y, en consecuencia, el resultado es 0 con acarreo de un 1 a la
posicin de dgito inmediatamente superior.
En la computadora se implementa la operacin de suma mediante circuitos
lgicos digitales combinatorios.
Las reglas completas de la suma binaria son las siguientes:
Reglas de suma binaria:
0
10 (0 con acarreo de 1)
La ltima suma puede escribirse como diez, pero se lee "uno, cero")
La tabla de sumar binaria que se incluye a continuacin brinda una manera
conveniente de resumir estos resultados:
+
10
1 0 1
1 1 1 1
16
Mdulo Informtica
b) Suma con acarreo: Cuando la suma excede el mximo valor del sistema
numrico, en este caso 1, se produce un acarreo, es decir se traslada
una unidad a la columna siguiente, tal como se muestra en la siguiente
suma:
1
Acarreo
+
59
+
35
94
10
17
Mdulo Informtica
1
-
(minuendo)
(sustraendo)
(complemento)
+
1
0
1
+
1
(resultado)
35,625
21
14,625
18
Mdulo Informtica
Suma hexadecimal.
La suma en el sistema hexadecimal sigue las mismas reglas que la suma decimal
y la binaria. Trabajar con smbolos alfanumricos - nmeros y letras - parece
extrao al principio, dado que algunos resultados en la suma decimal tienen un
significado diferente en notacin hexadecimal. Por ejemplo, mientras 4+5 = 9 tanto
en el sistema decimal como en el hexadecimal, 7+8 = F (no 15) en la notacin
Hexadecimal. Cada vez que la suma de dos dgitos sobrepasa F (el smbolo
hexadecimal de mayor valor), se genera el acarreo de un 1 hacia la posicin de
dgito inmediatamente superior. De este modo, 7+9 = 10 (es decir, 0 con acarreo
de un 1), 9+9 = 12 (es decir, 2 con acarreo de un 1), C+9 = 15, y as
sucesivamente.
A continuacin se incluyen tres ejemplos de suma hexadecimal:
a)
9654
38,484
+ 4528
17,704
56,188(10)
DB7C
Esta suma muestra tambin acarreos pero como son cifras con decimales se
deben encolumnar los sumandos de acuerdo a la posicin de la coma decimal.
19
Mdulo Informtica
Resta hexadecimal.
La resta hexadecimal sigue las mismas reglas que la resta decimal y que la resta
binaria, con la salvedad que un acarreo o un pedido de 1 en la notacin
hexadecimal representa el nmero decimal 16.
Mtodo tradicional:
19
18
minuendo
sustraendo
C 4 1 A ,
b) Suma del complemento al minuendo:
1
5
20
Curso de Nivelacin
n y Ambientacin 2012
FACENA - UNNE
Mdulo Informtica
Numricos
os ((integer, real)
Lgicos ((boolean)
Carcterr ((char)
Licenciatura en Sistemas
stemas de Informacin
21
Mdulo Informtica
22
Mdulo Informtica
Expresiones
Las expresiones son combinaciones de constantes, variables, operadores,
parntesis y nombres de funciones. Maneja las mismas ideas que la notacin
matemtica convencional.
Por ejemplo: a + (b+3) + ^C. Los parntesis indican el orden de clculo y la ^
representa la raz cuadrada.
El resultado de cada expresin es un valor que se determina tomando los valores
de las variables y constantes implicadas y la ejecucin de las operaciones
23
Mdulo Informtica
Operacin
Suma
Resta
Multiplicacin
Divisin
**, ^, `
div
mod
Exponenciacin
divisin de enteros
resto de la divisin de enteros
24
Mdulo Informtica
14
84
42
45
b)
Expresiones booleanas
Significado
=
>
<
d
e
<>
igual
mayor que
menor que
mayor o igual que
menor o igual que
distinto de
(A-2) < (B-4) es falsa (reemplazando: (4-2) < (3-4), esto es 2 < -1, es
falso)
25
Mdulo Informtica
Operadores lgicos:
Los operadores lgicos o booleanos bsicos son no (not), y (and) y o (or). El
funcionamiento de estos operadores se muestra en la tabla siguiente:
Operador lgico
Expresin lgica
Significado
no (not)
no p (not p)
y (and)
p y q (p and q)
Conjuncin de p y q
o (or)
p o q (p or q)
Disyuncin de p y q
Negacin de p
AND
OR
NOT
Las definiciones de las operaciones no, y, o se resumen en las llamadas tablas de
verdad.
no a
ayb
aob
verdad
falso
verdad
verdad
verdad
verdad
verdad
verdad
falso
verdad
verdad
falso
falso
verdad
falso
verdad
falso
verdad
falso
falso
verdad
verdad
falso
Falso
falso
falso
falso
falso
Prioridad
Ms alta (primera ejecutada)
26
1.2.
Mdulo Informtica
Funciones
Descripcin
Tipo de
argumento
Resultado
Abs (x)
Valor absoluto de x
Entero o real
Idem
argumento
Cos (x)
Coseno de x
Entero o real
real
Sen (x)
Seno de x
Entero o real
real
Exp (x)
Exponencial de x
Entero o real
real
Log10 (x)
Logaritmo decimal
Entero o real
real
Ln (x)
Logaritmo neperiano
Entero o real
real
Redondeo (x)
Redondeo de x
Entero o real
entero
Cuadrado (x)
Cuadrado de x
Entero o real
Idem
argumento
Raiz2 (x)
Raz cuadrada de x
Entero o real
real
Trunc (x)
Truncamiento de x
Real
entero
Extrae (s,i,c)
Cadena, entero
cadena
Length (x)
cadena
entero
Las dos ltimas funciones de datos tipo string son frecuentes en los lenguajes de
programacin pero puede cambiar el nombre con el que se designa a la funcin.
Ejemplos:
Funcin
Resultado
Raiz2 (25)
Redondeo (6.6)
Abs (-12)
12
man
Length (nombre)
Anita
27
Mdulo Informtica
mtica
4. Algoritmos y Estructuras
ructuras de Control
Un algoritmo es un mtodo para resolver problemas. Ms
especficamente, es un conjunto
unto finito de reglas que dan
una secuencia de operaciones
es para resolver un problema
especfico.
El trmino proviene del matemtico
emtico persa Mohammed AlAl
khowarizmi que alcanz gran
n repercusin por el enunciado
de reglas paso a paso para
a sumar, restar, multiplicar y
dividir nmeros decimales.
Para llegar a la realizacin de un programa es necesario el diseo previo de un
algoritmo, de modo que sin algoritmo
lgoritmo no puede existir un programa.
Los algoritmos son independiente
dientes tanto del lenguaje de programacin en que
ue se
expresan como de la computador
adora que los ejecuta. En cada problema el algoritmo
oritmo
se puede expresar en un lenguaje
guaje diferente de programacin o ejecutarse en
n una
computadora distinta, sin embargo
mbargo el algoritmo ser siempre el mismo. As,
, por
ejemplo, en una analoga con
n la vida diaria, una receta de un plato de cocina
na se
puede expresar en espaol, ingls o francs, pero cualquiera sea el idioma
a, los
pasos para la elaboracin del plato se realizarn sin importar el idioma
a del
cocinero.
En la ciencia de la computacin
acin y en la programacin, los
lo algoritmos son ms
importantes que los lenguajes
es de programacin o las computadoras. Un lenguaje
guaje
de programacin es tan solo
olo un medio para expresar un algoritmo y una
computadora es solo un procesador para ejecutarlo. Tanto el lenguaje
e de
programacin como la computadora
utadora son los medios para obtener un fin: conseguir
seguir
que el algoritmo se ejecute y se efecte el proceso correspondiente.
Dada la importancia del algoritmo
ritmo en la ciencia de la computacin, un aspecto
o muy
importante ser el diseo de algoritmos. El diseo de la mayora de los algoritmos
itmos
requiere creatividad y conocimientos
mientos profundos de la tcnica de la programacin.
in.
28
Mdulo Informtica
Escritura de algoritmos
Una computadora solo es capaz de resolver un problema si se le indica paso a
paso las acciones que debe realizar. Estos pasos sucesivos constituyen, como ya
se vio, el algoritmo.
Escribir un algoritmo consiste en realizar una descripcin del mtodo o conjunto de
reglas que se propone para resolver un problema. Estas reglas tienen las
siguientes propiedades:
-
29
Mdulo Informtica
x1 =
b + b2
2a
4ac
x2 =
b2
2a
4ac
En este caso los datos de entrada son los coeficientes a, b y c, y los resultados
son los valores de x1 y x2 que se obtienen aplicando las operaciones indicadas en
la frmula.
Como se puede notar, las frmulas son especialmente tiles cuando los pasos a
seguir se pueden expresar como operaciones aritmticas y funciones matemticas.
Otra manera de representar un algoritmo es con diagramas de flujo. Constituyen
un recurso grfico, que facilita especialmente la visualizacin de alteraciones en el
flujo de control, pues utilizan flechas para indicar qu instruccin se debe ejecutar
a continuacin.
Utiliza distintos smbolos que determinan la forma de interpretar el contenido de
los mismos, tales como: instrucciones a ejecutar, condiciones para determinar el
siguiente paso del algoritmo, datos de entrada a obtener, resultados a emitir, etc.
Ejemplo:
El diagrama de flujo que representa el algoritmo para calcular la media aritmtica
de tres valores numricos es el siguiente:
30
Mdulo Informtica
Declaracin de variables
Antes de iniciar cada algoritmo se describir el conjunto de datos a utilizar, sean
estos de entrada, de salida, o para clculos intermedios o auxiliares. Habr
entonces una primera seccin donde se asignar un nombre y se indicar el tipo
de cada uno de ellos, y estas condiciones debern respetarse durante todo el
desarrollo del algoritmo.
VARIABLES
TIPO-1: var-11, , var-1n
TIPO-2: var-21, , var2n
31
Mdulo Informtica
Entrada y salida
La instruccin LEER captura datos de un dispositivo de entrada y los almacena en
la o las variables indicadas.
Es posible inicializar una variable (es decir, darle su primer valor luego de
declararla) mediante una operacin de lectura en lugar de una asignacin. Es
tambin una operacin destructiva.
Por ejemplo:
LEER A, B, C
Si se ingresan por teclado los valores 100, 50 y 30, entonces A=100, B=50, C=30.
La instruccin ESCRIBIR indica que los datos deben enviarse a un dispositivo de
salida.
Por ejemplo:
ESCRIBIR A, B, C
Tomando los valores del ejemplo anterior, se mostrarn en pantalla los datos 100,
50 y 30 (generalmente separados por tabulaciones).
Para indicar que los resultados deben ser enviados a una impresora se puede usar
en su lugar la instruccin IMPRIMIR, que es anloga:
IMPRIMIR A, B, C
Tomando los valores del ejemplo anterior, se imprimirn los datos 100, 50 y 30.
En general puede utilizarse cualquier expresin como parmetro de una
instruccin de salida, pero no es una prctica recomendable, porque hace el
programa ms difcil de interpretar y mantener.
Por ejemplo:
ESCRIBIR venta_anual / dias_anio
puede ser la instruccin para mostrar un promedio, pero es ms comprensible:
promedio_diario = venta_anual / dias_anio
ESCRIBIR promedio_diario
Adems esta ltima opcin permite realizar otras operaciones con el valor
almacenado en promedio_diario, sin necesidad de calcularlo nuevamente.
Estructuras de control
Como ya se adelant, para resolver algunos problemas no basta con indicar un
conjunto secuencial de pasos a seguir, sino que a veces es necesario evaluar
condiciones y en consecuencia ejecutar o repetir la ejecucin de determinados
pasos.
Esto es posible utilizando estructuras de control, que permiten determinar en
tiempo de ejecucin cul debe ser la siguiente instruccin a ejecutar. Se llaman as
porque proporcionan un mecanismo para pasar el control de la ejecucin a otro
punto del algoritmo, que no necesariamente es el que aparece a continuacin,
alterando el flujo de control.
Las estructuras bsicas que permiten expresar cualquier algoritmo son tres:
secuencial, selectiva y repetitiva. Tambin existen otras derivadas de estas,
pero siempre pueden reducirse a las tres fundamentales.
Supngase que se desea calcular la tarifa a abonar por una comunicacin
telefnica, a partir del precio por minuto y la duracin de la llamada.
Un algoritmo sencillo ser:
32
Mdulo Informtica
VARIABLES
REAL: duracion, precio_minuto
REAL: tarifa
INICIO
LEER precio_minuto
LEER duracion
tarifa = precio_minuto * duracion
ESCRIBIR tarifa
FIN
En este algoritmo la estructura utilizada es la secuencia, que consiste en ejecutar
las instrucciones una a continuacin de la otra en el orden indicado.
INSTRUCCION1
INSTRUCCION2
INSTRUCCIONn
Secuencia
Supngase ahora que est vigente una promocin, de manera tal que si la
comunicacin dur ms de 10 minutos tiene un descuento del 10% en el precio
final.
En este caso es necesario que un grupo de instrucciones -las que permitirn
calcular y aplicar el descuento- se ejecuten de acuerdo a una condicin. Para ello
se utiliza una estructura selectiva:
VARIABLES
REAL: duracion, precio_minuto
REAL: tarifa
INICIO
LEER precio_minuto
LEER duracion
tarifa = precio_minuto * duracion
SI duracion > 10 ENTONCES
// aplicar descuento del 10%
tarifa = tarifa tarifa * 10 / 100
FIN-SI
ESCRIBIR TARIFA
FIN
La estructura selectiva permite ejecutar una o varias instrucciones solo cuando se
cumple una determinada condicin, es decir, si es verdadera una expresin lgica.
Tiene dos versiones:
33
Mdulo Informtica
CONDICION
INSTRUCCION1
INSTRUCCION2
INSTRUCCIONn
Alternativa simple
CONDICION
INSTRUCCION1
INSTRUCCION1
INSTRUCCION2
INSTRUCCION2
INSTRUCCIONn
INSTRUCCIONn
Alternativa doble
34
Mdulo Informtica
CONDICION
INSTRUCCION1
INSTRUCCION2
N
INSTRUCCIONn
Iteracin o repeticin
35
Mdulo Informtica
36
Mdulo Informtica
instruccin-n
Alternativa simple
SI condicin ENTONCES
instruccin-1
instruccin-n
FIN-SI
Alternativa doble
SI condicin ENTONCES
instruccin-1
instruccin-n
SINO
instruccin-1
instruccin-n
FIN-SI
Repeticin o iteracin
MIENTRAS condicin HACER
instruccin-1
instruccin-n
FIN-MIENTRAS
Donde:
-
37
Mdulo Informtica
Bibliografa
ACM. Computing Curricula 2005. ACM en:
http://www.acm.org/education/education/curric_vols/CC2005-March06Final.pdf
Dapozo, Gladys. Algoritmos y Estructuras de Datos I. Material de estudio de la
asignatura. 2011.
De Giusti, Armando. Algoritmos, datos y programas. Prentice Hall. 2001.
ISBN 987-9460-64-2.
Joyanes Aguilar, Luis. Fundamentos de Programacin. Algoritmos. Estructuras de
Datos y Objetos. Mc Graw-Hill. 1996. 2003. 3ra. Edicin. ISBN 84-481-3664-0.
Lage, Fernando y Cataldi, Zulma. Fundamentos de algoritmos y programacin. Nueva
Librera. 2008. ISBN 978-987-1104-63-5.
Llamas Bello, Csar. Introduccin a la Informtica. Ed. Thomson. 2004.
Perez Berr, Miriam y Cristina. Algoritmos y Programacin. Nueva Librera. 2007. ISBN
978-987-1104-46-8.
Prieto; Lloris; Torres. Introduccin a la Informtica. McGraw-Hill. 3ra. edicin. 2002.
Wirth, Niklaus. Algoritmos y Estructuras de Datos. Prentice Hall. 1987. ISBN 968-880113-5.
38