resolución de problemas mediante algoritmos - isa.cie.uva.esfinf/palg.pdf · comprar nueva...

18
Resolución de problemas mediante algoritmos

Upload: nguyentuyen

Post on 02-Nov-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

Resolución de problemasmediante algoritmos

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

No

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

18

Resumen

● Programar significa combinar de forma “inteligente” un conjunto de elementos para resolver un problema con el ordenador

● Elementos: