Algoritmos

51
ALGORITMOS ALGORITMOS Repaso Repaso

Transcript of Algoritmos

Page 1: Algoritmos

ALGORITMOSALGORITMOS

RepasoRepaso

Page 2: Algoritmos

AlgoritmoAlgoritmo

Un algoritmo es un conjunto ordenado y Un algoritmo es un conjunto ordenado y finito de instrucciones que conducen a la finito de instrucciones que conducen a la solución de un problema. solución de un problema.

Si un algoritmo puede ser ejecutado por Si un algoritmo puede ser ejecutado por una computadora, se dice que es un una computadora, se dice que es un algoritmo computacionalalgoritmo computacional; en caso ; en caso contrario, se dice que es un contrario, se dice que es un algoritmo no algoritmo no computacionalcomputacional. .

Page 3: Algoritmos

Figura Problema, algoritmo y programa

Todo algoritmo debe tener las siguientes características:

•Debe ser preciso, es decir, cada instrucción debe indicar de forma inequívoca que se tiene que hacer. •Debe ser finito, es decir, debe tener un número limitado de pasos. •Debe ser definido, es decir, debe producir los mismos resultados para las mismas condiciones de entrada.

Page 4: Algoritmos

Todo algoritmo puede ser descompuesto Todo algoritmo puede ser descompuesto en tres partes: en tres partes:

Entrada de datos. Entrada de datos.

Proceso. Proceso.

Salida de resultados. Salida de resultados.

Page 5: Algoritmos

Ejemplo 1:- Ejemplo 1:- Algoritmo para preparar ceviche Algoritmo para preparar ceviche

de bonito para 6 personas.de bonito para 6 personas. Entradas :Entradas : - 1 kilo de bonito - 1 kilo de bonito - 3 camotes sancochados - 3 camotes sancochados - 3 cebollas cortadas a lo largo - 3 cebollas cortadas a lo largo - 1 rocoto en rodajas - 1 rocoto en rodajas - 3 ramas de apio picado - 3 ramas de apio picado - 2 ramitas de culantro picado - 2 ramitas de culantro picado - 4 vasos de jugo de limón - 4 vasos de jugo de limón - 4 cucharadas de ajo molido - 4 cucharadas de ajo molido - 2 cucharadas de ají amarillo molido - 2 cucharadas de ají amarillo molido - sal y pimienta - sal y pimientaProceso :Proceso : - Cortar la carne de pescado en pequeños trozos. - Cortar la carne de pescado en pequeños trozos. - Mezclar la carne con el jugo de limón, el ajo, la pimienta, el culantro, el ají - Mezclar la carne con el jugo de limón, el ajo, la pimienta, el culantro, el ají amarillo y el apio. amarillo y el apio. - Dejar reposar 30 minutos. - Dejar reposar 30 minutos. - Agregar sal al gusto y echar las cebollas cortadas. - Agregar sal al gusto y echar las cebollas cortadas. - Servir acompañando el cebiche con el camote sancochado y el rocoto en - Servir acompañando el cebiche con el camote sancochado y el rocoto en rodajasrodajas Salida : Salida : El ceviche El ceviche

Page 6: Algoritmos

Ejemplo 1.2:- Ejemplo 1.2:- Algoritmo para expresar en centímetros y Algoritmo para expresar en centímetros y

pulgadas una cantidad dada en metros.pulgadas una cantidad dada en metros.

Entrada:Entrada: La cantidad M de metros La cantidad M de metros

Proceso:Proceso: Cálculo de centímetros : C = M*100 Cálculo de centímetros : C = M*100 Cálculo de pulgadas : P = C/2.54 Cálculo de pulgadas : P = C/2.54

Salida : Salida : La cantidad C de centímetros y la La cantidad C de centímetros y la cantidad P de pulgadas cantidad P de pulgadas

Page 7: Algoritmos

El PseudocódigoEl Pseudocódigo

El pseudocódigo es un lenguaje de El pseudocódigo es un lenguaje de pseudoprogramación utilizado para pseudoprogramación utilizado para escribir escribir algoritmos computacionalesalgoritmos computacionales. .

Page 8: Algoritmos

VariablesVariables

Una variable es una localización o casillero en la Una variable es una localización o casillero en la memoria principal que almacena un valor que memoria principal que almacena un valor que puede cambiar en el transcurso de la ejecución puede cambiar en el transcurso de la ejecución del programa. del programa. Cuando un programa necesita almacenar un Cuando un programa necesita almacenar un dato, necesita una variable. dato, necesita una variable. Toda variable tiene un Toda variable tiene un nombrenombre, un , un tipo de datotipo de dato y un y un valorvalor. . Antes de poder utilizar una variable es necesario Antes de poder utilizar una variable es necesario declararla especificando su declararla especificando su nombrenombre y su y su tipo de tipo de datodato. Para declarar variables usaremos los . Para declarar variables usaremos los siguientes formatos: siguientes formatos:

Page 9: Algoritmos

VariablesVariablesDeclaración de una variable:Declaración de una variable:

tipo nombretipo nombre

Declaración de varias variables con el mismo tipo de dato: Declaración de varias variables con el mismo tipo de dato:

tipo nombre1, nombre2, nombre3, ..., nombrentipo nombre1, nombre2, nombre3, ..., nombren

Donde:Donde:tipo tipo Es el tipo de dato de la variable que puede ser: ENTERO (si la variable Es el tipo de dato de la variable que puede ser: ENTERO (si la variable almacenará un número entero) , REAL (si la variable almacenará un almacenará un número entero) , REAL (si la variable almacenará un número decimal) , CARACTER (si la variable almacenará un carácter), número decimal) , CARACTER (si la variable almacenará un carácter), CADENA (si la variable almacenará un conjunto de carácteres) o LOGICO CADENA (si la variable almacenará un conjunto de carácteres) o LOGICO (si la variable almacenará el valor (si la variable almacenará el valor verdaderoverdadero o el valor o el valor falsofalso).).nombre1, nombre1, nombre2, ..., nombren nombre2, ..., nombren Nombres de las variables.Nombres de las variables.

Page 10: Algoritmos

Declaración de variables. Declaración de variables.

La siguiente instrucción declara la variable La siguiente instrucción declara la variable edadedad de tipo de tipo ENTEROENTERO y la variable y la variable descuentodescuento de tipo REAL. de tipo REAL.

ENTEROENTERO edad edadREALREAL descuento descuento

Esto crea los casilleros de memoria Esto crea los casilleros de memoria edadedad y y descuentodescuento. . Luego de la creación, las variables están indefinidas ( ? ). Luego de la creación, las variables están indefinidas ( ? ).

Page 11: Algoritmos

Declaración de variables.Declaración de variables.

La siguiente instrucción declara las variables La siguiente instrucción declara las variables nota1nota1, , nota2nota2 y y nota3nota3, todas de tipo , todas de tipo ENTEROENTERO. .

ENTEROENTERO nota1, nota2, nota3 nota1, nota2, nota3

Esto crea los casilleros de memoria Esto crea los casilleros de memoria nota1nota1, , nota2nota2 y y nota3nota3. . Luego de la creación, las variables están indefinidas ( ? ).Luego de la creación, las variables están indefinidas ( ? ).

Page 12: Algoritmos

LiteralesLiterales

Se denominan literales a todos aquellos Se denominan literales a todos aquellos valoresvalores que que figuran en el pseudocódigo y pueden ser:figuran en el pseudocódigo y pueden ser:Literales enterosLiterales enteros

12, 20300, 15, etc.12, 20300, 15, etc.Literales realesLiterales reales

3.1416, 2345.456, etc.3.1416, 2345.456, etc.Literales de carácterLiterales de carácter

'a', 'B', ';', '<', '+', etc.'a', 'B', ';', '<', '+', etc.Lieterales de cadenaLieterales de cadena

"Hola", "Algoritmos Computacionales", etc."Hola", "Algoritmos Computacionales", etc.Literales lógicosLiterales lógicos

verdadero, falso verdadero, falso

Page 13: Algoritmos

Instrucciones Algorítmicas Instrucciones Algorítmicas BásicasBásicas

EntradaEntradaConsiste en obtener un dato de un dispositivo de Consiste en obtener un dato de un dispositivo de entrada, como el teclado, y almacenarlo en una variable. entrada, como el teclado, y almacenarlo en una variable. En general, la acción de ingresar un dato a una En general, la acción de ingresar un dato a una variablevariable se expresa en el pseudocódigo mediante la palabra se expresa en el pseudocódigo mediante la palabra LEERLEER, de la siguiente forma:, de la siguiente forma:LEERLEER variable variable

Por ejemplo, la instrucción:Por ejemplo, la instrucción:

LEERLEER estatura estatura

Solicita el ingreso de un valor, desde algún dispositivo Solicita el ingreso de un valor, desde algún dispositivo de entrada (como el teclado), para la variable de entrada (como el teclado), para la variable estaturaestatura..

Page 14: Algoritmos

Instrucciones Algorítmicas Instrucciones Algorítmicas BásicasBásicas

SalidaSalidaConsiste en mostrar el valor de una variable en un Consiste en mostrar el valor de una variable en un dispositivo de salida, como la pantalla. En general, la dispositivo de salida, como la pantalla. En general, la acción de mostrar el valor de una acción de mostrar el valor de una variablevariable se expresa se expresa en el pseudocódigo mediante la palabra en el pseudocódigo mediante la palabra IMPRIMIRIMPRIMIR de la de la siguiente forma:siguiente forma:IMPRIMIRIMPRIMIR variable variable

Por ejemplo, la instrucción:Por ejemplo, la instrucción:

IMPRIMIRIMPRIMIR importeCompra importeCompra

Muestra, en algún dispositivo de salida (como la pantalla), Muestra, en algún dispositivo de salida (como la pantalla), el valor de la variable el valor de la variable importeCompraimporteCompra. .

Page 15: Algoritmos

Instrucciones Algorítmicas Instrucciones Algorítmicas BásicasBásicas

Asignación Asignación Consiste en asignar a una Consiste en asignar a una variablevariable el valor de el valor de una una expresiónexpresión. La expresión puede ser una . La expresión puede ser una simple variable, un simple literal o una simple variable, un simple literal o una combinación de variables, literales y combinación de variables, literales y operadores. La asignación se expresa en el operadores. La asignación se expresa en el pseudocódigo de la siguiente forma: pseudocódigo de la siguiente forma:

variable = expresión variable = expresión

Donde Donde variablevariable y el valor de y el valor de expresiónexpresión deben deben tener el mismo tipo de dato. tener el mismo tipo de dato.

Page 16: Algoritmos

Ejemplo:- Ejemplo:- Algoritmo para expresar en centímetros y Algoritmo para expresar en centímetros y

pulgadas una cantidad dada en metros.pulgadas una cantidad dada en metros.

Esta es una solución en pseudocódigo del Esta es una solución en pseudocódigo del ejemplo anterior utilizando conceptos ejemplo anterior utilizando conceptos computacionales de variable, entrada de computacionales de variable, entrada de datos y salida de resultados. La solución datos y salida de resultados. La solución considera que 1 metro = 100 centímetros considera que 1 metro = 100 centímetros y que 1 pulgada = 2.54 centímetros. y que 1 pulgada = 2.54 centímetros.

Page 17: Algoritmos
Page 18: Algoritmos

Operadores aritméticosOperadores aritméticos

Page 19: Algoritmos

Reglas de jerarquía de los Reglas de jerarquía de los operadores aritméticos operadores aritméticos

Page 20: Algoritmos

Expresiones LógicasExpresiones Lógicas

Page 21: Algoritmos

Expresiones LógicasExpresiones Lógicas

Page 22: Algoritmos

Estructuras de SecuenciaEstructuras de Secuencia

Una estructura secuencial es aquella en la Una estructura secuencial es aquella en la que las instrucciones están una a que las instrucciones están una a continuación de la otra siguiendo una continuación de la otra siguiendo una secuencia única, sin cambios de ruta. La secuencia única, sin cambios de ruta. La estructura secuencial tiene una entrada y estructura secuencial tiene una entrada y una salida. una salida. En la Figura se muestra el diagrama de En la Figura se muestra el diagrama de flujo y el pseudocódigo de una estructura flujo y el pseudocódigo de una estructura secuencial.secuencial.

Page 23: Algoritmos
Page 24: Algoritmos

Ejercicio 1Ejercicio 1:- Diseñe un pseudocódigo que halle el área y el perímetro :- Diseñe un pseudocódigo que halle el área y el perímetro de un rectángulo. Considere que: area = base x altura y de un rectángulo. Considere que: area = base x altura y

perimetro = 2 x (base+altura).perimetro = 2 x (base+altura).

Page 25: Algoritmos

Ejemplo 2Ejemplo 2:- Diseñe un pseudocódigo para convertir una :- Diseñe un pseudocódigo para convertir una longitud dada en metros a sus equivalentes en centímetros, longitud dada en metros a sus equivalentes en centímetros, pies, pulgadas y yardas. Considere que: 1 metro = 100 pies, pulgadas y yardas. Considere que: 1 metro = 100 centímetros, 1 pulgada = 2.54 centimetros, 1 pie = 12 centímetros, 1 pulgada = 2.54 centimetros, 1 pie = 12 pulgadas, 1 yarda = 3 pies.pulgadas, 1 yarda = 3 pies.

Page 26: Algoritmos

Estructuras de SelecciónEstructuras de Selección

Las estructuras de selección son estructuras de Las estructuras de selección son estructuras de control utilizadas para la toma decisiones dentro control utilizadas para la toma decisiones dentro de un programa. A estas estructuras se conocen de un programa. A estas estructuras se conocen también como también como estructuras selectivasestructuras selectivas o o estructuras de decisiónestructuras de decisión y son las siguientes: y son las siguientes:

La estructura de selección simple (La estructura de selección simple (SISI).).

La estructura de selección doble (La estructura de selección doble (SI-SINOSI-SINO).).

La estructura de selección múltiple (La estructura de selección múltiple (SEGUNSEGUN) )

Page 27: Algoritmos

Estructuras de SelecciónEstructuras de Selección

La estructura de selección simple permite La estructura de selección simple permite ejecutar una acción o un grupo de ejecutar una acción o un grupo de acciones sólo si se cumple una acciones sólo si se cumple una determinada condición. Así, en el gráfico determinada condición. Así, en el gráfico siguiente, si la condición es verdadera se siguiente, si la condición es verdadera se ejecuta la acción ejecuta la acción accionaacciona; en caso ; en caso contrario, no se hace nada. contrario, no se hace nada.

Page 28: Algoritmos
Page 29: Algoritmos

ejemploejemplo

Por ejemplo, si se desea cambiar el signo de un Por ejemplo, si se desea cambiar el signo de un número únicamente en caso que sea negativo, número únicamente en caso que sea negativo, podemos escribir:podemos escribir:

SISI( numero < 0 )( numero < 0 ) numero = -1 * numero numero = -1 * numero

Si el número no es negativo, simplemente esta Si el número no es negativo, simplemente esta estructura se pasaría por alto y se continuaría estructura se pasaría por alto y se continuaría en la siguiente instrucción después del en la siguiente instrucción después del SISI..

Page 30: Algoritmos

Estructura de Selección Estructura de Selección Doble SI - SINODoble SI - SINO

La estructura de selección doble permite La estructura de selección doble permite seleccionar una ruta de dos rutas posibles en seleccionar una ruta de dos rutas posibles en base a la verdad o falsedad de una condición. base a la verdad o falsedad de una condición. Así, en la Figura siguiente, si la condición es Así, en la Figura siguiente, si la condición es verdadera, se ejecuta la acción A; en caso verdadera, se ejecuta la acción A; en caso contrario, se ejecuta la acción B. contrario, se ejecuta la acción B.

En la Figura se muestra el diagrama de flujo y el En la Figura se muestra el diagrama de flujo y el pseudocódigo de la estructura de selección pseudocódigo de la estructura de selección doble.doble.

Page 31: Algoritmos
Page 32: Algoritmos

ejemploejemplo

Por ejemplo, la siguiente estructura de selección doble Por ejemplo, la siguiente estructura de selección doble determina si una persona es mayor o menor de edad:determina si una persona es mayor o menor de edad:

SISI( edad >= 18 )( edad >= 18 ) estado estado = = "Mayor de edad""Mayor de edad"SINOSINO estadoestado = = "Menor de edad“ "Menor de edad“

Esto imprime "Mayor de edad" si la persona tiene 18 Esto imprime "Mayor de edad" si la persona tiene 18 años ó más e imprime "Menor de edad" si la persona años ó más e imprime "Menor de edad" si la persona tiene menos de 18 años. En cualquiera de los casos, tiene menos de 18 años. En cualquiera de los casos, después de efectuar la impresión, se ejecutará la después de efectuar la impresión, se ejecutará la primera instrucción que sigue a la estructura primera instrucción que sigue a la estructura SI...SINOSI...SINO. .

Page 33: Algoritmos

Estructura de Selección Doble Estructura de Selección Doble en Cascada SI-SINO-SIen Cascada SI-SINO-SI

La estructura de selección doble en La estructura de selección doble en cascada esta formada por varias cascada esta formada por varias estructuras de selección doble SI-SINO estructuras de selección doble SI-SINO puestas una a continuación de otra de puestas una a continuación de otra de forma que a un SI-SINO le sigue otro SI-forma que a un SI-SINO le sigue otro SI-SINO. SINO.

Page 34: Algoritmos
Page 35: Algoritmos

ejemploejemploPor ejemplo, la siguiente estructura de selección doble en cascada determina el Por ejemplo, la siguiente estructura de selección doble en cascada determina el signo de un número entre positivo, negativo o cero:signo de un número entre positivo, negativo o cero:

SISI( n > 0 ) ( n > 0 ) signosigno = = "Positivo""Positivo"SINOSINO SI SI( n < 0 ) ( n < 0 ) signo signo = = "Negativo" "Negativo" SINO SINO signo signo = = "Cero" "Cero"

Usando el otro formato tendríamos:Usando el otro formato tendríamos:

SISI( n > 0 ) ( n > 0 ) signosigno = = "Positivo""Positivo"SINO SISINO SI( n < 0 ) ( n < 0 ) signo signo = = "Negativo" "Negativo"SINO SINO signo signo = = "Cero" "Cero"

Page 36: Algoritmos

Estructura de Selección Múltiple Estructura de Selección Múltiple SEGUNSEGUN

La estructura de selección múltiple La estructura de selección múltiple SEGUNSEGUN permite elegir una ruta de entre permite elegir una ruta de entre varias rutas posibles, en base al valor de varias rutas posibles, en base al valor de una variable que actúa como una variable que actúa como selectorselector. La . La estructura compara el valor delestructura compara el valor del selector selector con las constantes c1, c2, ..., cn en orden con las constantes c1, c2, ..., cn en orden descendente. En el momento en que se descendente. En el momento en que se encuentre una coincidencia, se ejecuta la encuentre una coincidencia, se ejecuta la acción correspondiente a dicha constante acción correspondiente a dicha constante y se abandona la estructura. y se abandona la estructura.

Page 37: Algoritmos
Page 38: Algoritmos

ejemploejemplo

Por ejemplo, la siguiente estructura de selección Por ejemplo, la siguiente estructura de selección múltiple determina el nombre de la estación del múltiple determina el nombre de la estación del año conociendo el número de la estación (1 año conociendo el número de la estación (1 para Primavera, 2 para Verano, 3 para Otoño y para Primavera, 2 para Verano, 3 para Otoño y 4 para Invierno) : 4 para Invierno) :

SEGUNSEGUN(numeroEstacion)(numeroEstacion){{ CASO CASO 1 1 : : nombreEstacion = "Primavera"nombreEstacion = "Primavera" CASOCASO 2 : nombreEstacion = "Verano" 2 : nombreEstacion = "Verano" CASOCASO 3 : nombreEstacion = "Otoño" 3 : nombreEstacion = "Otoño" DEFECTO : DEFECTO : nombreEstacion = "Invierno"nombreEstacion = "Invierno"}}

Page 39: Algoritmos

Ejercicio 1:-Ejercicio 1:- En una playa de estacionamiento cobran $ 2.5 por hora o En una playa de estacionamiento cobran $ 2.5 por hora o fracción. Diseñe un algoritmo que determine cuanto debe pagar un fracción. Diseñe un algoritmo que determine cuanto debe pagar un

cliente por el estacionamiento de su vehículo, conociendo el tiempo de cliente por el estacionamiento de su vehículo, conociendo el tiempo de estacionamiento en horas y minutos.estacionamiento en horas y minutos.

Page 40: Algoritmos

EjercicioEjercicio

Una tienda ha puesto en oferta la venta al por Una tienda ha puesto en oferta la venta al por mayor de cierto producto, ofreciendo un mayor de cierto producto, ofreciendo un descuento del 15% por la compra de más de 3 descuento del 15% por la compra de más de 3 docenas y 10% en caso contrario. Además por docenas y 10% en caso contrario. Además por la compra de más de 3 docenas se obsequia la compra de más de 3 docenas se obsequia una unidad del producto por cada docena en una unidad del producto por cada docena en exceso sobre 3. Diseñe un algoritmo que exceso sobre 3. Diseñe un algoritmo que determine el monto de la compra, el monto del determine el monto de la compra, el monto del descuento, el monto a pagar y el número de descuento, el monto a pagar y el número de unidades de obsequio por la compra de cierta unidades de obsequio por la compra de cierta cantidad de docenas del producto. cantidad de docenas del producto.

Page 41: Algoritmos
Page 42: Algoritmos

diagrama de flujodiagrama de flujo

Un diagrama de flujo es la representación Un diagrama de flujo es la representación gráfica de un proceso. gráfica de un proceso. Un diagrama de flujo tiene como objetivo Un diagrama de flujo tiene como objetivo facilitarnos la comprensión de un algoritmo o facilitarnos la comprensión de un algoritmo o simplificar el análisis de un proceso.simplificar el análisis de un proceso.El diagrama de flujo consta de símbolos como El diagrama de flujo consta de símbolos como cuadros, rombos, óvalos, etc. que representan a cuadros, rombos, óvalos, etc. que representan a cada uno de los pasos a seguir durante un cada uno de los pasos a seguir durante un proceso. proceso. Estos símbolos están conectados por flechas de Estos símbolos están conectados por flechas de un solo sentido y nos indican la secuencia en un solo sentido y nos indican la secuencia en que se van desarrollando las distintas tareas. que se van desarrollando las distintas tareas.

Page 43: Algoritmos
Page 44: Algoritmos
Page 45: Algoritmos
Page 46: Algoritmos
Page 47: Algoritmos
Page 48: Algoritmos
Page 49: Algoritmos
Page 50: Algoritmos
Page 51: Algoritmos

TareaTarea

Hacer los 15 ejercicios de algoritmos con Hacer los 15 ejercicios de algoritmos con algún simulador de diagramas de flujo, algún simulador de diagramas de flujo, por ejemplo PSEINT, DFD u otro que por ejemplo PSEINT, DFD u otro que conozcan.conozcan.