2
Algoritmo
● Conjunto prescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite llevar a cabo una actividad mediante pasos sucesivos que no generen dudas a quien deba hacer dicha actividad.
● [En programación] Secuencia de pasos lógicos que permiten solucionar un problema.
La lámparano funciona
¿Está enchufada?
¿Focoquemado?
Comprarnueva lámpara
No
Reemplazar el foco
Enchufarla
Sí
No
Sí
De LampFlowchart.svg: svg by Booyabazookaoriginal png by Wapcapletderivative work: Huhsunqu (talk) - LampFlowchart.svg, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=6354606
Algoritmo. (2017, 15 de junio). Wikipedia, La enciclopedia libre. Fecha de consulta:08:34, julio 4, 2017desde https://es.wikipedia.org/w/index.php?title=Algoritmo&oldid=99869403
3
Metodología de resolución
1.Planteamiento del problema
a)Datos de entrada y de salida
b)Algoritmo conceptual básico
2.Diseño del algoritmo (pseudocódigo)
3.Prueba con ejemplosEjemplo: Algoritmo para generar coste de unafactura mensual telefónica
Datos de entradaCálculoSalida
4
Elementos principales de un algoritmo
● Variables, constantes y expresiones● Sentencias
– Asignación
– Entrada/Salida
– Estructuras de selección
– Estructuras de repetición
5
Variables, constantes y valores constantes
Variable: elemento del algoritmo que posee un valor, es conocido por un nombre o identificador y pertenece a un tipo de dato.
Constante: elemento del algoritmo similar a una variable, pero cuyo valor no cambia a lo largo del algoritmo.
Un valor constante o constante literal es un valor de cualquier tipo que se utiliza como tal.
5.38
“Hola”
6
Expresiones
Expresión: combinación de variables, constantes, valores constantes, operadores y funciones que al evaluarla en el orden correcto tiene un valor concreto
Las expresiones más representativas son las numéricas y las lógicas
7
Representación de algoritmos
Pseudocódigo
ALGORITMO nombre del algoritmo
ENTRADA descripción de los datos de entrada al algoritmo
SALIDA descripción de los datos de salida del algoritmo
VARIABLES lista de variables con sus tipos
INICIO
sentencias
FIN
8
Representación de algoritmos
Variable Expresión
● Asignación– almacena un valor en una variable
– operador asignación:
● Entrada/Salida– Lectura o entrada: permite introducir datos desde disp. externos
(teclado) o desde ficheros
– Leer lista de variables separadas por comas
– Salida o escritura: permite visualizar datos en disp. externos (pantalla, impresora) o almacenarlos en ficheros
– Escribir lista de variables o expresiones separadas por comas
9
Ejemplo: área de un círculo
ALGORITMO área de un círculoENTRADA su radioSALIDA el área del círculoVARIABLES radio, area: realesINICIO
Escribir “Radio del círculo: “ Leer radio area ← 3.1416*radio*radio
Escribir “El área es “, area
FIN
#include <iostream>
using namespace std;
int main(){ double radio,area;
cout<<"Radio del circulo: "; cin>>radio;
area = 3.1416*radio*radio;
cout<<"El area es "<<area<<endl;}
codi
fica
ción
en
C+
+
http://bit.ly/2sC7qkl
10
Representación de algoritmos
Estructuras de control selectivas
Permite codificar alternativas dobles o múltiples
En el caso doble:
SI condición sentencia 1 ….SI NO sentencia 2 ….FIN_SI
11
Ejemplo: comprobar radio de un círculo
ALGORITMO área de un círculoENTRADA su radioSALIDA el área es radio>0VARIABLES radio, area: realesINICIO
Escribir “Radio del círculo: “ Leer radio Si radio>0
area ← 3.1416*radio*radio
Escribir “El área es “, area si no Escribir “Error: el radio debe ser positivo” Fin Si
FIN
#include <iostream>
using namespace std;
int main(){ double radio,area;
cout<<"Radio del circulo: "; cin>>radio;
if (radio>0) { area = 3.1416*radio*radio; cout<<"El area es "<<area<<endl;
} else cout<<"Error: el radio debe ser positivo";
}
codi
fica
ción
en
C+
+
http://bit.ly/2uFkimg
12
Representación de algoritmos
Estructuras de control repetitiva
bucle PARA
PARA i=0 HASTA i=9 CON INCREMENTO 1
Entrar en el bucle
Sentencias del bucle
i=9
Sentencias del bucle
i=1
Sentencias del bucle
i=0
Salida del bucle
13
Representación de algoritmos
bucle PARA
En pseudocódigo sería:
PARA contador = vi HASTA vf CON INCREMENTO n
Bloque de sentencias
FIN_PARA
14
Ejemplo: números pares hasta 50
ALGORITMO números paresENTRADA SALIDA números pares hasta 50VARIABLES i: enteroINICIO
Para i = 0 hasta 50 con incr. 2 Escribir i Fin Para
FIN
#include <iostream>
using namespace std;
int main(){ int i;
for (i=0;i<=50;i=i+2) cout<<i<<endl;}
codi
fica
ción
en
C+
+
http://bit.ly/291ANkQ
15
Representación de algoritmos
Estructuras de control repetitiva
bucle MIENTRAS
¿se cumple la condición?
Sentencias del bucle
Entrar en el bucle
Salir del bucle
SI
NO
16
Representación de algoritmos
bucle MIENTRAS
En pseudocódigo sería:
MIENTRAS condición_lógica HACER
Bloque de sentencias
FIN_MIENTRAS
17
Ejemplo: números pares hasta 50
ALGORITMO números paresENTRADA SALIDA números pares hasta 50VARIABLES i: enteroINICIO
i ← 0 Mientras i <= 50 Escribir i i ← i + 2 Fin Mientras
FIN
#include <iostream>
using namespace std;
int main(){ int i;
i = 0; while (i<=50) { cout<<i<<endl; i = i + 2; }
}
codi
fica
ción
en
C+
+
http://bit.ly/291LHJ9