bloque 2 y 3 algoritmos y diagramas de flujo profs.: … · 2020. 3. 20. · guia informatica ii...
Post on 29-Jan-2021
22 Views
Preview:
TRANSCRIPT
-
GUIA INFORMATICA II 2020
BLOQUE 2 Y 3
ALGORITMOS Y DIAGRAMAS DE FLUJO
PROFS.: Arturo Conde Duque.
Jairo Pérez Rivera
_______________________________________________________
Subsecretaría de Educación Media Superior Dirección General de Bachillerato
Escuela Preparatoria Federal por Cooperación “QUETZALCOATL”
CLAVE: EMS-2/123 CCT. 17SBC2123R Tepoztlán Morelos
-
Algoritmos y diagramas de flujo
1.1 PASOS PARA LA SOLUCION DE TAREAS
En la naturaleza hay muchos procesos que puedes considerar como Algoritmos ya que tienen procedimientos y reglas. Incluso, muchas veces no somos conscientes de ellos.
Por ejemplo, el proceso digestivo es un concepto de algoritmo con el que convivimos a diario sin que nos haga falta una definición precisa de este proceso. El hecho de que conozcamos cómo funciona el sistema digestivo, no implica que los alimentos que consumimos nos alimenten más o menos.
La familiaridad de lo que sucede día a día nos impide ver muchos algoritmos que pasan a nuestro alrededor. Procesos naturales como la gestación, las estaciones, la circulación sanguínea, los ciclos planetarios, etc, son algoritmos naturales que generalmente pasan desapercibidos.
Ejemplo Lavarnos los dientes es un procedimiento que realizamos varias veces al día. Veamos la forma de expresar este procedimiento como un Algoritmo:
1. Tomar la crema dental 2. Destapar la crema dental 3. Tomar el cepillo de dientes 4. Aplicar crema dental al cepillo 5. Tapar la crema dental 6. Abrir la llave del lavamanos 7. Remojar el cepillo con la crema dental 8. Cerrar la llave del lavamanos 9. Frotar los dientes con el cepillo 10. Abrir la llave del lavamanos 11. Enjuagarse la boca 12. Enjuagar el cepillo 13. Cerrar la llave del lavamanos 14. Secarse la cara y las manos con una toalla
Ejemplo Veamos que algo tan común como los pasos para cambiar una bombilla (foco) se pueden expresar en forma de Algoritmo:
1. Ubicar una escalera o un banco debajo de la bombilla fundida
2. Tomar una bombilla nueva 3. Subir por la escalera o al banco 4. Girar la bombilla fundida hacia la izquierda hasta soltarla 5. Enroscar la bombilla nueva hacia la derecha en el plafón
hasta apretarla 6. Bajar de la escalera o del banco 7. Fin
-
1.3. Ejercicio Discutamos el ejemplo de la bombilla y propongamos algunas mejoras. Luego, escribir el Algoritmo con la inclusión de tus mejoras.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
1.2 ALGORITMO
Los Algoritmos permiten describir claramente una serie
de instrucciones que debe realizar el computador para
lograr un resultado previsible. Vale la pena recordar que
un procedimiento de computador consiste de una serie
de instrucciones muy precisas y escritas en un lenguaje
de programación que el computador entienda como lo es
Scratch.
En resumen, un Algoritmo es una serie ordenada de
instrucciones, pasos o procesos que llevan a la solución
de un determinado problema. Los hay tan sencillos y
cotidianos como seguir la receta del médico, abrir una
puerta, lavarse las manos, etc; hasta los que conducen a
la solución de problemas muy complejos.
-
Ejercicio Describe, lo más detalladamente posible y en orden, los pasos a realizar para llevar a cabo cada una de las siguientes tareas.
NOTA: Ejercicio adaptado de “La esencia de la lógica de programación”
Prepara palomitas de maíz
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Preparar una rica naranjada
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Empacar un regalo en caja
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
Cocinar un huevo en sartén
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
-
Ejercicio Construye un avión de papel paso a paso y en forma ordenada. Luego escribe en orden los pasos, para explicarle a otra persona cómo elaborarlo.
1.
2.
3.
4.
5.
6.
7.
8.
9.
-
Ejercicio Reflexiona sobre el lenguaje que utilizas diariamente para comunicarte con tus padres, hermanos, profesores y compañeros.
¿Utilizas un lenguaje preciso?
¿Utilizas palabras corrientes?
_
Ejercicio A diferencia de los seres humanos que realizan actividades sin detenerse a pensar en los pasos que deben seguir, los computadores son muy ordenados y necesitan que quien los programan les diga cada uno de los pasos que deben realizar y el orden lógico de ejecución.
Numera en orden lógico los pasos siguientes (para pescar):
El pez se traga el anzuelo.
Enrollar el sedal.
Tirar el sedal al agua.
Llevar el pescado a casa.
Quitar el Anzuelo de la boca del pescado.
Poner carnada al anzuelo.
Sacar el pescado del agua.
-
Ejercicio Consigue los siguientes elementos:
Arroz, lentejas o maíz (medio puñado). Una banda de caucho (liga). Un vaso plástico. Un trozo de papel resistente (15cm x 15cm aproximadamente).
Con los elementos anteriores elabora una “maraca”
siguiendo en orden secuencial estas instrucciones: 1. Recortar del papel resistente un trozo más grande
que la boca del vaso plástico. 2. Poner el papel sobre la boca del vaso el papel. 3. Fijar el papel al vaso con ayuda de la banda de
caucho. 4. Asegurarse que la boca del vaso quede sellada. 5. Introducir el arroz, las lentejas o el maíz en el vaso
(cada elemento produce una sonoridad diferente).
¿Qué sucedió? ¿Pudiste elaborar la maraca?
¿Qué cambiarias en el orden de las instrucciones?.
Ejercicio En una hoja aparte, describe detalladamente los pasos que seguirías para lograr cada una de las siguientes tareas:
1. Poner saldo a tu teléfono.
2. Hacer café.
3. Lavarte las manos.
4. Hacer un avión con una hoja de papel.
5. Hacer un barco con una hoja de papel.
-
Pseudocódigo.
Cuando empezamos a programar necesitamos hacer dos cosas, la primera adaptar nuestro tren de
pensamiento y asi poder describir los pasos necesarios para resolver cierto problema. Y la segunda escribir
esos pasos en un lenguaje de programación que pueda entender un computador. En ocasiones puede ser una
tarea un poco desesperante hacer las dos cosas al mismo tiempo, sobre todo al comenzar. Para facilitar un
poco nuestras vidas podemos echar mano del pseudocódigo algo que se ve y se comporta (un poco) como
código, pero no lo es.
¿Por qué digo que parece código pero no es? Porque recuerda la sintaxis de algunos lenguajes pero no es tan
estricto como estos, está hecho para que nosotros los humanos podamos expresar ideas de forma un poco
más parecida al lenguaje de programación.
Un algoritmo expresado en pseudocódigo se ve más o menos así:
Inicio
a = 0;
b = 0;
imprimir "Introduzca el primer número"
leer -> a
imprimir "Introduzca el segundo número"
leer -> b
procesar c = a + b
imprimir "La suma de " a " y " b es " c
Fin
Hablemos un poco del algoritmo:
Es relativamente seguro decir que el algoritmo describe el proceso de sumar dos números.
Al principio del algoritmo asignamos el valor a las dos variables que se usarán en el, a esto se le
llama inicializar variables y lo hacemos para que dichas variables comiencen con valores controlados
por nosotros.
Podemos notar que el algoritmo está delimitado por las palabras Inicio y Fin.
Podemos notar que luego del inicio del algoritmo indentamos las siguientes instrucciones. Esto, para
recalcar el hecho de que formar parte de un bloque.
-
Con la palabra imprimir denotamos una salida, en este caso los mensajes que nuestro algoritmo
muestra al usuario son: “Introduzca el primer número”, “Introduzca el segundo número” y “La suma de
“ a “ y “ b “ es “ c, luego comentaremos algo más sobre este último.
La palabra leer la usamos para denotar que nuestro algoritmo “lee” la entrada que le suministra un
usuario y la almacena en la memoria. La forma como denotamos que lo escrito por el usuario es
guardado en la variable es mediante la flecha ->, como indicando que los datos entran en la variable.
Luego hablaremos un poco más sobre la asignación a memoria.
Cuando programamos cambiamos un poco la forma en que hacemos las fórmulas matemáticas, en este
caso estamos diciendo que el resultado de la operación matemática a + b será guardado en la
variable c.
Finalmente, le mostramos al usuario el resultado de la operación, en este caso tenemos una mezcla de
texto fijo y variables, lo encerrado entre comillas se considera texto fijo y lo que no son las
variables. Cuando se muestre el mensaje de salida al usuario las etiquetas de las variables serán
sustituidas por sus valores, por ejemplo si el usuario introdujo un valor de 4 para a y un valor de 1
para b el mensaje quedaría de la siguiente forma: La suma de 4 y 1 es 5.
Esto es todo, nuestro algoritmo espera que el usuario le proporcione dos números, los sumará y mostrará
al usuario de vuelta el resultado.
Asignaciones a memoria
Como nosotros los humanos no manejamos la información de la misma forma de los computadores,
preferimos asignar etiquetas a la parte de la memoria donde queremos guardar información y a estas
etiquetas le llamamos variables. Así podemos referirnos a los datos guardados en la misma de forma
relativamente fácil.
Las variables pueden tener cualquier etiqueta siempre y cuando comience con una letra.
Cuando queremos que el usuario nos proporcione datos usamos la instrucción leer:
leer -> variable
El algoritmo se “detiene” y espera por la entrada del usuario. Y dicha entrada sera almacenada en la
variable.
Es una buena práctica de programación asignar valores por defecto a las variables que se van a usar al
principio del programa o algoritmo. Esto nos asegura que no toman valores aleatorios que ya estuviesen en la
memoria del computador.
-
Procesar: con esta palabra indicamos que la siguiente acción a realizar es un proceso, acción u operación que
se llevara a cabo, por ejemplo c= a + b. esta es una suma del valor de a con el valor de b y el resultado se
almacena en la variable c.
Ejemplo realizar el pseudocódigo de la suma de 3 números y dividir el valor del resultado entre 2.
Quedaría de la siguiente manera.
Inicio
a = 0;
b = 0;
imprimir "Introduzca el primer número"
leer -> a
imprimir "Introduzca el segundo número"
leer -> b
imprimir "Introduzca el segundo número"
leer -> c
procesar d = a + b + c
procesar e = d / 2
imprimir "La suma de " a " mas “ b ” y " c es " d
imprimir "La división de " d " entre 2 es " e
Fin
Ejercicios:
1.- Realiza el algoritmo en pseudocódigo de la multiplicación de 3 números.
2.-Escribe el pseudocódigo de calcular el área de un cuadrado.
3.- Realiza el algoritmo en pseudocódigo de la suma de 2 números y al resultado se multiplica por 2.
4.- Diseña un algoritmo en pseudocódigo que calcule el área de un triangulo.
-
Estructuras condicionales
Los algoritmos anteriores fueron bastante lineal, se hizo una sola cosa, tuvo un comienzo y un solo final.
Pero podemos complicarlo un poco más y ser más expresivos y especificar mejor nuestro algoritmo. ¿Qué
pasa si el usuario introduce algo que no es un número? Veamos esta nueva versión de nuestro algoritmo:
Inicio
a = 0;
b = 0; imprimir "Introduzca el primer número"
leer -> a
si a no es un numero entonces
imprimir a " no es un valor válido, no puedo continuar." ir a fin
fin si
imprimir "Introduzca el segundo número"
leer -> b
si b no es un numero entonces
imprimir b " no es un valor válido, no puedo continuar." ir a fin
fin si
c = a + b
imprimir "La suma de " a " y " b es " c Fin
Listo, ahora nuestro algoritmo se enfrentará a decisiones, se cuestionara que tipo de información le ha
suministrado el usuario, y tomara un curso de acción dependiendo del resultado lógico del anterior
cuestionamiento.
Dicho coloquialmente, verificara que la entrada del usuario es la que se quiere y si no lo es mostrara un
mensaje de error y saldrá.
Terminar el algoritmo de esta manera es un tanto extremo, pero luego veremos una forma de hacer el
algoritmo más amigable.
Veamos ahora la anatomía de una estructura de decisión:
si cuestionamiento lógico entonces
Bloque de código que se ejecuta si cuestionamiento lógico es cierto
fin si
-
Traducido quiere decir, si cuestionamiento lógico resulta ser cierto realiza lo siguiente. Es como si por
ejemplo, la mamá le dice a uno:
— Mijo, vaya a la tienda y si el queso está a menos de 50 pesos, compre un kilo.
si precio_queso < 50 entonces
Comprar queso
fin si
Como puede verse, el precio del queso en cuestión, es menor a 50 o no lo es. La evaluación lógica da como
resultado verdadero o falso. Si la evaluación resulta verdadera se procede a comprar el queso, de lo
contrario se regresa a casa con las manos vacías.
En otras ocasiones es necesario hacer algo distinto cuando el cuestionamiento lógico no es verdadero.
si precio_queso < 50 entonces
Comprar 1Kg de queso
de lo contrario
Comprar 1/4 Kg de queso
fin si
En este ejemplo, vamos a la tienda y si el precio del queso es menor a 50 compramos un kilo, en cualquier
otro caso compramos 1/4 de kilo.
La forma general de escribir esta estructura de decisión es la siguiente:
si cuestionamiento lógico entonces
Bloque de código que se ejecuta si cuestionamiento lógico es cierto
de lo contrario
Bloque de código que se ejecuta si cuestionamiento lógico es falso.
fin si
Es posible evaluar más condiciones con el si, con el siguiente ejemplo podemos verlo:
Colocar un de lo contrario al final es completamente opcional.
si precio_queso < 50 entonces
Comprar 2Kg de queso
de lo contrario si precio_queso == 60 entonces
Comprar 1Kg de queso
de lo contrario
Comprar 1/4Kg de queso
fin si
Nótese que la comprobación de igualdad lleva dos signos igual ==.
-
En este ejemplo tenemos tres opciones, si el precio es menor a 50 compramos 2 kilos, si es igual a 60
compramos 1 kilo y si ninguno de los dos anteriores es verdadero compramos un cuarto de kilo.
Podemos tener tantos de lo contrario si como opciones tengamos que manejar
En conclusión un pseudocódigo es un algoritmo en el que se utilizan palabras específicas y estructuradas para representar dicho algoritmo.
Las palabras específicas a utilizar son las siguientes. Fin: palabra de pseudocódigo para indicar el final del algoritmo o de un bloque.
imprimir: palabra de pseudocódigo para indicar que el algoritmo va mostrar información al usuario.
Inicio: palabra de pseudocódigo para indicar el inicio del algoritmo o de un bloque.
leer: palabra de pseudocódigo para indicar que el algoritmo tomará información suministrada por el
usuario, usualmente dicha información se guardará en memoria.
si: estructura de decisión, que permite que el algoritmo actúe de forma distinta basado en el resultado
de una evaluación lógica.
para: estructura de repetición definida que repite un bloque de código o instrucciones una cantidad
predeterminada de veces. Se llama definida porque la cantidad de veces que se ejecutara el bloque se
define al momento de comenzar a ejecutarla. Esta estructura de repetición cuenta con una variable
contador que a la que se le evalúa el valor para determinar si se termina el ciclo o no. También posee una
manera de incrementar o decrementar dicha variable de forma automática en deltas definidos.
repita mientras: es una estructura de repetición indefinida que ejecuta un bloque de código o
instrucciones mientras una premisa lógica da verdadero. En esta estructura la premisa lógica se evalúa al
principio. De resultar esta falsa el ciclo no se ejecutara, quiere decir que este ciclo se ejecuta cero o
más veces.
repita hasta: es una estructura de repetición indefinida que ejecuta un bloque de código o
instrucciones hasta que una premisa lógica da verdadero. En esta estructura la premisa lógica se evalúa al
final. De resultar esta verdadera el ciclo se detendrá, quiere decir que este ciclo se ejecuta una o más
veces.
-
Ejemplo: Determinar un algoritmo en pseudocódigo que compare cuál de las edades de 2 jóvenes es
mayor.
Inicio
edad1 = 0;
edad2 = 0; imprimir "Introduzca la edad del primer usuario "
leer -> edad1 imprimir " Introduzca la edad del segundo usuario "
leer -> edad2
si edad1 > edad2 entonces imprimir “La edad del primer joven es mayor que la del segundo joven”
De lo contrario
imprimir “La edad del segundo joven es mayor que la del primer joven”
ir a fin
fin si
Fin
Ejercicios: Desarrolla los siguientes algoritmos en pseudocódigo condicionales.
1.- Determinar a través de la edad si es mayor o menor de edad.
2.- Saber si la calificación de una materia es aprobatoria o reprobatoria.
3.- Comparar si un número es mayor que otro.
-
DIAGRAMAS DE FLUJO.
Introducción.
Los diagramas de flujo son una manera de representar visualmente el flujo de datos a través de
sistemas de tratamiento de información. Los diagramas de flujo describen que operaciones y en que
secuencia se requieren para solucionar un problema dado.
Un diagrama de flujo u organigrama es una representación diagramática que ilustra la secuencia de
las operaciones que se realizarán para conseguir la solución de un problema. Los diagramas de flujo
se dibujan generalmente antes de comenzar a programar el código frente a la computadora. Los
diagramas de flujo facilitan la comunicación entre los programadores y la gente del negocio. Estos
diagramas de flujo desempeñan un papel vital en la programación de un problema y facilitan la
comprensión de problemas complicados y sobre todo muy largos. Una vez que se dibuja el
diagrama de flujo, llega a ser fácil escribir el programa en cualquier idioma de alto nivel. Vemos a
menudo cómo los diagramas de flujo nos dan ventaja al momento de explicar el programa a otros.
Por lo tanto, está correcto decir que un diagrama de flujo es una necesidad para la documentación
mejor de un programa complejo.
Reglas para dibujar un diagrama de flujo.
Los Diagramas de flujo se dibujan generalmente usando algunos símbolos estándares; sin embargo,
algunos símbolos especiales pueden también ser desarrollados cuando sean requeridos. Algunos
símbolos estándares, que se requieren con frecuencia para diagramar programas de computadora
se muestran a continuación:
Inicio o fin del programa
Pasos, procesos o líneas de instrucción de programa de computo
Operaciones de entrada y salida de datos
Toma de decisiones y Ramificación
Conector para unir el flujo a otra parte del diagrama
-
Conector de pagina
Líneas de flujo
Mostrar datos en pantalla
Imprimir datos
Observación: Para obtener la correcta elaboración de los símbolos, existen plantillas. Las puedes conseguir en
Papelerías.
Símbolos gráficos
Dentro de los símbolos fundamentales para la creación de diagramas de flujo, los símbolos gráficos son utilizados
específicamente para para operaciones aritméticas y relaciones condicionales. La siguiente es una lista de los
símbolos más comúnmente utilizados:
+ Sumar
- Menos
* Multiplicación
/ División
± Mas o menos
= Equivalente a
> Mayor que
< Menor que
>= Mayor o igual que
-
Reglas para la creación de Diagramas de flujo. 1. Los Diagramas de flujo deben escribirse de arriba hacia abajo, y/o de izquierda a derecha.
2. Los símbolos se unen con líneas, las cuales tienen en la punta una flecha que indica la dirección que fluye la
información procesos, se deben de utilizar solamente líneas de flujo horizontal o verticales (nunca diagonales).
3. Se debe evitar el cruce de líneas, para lo cual se quisiera separar el flujo del diagrama a un sitio distinto, se
pudiera realizar utilizando los conectores. Se debe tener en cuenta que solo se van a utilizar conectores
cuando sea estrictamente necesario.
4. No deben quedar líneas de flujo sin conectar
5. Todo texto escrito dentro de un símbolo debe ser legible, preciso, evitando el uso de muchas palabras.
6. Todos los símbolos pueden tener más de una línea de entrada, a excepción del símbolo final.
7. Solo los símbolos de decisión pueden y deben tener más de una línea de flujo de salida.
Ejemplos de diagramas de flujo
Diagrama de flujo que encuentra la suma de los primeros 50 numeros naturales
-
Ahora la descripción del diagrama anterior
Suma, es la variable a la que se le va agregando la valor de cada número natural. N, es el contador. Éste recorrerá lo números hasta llegar al 50.
El primer bloque indica el inicio del Diagrama de flujo
El segundo bloque, es un Símbolo de procesos En este bloque se asume que las variables suma y N han sido declaradas previamente y las inicializa en 0 para comenzar a el conteo y la suma de valores (Para declararlas existe el bloque Tarjeta perforada).
El tercer bloque, es también un Símbolo de procesos En éste paso se incrementa en 1 la variable N (N = N + 1). Por lo que, en la primera pasada esta N valdrá 1, ya que estaba inicializada en 0.
El cuarto bloque es exactamente lo mismo que el anterior Pero en éste, se le agrega el valor de N a la variable suma
El quinto bloque es uno Símbolo de Toma de decisiones y Ramificación En este bloque es una pregunta para comparar los valores que actualmente influyen en el
proceso ¿Es N=50?, Obviamente la respuesta es no, ya que N todavía es 1. por lo que el flujo de nuestro programa se dirigirá hacía la parte en donde se observa la palabra no: Tercer Bloque, éste le sumará 1 (N=N+1) y vuelve a llegar a éste bloque, donde preguntará ¿Es N=50?... ¡No!,
todavía es 2. Ha pues, regresa al Tercer bloque y vuelve hacer lo mismo. Y así hasta llegar a 50, obteniendo así la suma de los primeros 50 primeros números naturales.
-
Por último indicamos que el resultado será mostrado en la impresora (Este lo puedes cambiarlo por el display
para mostrar datos).
Fin del programa (o diagrama)
EJERCICIOS: Instrucción 1. Realiza los siguientes diagramas de flujo con su algoritmo para poder guiarte y solucionar más rápido
1. Obtener el área de un triangulo
2. Obtener el área de un circulo
3. Leer la edad de una persona e identificar si la persona es mayor de edad o no
4. Elabora un diagrama de flujo para elaborar la suma de numero naturales comprendidos entre 1 y el 5
es decir: 1+2+3+4+5
5. Leer un numero e identifica si el número es negativo o positivo
6. Una persona quiere colocar pasto en su patio el cual tiene las siguientes medidas 20m de largo por 9m
de ancho, el precio del pasto es de $ 42.00 pesos el M2, en donde comprara el pasto le informa que si
compra más de 150m2 se le realizara un descuento del 22% ¿Cuánto pagara la persona por el total del
pasto
Puedes observar los siguientes videos los cuales te podrían ayudar a entender mejor los ejemplos de diagrama de flujo ya que te dan una explicación de cómo realizar uno. https://www.youtube.com/watch?v=qDttSc3RQBc
https://www.youtube.com/watch?v=HwFPiwWC004
https://www.youtube.com/watch?v=aBbDHjgTkYQ
https://www.youtube.com/watch?v=IFIxFhfS2LY
https://www.youtube.com/watch?v=qDttSc3RQBchttps://www.youtube.com/watch?v=HwFPiwWC004https://www.youtube.com/watch?v=aBbDHjgTkYQhttps://www.youtube.com/watch?v=IFIxFhfS2LY
top related