Apunte - Algoritmos
Apunte - Algoritmos
Apunte - Algoritmos
Apunte
MARTINEZ, Silvia Natalia
1
CONCEPTOS BÁSICOS Y METODOLOGÍA PARA LA SOLUCIÓN DE
PROBLEMAS POR MEDIO DE COMPUTADORAS.
Definición de Algoritmo
La palabra algoritmo se deriva de la traducción al latín de la palabra árabe
alkhowarizmi, nombre de un matemático y astrónomo árabe que escribió un tratado sobre
manipulación de números y ecuaciones en el siglo IX.
Un algoritmo es una serie de pasos organizados que describe el proceso que se
debe seguir, para dar solución a un problema específico.
Tipos de Algoritmos
Cualitativos: Son aquellos en los que se describen los pasos utilizando palabras.
Cuantitativos: Son aquellos en los que se utilizan cálculos numéricos para definir los
pasos del proceso.
Lenguajes Algorítmicos
Es una serie de símbolos y reglas que se utilizan para describir de manera explícita
un proceso.
Tipos de Lenguajes Algorítmicos
Esta fase está dada por el enunciado del problema, el cual requiere una definición 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.
2
Diseño del Algoritmo
Codificación
Prueba y Depuración
La depuración o prueba resulta una tarea tan creativa como el mismo desarrollo de
la solución, por ello se debe considerar con el mismo interés y entusiasmo.
Resulta conveniente observar los siguientes principios al realizar una depuración,
ya que de este trabajo depende el éxito de nuestra solución.
Documentación
Documentación Interna
Documentación Externa
Manual del Usuario
Documentación Interna: Son los comentarios o mensaje que se añaden al código fuente
para hacer más claro el entendimiento de un proceso.
Manual del Usuario: Describe paso a paso la manera como funciona el programa, con el
fin de que el usuario obtenga el resultado deseado.
Mantenimiento
4
ENTIDADES PRIMITIVAS PARA EL DESARROLLO DE ALGORITMOS
1 Tipos de datos
2 Expresiones
3 Operadores y operandos
4 Identificadores como localidades de memoria
OBJETIVO EDUCACIONAL:
El alumno:
Conocerá las reglas para cambiar fórmulas matemáticas a expresiones válidas para la
computadora, además de diferenciar constantes e identificadores y tipos de datos
simples.
1 Tipos De Datos
Todos los datos tienen un tipo asociado con ellos. Un dato puede ser un simple
carácter, tal como ‘b’, un valor entero tal como 35. El tipo de dato determina la naturaleza
del conjunto de valores que puede tomar una variable.
Numéricos
Simples Lógicos
Alfanuméricos (string)
Tipos de
datos Arreglos (Vectores, Matrices)
Estructurados Registros
(Def. por el Archivos
usuario) Apuntadores
Datos Numéricos: Permiten representar valores escalares de forma numérica, esto incluye
a los números enteros y los reales. Este tipo de datos permiten realizar operaciones
aritméticas comunes.
Datos Lógicos: Son aquellos que solo pueden tener dos valores (cierto o falso) ya que
representan el resultado de una comparación entre otros datos (numéricos o
alfanuméricos).
Ejemplo:
“Instituto Tecnológico N° 4”
“2014”
5
2 Expresiones
a+(b + 3)/c
Cada expresión toma un valor que se determina tomando los valores de las
variables y constantes implicadas y la ejecución de las operaciones indicadas.
Una expresión consta de operadores y operandos. Según sea el tipo de datos que
manipulan, se clasifican las expresiones en:
Aritméticas
Relaciónales
Lógicas
3 Operadores y Operandos
Operadores: Son elementos que relacionan de forma diferente, los valores de una o más
variables y/o constantes. Es decir, los operadores nos permiten manipular valores.
Aritméticos
Tipos de Operadores Relaciónales
Lógicos
Operadores Aritméticos
+ Suma
- Resta
* Multiplicación
/ División
Mod Modulo (residuo de la división entera)
Ejemplos:
Expresión Resultado
7/2 3.5
12 mod 7 5
4 +2*5 14
1.- ^ Exponenciación
2.- *, /, mod Multiplicación, división, modulo.
3.- +, - Suma y resta.
Los operadores en una misma expresión con igual nivel de prioridad se evalúan de
izquierda a derecha.
Ejemplos:
4 + 2 * 5 = 14
23 * 2 / 5 = 9.2 46 / 5 = 9.2
3 + 5 * (10 - (2 + 4)) = 23 3 + 5 * (10 - 6) = 3 + 5 * 4 = 3 + 20 = 23
3.5 + 5.09 - 14.0 / 40 = 5.09 3.5 + 5.09 - 3.5 = 8.59 - 3.5 = 5.09
2.1 * (1.5 + 3.0 * 4.1) = 28.98 2.1 * (1.5 + 12.3) = 2.1 * 13.8 = 28.98
Operadores Relaciónales:
Operadores Relaciónales
> Mayor que
< Menor que
>= Mayor o igual que
<= Menor o igual que
<> Diferente
= Igual
Ejemplos:
Si a = 10 b = 20 c = 30
a+b>c Falso
a-b<c Verdadero
a-b=c Falso
a*b<>c Verdadero
Ejemplos no lógicos:
a<b<c
10 < 20 < 30
T < 30 (no es lógico porque tiene diferentes operandos)
Operadores Lógicos:
7
Estos operadores se utilizan para establecer relaciones entre valores lógicos.
Estos valores pueden ser resultado de una expresión relacional.
Operadores Lógicos
And Y
Or O
Not Negación
Operador And
Operando1 Operador Operando2 Resultado
T AND T T
T F F
F T F
F F F
Operador Or
Operando1 Operador Operando2 Resultado
T OR T T
T F T
F T T
F F F
Operador Not
Operando Resultado
T F
F T
Ejemplos:
(a < b) and (b < c)
(10<20) and (20<30)
T and T
T
8
Ejemplos:
a = 10 b = 12 c = 13 d =10
4 Identificadores
Ejemplo: Nombre
Num_hrs
Calif2
Constantes y Variables
Ejemplo:
área = pi * radio ^ 2
Numéricas
Por su Contenido Lógicas
Alfanuméricas (String)
Variables
De Trabajo
Por su Uso Contadores
Acumuladores
Por su Contenido
Variables Lógicas: Son aquellas que solo pueden tener dos valores (cierto o falso) estos
representan el resultado de una comparación entre otros datos.
Variables Alfanuméricas: Está formada por caracteres alfanuméricos (letras, números y
caracteres especiales). Ejemplo:
letra=’a’ apellido=’lopez’ direccion=’Av. Libertad #190’
Por su Uso
Contadores: Se utilizan para llevar el control del número de ocasiones en que se realiza
una operación o se cumple una condición. Con los incrementos generalmente de uno en
uno.
Acumuladores: Forma que toma una variable y que sirve para llevar la suma acumulativa
de una serie de valores que se van leyendo o calculando progresivamente.
10
TÉCNICAS DE DISEÑO
1 Top down
2 Bottom up
OBJETIVO EDUCACIONAL:
El alumno:
Conocerá las características de las técnicas de diseño más empleadas, así como su
aplicación a cada tipo de problemas
1 Top Down
2 Bottom Up
11
TÉCNICAS PARA LA FORMULACIÓN DE ALGORITMOS
1 Diagrama de flujo
2 Pseudocódigo
3 Diagrama estructurado (nassi-schneiderman)
OBJETIVO EDUCACIONAL:
El alumno:
SÍMBOLO DESCRIPCIÓN
12
Líneas de flujo o dirección. Indican la
secuencia en que se realizan las operaciones.
Prueba de escritorio
Consiste en formar una tabla del diagrama de valores conocidos a las variables y verificar
si el resultado es el buscado.
2 Pseuducódigo
13
ESTRUCTURAS ALGORITMICAS
1 Secuenciales
- Asignación
- Entrada
- Salida
2 Condicionales
- Simples
- Múltiples
3 Repetición fila condicional
OBJETIVO EDUCACIONAL:
El alumno:
ESTRUCTURAS ALGORITMICAS
Las estructuras de operación de programas son un grupo de formas de trabajo, que
permiten, mediante la manipulación de variables, realizar ciertos procesos específicos que
nos lleven a la solución de problemas. Estas estructuras se clasifican de acuerdo con su
complejidad en:
- Asignación
Secuenciales - Entrada
- Salida
- Simples
Estructuras Condicionales - Múltiples
Algorítmicas
- Hacer para
Cíclicas - Hacer mientras
- Repetir hasta
1. Estructuras Secuenciales
14
- Asignación: La asignación consiste, en el paso de valores o resultados a una zona de la
memoria. Dicha zona será reconocida con el nombre de la variable que recibe el valor. La
asignación se puede clasificar de la siguiente forma:
Simples: Consiste en pasar un valor constate a una variable (a=15)
Contador: Consiste en usarla como un verificador del número de veces que se realiza un
proceso (a=a+1)
Acumulador: Consiste en usarla como un sumador en un proceso (a=a+b)
De trabajo: Donde puede recibir el resultado de una operación matemática que involucre
muchas variables (a=c+b*2/4).
Leer a, b
Donde “a” y “b” son las variables que recibirán los valores
Donde “El resultado es:” es un mensaje que se desea aparezca y R es una variable
que contiene un valor.
2 Estructuras de Condicionales
Las estructuras condicionales comparan una variable contra otro(s) valor(es), para
que en base al resultado de esta comparación, se siga un curso de acción dentro del
programa. Cabe mencionar que la comparación se puede hacer contra otra variable o
contra una constante, según se necesite. Existen dos tipos básicos, las simples y las
múltiples.
Simples: Las estructuras condicionales simples se les conoce como “Tomas de decisión”.
Estas tomas de decisión tienen la siguiente forma:
Si <condición> entonces
Acción(es)
Fin-si
Dobles: Las estructuras condicionales dobles permiten elegir entre dos opciones o
alternativas posibles en función del cumplimiento o no de una determinada condición. Se
representa de la siguiente forma:
Si <condición> entonces
Acción(es)
si no
Acción(es)
Fin-si
15
Donde:
Si …………
Indica el comando de comparación
Condición………… Indica la condición a evaluar
entonces……..…… Precede a las acciones a realizar cuando se cumple la condición
acción(es)………… Son las acciones a realizar cuando se cumple o no la condición
si no…………
Precede a las acciones a realizar cuando no se cumple la condición
Si <condición> entonces
Acción(es)
si no
Si <condición> entonces
Acción(es)
si no
. Varias condiciones
.
Forma General
Casos Variable
Op1: Acción(es)
Op2: Acción(es)
.
.
OpN: acción
Fin-casos
16
3. Estructuras Cíclicas
Donde:
V.C Variable de control del ciclo
L.I Limite inferir
L.S Límite superior
En este ciclo la variable de control toma el valor inicial del ciclo y el ciclo se repite hasta
que la variable de control llegue al límite superior.
Repetir
Accion1
Accion2
AccionN
Hasta <condición>
18
ARREGLOS
1 Vectores
2 Matrices
3 Manejo de cadenas de caracteres
OBJETIVO EDUCACIONAL:
El alumno:
Será capaz de utilizar los datos de tipo arreglo para plantear la solución de problemas que
requieran de esta estructura.
Arreglo: Un Arreglo es una estructura de datos que almacena bajo el mismo nombre
(variable) a una colección de datos del mismo tipo.
Unidimensionales (Vectores)
Tipo de
Arreglos
Bidimensionales (Matrices)
1. Vectores
Vec[x]
Donde:
Vec………… Nombre del arreglo
x…………
Numero de datos que constituyen el arreglo
9
19
10
Llenado de un Vector
Hacer para I = 1 a 10
Leer vec[I]
Fin-para
I=1
Repetir
Leer vec[I]
I=I+1
Hasta-que I>10
2 Matriz
Mat [R,C]
2,1
2,2
2,3
2.4
3,1
3,2
3,3
3,4
4,1
20
4,2
4,3
4,4
Por renglones
Hacer para R = 1 a 5
Hacer para C = 1 a 5
Leer Mat [R,C]
Fin-para
Fin-para
Por columnas
Hacer para C = 1 a 5
Hacer para R = 1 a 5
Leer Mat [R,C]
Fin-para
Fin-para
Nota: Para hacer el llenado de una matriz se deben de usar dos variables para los índices
y se utilizan 2 ciclos uno para los renglones y otro para las columnas; a estos ciclos se les
llama ciclos anidados (un ciclo dentro de otro ciclo).
21
BIBLIOGRÁFIA
22