2. Tipos de algoritmos (II)
Algoritmos cuantitativos
Son todos aquellos pasos o instrucciones que involucran
cálculos numéricos para llegar a un resultado
satisfactorio.
• Ej.: Multiplicar dos números, ordenar una cantidad de
números en forma ascendente, dividir dos números,
encontrar de un conjunto de números el mayor, etc.
Departamento de ingeniería
3. Pasos que deben seguirse en la
Elaboración de un Algoritmo.
1. Leer el enunciado del problema cuantas veces sea necesario, hasta entenderlo
completamente, si tiene duda sobre el significado de alguna pregunta o condición
aclararla, ojala se aprenda de memoria el enunciado.
2. Determinar claramente con que datos de entrada se cuenta para la solución del
problema.
3. Aclarar y determinar la información o resultados que se soliciten.
1. Información Intermedia.
2. Información Final.
4. Definir que cálculos y/o comparaciones se necesitan para llegar al resultado final.
1. Cálculos y comparaciones intermedias.
2. Cálculos y comparaciones finales.
5. Tener en cuenta toda clase de condiciones y restricciones para la solución del
problema.
Todos los pasos tienen la misma importancia, la falta de analisis de alguno de
ellos causara problemas en el transcurso del desarrollo del algoritmo.
4. Ejemplo:
- Elaborar un algoritmo que calcule el
promedio de edad de los estudiantes
del salón de clase, de acuerdo al
numero de estudiantes.
Departamento de ingeniería
5. Terminador Inicio Diagrama de
Entrada de Datos Leer (numero)
Flujo.
contador 0
Proceso acumulador 0
Decisión
SI NO
contador < numero
NO
SI contador > 0
contador contador + 1
promedio acumulador/contador promedio 0
Leer (edad)
Salida de Datos Escribir (promedio)
acumulador acumulador + edad
Departamento de ingeniería Fin
6. INICIO
Pseudo Código
leer(numero)
contador 0
acumulador 0
MIENTRAS contador < numero HACER
contador contador +1
leer(edad)
acumulador acumulador + edad
FIN MIENTRAS
SI contador >0 ENTONCES
promedio acumulador/contador
SINO
promedio 0
FIN SI
escribir(promedio)
FIN
Departamento de ingeniería
7. Que es una Variable?
• Variable son todos aquellos valores que pueden o
no cambiar en transcurso de un algoritmo.
Usualmente son introducidas como datos.
• Toda variable se compone de dos partes.
• NOMBRE: Es el conjunto de caracteres, letras y números,
con los cuales se identifica un valor en un momento
determinado.
• VALOR: Es la cantidad que una variable representa o
tiene asociada en un determinado momento.
• Ejemplo : contador 0
Departamento de ingeniería
8. Que es una Constante?
• Constantes son todos aquellos valores que no
cambian en el transcurso de un algoritmo.
Ejemplo : num_pi 3.14
• En determinados casos, se puede presentar que el
valor de una variable no cambie en el transcurso de
un algoritmo; pero este hecho no se considera
constante, sigue siendo una variable, porque puede
cambiar su valor y las constantes no lo pueden hacer.
• Cuando se presenta esta situación se dice que es una
variable que se comporta como una constante.
• Ejemplo : retención pagobruto * 0.07
Departamento de ingeniería
9. Expresiones Aritméticas (I).
• Expresión aritmética es un conjunto de variables
y/o constantes unidas o relacionadas por
operadores aritméticos.
• Los operadores aritméticos son los siguientes:
– Exponenciación ^
– Multiplicación *
– División /
– Resta -
– Suma +
• Ejemplo:
salario_neto salario_bruto – iss + bono
Departamento de ingeniería
10. Expresiones Aritméticas.
Operador div (/): división entera. Se utiliza sólo si los
operandos son enteros.
Ejm. 5 div 2 = 2 (cociente)
Operador mod (%): representa el resto de la división
entera.
Ejm. 5 mod 2 = 1 (residuo)
Departamento de ingeniería
11. Expresiones Relacionales.
• Expresión relacional es un conjunto de variables
y/o constantes unidas o relacionadas por
operadores relacionales.
• Los operadores relacionales son los siguientes:
– MAYOR QUE >
– MENOR QUE <
– DIFERENTE QUE <>
– IGUAL A =
– MAYOR O IGUAL >=
– MENOR O IGUAL <=
• Ejemplo: descuento >= pago
Departamento de ingeniería
12. Funciones internas (I)
Las funciones internas son operadores especiales,
adicionales a los operadores básicos.
Departamento de ingeniería
13. Funciones internas (I)
Las funciones internas son operadores especiales,
adicionales a los operadores básicos.
Utilizar las funciones internas par obtener la solución a la
educación cuadrática ax^2 + bx + c = 0
x1 = (-b + raiz2(b^2- 4*a*c))/(2*a)
x2 = (-b - raiz2(b^2- 4*a*c))/(2*a)
Departamento de ingeniería
15. Instrucciones y tipos de instrucciones
Es importante en un programa definir las instrucciones que
resolverán el problema.
Lineal
Instrucciones se ejecutan linealmente.
Programa
No lineal
La secuencia se interrumpe con “instrucciones de
bifurcación ó de decisión”.
El tipo de instrucciones dependen del tipo de lenguaje, sin
embargo se tienen instrucciones básicas (Independientes del
lenguaje).
Departamento de ingeniería
16. Instrucciones y tipos de instrucciones
Inicio / fin
Inicio, fin
Asignación
Instrucciones Lectura
Escritura
Bifurcación o decisión
Departamento de ingeniería
17. Enunciado de Lectura.
El enunciado de lectura se utiliza para
introducir datos que se van a utilizar en la
solución de un algoritmo.
Se almacena en la variable el valor
ingresado por el usuario.
Ejemplo:
◦ Leer(edad)
◦ Si el usuario digita 5, la variable edad
almacena este valor.
Departamento de ingeniería
18. Enunciado de Escritura.
El enunciado de escritura se utiliza para
presentar los resultados que se esperaban
obtener al ejecutarse el algoritmo.
Ejemplo:
◦ Escribir(edad)
◦ Presenta el valor correspondiente con edad.
Departamento de ingeniería
19. Enunciado de Asignación (I).
• Es una acción o proceso por el cual se le asigna un
valor (constante o variable) o el resultado de una
operación (expresión) a una variable. Los enunciados
de asignación se utilizan generalmente para cambiar
el valor a una variable o definirla.
• Definir una variable consiste en asignarle o darle por
primera vez un valor; y puede hacerse de dos
maneras:
– Por medio de una lectura de datos, o
– Utilizando un enunciado de asignación.
• Ejemplo:
leer(edad)
edad 25
Departamento de ingeniería
20. Enunciado de Asignación (II).
Asignación aritmética. Las expresiones en las operaciones
son aritméticas
Ejm.
Instrucciones Traza
1) N 3 1) La variable N toma el valor de 3
2) N N+1 2) La variable N toma el valor de 4
3) S 2 3) La variable S toma el valor de 2
4) S N+5 4) La variable S toma el valor de 9
Departamento de ingeniería
21. Enunciado de Asignación (III).
Asignación lógica. La expresión que se evalúa en la operación
de asignación es lógica
Ejm.
Instrucciones Traza
1) M 31 < 2 1) La variable M toma el valor de falso
2) P P o (2 <= 12) 2) La variable P toma el valor de verdadero
3) Q MyP 3) La variable S toma el valor de falso
Departamento de ingeniería
22. Enunciado de Asignación (III).
Asignación de cadena de caracteres. La expresión que se
evalua es de tipo cadena.
Ejm.
x ‘Linterna Verde’
La acción de asignación asigna a la variable tipo cadena x, la
cadena de caracteres „Linterna verde‟.
Asignación múltiple. La sintaxis que se utiliza es
<variable> <variable> <operador> <expresión>
Departamento de ingeniería
23. Reglas para la construcción de
enunciados de asignación (I).
Toda variable que aparezca al lado derecho de un enunciado
de asignación debe estar definida.
• Ejemplo 1:
edad 25
contador 0
contador contador + edad
• Las variables edad y contador se definieron correctamente
• Ejemplo 2:
contador 0
contador contador + edad
• La variable edad nunca fue definida.
Departamento de ingeniería
24. Reglas para la construcción de
enunciados de asignación (II).
En un enunciado de asignación la variable
de la izquierda es la única que cambia de
valor cuando con anterioridad tiene un
valor asignado.
Ejemplo :
edad 25
contador 0
contador contador + edad
Departamento de ingeniería
25. Reglas para la construcción de
enunciados de asignación (III).
Las variables que aparecen en la parte
derecha de un enunciado de asignación
conservan su valor después de ejecutarse
la asignación.
Ejemplo :
salario 1000
bono 120
salario_neto salario + bono
Departamento de ingeniería
26. Reglas para la construcción de
enunciados de asignación (IV).
Si la variable de la parte izquierda del
enunciado se encuentra también en el
lado derecho, esta variable cambia de
valor por aparecer en la izquierda.
Ejemplo :
acumulador 0
edad 25
acumulador acumulador + edad
Departamento de ingeniería
27. Enunciado de Decisión.
Los enunciados de decisión se utilizan
para tomar una acción o conocer el estado
de alguna situación especial, que
generalmente toman un valor Verdadero o
Falso.
Departamento de ingeniería
28. Enunciado de Decisión – Si.. Sino
Diagrama de Flujo SI NO
<comparación>
SI <comparación> ENTONCES Pseudo Código
VERDADERO
Enunciado(s)
SINO
FALSO
Enunciado(s)
FIN SI
Departamento de ingeniería
29. Enunciado de Decisión – SI .. Sino
Diagrama de Flujo
SI NO
contador > 0
promedio acumulador/contador promedio 0
SI contador >0 ENTONCES Pseudo Código
promedio acumulador/contador
SINO
promedio 0
FIN SI
Departamento de ingeniería
30. Enunciado de Repetición.
Son los enunciados que permiten repetir
varias veces un conjunto de enunciados
según se necesite de acuerdo a una
condición.
Se les conoce también como ciclos.
Departamento de ingeniería
31. Enunciado de Repetición - Mientras
Diagrama de Flujo
SI NO
<comparación>
MIENTRAS <comparación> HACER Pseudo Código
VERDADERO
Enunciado(s) a repetir
FIN MIENTRAS
FALSO
Enunciado(s)
Departamento de ingeniería
32. Enunciado de Repetición - Mientras
Diagrama de Flujo
SI contador < numero
NO
contador contador + 1
promedio acumulador/contador
Leer(edad)
Escribir (promedio)
acumulador acumulador + edad
Fin
MIENTRAS contador < numero HACER Pseudo Código
contador contador +1
leer(edad)
acumulador acumulador + edad
FIN MIENTRAS
promedio acumulador/contador Departamento de ingeniería
escribir(promedio)
33. Enunciado de Repetición – Haga .. Mientras
Diagrama de Flujo
SI
NO
<comparación>
HAGA Pseudo Código
VERDADERO
Enunciado(s) a repetir
MIENTRAS <comparación>
FALSO
Enunciado(s)
Departamento de ingeniería
34. Enunciado de Repetición – Haga .. Mientras
Diagrama de Flujo
Leer SI
(Edad) NO
Promedio
Edad > 0
acumulador/contador
contador contador + 1
Acumulador acumulador +
edad
Escriba(promedio)
HAGA Pseudo Código
leer (edad)
contador contador + 1
Acumulador acumulador + edad
MIENTRAS edad > 0
promedio acumulador/contador
Escriba (promedio) Departamento de ingeniería
35. Escritura de algoritmos (programas)
Cabecera del programa
Comienza por la palabra algoritmo
Bloque algorítmico
Acciones de declaración
Var
tipo: lista de identificadores
Algoritmo
Const:
tipo: lista de identificadores = valor
Inicio
sentencia 1 // Listado se entencias
sentencia 1
…
fin
Departamento de ingeniería
36. Escritura de algoritmos (programas)
Cabecera del programa
Comienza por la palabra algoritmo
Bloque algorítmico
Acciones de declaración
Var
entero: num1 // Declaración variable numérica
Const:
Algoritmo real: PI= 3.141592 // Declaración constante real
carácter: estrella = ‘*’ //Declaración carácter
cadena: nombre[20] //Declaración de una cadena de
máximo 20 caracteres.
Inicio
sentencia 1 // Listado se entencias
sentencia 1
…
fin
Departamento de ingeniería
37. Ejemplo algoritmo para “sumar dos
números”
Entrada:
Dos números (num1, num2)
Salida:
Resultado de la suma de los dos números.
Proceso:
Se reciben los dos números, luego en una variable
num_suma se el asigna el resultado de la suma de
los números. Se imprime el resultado.
38. Ejemplos de diagramas de flujo
Inicio
Num_suma 0
Leer num1
Leer num2
Num_suma num1+ num2
Escribir
num_suma
Fin
Departamento de ingeniería
39. Actividad
En un diagrama de flujo, representar un
algoritmo para dividir dos números. Si el
segundo número que se recibe es “0”, se
debe presentar un mensaje.
40. Pseudocódigo (II)
Es muy importante la indentación (sangría en el margen
izquierdo) de las diferentes líneas del algoritmo.
Elementos básicos
◦Inicio. Se coloca al empezar el pseudocódigo
◦Fin. Se coloca al finalizar el pseudocócigo
◦//. Se utiliza para colocar comentarios.
Se utiliza para realizar una asignación. Ejemplo:
num_suma num1 + num2
Leer (y): Se utiliza para solicitar información y
41. Pseudocódigo (II)
Escribir (y): Se utiliza para solicitar escribir un dato y.
Escribir(’mensaje’): Se utiliza para escribir la palabra
mensaje.
Si sentencia entonces
Si sentencia
instrucciones 1
entonces
Si_no
instrucciones
instrucciones 2
fin si
fin si
42. Pseudocódigo (II)
Si sentencia1 entonces
instrucciones1
sino si sentencia2 entonces
instrucciones 2
sino si sentencia3 entonces
instrucciones3
sino
instrucciones4
fin si
fin si
fin si
mientras sentencia haga
instrucciones
fin mientras
43. Ejemplo de pseudocódigo
Escribir en pseudocódigo un algoritmo que pida el nombre de
una persona e imprima en pantalla el nombre ingresado.
Var
Carácter: nombre;
inicio
Escribir („Ingrese su nombre‟)
Leer (nombre) //En nombre se guardara la información que se ingrese
Escribir („El nombre ingresado es:‟, nombre)
fin
44. Actividad en Clase
Escribir en pseudocódigo los algoritmos de sumar dos números y
el de dividir dos números.
Escribir un algoritmo que: «Dados tres números determina si la
suma de dos de ellos es igual al otro número. En caso de que
sean iguales escribir «iguales», en caso de ser desiguales
escribir «desiguales».
Los algoritmos deben ser presentados en diagrama de flujo y en
pseudocódigo.
45. Representación de Algoritmos.
• Ejemplo:
A. Elaborar un algoritmo que calcule el
promedio de edad de los estudiantes del
salón de clase, de acuerdo al numero de
estudiantes.
B. Calcule ademas el promedio de edad de los
hombres y mujeres del salón.
Departamento de ingeniería
46. Solución completa utilizando Pseudo Código
INICIO
leer(numero)
contador 0
acumulador 0
cont_mujeres 0
cont_hombres 0
acum_mujeres 0
acum_hombres 0
MIENTRAS contador < numero HACER
contador contador +1
leer(edad)
leer(sexo)
SI sexo = „mujer‟ ENTONCES
cont_mujeres cont_mujeres +1
acum_mujeres acum_mujeres + edad
SINO
cont_hombres cont_hombres +1
acum_hombres acum_hombres + edad
FIN SI
acumulador acumulador + edad
FIN MIENTRAS Departamento de ingeniería
47. Solución completa utilizando Pseudo Código
SI contador >0 ENTONCES
promedio acumulador/contador
SINO
promedio 0
FIN SI
SI cont_mujeres >0 ENTONCES
prom_mujeres acum_mujeres/cont_mujeres
SINO
prom_mujeres 0
FIN SI
SI cont_hombres >0 ENTONCES
prom_hombres acum_hombre/cont_hombres
SINO
prom_hombres 0
FIN SI
escribir(promedio)
escribir(prom_mujeres)
escribir(prom_hombres)
FIN
Departamento de ingeniería