Download - Nievas Martin 28/04/20
![Page 1: Nievas Martin 28/04/20](https://reader035.vdocuments.co/reader035/viewer/2022071816/62d48d9e8fd40b41e572ca5c/html5/thumbnails/1.jpg)
Algoritmos
Nievas Martin
28/04/20
![Page 2: Nievas Martin 28/04/20](https://reader035.vdocuments.co/reader035/viewer/2022071816/62d48d9e8fd40b41e572ca5c/html5/thumbnails/2.jpg)
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
AlgoritmosComo resolvería el siguiente problema?
![Page 3: Nievas Martin 28/04/20](https://reader035.vdocuments.co/reader035/viewer/2022071816/62d48d9e8fd40b41e572ca5c/html5/thumbnails/3.jpg)
Algoritmos
Algoritmos ?
![Page 4: Nievas Martin 28/04/20](https://reader035.vdocuments.co/reader035/viewer/2022071816/62d48d9e8fd40b41e572ca5c/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: Nievas Martin 28/04/20](https://reader035.vdocuments.co/reader035/viewer/2022071816/62d48d9e8fd40b41e572ca5c/html5/thumbnails/5.jpg)
Algoritmos
![Page 6: Nievas Martin 28/04/20](https://reader035.vdocuments.co/reader035/viewer/2022071816/62d48d9e8fd40b41e572ca5c/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: Nievas Martin 28/04/20](https://reader035.vdocuments.co/reader035/viewer/2022071816/62d48d9e8fd40b41e572ca5c/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: Nievas Martin 28/04/20](https://reader035.vdocuments.co/reader035/viewer/2022071816/62d48d9e8fd40b41e572ca5c/html5/thumbnails/8.jpg)
b)Pseudocódigo
● Aproximación al lenguaje● Estructuras de control● Solo acciones y decisiones
![Page 9: Nievas Martin 28/04/20](https://reader035.vdocuments.co/reader035/viewer/2022071816/62d48d9e8fd40b41e572ca5c/html5/thumbnails/9.jpg)
b)PseudocódigoEstructuras de control
![Page 10: Nievas Martin 28/04/20](https://reader035.vdocuments.co/reader035/viewer/2022071816/62d48d9e8fd40b41e572ca5c/html5/thumbnails/10.jpg)
b)PseudocódigoEstructuras de control● Sentencias se ejecutan una detrás de otra
– Orden en que fueron escritas.
![Page 11: Nievas Martin 28/04/20](https://reader035.vdocuments.co/reader035/viewer/2022071816/62d48d9e8fd40b41e572ca5c/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: Nievas Martin 28/04/20](https://reader035.vdocuments.co/reader035/viewer/2022071816/62d48d9e8fd40b41e572ca5c/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: Nievas Martin 28/04/20](https://reader035.vdocuments.co/reader035/viewer/2022071816/62d48d9e8fd40b41e572ca5c/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: Nievas Martin 28/04/20](https://reader035.vdocuments.co/reader035/viewer/2022071816/62d48d9e8fd40b41e572ca5c/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: Nievas Martin 28/04/20](https://reader035.vdocuments.co/reader035/viewer/2022071816/62d48d9e8fd40b41e572ca5c/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: Nievas Martin 28/04/20](https://reader035.vdocuments.co/reader035/viewer/2022071816/62d48d9e8fd40b41e572ca5c/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 no
Imprimir: “Desaprobado”fin si
![Page 17: Nievas Martin 28/04/20](https://reader035.vdocuments.co/reader035/viewer/2022071816/62d48d9e8fd40b41e572ca5c/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: Nievas Martin 28/04/20](https://reader035.vdocuments.co/reader035/viewer/2022071816/62d48d9e8fd40b41e572ca5c/html5/thumbnails/18.jpg)
c)Diagrama de flujoAcciones – entrada y salida de datos
![Page 19: Nievas Martin 28/04/20](https://reader035.vdocuments.co/reader035/viewer/2022071816/62d48d9e8fd40b41e572ca5c/html5/thumbnails/19.jpg)
c)Diagrama de flujoAcciones – algoritmo para determinar estado
![Page 20: Nievas Martin 28/04/20](https://reader035.vdocuments.co/reader035/viewer/2022071816/62d48d9e8fd40b41e572ca5c/html5/thumbnails/20.jpg)
Pseudocódigo/Diagrama de flujoEquivalencias
![Page 21: Nievas Martin 28/04/20](https://reader035.vdocuments.co/reader035/viewer/2022071816/62d48d9e8fd40b41e572ca5c/html5/thumbnails/21.jpg)
Pseudocódigo/Diagrama de flujoAsignaciones
altura = 10
base = altura + 10
sup = base * altura
![Page 22: Nievas Martin 28/04/20](https://reader035.vdocuments.co/reader035/viewer/2022071816/62d48d9e8fd40b41e572ca5c/html5/thumbnails/22.jpg)
Pseudocódigo/Diagrama de flujoBloque si simple
Si fin > inicio entoncesdelta = fin – inicio
fin
![Page 23: Nievas Martin 28/04/20](https://reader035.vdocuments.co/reader035/viewer/2022071816/62d48d9e8fd40b41e572ca5c/html5/thumbnails/23.jpg)
ProgramaCalcular el área de un círculo
Implementar en pseudocódigo un programa que:
1) Solicite al usuario ingresar el radio de un círculo2) Imprima el área del círculo
![Page 24: Nievas Martin 28/04/20](https://reader035.vdocuments.co/reader035/viewer/2022071816/62d48d9e8fd40b41e572ca5c/html5/thumbnails/24.jpg)
ProgramaControl temperatura
Implementar en pseudocódigo un programa que:
1) Solicite al usuario ingresar temperatura2) Si la temperatura es:
mayor que 40°C imprmir: “Prender AC”menor que 25°C imprimir: “Prender calefacción”
![Page 25: Nievas Martin 28/04/20](https://reader035.vdocuments.co/reader035/viewer/2022071816/62d48d9e8fd40b41e572ca5c/html5/thumbnails/25.jpg)
ProgramaControl colisiones
Implementar en pseudocódigo un programa que:
1) Solicite al usuario ingresar estatura2) Si la estatura es:
mayor que altura imprimir: “Colisión!”menor que altura imprimir: “Todo normal”
![Page 26: Nievas Martin 28/04/20](https://reader035.vdocuments.co/reader035/viewer/2022071816/62d48d9e8fd40b41e572ca5c/html5/thumbnails/26.jpg)
Código C - Diagrama de flujoEquivalencias
printf(“Hola”);
![Page 27: Nievas Martin 28/04/20](https://reader035.vdocuments.co/reader035/viewer/2022071816/62d48d9e8fd40b41e572ca5c/html5/thumbnails/27.jpg)
Código C - Diagrama de flujoEquivalencias
if (fin > inicio)
{
delta = fin – inicio;
}
![Page 28: Nievas Martin 28/04/20](https://reader035.vdocuments.co/reader035/viewer/2022071816/62d48d9e8fd40b41e572ca5c/html5/thumbnails/28.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 29: Nievas Martin 28/04/20](https://reader035.vdocuments.co/reader035/viewer/2022071816/62d48d9e8fd40b41e572ca5c/html5/thumbnails/29.jpg)
Si fin > inicio entoncesdelta = fin – inicio
si nodelta = inicio – fin
fin
Pseudocódigo/Diagrama de flujoBloque si doble
![Page 30: Nievas Martin 28/04/20](https://reader035.vdocuments.co/reader035/viewer/2022071816/62d48d9e8fd40b41e572ca5c/html5/thumbnails/30.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 positivo o no.
![Page 31: Nievas Martin 28/04/20](https://reader035.vdocuments.co/reader035/viewer/2022071816/62d48d9e8fd40b41e572ca5c/html5/thumbnails/31.jpg)
Código C - Diagrama de flujoEquivalencias Bloque si doble
if (fin > inicio)
{
delta = fin – inicio;
}
else
{
delta = inicio – fin;
}
![Page 32: Nievas Martin 28/04/20](https://reader035.vdocuments.co/reader035/viewer/2022071816/62d48d9e8fd40b41e572ca5c/html5/thumbnails/32.jpg)
AnidamientoBloque si doble – resolución del problema inicio
En la pizarra...
![Page 33: Nievas Martin 28/04/20](https://reader035.vdocuments.co/reader035/viewer/2022071816/62d48d9e8fd40b41e572ca5c/html5/thumbnails/33.jpg)
Operadores de asignaciónOperador 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 34: Nievas Martin 28/04/20](https://reader035.vdocuments.co/reader035/viewer/2022071816/62d48d9e8fd40b41e572ca5c/html5/thumbnails/34.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 35: Nievas Martin 28/04/20](https://reader035.vdocuments.co/reader035/viewer/2022071816/62d48d9e8fd40b41e572ca5c/html5/thumbnails/35.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 36: Nievas Martin 28/04/20](https://reader035.vdocuments.co/reader035/viewer/2022071816/62d48d9e8fd40b41e572ca5c/html5/thumbnails/36.jpg)
ProblemaComo podría resolverse?● 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 37: Nievas Martin 28/04/20](https://reader035.vdocuments.co/reader035/viewer/2022071816/62d48d9e8fd40b41e572ca5c/html5/thumbnails/37.jpg)
ProblemaComo podría resolverse?● 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 38: Nievas Martin 28/04/20](https://reader035.vdocuments.co/reader035/viewer/2022071816/62d48d9e8fd40b41e572ca5c/html5/thumbnails/38.jpg)
RepeticionesControladas por contadorpromedio = 0contador = 0mientras condición entonces
operaciones
.
.
.
fin
![Page 39: Nievas Martin 28/04/20](https://reader035.vdocuments.co/reader035/viewer/2022071816/62d48d9e8fd40b41e572ca5c/html5/thumbnails/39.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 / contador
imprimir: promedio
![Page 40: Nievas Martin 28/04/20](https://reader035.vdocuments.co/reader035/viewer/2022071816/62d48d9e8fd40b41e572ca5c/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 / contador
imprimir: promedio
![Page 41: Nievas Martin 28/04/20](https://reader035.vdocuments.co/reader035/viewer/2022071816/62d48d9e8fd40b41e572ca5c/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 / contador
imprimir: promedio
![Page 42: Nievas Martin 28/04/20](https://reader035.vdocuments.co/reader035/viewer/2022071816/62d48d9e8fd40b41e572ca5c/html5/thumbnails/42.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 / contador
imprimir: promedio
![Page 43: Nievas Martin 28/04/20](https://reader035.vdocuments.co/reader035/viewer/2022071816/62d48d9e8fd40b41e572ca5c/html5/thumbnails/43.jpg)
RepeticionesControladas por contador - C
while(condición){
operaciones
}
![Page 44: Nievas Martin 28/04/20](https://reader035.vdocuments.co/reader035/viewer/2022071816/62d48d9e8fd40b41e572ca5c/html5/thumbnails/44.jpg)
RepeticionesControladas por contador – seguimos en la PC
while(condición){
operaciones
}