Introducción A La Algoritmia y Programación PDF
Introducción A La Algoritmia y Programación PDF
Introducción A La Algoritmia y Programación PDF
1. Introducción
Esta sección se enfocará en resolver algunos temas conceptuales sobre la
construcción de algoritmos y programas. Como es de esperar en primer lugar
hay que tener muy en claro con qué conceptos se estará trabajando.
compilador, y hay que destacar que existe un compilador por cada lenguaje que
necesite ser compilado. Por ejemplo el lenguaje de programación C posee su
propio compilador, el lenguaje de programación Pascal a su vez tiene su propio
compilador, y ası́ sucesivamente. Este proceso puede verse en la Figura 9, la
entrada del proceso de compilación es un archivo fuente y la salida del mismo es
un archivo ejecutable.
Esta es una buena pregunta, muchos creen que programar es sentarse delante
de una computadora y comenzar a escribir instrucciones indiscriminadamente
hasta llegar a la solución del problema... Bueno justamente eso no es programar.
Como dijo Martin Fowler:
8 Algoritmos y Programacón I - 75.40 - Curso. Méndez
2. El Pseudo-Código
Uno de los pasos en la resolución de problemas con una computadora es la
especificación de un algoritmo. Existen varias formas de especificar o describir
un algoritmo. Para estar en concordancia con [1] usaremos pseudocódigo.
3. Variables
Desde el punto de vista de la algoritmia una variable es una entidad que
puede almacenar un valor, y dicho valor puede ser accedido y/o modificado a lo
largo del algoritmo. Esta entidad se caracteriza por tener un identificador único.
Desde el punto de vista de la programación como se ha visto en la Sección 1.2
una de las componentes de una computadora es su memoria principal. Según [7]
las memorias principales de una computadora en la actualidad se conforman por
celdas semiconductoras que poseen tres propiedades :
1. Presentan dos estados estables que pueden emplearse para representar un 1
y/o un 0.
2. Se puede escribir en ellas para establecer su estado.
3. Puede leerse para determinar en qué estado se encuentra.
Dadas estas caracterı́sticas, cada celda de memoria se debe poder acceder para
determinar o establecer su estado, para ello cada una de estas celdas posee una
dirección, que la identifica de las otras, esta dirección es un número. A lo largo
de estos 60 años de evolución de las computadores se determinó hacia 1958, que
la unidad mı́nima de acceso a la memoria principal de una computadora serı́an 8
celdas lo equivalente a 8 bits de información, esta medida se denominó byte (1by-
te = 8 bits), forjado por F. P. Brooks y otros en el artı́culo [3]. Una variable es
un conjunto de celdas de memoria asociado con un nombre simbólico (un identi-
ficador), que contiene alguna cantidad conocida o desconocida de información
a la que comúnmente se refiere como valor . El nombre de la variable es la forma
habitual de hacer referencia al valor almacenado; esta separación de nombre y
contenido permite que el nombre sea utilizado de manera independiente de la
información exacta que representa.
Introducción a la Algoritmia y Programación 9
Asignación Una de las acciones que se pueden realizar sobre una variable se de-
nomina Asignación. La asignación permite al programador establecer el valor o
contenido que debe almacenar dicha variable. Para ello se utiliza en pseudocódi-
go el sı́mbolo ← , por ejemplo si se quisiera que la variable contador almacene
el valor 1 se debe realizar de la siguiente manera:
contador ← 1
contador ← contador + 1
4. Tipos de Datos
entero, número real, caracter, etc.). Para ello se utiliza la siguiente notación en
pseudocódigo, en la sección de declaraciones de variables que más adelante se
describe:
u n a V a r i a b l e : unTipoDeDato ;
o t r a V a r i a b l e : otroTipoDeDatos ;
Algunos ejemplos reales de definición de variables en pseudocódigo:
unValor : e n t e r o ;
otroValor : entero ;
areaCirculo : real ;
Nombres Reveladores
Evitar la Desinformación
Nombres Distinguibles
Nombres Fáciles de Buscar
No Te Hagas el Canchero
Una Sola Palabra por Concepto
Evitar los Nombres Genéricos
5. Constantes
P I = 3,141592
e = 2,718228
Introducción a la Algoritmia y Programación 11
6. Operadores
Un operador es un caracter o grupo de caracteres que actúa sobre una, dos
o más variables y/o constantes para realizar una determinada operación con un
determinado resultado.
7. Expresiones
“Las expresiones son combinaciones de constantes, variables, sı́mbolos de
operación, paréntesis y nombres de funciones especiales. Las mismas ideas son
utilizadas en notación matemática tradicional. Una expresión consta de operan-
dos y operadores. Según sea el tipo de objetos que manipulan, las expresiones se
clasifican en:
aritméticas
12 Algoritmos y Programacón I - 75.40 - Curso. Méndez
relacionales
lógicas
carácter
8. Acciones Primitivas
9. Estructuras de Control
Secuenciales
Selectivas
Iterativas
El orden en que se ejecutan las distintas instrucciones en un algoritmo o progra-
ma se denomina flujo de control, el flujo de control normal de un programa/al-
goritmo es secuencial. Esto quiere decir que se ejecuta una acción o instrucción
y luego la siguiente en orden de aparición. Las estructuras de control permi-
ten determinar el orden de ejecución de las acciones o instrucciones de un pro-
grama/algoritmo, proporcionando a dichos algoritmos la capacidad de ejecutar
distintas acciones/instrucciones según situaciones diferentes [4].
si simple
s i ( e x p r e s i o n ) entonces accion ;
s i ( e x p r e s i o n ) entonces
inicio
accion1 ;
accion2 ;
14 Algoritmos y Programacón I - 75.40 - Curso. Méndez
accion3 ;
...
accionj ;
fin
Si - Sino
s i ( e x p r e s i o n ) entonces
accion1 ;
sino
accion2 ;
s i ( e x p r e s i o n ) entonces
accion1
sino s i ( e x p r e s i o n 2 ) entonces
accion2
sino s i ( e x p r e s i o n 3 ) entonces
accion3
sino s i ( e x p r e s i o n 4 ) entonces
accion4
sino
accion5 ;
segun - caso Esta estructura de control surge debido situaciones en las cuales
se deben realizar un bloque de acciones, o al menos una acción diferente, para
cada valor/es posible/es de una variable. Lógicamente se podrı́a seguir utilizando
un si - sino si, pero el código rápidamente perderı́a claridad al repetir múltiples
veces siempre la misma pregunta: cual es el valor de la misma variable. Con
un segun se puede agrupar a todos los si en una estructura clara que muestra
sencillamente toda la información relevante de lo que esta sucediendo.
Ejemplo de uso:
segun ( v a r i a b l e )
inicio
caso valor1 :
a c c i o n 1 ; // O Bloque De Acciones
// Que Se E j e c u t a
// S i V a r i a b l e Es i g u a l A Valor1
caso valor2 :
accion2 ; // O Bloque De Acciones
// Que Se E j e c u t a
// S i V a r i a b l e Es i g u a l A Valor2
...
...
c a s o valorN :
accionN ; // O Bloque De Acciones
// Que Se E j e c u t a
// S i V a r i a b l e Es i g u a l A ValorN
default :
accionDefault ; // Bloque De Acciones Que Se
// E j e c u t a S i El Valor De La V a r i a b l e
//Es D i s t i n t o A Todos
// Los V a l o r e s De Los Case Dados
f i n segun
del bloque. Este tipo de estructura de control suele denominarse en inglés loop
y en español ciclo o bucle. Funciona de la siguiente manera:
Mientras ( e x p r e s i o n ) Hacer a c c i o n ;
mientras ( e x p r e s i o n ) hacer
inicio
accion1 ;
accion2 ;
...
accionj ;
fin
repe tir
accion
hasta ( e x p r e s i o n ) ;
repe tir
accion1 ;
accion2 ;
...
accionj ;
hasta ( e x p r e s i o n ) ;
Introducción a la Algoritmia y Programación 17
Const
UnaConstante=UnValor ;
Var
UnaVariable : unTipoDeDato ;
O t r a V a r i a b l e : otroTipoDeDatos ;
inicio
Accion1 ;
Accion2 ;
Accion3 ;
Accion4 ;
Accion5 ;
Fin
18 Algoritmos y Programacón I - 75.40 - Curso. Méndez
10.1. Ejemplos
En esta sección se muestran algunos ejemplos de programas que contiene
entrada y salida de datos. Además se presentan algunos ejemplos básicos en los
que se utilizan también las estructuras de control.
Para poder validar los resultados de los ejercicios realizados en pseudocódigo
se recomienda descargar PSEint un entorno de desarrollo hecho para especificar
algoritmos en pseudocódigo, puede descargarse de : PSEint. Nota: existen mu-
chas formas de solucionar cualquiera de los ejercicios dados, la que se propone
es una opción de muchas.
Introducción a la Algoritmia y Programación 19
Var
unValor : e n t e r o ;
inicio
e s c r i b i r ( ” I n g r e s e un v a l o r e n t e r o por t e c l a d o ” ) ;
l e e r ( unValor ) ;
e s c r i b i r ( ” e l numero i n g r e s a d o e s ” , unValor )
Fin
Nota 1: Una regla no escrita pero muy útil a la hora de programar es re-
cordar que ”siempre antes de una instrucción leer() tiene que ir una
instrucción escribir()”.
20 Algoritmos y Programacón I - 75.40 - Curso. Méndez
Ejemplo 2 Realizar un algoritmo que dados dos números enteros que se ingresan
por teclado muestre el valor de la suma de ambos. Resolución versión1:
Algoritmo EjemploDos ;
Var
unValor : e n t e r o ;
otroValor : entero
suma : e n t e r o l a r g o ;
inicio
e s c r i b i r ( ” I n g r e s e un v a l o r e n t e r o por t e c l a d o ” ) ;
l e e r ( unValor ) ;
e s c r i b i r ( ” I n g r e s e o t r o v a l o r e n t e r o por t e c l a d o ” ) ;
leer ( otroValor ) ;
suma← unValor+o t r o V a l o r ;
e s c r i b i r ( ” e l numero i n g r e s a d o e s ” , suma ) ;
Fin
Resolución versión2:
Algoritmo EjemploDos ;
Var
unValor : e n t e r o ;
otroValor : entero
inicio
e s c r i b i r ( ” I n g r e s e un v a l o r e n t e r o por t e c l a d o ” ) ;
l e e r ( unValor ) ;
e s c r i b i r ( ” I n g r e s e o t r o v a l o r e n t e r o por t e c l a d o ” ) ;
leer ( otroValor ) ;
e s c r i b i r ( ” e l numero i n g r e s a d o e s ” , unValor+o t r o V a l o r ) ;
Fin
Introducción a la Algoritmia y Programación 21
Ejemplo 3 Desarrollar un algoritmo que permita leer dos números enteros por
teclado y emitir los resultados de las siguientes operaciones:
1. La suma de ambos.
2. La resta del primero menos el segundo.
3. La multiplicación de ambos.
Algoritmo suma
var numeroUno : e n t e r o ;
numeroDos : e n t e r o ;
Inicio
Escribir ( ” i n g r e s e un numero e n t e r o ” ) ;
Leer ( numeroUno ) ;
Escribir ( ” i n g r e s e o t r o numero e n t e r o ” ) ;
Leer ( numeroDos ) ;
Escribir ( ’ La suma de l o s numeros i n g r e s a d o s e s : ’ , numeroUno+numeroDos ) ;
Escribir ( ’ La r e s t a d e l p r i m e r o menos e l segundo e s : ’ , numeroUno−numeroDos ) ;
Escribir ( ’ La m u l t i p l i c a c i o n de ambos numeros e s : ’ , numeroUno∗numeroDos ) ;
Fin
Ejemplo 4 Leer una secuencia de números reales que termina con un cero.
Imprimir los datos a medida que se los ingresa junto con la suma parcial de los
mismos.(por Lautaro Royan modificado por Mariano Méndez)
A l g or t i m o sumaparcial ;
var
numero : r e a l ; // v a r i a b l e i n g r e s a d a por e l u s u a r i o
s u m a P a r c i a l : r e a l ; // v a r i a b l e de l a suma p a r c i a l
Inicio
s u m a P a r c i a l←0 ;
e s c r i b i r ( ’ I n g r e s a r un numero , para t e r m i n a r i n g r e s e 0 ’ ) ;
l e e r ( numero )
Mientras ( numero<>0) Hacer
inicio
e s c r i b i r ( ’ numero i n g r e s a d o : ’ , numero ) ;
s u m a P a r c i a l←s u m a P a r c i a l+numero ;
e s c r i b i r ( ’ suma p a r c i a l : ’ , s u m a P a r c i a l ) ;
l e e r ( numero ) ;
FinMientras
Fin .
22 Algoritmos y Programacón I - 75.40 - Curso. Méndez
var
numero , mayor1 , mayor2 , mayor3 : Entero ;
Inicio
e s c r i b i r ( ” I n g r e s e un número : ” ) ;
l e e r ( numero ) ;
mayor1 ← numero ;
mayor2 ← numero ;
mayor3 ← numero ;
mientras ( 0 < > numero ) Hacer
Inicio
s i ( mayor1 < = numero ) Entonces
inicio
mayor3 ← mayor2 ;
mayor2 ← mayor1 ;
mayor1 ← numero ;
fin
sino s i ( mayor2 < = numero ) entonces
inicio
mayor3 ← mayor2 ;
mayor2 ← numero ;
fin
Sino s i ( mayor3 < numero ) Entonces
mayor3 ← numero ;
finSi
fin si
finSi
e s c r i b i r ( ” I n g r e s e e l s i g u i e n t e número ( l a s e r i e t e r m i n a i n g r e s a n d o
l e e r ( numero ) ;
fin
e s c r i b i r ( ” Los t r e s números mayores son : ” , mayor1 , \ ” , \ ” , mayor2 , ” , ” , may
Fin .
Introducción a la Algoritmia y Programación 23
// c u e r p o p r i n c i p a l
Inicio
Factorial ← 1;
Escribir ( ” I n g r e s e un numero para c a l c u l a r su f a c t o r i a l : ” ) ;
Leer ( numero ) ;
Para i ← 1 hasta numero hacer
Factorial ← Factorial ∗ i ;
Nota: observar que para el caso de N=0 también cumple y no se trata como
caso especial, pues si es cero, no entra en la iteración del “Para”.
24 Algoritmos y Programacón I - 75.40 - Curso. Méndez
Ejemplo:
Radio = 3
Longitud = 2 ∗ π ∗ radio = 2 ∗ 3,1416 ∗ 3 = 18,8496
Area = π ∗ radio2 = 3,1416 ∗ 32 = 28,2744
2. Diseño del algoritmo:
Algoritmo c i r c u l o ;
Const
pi =3.1416;
Var
radio : real ;
longitud : real ;
area : r e a l ;
inicio
longitud ← 0;
area ← 0;
e s c r i b i r ( ” i n g r e s e e l v a l o r d e l r a d i o d e l cı́ r c u l o ” ) ;
leer ( radio ) ;
l o n g i t u d ← 2∗ p i ∗ r a d i o ;
area ← pi ∗ radio ∗ radio ;
e s c r i b i r ( ” La l o n g i t u d d e l c i r c u l o e s : ” , l o n g i t u d ) ;
e s c r i b i r ( ” El a r e a d e l c i r c u l o e s : ” , a r e a ) ;
fin .
Referencias
1. Luis Joyanes Aguilar. Fundamentos de programación: algoritmos, estructuras de
datos y objetos. 2008.
2. Sara Baase and Allen Van Gelder. Algoritmos Computacionales: Introducción al
análisis y diseño. 2002.
3. Frederick P Brooks Jr, Gerrit A Blaauw, and Wilfried Buchholz. Processing data
in bits and pieces. Electronic Computers, IRE Transactions on, (2):118–124, 1959.
4. Rafael Berlanga Llavori and José Manuel Iñesta Quereda. Introducción a la progra-
mación con Pascal. Number 2. Universitat Jaume I, 2000.
Introducción a la Algoritmia y Programación 25