Algoritmosmartinnievas.com/files/info2019/algoritmos.pdf · Algoritmos “La solución a cualquier...
Transcript of Algoritmosmartinnievas.com/files/info2019/algoritmos.pdf · Algoritmos “La solución a cualquier...
![Page 1: Algoritmosmartinnievas.com/files/info2019/algoritmos.pdf · Algoritmos “La solución a cualquier problema de computo involucra una serie de acciones ejecutadas en un orden especifico”](https://reader034.fdocumento.com/reader034/viewer/2022050601/5fa895f94baad11ce01c0a4c/html5/thumbnails/1.jpg)
Algoritmos
Nievas Martin
19/05/19
![Page 2: Algoritmosmartinnievas.com/files/info2019/algoritmos.pdf · Algoritmos “La solución a cualquier problema de computo involucra una serie de acciones ejecutadas en un orden especifico”](https://reader034.fdocumento.com/reader034/viewer/2022050601/5fa895f94baad11ce01c0a4c/html5/thumbnails/2.jpg)
Algoritmos
Ingresar dos notas de parcialesCalcular el promedioImprimir el promedioImprimir el estado académico según:
Aprobado: mayor o igual a 8Regular: mayor o igual a 6Desaprobado: menor a 6
![Page 3: Algoritmosmartinnievas.com/files/info2019/algoritmos.pdf · Algoritmos “La solución a cualquier problema de computo involucra una serie de acciones ejecutadas en un orden especifico”](https://reader034.fdocumento.com/reader034/viewer/2022050601/5fa895f94baad11ce01c0a4c/html5/thumbnails/3.jpg)
Algoritmos
Algoritmos ?
![Page 4: Algoritmosmartinnievas.com/files/info2019/algoritmos.pdf · Algoritmos “La solución a cualquier problema de computo involucra una serie de acciones ejecutadas en un orden especifico”](https://reader034.fdocumento.com/reader034/viewer/2022050601/5fa895f94baad11ce01c0a4c/html5/thumbnails/4.jpg)
Algoritmos
● “La solución a cualquier problema de computo involucra una serie de acciones ejecutadas en un orden especifico” (Deitel)(Deitel)
● “Informalmente, un algoritmo es un procedimiento de cálculo bien definido que toma un cierto valor, o conjunto de valores, como entrada y produce un cierto valor, o conjunto de valores, como salida. Un algoritmo es, entonces, una secuencia de pasos computacionales que transforman la entrada en una salida.” (Cormen)(Cormen)
![Page 5: Algoritmosmartinnievas.com/files/info2019/algoritmos.pdf · Algoritmos “La solución a cualquier problema de computo involucra una serie de acciones ejecutadas en un orden especifico”](https://reader034.fdocumento.com/reader034/viewer/2022050601/5fa895f94baad11ce01c0a4c/html5/thumbnails/5.jpg)
Algoritmos
![Page 6: Algoritmosmartinnievas.com/files/info2019/algoritmos.pdf · Algoritmos “La solución a cualquier problema de computo involucra una serie de acciones ejecutadas en un orden especifico”](https://reader034.fdocumento.com/reader034/viewer/2022050601/5fa895f94baad11ce01c0a4c/html5/thumbnails/6.jpg)
¿Como escribo un algoritmo si todavía no se nada de programación?
a)Lenguaje natural
b)Pseudocódigo
c)Diagramas de flujo
d)Lenguajes de programación
![Page 7: Algoritmosmartinnievas.com/files/info2019/algoritmos.pdf · Algoritmos “La solución a cualquier problema de computo involucra una serie de acciones ejecutadas en un orden especifico”](https://reader034.fdocumento.com/reader034/viewer/2022050601/5fa895f94baad11ce01c0a4c/html5/thumbnails/7.jpg)
a)Lenguaje natural
Pasos para aprobar una materia● Entrar a clases● Poner atención● Tomar notas● Estudiar notas● Hacer ejercicios● Hacer parcial● Si no promociono, hacer final● Terminar
![Page 8: Algoritmosmartinnievas.com/files/info2019/algoritmos.pdf · Algoritmos “La solución a cualquier problema de computo involucra una serie de acciones ejecutadas en un orden especifico”](https://reader034.fdocumento.com/reader034/viewer/2022050601/5fa895f94baad11ce01c0a4c/html5/thumbnails/8.jpg)
b)Pseudocódigo
● Aproximación al lenguaje● Estructuras de control● Solo acciones y decisiones
![Page 9: Algoritmosmartinnievas.com/files/info2019/algoritmos.pdf · Algoritmos “La solución a cualquier problema de computo involucra una serie de acciones ejecutadas en un orden especifico”](https://reader034.fdocumento.com/reader034/viewer/2022050601/5fa895f94baad11ce01c0a4c/html5/thumbnails/9.jpg)
b)PseudocódigoEstructuras de control
![Page 10: Algoritmosmartinnievas.com/files/info2019/algoritmos.pdf · Algoritmos “La solución a cualquier problema de computo involucra una serie de acciones ejecutadas en un orden especifico”](https://reader034.fdocumento.com/reader034/viewer/2022050601/5fa895f94baad11ce01c0a4c/html5/thumbnails/10.jpg)
b)PseudocódigoEstructuras de control● Sentencias se ejecutan una detrás de otra
– Orden en que fueron escritas.
![Page 11: Algoritmosmartinnievas.com/files/info2019/algoritmos.pdf · Algoritmos “La solución a cualquier problema de computo involucra una serie de acciones ejecutadas en un orden especifico”](https://reader034.fdocumento.com/reader034/viewer/2022050601/5fa895f94baad11ce01c0a4c/html5/thumbnails/11.jpg)
b)PseudocódigoEstructuras de control● Sentencias se ejecutan una detrás de otra
– Orden en que fueron escritas. (Normalmente)
![Page 12: Algoritmosmartinnievas.com/files/info2019/algoritmos.pdf · Algoritmos “La solución a cualquier problema de computo involucra una serie de acciones ejecutadas en un orden especifico”](https://reader034.fdocumento.com/reader034/viewer/2022050601/5fa895f94baad11ce01c0a4c/html5/thumbnails/12.jpg)
b)PseudocódigoEstructuras de control● Sentencias se ejecutan una detrás de otra
– Orden en que fueron escritas. (Normalmente)
● Algunas sentencias provocan saltos en el orden.
![Page 13: Algoritmosmartinnievas.com/files/info2019/algoritmos.pdf · Algoritmos “La solución a cualquier problema de computo involucra una serie de acciones ejecutadas en un orden especifico”](https://reader034.fdocumento.com/reader034/viewer/2022050601/5fa895f94baad11ce01c0a4c/html5/thumbnails/13.jpg)
b)PseudocódigoEstructuras de control● Sentencias se ejecutan una detrás de otra
– Orden en que fueron escritas. (Normalmente)
● Algunas sentencias provocan saltos en el orden. (transferencia de control)
![Page 14: Algoritmosmartinnievas.com/files/info2019/algoritmos.pdf · Algoritmos “La solución a cualquier problema de computo involucra una serie de acciones ejecutadas en un orden especifico”](https://reader034.fdocumento.com/reader034/viewer/2022050601/5fa895f94baad11ce01c0a4c/html5/thumbnails/14.jpg)
b)PseudocódigoEstructuras de control● Sentencias se ejecutan una detrás de otra
– Orden en que fueron escritas. (Normalmente)
● Algunas sentencias provocan saltos en el orden. (transferencia de control)
● C.Bohm y G.Jacopini¹ [1966]– Utilizando solo 3 estructuras de control– Secuencia, selección e reiteración.
¹ “Flow diagram, Turing Machines, and Languages with Only two Formation Rules” Communication of the ACM, 1966
![Page 15: Algoritmosmartinnievas.com/files/info2019/algoritmos.pdf · Algoritmos “La solución a cualquier problema de computo involucra una serie de acciones ejecutadas en un orden especifico”](https://reader034.fdocumento.com/reader034/viewer/2022050601/5fa895f94baad11ce01c0a4c/html5/thumbnails/15.jpg)
b)PseudocódigoAcciones – entrada y salida de datos
Imprimir “Bienvenidos a info 1”
Imprimir “Esto es una cadena de texto”
Imprimir “Ingrese un número: ”
Leer num
![Page 16: Algoritmosmartinnievas.com/files/info2019/algoritmos.pdf · Algoritmos “La solución a cualquier problema de computo involucra una serie de acciones ejecutadas en un orden especifico”](https://reader034.fdocumento.com/reader034/viewer/2022050601/5fa895f94baad11ce01c0a4c/html5/thumbnails/16.jpg)
b)PseudocódigoDecisión – algoritmo para determinar estado
Leer nota
Si nota es mayor o igual que 6 entonces Imprimir: “Aprobado”
si noImprimir: “Desaprobado”
fin si
![Page 17: Algoritmosmartinnievas.com/files/info2019/algoritmos.pdf · Algoritmos “La solución a cualquier problema de computo involucra una serie de acciones ejecutadas en un orden especifico”](https://reader034.fdocumento.com/reader034/viewer/2022050601/5fa895f94baad11ce01c0a4c/html5/thumbnails/17.jpg)
c)Diagrama de flujo
● Representación gráfica de un algoritmo– (O de una parte)
● Símbolos especiales– Cuadrados– Círculos– Diamantes
● Unidos por flechas
![Page 18: Algoritmosmartinnievas.com/files/info2019/algoritmos.pdf · Algoritmos “La solución a cualquier problema de computo involucra una serie de acciones ejecutadas en un orden especifico”](https://reader034.fdocumento.com/reader034/viewer/2022050601/5fa895f94baad11ce01c0a4c/html5/thumbnails/18.jpg)
c)Diagrama de flujoAcciones – entrada y salida de datos
![Page 19: Algoritmosmartinnievas.com/files/info2019/algoritmos.pdf · Algoritmos “La solución a cualquier problema de computo involucra una serie de acciones ejecutadas en un orden especifico”](https://reader034.fdocumento.com/reader034/viewer/2022050601/5fa895f94baad11ce01c0a4c/html5/thumbnails/19.jpg)
c)Diagrama de flujoDecisión – algoritmo para determinar estado
![Page 20: Algoritmosmartinnievas.com/files/info2019/algoritmos.pdf · Algoritmos “La solución a cualquier problema de computo involucra una serie de acciones ejecutadas en un orden especifico”](https://reader034.fdocumento.com/reader034/viewer/2022050601/5fa895f94baad11ce01c0a4c/html5/thumbnails/20.jpg)
Pseudocódigo/Diagrama de flujoEquivalencias
![Page 21: Algoritmosmartinnievas.com/files/info2019/algoritmos.pdf · Algoritmos “La solución a cualquier problema de computo involucra una serie de acciones ejecutadas en un orden especifico”](https://reader034.fdocumento.com/reader034/viewer/2022050601/5fa895f94baad11ce01c0a4c/html5/thumbnails/21.jpg)
Pseudocódigo/Diagrama de flujoAsignaciones
altura = 10
base = altura + 10
sup = base * altura
![Page 22: Algoritmosmartinnievas.com/files/info2019/algoritmos.pdf · Algoritmos “La solución a cualquier problema de computo involucra una serie de acciones ejecutadas en un orden especifico”](https://reader034.fdocumento.com/reader034/viewer/2022050601/5fa895f94baad11ce01c0a4c/html5/thumbnails/22.jpg)
Pseudocódigo/Diagrama de flujoBloque si simple
Si fin > inicio entoncesdelta = fin – inicio
fin
![Page 23: Algoritmosmartinnievas.com/files/info2019/algoritmos.pdf · Algoritmos “La solución a cualquier problema de computo involucra una serie de acciones ejecutadas en un orden especifico”](https://reader034.fdocumento.com/reader034/viewer/2022050601/5fa895f94baad11ce01c0a4c/html5/thumbnails/23.jpg)
ProgramaCalcular el área de un triángulo
Implementar en pseudocódigo un programa que:
1) Solicite al usuario ingresar la base y la altura de un triangulo
2) Imprima el área del triangulo
![Page 24: Algoritmosmartinnievas.com/files/info2019/algoritmos.pdf · Algoritmos “La solución a cualquier problema de computo involucra una serie de acciones ejecutadas en un orden especifico”](https://reader034.fdocumento.com/reader034/viewer/2022050601/5fa895f94baad11ce01c0a4c/html5/thumbnails/24.jpg)
ProgramaControl temperatura
Implementar en pseudocódigo un programa que:
1) Solicite al usuario ingresar temperatura actual2) Si la temperatura es:
mayor que 40°C imprmir: “Prender AC”menor que 25°C imprimir: “Prender calefacción”
![Page 25: Algoritmosmartinnievas.com/files/info2019/algoritmos.pdf · Algoritmos “La solución a cualquier problema de computo involucra una serie de acciones ejecutadas en un orden especifico”](https://reader034.fdocumento.com/reader034/viewer/2022050601/5fa895f94baad11ce01c0a4c/html5/thumbnails/25.jpg)
Código C - Diagrama de flujoEquivalencias
printf(“Hola”);
![Page 26: Algoritmosmartinnievas.com/files/info2019/algoritmos.pdf · Algoritmos “La solución a cualquier problema de computo involucra una serie de acciones ejecutadas en un orden especifico”](https://reader034.fdocumento.com/reader034/viewer/2022050601/5fa895f94baad11ce01c0a4c/html5/thumbnails/26.jpg)
Código C - Diagrama de flujoEquivalencias
if (fin > inicio)
{
delta = fin – inicio;
}
![Page 27: Algoritmosmartinnievas.com/files/info2019/algoritmos.pdf · Algoritmos “La solución a cualquier problema de computo involucra una serie de acciones ejecutadas en un orden especifico”](https://reader034.fdocumento.com/reader034/viewer/2022050601/5fa895f94baad11ce01c0a4c/html5/thumbnails/27.jpg)
Problema del inicio
Ingresar dos notas de parcialesCalcular el promedioImprimir el promedioImprimir el estado académico según:
Aprobado: mayor o igual a 8Regular: mayor o igual a 6Desaprobado: menor a 6
![Page 28: Algoritmosmartinnievas.com/files/info2019/algoritmos.pdf · Algoritmos “La solución a cualquier problema de computo involucra una serie de acciones ejecutadas en un orden especifico”](https://reader034.fdocumento.com/reader034/viewer/2022050601/5fa895f94baad11ce01c0a4c/html5/thumbnails/28.jpg)
Pseudocódigo/Diagrama de flujoBloque si doble
Si fin > inicio entoncesdelta = fin – inicio
si nodelta = inicio – fin
fin
![Page 29: Algoritmosmartinnievas.com/files/info2019/algoritmos.pdf · Algoritmos “La solución a cualquier problema de computo involucra una serie de acciones ejecutadas en un orden especifico”](https://reader034.fdocumento.com/reader034/viewer/2022050601/5fa895f94baad11ce01c0a4c/html5/thumbnails/29.jpg)
ProgramaParidad de un número
Implementar un algoritmo que :
1) Solicite al usuario ingresar un número2) Imprimir si el número ingresado es par o no.
![Page 30: Algoritmosmartinnievas.com/files/info2019/algoritmos.pdf · Algoritmos “La solución a cualquier problema de computo involucra una serie de acciones ejecutadas en un orden especifico”](https://reader034.fdocumento.com/reader034/viewer/2022050601/5fa895f94baad11ce01c0a4c/html5/thumbnails/30.jpg)
Código C - Diagrama de flujoEquivalencias Bloque si doble
if (fin > inicio)
{delta = fin – inicio;
}
else
{delta = inicio – fin;
}
![Page 31: Algoritmosmartinnievas.com/files/info2019/algoritmos.pdf · Algoritmos “La solución a cualquier problema de computo involucra una serie de acciones ejecutadas en un orden especifico”](https://reader034.fdocumento.com/reader034/viewer/2022050601/5fa895f94baad11ce01c0a4c/html5/thumbnails/31.jpg)
AnidamientoBloque si doble – resolución del problema inicio
En la pizarra...
![Page 32: Algoritmosmartinnievas.com/files/info2019/algoritmos.pdf · Algoritmos “La solución a cualquier problema de computo involucra una serie de acciones ejecutadas en un orden especifico”](https://reader034.fdocumento.com/reader034/viewer/2022050601/5fa895f94baad11ce01c0a4c/html5/thumbnails/32.jpg)
Operadores de asignación
Operador Ejemplo Equivalencia
= X = 3 X = 3
+= prom += 3 prom = prom + 3
-= prom -= 3 prom = prom - 3
*= prom *= 3 prom = prom * 3
/= prom /= 3 prom = prom / 3
%= prom %= 3 prom = prom % 3
![Page 33: Algoritmosmartinnievas.com/files/info2019/algoritmos.pdf · Algoritmos “La solución a cualquier problema de computo involucra una serie de acciones ejecutadas en un orden especifico”](https://reader034.fdocumento.com/reader034/viewer/2022050601/5fa895f94baad11ce01c0a4c/html5/thumbnails/33.jpg)
Operadores de unarios
Operador Ejemplo Explicación
++ i++ Utiliza e incrementa el valor de i
-- i-- Utiliza y decrementa el valor de i
++ ++i Incrementa y luego utiliza el valor de i
-- --i Decrementa y luego utiliza el valor de i
![Page 34: Algoritmosmartinnievas.com/files/info2019/algoritmos.pdf · Algoritmos “La solución a cualquier problema de computo involucra una serie de acciones ejecutadas en un orden especifico”](https://reader034.fdocumento.com/reader034/viewer/2022050601/5fa895f94baad11ce01c0a4c/html5/thumbnails/34.jpg)
Operadores lógicos
Operador Explicación
! Negación.
&& AND lógico, ambas condiciones son verdaderas.
|| OR lógico, al menos una condición es verdadera.
![Page 35: Algoritmosmartinnievas.com/files/info2019/algoritmos.pdf · Algoritmos “La solución a cualquier problema de computo involucra una serie de acciones ejecutadas en un orden especifico”](https://reader034.fdocumento.com/reader034/viewer/2022050601/5fa895f94baad11ce01c0a4c/html5/thumbnails/35.jpg)
Problema
● Se desea obtener el promedio de notas, para un curso de 10 personas, de las cuales el usuario tiene acceso.
● Imprimir el promedio de las notas por pantalla
![Page 36: Algoritmosmartinnievas.com/files/info2019/algoritmos.pdf · Algoritmos “La solución a cualquier problema de computo involucra una serie de acciones ejecutadas en un orden especifico”](https://reader034.fdocumento.com/reader034/viewer/2022050601/5fa895f94baad11ce01c0a4c/html5/thumbnails/36.jpg)
Problema
● Se desea obtener el promedio de notas, para un curso de 10 personas, de las cuales el usuario tiene acceso.
● Imprimir el promedio de las notas por pantalla
● Y si ahora fuera para 100 personas?...
![Page 37: Algoritmosmartinnievas.com/files/info2019/algoritmos.pdf · Algoritmos “La solución a cualquier problema de computo involucra una serie de acciones ejecutadas en un orden especifico”](https://reader034.fdocumento.com/reader034/viewer/2022050601/5fa895f94baad11ce01c0a4c/html5/thumbnails/37.jpg)
RepeticionesControladas por contadorpromedio = 0contador = 0mientras condición entonces
operaciones
.
.
.
fin
![Page 38: Algoritmosmartinnievas.com/files/info2019/algoritmos.pdf · Algoritmos “La solución a cualquier problema de computo involucra una serie de acciones ejecutadas en un orden especifico”](https://reader034.fdocumento.com/reader034/viewer/2022050601/5fa895f94baad11ce01c0a4c/html5/thumbnails/38.jpg)
RepeticionesControladas por contadorpromedio = 0contador = 0mientras contador menor que 10 entonces
Imprimir:”Ingrese nota: “
Leer: nota
promedio = promedio + nota
contador = contador + 1
fin
promedio = promedio / 10
imprimir: promedio
![Page 39: Algoritmosmartinnievas.com/files/info2019/algoritmos.pdf · Algoritmos “La solución a cualquier problema de computo involucra una serie de acciones ejecutadas en un orden especifico”](https://reader034.fdocumento.com/reader034/viewer/2022050601/5fa895f94baad11ce01c0a4c/html5/thumbnails/39.jpg)
RepeticionesControladas por contador - análisispromedio = 0contador = 0mientras contador menor que 10 entonces
Imprimir:”Ingrese nota: “
Leer: nota
promedio = promedio + nota
contador = contador + 1
fin
promedio = promedio / 10
imprimir: promedio
![Page 40: Algoritmosmartinnievas.com/files/info2019/algoritmos.pdf · Algoritmos “La solución a cualquier problema de computo involucra una serie de acciones ejecutadas en un orden especifico”](https://reader034.fdocumento.com/reader034/viewer/2022050601/5fa895f94baad11ce01c0a4c/html5/thumbnails/40.jpg)
RepeticionesControladas por contador - análisispromedio = 0contador = 0mientras contador menor que 10 entonces
Imprimir:”Ingrese nota: “
Leer: nota
promedio = promedio + nota
contador = contador + 1
fin
promedio = promedio / 10
imprimir: promedio
![Page 41: Algoritmosmartinnievas.com/files/info2019/algoritmos.pdf · Algoritmos “La solución a cualquier problema de computo involucra una serie de acciones ejecutadas en un orden especifico”](https://reader034.fdocumento.com/reader034/viewer/2022050601/5fa895f94baad11ce01c0a4c/html5/thumbnails/41.jpg)
RepeticionesControladas por contador - análisispromedio = 0contador = 0mientras contador menor que 10 entonces
Imprimir:”Ingrese nota: “
Leer: nota
promedio = promedio + nota
contador = contador + 1
fin
promedio = promedio / 10
imprimir: promedio
![Page 42: Algoritmosmartinnievas.com/files/info2019/algoritmos.pdf · Algoritmos “La solución a cualquier problema de computo involucra una serie de acciones ejecutadas en un orden especifico”](https://reader034.fdocumento.com/reader034/viewer/2022050601/5fa895f94baad11ce01c0a4c/html5/thumbnails/42.jpg)
RepeticionesControladas por contador - C
while(condición){
operaciones
}
![Page 43: Algoritmosmartinnievas.com/files/info2019/algoritmos.pdf · Algoritmos “La solución a cualquier problema de computo involucra una serie de acciones ejecutadas en un orden especifico”](https://reader034.fdocumento.com/reader034/viewer/2022050601/5fa895f94baad11ce01c0a4c/html5/thumbnails/43.jpg)
RepeticionesControladas por contador – seguimos en la PC
while(condición){
operaciones
}