Documentos de Académico
Documentos de Profesional
Documentos de Cultura
UNIDAD I:
GENERALIDADES DE LOS
ALGORITMOS
INTRODUCCIN:
LA LGICA:
PROCEDIMIENTO:
Entrada:
Proceso:
Salida:
Un delicioso sndwich.
ALGORITMO:
1. Inicio
2. Conseguir dos rebanadas de pan, mayonesa, 1 rebanada jamn y de queso, lechuga y
rodajas de tomate.
3. Colocar mayonesa en una cara de cada rebanada de pan.
4. En una de las rebanadas colocar el jamn.
5. Encima del jamn colocar el queso.
6. Arriba del queso colocar la lechuga.
7. Sobre la lechuga poner el tomate
8. Con la otra rebanada cerrar tu sndwich
9. Listo ya tienes tu delicioso sndwich
10. Fin
Posiblemente alguien dir: antes de hacer una de las tareas propuestas es necesario hacer
otras, tales como:
7. Abrir tu correo e ir a la opcin enviar nuevo 8. En el rea en blanco escribir el texto que
se desee.
9. Llenar los campos de destinatario y asunto.
10. Seleccionar la opcin enviar.
11. Cerrar tu cuenta de correo electrnico.
12. Ahora ya as enviado tu correo.
13. Fin
METODOLOGA PARA RESOLVER PROBLEMAS A TRAVS DE COMPUTADORAS:
1.4
Las computadoras pueden ejecutar un gran nmero de operaciones a muy altas velocidades
y con intervencin mnima de seres humanos. Sin embargo, a una computadora se le debe
indicar exactamente qu operaciones debe ejecutar y en qu orden. A estos conjuntos de
instrucciones se les denomina programas para computadora y son elaborados por
programadores.
Un programa es una serie de instrucciones escritas en forma codificada que la
computadora puede traducir a su propio lenguaje.
La solucin de problemas por medio de computadora debe emplear la siguiente
metodologa:
Definicin del Problema: Esta fase est dada por el enunciado del problema, el
cual requiere una definicin clara y precisa. Es importante que se conozca lo que se
desea que realice la computadora; mientras esto no se conozca del todo no tiene
mucho caso continuar con la siguiente etapa.
Un algoritmo es una serie de pasos organizados que describe el proceso que se debe seguir,
para dar solucin a un problema especfico.
Los tipos de algoritmos son:
o
DEFINICIN DE ALGORITMO:
1.5
Secuencia finita de instrucciones, reglas o pasos que describen de forma precisa las
operaciones de un ordenador debe realizar para llevar a cabo un tarea en un tiempo
ms finito. [Donald E. Knuth, 1968]
Descripcin de un esquema de comportamiento expresado mediante un reportorio
finito de acciones y de informaciones elementales, identificadas, bien comprendidas
y realizables a priori. Este repertorio se denomina lxico [Pierre Scholl, 1988]
Un algoritmo es un conjunto finito de pasos definidos, estructurados en el tiempo y
formulados con base a un conjunto finito de reglas no ambiguas, que proveen un
procedimiento para dar la solucin o indicar la falta de esta a un problema en un
tiempo determinado. [Rodolfo Quispe-Otazu, 2004]
Tener una o ms salidas: Todo algoritmo debe proporcionar uno o ms valores como
resultado, una vez se ha ejecutado la secuencia de pasos que lo conforman. La salida es la
respuesta dada por el algoritmo o el conjunto de valores que el programador espera se le
proporcionen. Estos resultados pueden ser de cualquier tipo: uno o ms valores numricos,
valores lgicos o caracteres. La facilidad o complejidad de un algoritmo no la determinan la
cantidad de datos que se desean obtener. Un algoritmo puede tener un alto grado de
complejidad y, sin embargo, producir un solo valor como resultado.
Tener un punto de finalizacin: Un algoritmo debe indicar el orden de realizacin de
cada uno de sus pasos. Debe mostrar la primera, la intermedia y la ltima instruccin que
debe realizarse. Esto permite mostrar que en algn momento debe culminar la accin o
tarea que hace el algoritmo.
Tener claridad: Todo el conjunto de pasos debe ser entendible y factible de realizar, de
tal manera, que al hacer un seguimiento del algoritmo ste produzca siempre los resultados
requeridos. No puede entonces existir incertidumbre en las acciones a tomar cuando se
sigue la lgica (flujo del programa) del algoritmo.
Todo algoritmo debe tener tres partes:
Proceso. Clculos necesarios para que a partir de un dato de entrada se llegue a los
resultados.
EJEMPLO: Se desea conocer cuntos meses han transcurrido entre los inicios de dos aos
cualesquiera dados.
Datos de entrada
Como en el momento de construir el algoritmo no se conocen cules son los valores del ao
inicial y final, stos deben representarse mediante variables para que sus valores sean
dados en el momento de la ejecucin.
Valor del ao inicial o ao menor.
Valor del ao final o ao mayor.
Datos de salida
Nmero de meses transcurridos entre el ao inicial y el ao final.
REPRESENTACIN DE ALGORITMOS:
Los algoritmos deben ser representados usando algn mtodo que les permita ser
independizados del lenguaje de programacin que se requiera utilizar. Los mtodos ms
usuales son: diagramas de flujo y pseudocdigos.
1.7.1 DIAGRAMAS DE FLUJO:
Un diagrama de flujo es la representacin grfica de un algoritmo. Tambin se puede decir
que es la representacin detallada en forma grfica de cmo deben realizarse los pasos en la
computadora para producir resultados.
Esta representacin grfica se da cuando varios smbolos (que indican diferentes procesos
en la computadora), se relacionan entre s mediante lneas que indican el orden en que se
deben ejecutar los procesos. Los smbolos utilizados han sido normalizados por el instituto
norteamericano de normalizacin (ANSI).
SMBOLO
DESCRIPCIN
EJEMPLO: Se desea conocer cuntos meses han transcurrido entre los inicios de dos aos
cualesquiera dados.
10
1.7.2 PSEUDOCDIGO:
El pseudocdigo es la representacin de los pasos del algoritmo a travs de palabras,
utilizando una nomenclatura estandarizada para denotar el significado de cada paso.
El pseudocdigo es tan claro como el diagrama y es una herramienta til para el
seguimiento de la lgica de un algoritmo y, sobretodo, facilita la transcripcin a un lenguaje
de programacin. Tiene la desventaja de que el programador trata de escribir los pasos del
algoritmo utilizando palabras reservadas, propias del lenguaje en el cual est acostumbrado
a trabajar. Es necesario, entonces, al igual que en el diagrama, establecer unos parmetros o
formas de expresar cada instruccin, independientemente de la terminologa de los
lenguajes de programacin.
1.7.3 Forma General de un Algoritmo en PseudoCdigo :
Todo pseudocdigo tiene la siguiente estructura general:
Proceso Titulo
accion 1;
accion 1;
.
.
accion n;
FinProceso
Comienza con la palabra clave Proceso seguida del nombre del programa, luego le sigue
una secuencia de instrucciones y finaliza con la palabra FinProceso. Una secuencia de
instrucciones es una lista de una o ms instrucciones, cada una terminada en punto y coma.
Las acciones incluyen operaciones de entrada y salida, asignaciones de variables,
condicionales si-entonces o de seleccin mltiple y/o lazos mientras, repetir o para.
EJEMPLO: Se desea conocer cuntos meses han transcurrido entre los inicios de dos aos
cualesquiera dados.
Solucin:
Proceso MesesTranscurridos
Definir ainicio,afinal,natran,nmeses como entero;
Escribir 'Anyo Inicio:';
Leer ainicio;
Escribir 'Anyo Fin:';
Leer afinal;
natran<-afinal-ainicio;
nmeses<-natran*12;
Escribir 'Entre ',ainicio,' y ',afinal,' hay ',nmeses,' meses';
FinProceso
11
A las variables se les asignan valores en el momento de ejecucin, bien sea a travs
de una instruccin de entrada de datos o una instruccin de asignacin.
Cuando se le asigna valor a una variable; lo que haba antes en esa determinada
direccin es destruido, no se puede recuperar.
No todos los valores de partida al hacer el algoritmo son datos de entrada, slo lo
son aquellos valores que desconocemos en el momento, pero que sern suministrados en la
fase de ejecucin.
1.8
1.8.1
VARIABLES:
Debe comenzar con letras, y puede contener solo letras, nmeros y el guin bajo.
No puede contener ni espacios ni operadores, ni coincidir con una palabra reservada
o funcin del lenguaje, para no generar ambigedad.
12
Hay dos formas de crear una variable y/o asignarle un valor: la lectura y la asignacin. Si
se lee o asigna un valor en una variable que no existe, esta se crea. Si la variable ya exista,
esta toma el nuevo valor, perdiendo el viejo. Por esto se dice que la asignacin y la lectura
son acciones destructivas (aunque se debe notar que en la asignacin pueden intervenir
ms de una variable, y solo se destruye el contenido previo de la que se encuentra a la
izquierda del signo de asignacin). Una vez inicializada, la variable puede utilizarse en
cualquier expresin.
1.8.2
TIPOS DE DATOS:
Tipos Simples: Numrico, Lgico, Caracter.
Estructuras de Datos: Arreglos.
Definicin explcita de variables.
Los tipos de datos simples se determinan automticamente cuando se crean las variables.
Las dos acciones que pueden crear una variable son la lectura (LEER) y la asignacin (<-).
Por ejemplo, la asignacin "A<-0;" est indicando implcitamente que la variable A ser una
variable numrica. Una vez determinado el tipo de dato, deber permanecer constante
durante toda la ejecucin del proceso; en caso contrario el proceso ser interrumpido.
Se puede definir el tipo de una variable antes de utilizarla. Esta definicin puede ser
obligatoria u opcional dependiendo de la configuracin del lenguaje.
Los arreglos son estructuras homogneas (es decir, que todos sus elementos son del mismo
tipo simple de dato). El tipo de sus elementos se determina cuando se utiliza alguno de ellos
de igual forma que para las variables de tipos simples. Pueden ser mono o
multidimensionales, pero deben ser dimensionados antes de ser utilizados por primera vez
mediante la directiva DIMENSION (ejemplo: "DIMENSION A[10,20];").
Los identificadores, o nombres de variables, deben constar slo de letras, nmeros y/o
guin_bajo (_), comenzando siempre con una letra.
1.8.3
EXPRESIONES:
Una expresin es un grupo de operadores que actan sobre operandos, para proporcionar
un nico resultado. Una expresin consta de operadores y operandos. Segn sea el tipo de
datos que manipulan, se clasifican las expresiones en:
13
1.8.4
OPERADORES Y OPERANDOS:
Operadores: Son elementos que relacionan de forma diferente, los valores de una o ms
variables y/o constantes. Es decir, los operadores nos permiten manipular valores. Este
pseudolenguaje dispone de un conjunto bsico de operadores que pueden ser utilizados
para la construccin de expresiones ms o menos complejas.
Tipos de Operadores:
Aritmticos
Lgicos
Relacionales
Operador
+
*
/
^
%
MOD
Significado
Suma
Resta
Multiplicacin
Divisin
Potenciacin
Mdulo (Resto de la
divisin entera)
Ejemplo
total <- cant1 + cant2
stock <- disp - venta
area <- base * altura
porc <- 100 * parte / total
sup <- 3.41 * radio ^ 2
resto <- num MOD div
Ejemplos:
Expresin
Resultado
7/2
3.5
12 MOD 7
4+2*5
14
14
1. ^
2. *, /,
3. +, - Suma y resta.
Ejemplos:
4 + 2 * 5 = 14
4 + 10 = 14
45 * 10 / 2 = 225
45 * 5 = 225
52 / 5 = 10,4
4 + 8 * (15 - (8+4)) = 28
4 + 8 * (15 - 12) = 4 + 8 * 3 = 4 + 24 = 28
3 + 5 * (10-6) = 23
3 + 5 * 4 = 3 + 20 = 23
3,5 + 5,09 - 22,0 / 30 = 7,86 3,5 + 5,09 0,73 = 7,86
7,6 * (5,7 + 7,0 * 9,4) = 543,4 7,6 * 71,5 = 543,4
Ejemplos:
Si x = 5
x+y>z
x-y>z
x-y=z
x*y<>z
x=z
(x + 20) <> (z+1)
Significado
Mayor que
Menor que
Mayor o igual que
Menor o igual que
Igual que
Diferente
y = 12
5>2
3<1
5>=5
2<=2
4=5
4<>5
Ejemplo
//Verdadero
//Falso
//Verdadero
//Verdadero
//Falso
//Verdadero
z = 25
Falso
Falso
Falso
Verdadero
Falso
Verdadero
Significado
Conjuncin (y)
Disyuncin (o)
Negacin (no)
Ejemplo
(7>4) & (2=1) //Falso
(1=1 | 2=1) //Verdadero
~(2<5)
//Falso
15
Operador | (or)
Operando1 Operador Operando2 Resultado
V
|
V
V
V
|
F
V
F
|
V
V
F
|
F
F
Operador ~ (Negacin)
Operando Resultado
V
F
F
V
1. ~
2. &
3. |
16
La jerarqua de los operadores matemticos es igual a la del lgebra, aunque puede alterarse
mediante el uso de parntesis.
Prioridad de los Operadores en General:
1.
2.
3.
4.
5.
()
^
*, /, MOD o %, ~
+, -, &
>, <, > =, < =, < >, =, |
17
1.8.5
FUNCIONES:
ACCIONES SECUENCIALES:
1.9
Asignacin.
Lectura.
Escritura.
18
1.9.1
ASIGNACIN:
LECTURA:
19
1.9.3
ESCRITURA:
20
EJERCICIOS PROPUESTOS:
1. Escriba las siguientes expresiones algebraicas como expresiones algortmicas:
.
e.
ex (coseno( y) + i seno y )
f.
21