lenguaje de diseño - departamento de...
TRANSCRIPT
![Page 1: Lenguaje de Diseño - Departamento de Informáticadirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · t 1 - Dibujo la base. t 2 - Dibujo el poste. t 3 - Dibujo el triángulo inferior](https://reader030.vdocuments.co/reader030/viewer/2022041118/5f2fa12e5a28712ca5635453/html5/thumbnails/1.jpg)
1
Lenguaje de Diseño
Primer Cuatrimestre 2016
![Page 2: Lenguaje de Diseño - Departamento de Informáticadirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · t 1 - Dibujo la base. t 2 - Dibujo el poste. t 3 - Dibujo el triángulo inferior](https://reader030.vdocuments.co/reader030/viewer/2022041118/5f2fa12e5a28712ca5635453/html5/thumbnails/2.jpg)
2
Programación Modular
Programación Estructurada
Estructuras de Control
Secuencia
Condicional
Iteración
Programas fáciles de leer y modificar
Técnicas de Diseños Algoritmos Voraces
Programación
Dinámica
Algoritmos Exhaustivos
Dividir y Conquistar
Dividir a un problema en subproblemas más
simples Módulo Programación Modular
Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016
![Page 3: Lenguaje de Diseño - Departamento de Informáticadirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · t 1 - Dibujo la base. t 2 - Dibujo el poste. t 3 - Dibujo el triángulo inferior](https://reader030.vdocuments.co/reader030/viewer/2022041118/5f2fa12e5a28712ca5635453/html5/thumbnails/3.jpg)
3
Programación Modular
Enfoque de Diseño y
Programación Modular Conviene
Cuando una tarea específica debe ejecutarse varias veces
Cuando un problema es complejo y la solución se divide o segmenta en módulos donde cada uno ejecuta una tarea específica
Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016
![Page 4: Lenguaje de Diseño - Departamento de Informáticadirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · t 1 - Dibujo la base. t 2 - Dibujo el poste. t 3 - Dibujo el triángulo inferior](https://reader030.vdocuments.co/reader030/viewer/2022041118/5f2fa12e5a28712ca5635453/html5/thumbnails/4.jpg)
t1 - Dibujo la base. t2 - Dibujo el poste. t3 - Dibujo el triángulo inferior. t4 - Dibujo el triángulo superior.
Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016 4
Lenguaje de Diseño: Modularización
1 2
3
2 t1 - Dibujo el triángulo. t2 - Dibujo la cola.
3 t1 - Dibujo el rectángulo. t2 - Dibujo el triángulo.
![Page 5: Lenguaje de Diseño - Departamento de Informáticadirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · t 1 - Dibujo la base. t 2 - Dibujo el poste. t 3 - Dibujo el triángulo inferior](https://reader030.vdocuments.co/reader030/viewer/2022041118/5f2fa12e5a28712ca5635453/html5/thumbnails/5.jpg)
5
Lenguaje de Diseño: Modularización
4
4 t1 - Dibujo triángulo1. t2 - Dibujo triángulo2. t3 - Dibujo triángulo3. t4 - Dibujo triángulo4. t5 - Dibujo triángulo5. t6 - Dibujo triángulo6. t7 - Dibujo linea1. t8 - Dibujo linea2. t9 - Dibujo linea3.
5 t1 - Dibujo rectángulo1. t2 - Dibujo rectángulo2. t3 - Dibujo triángulo1. t4 - Dibujo triángulo2. t5 - Dibujo triángulo3. t6 - Dibujo triángulo4.
Ojo!! No esta la definicion de la sintaxis de subalg. Se podria hacer otro ejemplo de arreglos donde se invoca 2 veces al subalgoritmo
Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016
![Page 6: Lenguaje de Diseño - Departamento de Informáticadirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · t 1 - Dibujo la base. t 2 - Dibujo el poste. t 3 - Dibujo el triángulo inferior](https://reader030.vdocuments.co/reader030/viewer/2022041118/5f2fa12e5a28712ca5635453/html5/thumbnails/6.jpg)
6
2 t1 - Dibujo el triángulo. t2 - Dibujo la cola.
3 t1 - Dibujo el rectángulo. t2 - Dibujo el triángulo. 4 t1 - Dibujo triángulo1.
t2 - Dibujo triángulo2. t3 - Dibujo triángulo3. t4 - Dibujo triángulo4. t5 - Dibujo triángulo5. t6 - Dibujo triángulo6. t7 - Dibujo linea1. t8 - Dibujo linea2. t9 - Dibujo linea3.
5 t1 - Dibujo rectángulo1. t2 - Dibujo rectángulo2. t3 - Dibujo triángulo1. t4 - Dibujo triángulo2. t5 - Dibujo triángulo3. t6 - Dibujo triángulo4.
1 t1 - Dibujo la base. t2 - Dibujo el poste. t3 - Dibujo el triángulo inferior. t4 - Dibujo el triángulo superior.
1 t1 - Dibujo la base. t2 - Dibujo el poste. t3 - Dibujo el triángulo inferior. t4 - Dibujo el triángulo superior.
2 t1 - Dibujo el triángulo. t2 - Dibujo la cola.
3 t1 - Dibujo el rectángulo. t2 - Dibujo el triángulo. 4 t1 - Dibujo triángulo1.
t2 - Dibujo triángulo2. t3 - Dibujo triángulo3. t4 - Dibujo triángulo4. t5 - Dibujo triángulo5. t6 - Dibujo triángulo6. t7 - Dibujo linea1. t8 - Dibujo linea2. t9 - Dibujo linea3.
5 t1 - Dibujo rectángulo1. t2 - Dibujo rectángulo2. t3 - Dibujo triángulo1. t4 - Dibujo triángulo2. t5 - Dibujo triángulo3. t6 - Dibujo triángulo4.
Lenguaje de Diseño: Modularización
Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016
![Page 7: Lenguaje de Diseño - Departamento de Informáticadirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · t 1 - Dibujo la base. t 2 - Dibujo el poste. t 3 - Dibujo el triángulo inferior](https://reader030.vdocuments.co/reader030/viewer/2022041118/5f2fa12e5a28712ca5635453/html5/thumbnails/7.jpg)
7
1 2
3
5 4
Algoritmo de dibujo del triángulo
TRIAN
Lenguaje de Diseño: Modularización
Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016
![Page 8: Lenguaje de Diseño - Departamento de Informáticadirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · t 1 - Dibujo la base. t 2 - Dibujo el poste. t 3 - Dibujo el triángulo inferior](https://reader030.vdocuments.co/reader030/viewer/2022041118/5f2fa12e5a28712ca5635453/html5/thumbnails/8.jpg)
8
Descomposición del problema
suma (unión) de pequeños problemas
Se pretende:
4 que tengan una tarea específica. 4 sean totalmente independientes del resto.
Puede suceder que dicho subproblema sea común a un conjunto de problemas de mayor envergadura.
El algoritmo que lo resuelve debería ser el mismo cada vez que el subproblema esté presente en un problema.
MODULARIZACIÓN DEL PROBLEMA
Lenguaje de Diseño: Modularización
Dividirlo en pequeños problemas
Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016
![Page 9: Lenguaje de Diseño - Departamento de Informáticadirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · t 1 - Dibujo la base. t 2 - Dibujo el poste. t 3 - Dibujo el triángulo inferior](https://reader030.vdocuments.co/reader030/viewer/2022041118/5f2fa12e5a28712ca5635453/html5/thumbnails/9.jpg)
9
TRIAN es un algoritmo común al conjunto de problemas
TRIAN es un MÓDULO
1 2
3
5 4
TRIAN
Lenguaje de Diseño: Modularización
Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016
![Page 10: Lenguaje de Diseño - Departamento de Informáticadirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · t 1 - Dibujo la base. t 2 - Dibujo el poste. t 3 - Dibujo el triángulo inferior](https://reader030.vdocuments.co/reader030/viewer/2022041118/5f2fa12e5a28712ca5635453/html5/thumbnails/10.jpg)
10
1 t1 - Dibujo la base. t2 - Dibujo el poste. t3 – TRIAN t4 - TRIAN
2 t1 – TRIAN t2 - Dibujo la cola.
3 t1 - Dibujo el rectángulo. t2 - TRIAN
4 t1 – TRIAN t2 – TRIAN t3 – TRIAN t4 – TRIAN t5 – TRIAN t6 – TRIAN t7 - Dibujo linea1. t8 - Dibujo linea2. t9 - Dibujo linea3.
Lenguaje de Diseño: Modularización
Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016
![Page 11: Lenguaje de Diseño - Departamento de Informáticadirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · t 1 - Dibujo la base. t 2 - Dibujo el poste. t 3 - Dibujo el triángulo inferior](https://reader030.vdocuments.co/reader030/viewer/2022041118/5f2fa12e5a28712ca5635453/html5/thumbnails/11.jpg)
11
5 t1 - Dibujo rectángulo1. t2 - Dibujo rectángulo2. t3 - TRIAN t4 - TRIAN t5 - TRIAN t6 - TRIAN
Invocación
Lenguaje de Diseño: Modularización
Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016
![Page 12: Lenguaje de Diseño - Departamento de Informáticadirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · t 1 - Dibujo la base. t 2 - Dibujo el poste. t 3 - Dibujo el triángulo inferior](https://reader030.vdocuments.co/reader030/viewer/2022041118/5f2fa12e5a28712ca5635453/html5/thumbnails/12.jpg)
12
Consideraciones: • - Se debe tener en cuenta el estado previo del ambiente antes de la invocación del módulo. • - Se debe tener en cuenta el estado del ambiente luego de la ejecución del módulo.
Ejemplo: - Se desea realizar la gráfica del farol con el uso del modulo TRIAN. - Suponga la existencia de un módulo TRIAN que grafica un triángulo equilátero.
- orientación de la tortuga y recorrido que realiza para la construcción del triángulo dentro del módulo.
Lenguaje de Diseño: Modularización
Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016
![Page 13: Lenguaje de Diseño - Departamento de Informáticadirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · t 1 - Dibujo la base. t 2 - Dibujo el poste. t 3 - Dibujo el triángulo inferior](https://reader030.vdocuments.co/reader030/viewer/2022041118/5f2fa12e5a28712ca5635453/html5/thumbnails/13.jpg)
13
Lenguaje de Diseño: Modularización
1 Invoca a TRIAN
Invoca a TRIAN
Sale de TRIAN
Sale de TRIAN
En Lenguaje de Diseño el concepto de Modularización se implementa con los SUBALGORITMOS
¡ERROR!
Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016
![Page 14: Lenguaje de Diseño - Departamento de Informáticadirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · t 1 - Dibujo la base. t 2 - Dibujo el poste. t 3 - Dibujo el triángulo inferior](https://reader030.vdocuments.co/reader030/viewer/2022041118/5f2fa12e5a28712ca5635453/html5/thumbnails/14.jpg)
14
Ejemplo: Dado un número n entero positivo, se desea calcular e imprimir el factorial de n, n2 y de n3. Se debe tratar de utilizar el algoritmo para el calculo del factorial como un módulo (subalgoritmo).
ALGORITMO “Factorial” COMENZAR N, FACT, I: entero LEER N FACT 1 PARA I DESDE 1 HASTA N CON PASO 1 HACER
FACT FACT * I FINPARA ESCRIBIR FACT FIN
Lenguaje de Diseño: Subalgoritmos
Nota: el algori tmo FACTORIAL permite calcular el valor factorial para un número cualquiera N ingresado por el usuario.
Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016
![Page 15: Lenguaje de Diseño - Departamento de Informáticadirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · t 1 - Dibujo la base. t 2 - Dibujo el poste. t 3 - Dibujo el triángulo inferior](https://reader030.vdocuments.co/reader030/viewer/2022041118/5f2fa12e5a28712ca5635453/html5/thumbnails/15.jpg)
15
ALGORITMO “Calculo Factoriales” COMENZAR FACTORIAL FACTORIAL FACTORIAL FIN
N, FACT, I: entero LEER N FACT 1 PARA I DESDE 1 HASTA N CON PASO 1 HACER
FACT FACT * I FINPARA ESCRIBIR FACT
FIN
SUBALGORITMO “FACTORIAL” COMENZAR
Lenguaje de Diseño: Subalgoritmos
Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016
![Page 16: Lenguaje de Diseño - Departamento de Informáticadirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · t 1 - Dibujo la base. t 2 - Dibujo el poste. t 3 - Dibujo el triángulo inferior](https://reader030.vdocuments.co/reader030/viewer/2022041118/5f2fa12e5a28712ca5635453/html5/thumbnails/16.jpg)
16
Lenguaje de Diseño: Subalgoritmos
“Calculo Factoriales”
FACTORIAL Pantalla Invocación Muestra
Retorno
Tres veces se invoca el módulo FACTORIAL, quien además de calcular el factorial lo muestra por pantalla
Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016
![Page 17: Lenguaje de Diseño - Departamento de Informáticadirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · t 1 - Dibujo la base. t 2 - Dibujo el poste. t 3 - Dibujo el triángulo inferior](https://reader030.vdocuments.co/reader030/viewer/2022041118/5f2fa12e5a28712ca5635453/html5/thumbnails/17.jpg)
17
Inconveniente: - se debe ingresar el número toda vez que se invoca el subalgoritmo. - alta probabilidad de cometer error en el ingreso.
Lenguaje de Diseño: Subalgoritmos
Se pretende: - ingresar el dato una única vez.
Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016
![Page 18: Lenguaje de Diseño - Departamento de Informáticadirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · t 1 - Dibujo la base. t 2 - Dibujo el poste. t 3 - Dibujo el triángulo inferior](https://reader030.vdocuments.co/reader030/viewer/2022041118/5f2fa12e5a28712ca5635453/html5/thumbnails/18.jpg)
18
Lenguaje de Diseño: Subalgoritmos
Calculo Factoriales
FACTORIAL Pantalla N Muestra
N�2
Algoritmo
Subalgoritmo
Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016
![Page 19: Lenguaje de Diseño - Departamento de Informáticadirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · t 1 - Dibujo la base. t 2 - Dibujo el poste. t 3 - Dibujo el triángulo inferior](https://reader030.vdocuments.co/reader030/viewer/2022041118/5f2fa12e5a28712ca5635453/html5/thumbnails/19.jpg)
19
ALGORITMO “Calculo Factoriales” COMENZAR N, AUX: entero LEER N AUX N FACTORIAL N AUX � 2 FACTORIAL N AUX � 3 FACTORIAL FIN
SUBALGORITMO “Factorial” COMENZAR FACT, I: entero FACT 1 PARA I DESDE 1 HASTA N CON PASO 1 HACER
FACT FACT * I FINPARA ESCRIBIR FACT FIN
?
Lenguaje de Diseño: Subalgoritmos
Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016
![Page 20: Lenguaje de Diseño - Departamento de Informáticadirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · t 1 - Dibujo la base. t 2 - Dibujo el poste. t 3 - Dibujo el triángulo inferior](https://reader030.vdocuments.co/reader030/viewer/2022041118/5f2fa12e5a28712ca5635453/html5/thumbnails/20.jpg)
ALGORITMO “Calculo Factoriales” COMENZAR N, AUX: entero LEER N AUX N FACTORIAL(N) N AUX � 2 FACTORIAL(N) N AUX � 3 FACTORIAL(N) FIN
20
Lenguaje de Diseño: Subalgoritmos
Es necesario poder “comunicarle” al subalgoritmo el valor que necesita, en este caso el valor de N
SUBALGORITMO “Factorial” (in Nu:entero) COMENZAR FACT, I: entero FACT 1 PARA I DESDE 1 HASTA Nu CON PASO 1 HACER
FACT FACT * I FINPARA ESCRIBIR FACT FIN
Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016
![Page 21: Lenguaje de Diseño - Departamento de Informáticadirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · t 1 - Dibujo la base. t 2 - Dibujo el poste. t 3 - Dibujo el triángulo inferior](https://reader030.vdocuments.co/reader030/viewer/2022041118/5f2fa12e5a28712ca5635453/html5/thumbnails/21.jpg)
21
Lenguaje de Diseño: Subalgoritmos
Calculo Factoriales
FACTORIAL
Pantalla
Invocación
Muestra
Retorno
Es necesario que el módulo devuelva el resultado para que, desde el algoritmo se muestre por pantalla
Supongamos que se desea sacar del módulo FACTORIAL la tarea de mostrar por pantalla
Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016
![Page 22: Lenguaje de Diseño - Departamento de Informáticadirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · t 1 - Dibujo la base. t 2 - Dibujo el poste. t 3 - Dibujo el triángulo inferior](https://reader030.vdocuments.co/reader030/viewer/2022041118/5f2fa12e5a28712ca5635453/html5/thumbnails/22.jpg)
22
ALGORITMO “Calculo Factoriales” COMENZAR N, AUX, FACT: entero LEER N AUX N FACTORIAL(N, FACT) ESCRIBIR FACT N AUX � 2 FACTORIAL(N, FACT) ESCRIBIR FACT N AUX � 3 FACTORIAL(N, FACT) ESCRIBIR FACT FIN
Lenguaje de Diseño: Subalgoritmos
Calculo Factoriales
FACTORIAL
Pantalla
Invocación
Muestra
Retorno
Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016
![Page 23: Lenguaje de Diseño - Departamento de Informáticadirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · t 1 - Dibujo la base. t 2 - Dibujo el poste. t 3 - Dibujo el triángulo inferior](https://reader030.vdocuments.co/reader030/viewer/2022041118/5f2fa12e5a28712ca5635453/html5/thumbnails/23.jpg)
23
ALGORITMO “Calculo Factoriales” COMENZAR N, AUX, FACT: entero LEER N AUX N FACTORIAL(N, FACT) ESCRIBIR FACT N AUX � 2 FACTORIAL(N, FACT) ESCRIBIR FACT N AUX � 3 FACTORIAL(N, FACT) ESCRIBIR FACT FIN
Lenguaje de Diseño: Subalgoritmos
SUBALGORITMO “Factorial” (in NU:entero, out FA:entero) COMENZAR I: entero FA 1 PARA I DESDE 1 HASTA NU CON PASO 1 HACER
FA FA * I FINPARA FIN
¿Qué función cumple NU y FA?
Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016
![Page 24: Lenguaje de Diseño - Departamento de Informáticadirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · t 1 - Dibujo la base. t 2 - Dibujo el poste. t 3 - Dibujo el triángulo inferior](https://reader030.vdocuments.co/reader030/viewer/2022041118/5f2fa12e5a28712ca5635453/html5/thumbnails/24.jpg)
ALGORITMO “Calculo Factoriales” COMENZAR N, AUX, FACT: entero LEER N AUX N FACTORIAL(N, FACT) ESCRIBIR FACT N AUX � 2 FACTORIAL(N, FACT) ESCRIBIR FACT N AUX � 3 FACTORIAL(N, FACT) ESCRIBIR FACT FIN
24
Lenguaje de Diseño: Subalgoritmos
Parámetros Actuales
Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016
![Page 25: Lenguaje de Diseño - Departamento de Informáticadirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · t 1 - Dibujo la base. t 2 - Dibujo el poste. t 3 - Dibujo el triángulo inferior](https://reader030.vdocuments.co/reader030/viewer/2022041118/5f2fa12e5a28712ca5635453/html5/thumbnails/25.jpg)
25
Parámetros Formales
SUBALGORITMO “Factorial” (in NU:entero, out FA:entero) COMENZAR I: entero FA 1 PARA I DESDE 1 HASTA NU CON PASO 1 HACER
FA FA * I FINPARA FIN
Lenguaje de Diseño: Subalgoritmos
Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016
![Page 26: Lenguaje de Diseño - Departamento de Informáticadirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · t 1 - Dibujo la base. t 2 - Dibujo el poste. t 3 - Dibujo el triángulo inferior](https://reader030.vdocuments.co/reader030/viewer/2022041118/5f2fa12e5a28712ca5635453/html5/thumbnails/26.jpg)
26
FACTORIAL( N, FACT )
SUBALGORITMO “Factorial” (in NU:entero, out FA:entero) Los parámetros Formales se definen:
4 in, son sólo parámetros de ingreso de datos. 4 out, solo parámetros de salida de datos. 4 in out, a través de ellos se ingresan los datos al subalgoritmo y el subalgoritmo devuelve información.
Lenguaje de Diseño: Subalgoritmos
Invocación
Definición
Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016
![Page 27: Lenguaje de Diseño - Departamento de Informáticadirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · t 1 - Dibujo la base. t 2 - Dibujo el poste. t 3 - Dibujo el triángulo inferior](https://reader030.vdocuments.co/reader030/viewer/2022041118/5f2fa12e5a28712ca5635453/html5/thumbnails/27.jpg)
27
Restricciones: Si el parámetro formal fue definido
4 in, los parámetros actuales solo pueden ser constantes, variables, expresiones o valores de funciones. 4 out o in out, los parámetros actuales deben estar
definidos en el ámbito del algoritmo invocante pues es allí donde se debe retornar los resultados.
Lenguaje de Diseño: Subalgoritmos
Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016
![Page 28: Lenguaje de Diseño - Departamento de Informáticadirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · t 1 - Dibujo la base. t 2 - Dibujo el poste. t 3 - Dibujo el triángulo inferior](https://reader030.vdocuments.co/reader030/viewer/2022041118/5f2fa12e5a28712ca5635453/html5/thumbnails/28.jpg)
28
Lenguaje de Diseño: Subalgoritmos - Ámbito
Ambito
para N, AUX, FACT
COMENZAR N, AUX, FACT: entero LEER N AUX N FACTORIAL(N, FACT) ESCRIBIR FACT N AUX � 2 FACTORIAL(N, FACT) ESCRIBIR FACT N AUX � 3 FACTORIAL(N, FACT) ESCRIBIR FACT FIN
ALGORITMO “Calculo Factoriales”
Ámbito de una variable (en inglés scope: alcance) es el contexto o zona del programa en que la misma está definida y por lo tanto puede ser accedida y utilizada.
Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016
![Page 29: Lenguaje de Diseño - Departamento de Informáticadirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · t 1 - Dibujo la base. t 2 - Dibujo el poste. t 3 - Dibujo el triángulo inferior](https://reader030.vdocuments.co/reader030/viewer/2022041118/5f2fa12e5a28712ca5635453/html5/thumbnails/29.jpg)
29
COMENZAR I: entero FA 1 PARA I DESDE 1 HASTA NU CON PASO 1 HACER
FA FA * I FINPARA FIN
Ámbito
sólo
para
NU, FA, I
SUBALGORITMO “Factorial” (in NU:entero, out FA:entero)
Lenguaje de Diseño: Subalgoritmos
Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016
![Page 30: Lenguaje de Diseño - Departamento de Informáticadirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · t 1 - Dibujo la base. t 2 - Dibujo el poste. t 3 - Dibujo el triángulo inferior](https://reader030.vdocuments.co/reader030/viewer/2022041118/5f2fa12e5a28712ca5635453/html5/thumbnails/30.jpg)
30
Lenguaje de Diseño: Subalgoritmos
Formalmente:
< clase de parámetro > < nbre_par > : <tipo_de_dato_Vble>
Donde la declaración de cada parámetro debe tener los siguiente datos:
in out in out
Entero Real Carácter Lógico Arreglo de …..
SUBALGORITMO “Factorial” (in N:entero, out FACT:entero)
Ejemplos:
SUBALGORITMO “<Nombre_subalgoritmo>” (<lista de parámetros>) COMENZAR <cuerpo del subalgoritmo> FIN
Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016
![Page 31: Lenguaje de Diseño - Departamento de Informáticadirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · t 1 - Dibujo la base. t 2 - Dibujo el poste. t 3 - Dibujo el triángulo inferior](https://reader030.vdocuments.co/reader030/viewer/2022041118/5f2fa12e5a28712ca5635453/html5/thumbnails/31.jpg)
31
Lenguaje de Diseño: Subalgoritmos
SUBALGORITMO “Factorial” (in N:entero, out FACT:entero)
Ejemplos:
SUBALGORITMO “Factorial” (in N:entero, out FACT:entero)
SUBALGORITMO “Ordeno” (inout V: arreglo de entero, in M, N: entero)
SUBALGORITMO “Mult” (in A: real, inout B: entero, out N: real)
¿Invocación?
Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016
![Page 32: Lenguaje de Diseño - Departamento de Informáticadirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · t 1 - Dibujo la base. t 2 - Dibujo el poste. t 3 - Dibujo el triángulo inferior](https://reader030.vdocuments.co/reader030/viewer/2022041118/5f2fa12e5a28712ca5635453/html5/thumbnails/32.jpg)
32
Lenguaje de Diseño: Subalgoritmos
Ejemplo 2: ALGORITMO “GASTOS” COMENZAR li, ls, c: entero limite: entero suma: real ImpuestosB: arreglo [1..24] de real Cadena: arreglo [1 .. 25] de caracter li ← 1 ls ← 15 suma ← 0,0 ESCRIBIR “Ingrese codigo del impuesto (1-Gas, 2-Patente):” LEER c BUSCA (2, ImpuestosB, ls, suma) BUSCA (c, ImpuestosB, li, ls, suma + 2) BUSCA (c, ls, ImpuestosB, li, suma) BUSCA (suma, ImpuestosB, ls, x) FIN
SUBALGORITMO “BUSCA” (in cod: entero, in A: arreglo de real, in x: entero, in y: entero, inout z: entero)
COMENZAR j: entero . FIN
Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016
![Page 33: Lenguaje de Diseño - Departamento de Informáticadirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · t 1 - Dibujo la base. t 2 - Dibujo el poste. t 3 - Dibujo el triángulo inferior](https://reader030.vdocuments.co/reader030/viewer/2022041118/5f2fa12e5a28712ca5635453/html5/thumbnails/33.jpg)
33
Lenguaje de Diseño: Subalgoritmos
Ejemplo3:
SUBALGORITMO “INGRESO” (< ¿Parámetros? >) COMENZAR . ESCRIBIR “¿Cuantos caracteres ingresara?” LEER y PARA j DESDE x HASTA y CON PASO 1 HACER LEER A[j] FINPARA FIN
ALGORITMO “GASTOS” COMENZAR li, ls, c: entero limite: entero suma: real ImpuestosB: arreglo [1..24] de real Cadena: arreglo [1 .. 25] de caracter li ← 1 ls ← 15 suma ← 0,0 ESCRIBIR “Ingrese codigo del impuesto (1-Gas, 2-Patente):” LEER c ESCRIBIR “El total pagado del impuesto ” INGRESO (< ¿Parámetros actuales? >) ESCRIBIR “ Ingreso: ”, limite ,“ caracteres” FIN
Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016
![Page 34: Lenguaje de Diseño - Departamento de Informáticadirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · t 1 - Dibujo la base. t 2 - Dibujo el poste. t 3 - Dibujo el triángulo inferior](https://reader030.vdocuments.co/reader030/viewer/2022041118/5f2fa12e5a28712ca5635453/html5/thumbnails/34.jpg)
34
Lenguaje de Diseño: Subalgoritmos
ALGORITMO “EJEMPLO 2” COMENZAR Cur_A: arreglo [1..30] de entero I, Valor: entero PARA I DESDE 1 HASTA 30 CON PASO 1 HACER ESCRIBIR “Ingrese Nota” LEER Cur_A [I] MIENTRAS (Cur_A[I] < 1 v Cur_A [I] > 10) HACER
ESCRIBIR “Ingrese Nota” LEER Cur_A [I]
FINMIENTRAS FINPARA ………. ………………….. FIN
Ejemplo 4: ¿Que hace esta parte del siguiente algoritmo?
Se ingresan 30 valores enteros en un arreglo l l a m a d o C u r _ A (supongamos un Curso A).
¿Como se debería modificar este algoritmo si además se desea cargar las notas del Curso B que tiene 45 alumnos?
Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016
![Page 35: Lenguaje de Diseño - Departamento de Informáticadirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · t 1 - Dibujo la base. t 2 - Dibujo el poste. t 3 - Dibujo el triángulo inferior](https://reader030.vdocuments.co/reader030/viewer/2022041118/5f2fa12e5a28712ca5635453/html5/thumbnails/35.jpg)
35
ALGORITMO “EJEMPLO 2” COMENZAR Cur_A: arreglo [1..30] de entero Cur_B: arreglo [1..45] de entero I, Valor: entero PARA I DESDE 1 HASTA 30 CON PASO 1 HACER ESCRIBIR “Ingrese Nota” LEER Cur_A [I] MIENTRAS (Cur_A[I] < 1 v Cur_A [I] > 10) HACER
ESCRIBIR “Ingrese Nota” LEER Cur_A [I]
FINMIENTRAS FINPARA
PARA I DESDE 1 HASTA 45 CON PASO 1 HACER ESCRIBIR “Ingrese Nota” LEER Cur_B [I] MIENTRAS (Cur_B[I] < 1 v Cur_B [I] > 10) HACER ESCRIBIR “Ingrese Nota” LEER Cur_B[I] FINMIENTRAS FINPARA …………. FIN
Lenguaje de Diseño: Subalgoritmos
¿ C o m o m o d i f i c a m o s e s t e algoritmo si además tenemos que cargar las notas del Curso C, D,……etc ?
Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016
![Page 36: Lenguaje de Diseño - Departamento de Informáticadirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · t 1 - Dibujo la base. t 2 - Dibujo el poste. t 3 - Dibujo el triángulo inferior](https://reader030.vdocuments.co/reader030/viewer/2022041118/5f2fa12e5a28712ca5635453/html5/thumbnails/36.jpg)
36
¿Qué tienen en común estas dos porciones de código ? ALGORITMO “EJEMPLO 2” COMENZAR Cur_A: arreglo [1..30] de entero Cur_B: arreglo [1..45] de entero I, Valor: entero PARA I DESDE 1 HASTA 30 CON PASO 1 HACER
ESCRIBIR “Ingrese Nota” LEER Cur_A [I] MIENTRAS (Cur_A[I] < 1 v Cur_A [I] > 10) HACER ESCRIBIR “Ingrese Nota” LEER Cur_A [I] FINMIENTRAS
FINPARA
PARA I DESDE 1 HASTA 45 CON PASO 1 HACER ESCRIBIR “Ingrese Nota” LEER Cur_B [I] MIENTRAS (Cur_B[I] < 1 v Cur_B [I] > 10) HACER
ESCRIBIR “Ingrese Nota” LEER Cur_B[I]
FINMIENTRAS FINPARA ………………….. FIN
Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016
![Page 37: Lenguaje de Diseño - Departamento de Informáticadirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · t 1 - Dibujo la base. t 2 - Dibujo el poste. t 3 - Dibujo el triángulo inferior](https://reader030.vdocuments.co/reader030/viewer/2022041118/5f2fa12e5a28712ca5635453/html5/thumbnails/37.jpg)
37
¿Qué tienen diferente estas dos porciones de código ? ALGORITMO “EJEMPLO 2” COMENZAR Cur_A: arreglo [1..30] de entero Cur_B: arreglo [1..45] de entero I, Valor: entero PARA I DESDE 1 HASTA 30 CON PASO 1 HACER
ESCRIBIR “Ingrese Nota” LEER Cur_A [I] MIENTRAS (Cur_A[I] < 1 v Cur_A [I] > 10) HACER ESCRIBIR “Ingrese Nota” LEER Cur_A [I] FINMIENTRAS
FINPARA
PARA I DESDE 1 HASTA 45 CON PASO 1 HACER ESCRIBIR “Ingrese Nota” LEER Cur_B [I] MIENTRAS (Cur_B[I] < 1 v Cur_B [I] > 10) HACER
ESCRIBIR “Ingrese Nota” LEER Cur_B[I]
FINMIENTRAS FINPARA ………….. FIN
Solución: definimos un subalgoritmo con la tarea que se repite y los datos que cambian lo comunicamos como parámetro
![Page 38: Lenguaje de Diseño - Departamento de Informáticadirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · t 1 - Dibujo la base. t 2 - Dibujo el poste. t 3 - Dibujo el triángulo inferior](https://reader030.vdocuments.co/reader030/viewer/2022041118/5f2fa12e5a28712ca5635453/html5/thumbnails/38.jpg)
38
ALGORITMO “EJEMPLO 2” COMENZAR Cur_A: arreglo [1..30] de entero Cur_B: arreglo [1..45] de entero I, Valor: entero
…………. ………………….. FIN
Llenado Llenado
(Cur_A, 1, 30 ) (Cur_B, 1, 45)
Definimos un Subalgoritmo que va a realizar el Llenado del Arreglo
Invocación
Lenguaje de Diseño: Subalgoritmos
Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016
![Page 39: Lenguaje de Diseño - Departamento de Informáticadirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · t 1 - Dibujo la base. t 2 - Dibujo el poste. t 3 - Dibujo el triángulo inferior](https://reader030.vdocuments.co/reader030/viewer/2022041118/5f2fa12e5a28712ca5635453/html5/thumbnails/39.jpg)
39
(inout C: arreglo de entero, in M, N: entero) SUBALGORITMO “Llenado”
FIN
I: entero PARA I DESDE M HASTA N CON PASO 1 HACER ESCRIBIR “Ingrese Nota” LEER C[I] MIENTRAS (C[I] < 1 v C[I] > 10) HACER
ESCRIBIR “Ingrese Nota” LEER C[I]
FINMIENTRAS FINPARA
COMENZAR
Lenguaje de Diseño: Subalgoritmos
Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016
![Page 40: Lenguaje de Diseño - Departamento de Informáticadirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · t 1 - Dibujo la base. t 2 - Dibujo el poste. t 3 - Dibujo el triángulo inferior](https://reader030.vdocuments.co/reader030/viewer/2022041118/5f2fa12e5a28712ca5635453/html5/thumbnails/40.jpg)
40
Lenguaje de Diseño: Subalgoritmos
ALGORITMO “EJEMPLO 2” COMENZAR Cur_A: arreglo [1..30] de entero Cur_B: arreglo [1..45] de entero I, Valor: entero
…………. ………………….. FIN
Llenado
Llenado
(Cur_A, 1, 30 )
(Cur_B, 1, 45 )
Cur_C: arreglo [1..30] de entero Cur_D: arreglo [1..30] de entero
Llenado Llenado
(Cur_C, 1, Valor )
(Cur_D, 1, 30 )
ESCRIBIR “Cuantos Alumnos tiene el Curso C” LEER Valor
Faltan controles!!!
¿Como modificamos este algoritmo si la cantidad de alumnos del Curso C varia ( nunca supera los 30 )?
Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016
![Page 41: Lenguaje de Diseño - Departamento de Informáticadirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · t 1 - Dibujo la base. t 2 - Dibujo el poste. t 3 - Dibujo el triángulo inferior](https://reader030.vdocuments.co/reader030/viewer/2022041118/5f2fa12e5a28712ca5635453/html5/thumbnails/41.jpg)
41
Lenguaje de Diseño: Subalgoritmos
SUBALGORITMO “Llenado” (in out C: arreglo de entero, in M, N: entero)
FIN
I: entero PARA I DESDE M HASTA N CON PASO 1 HACER ESCRIBIR “Ingrese Nota” LEER C[I] MIENTRAS (C[I] < 1 v C[I] > 10) HACER
ESCRIBIR “Ingrese Nota” LEER C[I]
FINMIENTRAS FINPARA
COMENZAR
Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016
![Page 42: Lenguaje de Diseño - Departamento de Informáticadirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · t 1 - Dibujo la base. t 2 - Dibujo el poste. t 3 - Dibujo el triángulo inferior](https://reader030.vdocuments.co/reader030/viewer/2022041118/5f2fa12e5a28712ca5635453/html5/thumbnails/42.jpg)
42
(in out C: arreglo de entero, in M, N: entero) SUBALGORITMO “Llenado”
FIN
PARA I DESDE M HASTA N CON PASO 1 HACER ESCRIBIR “Ingrese Nota” LEER C[I] MIENTRAS (C[I] < 1 v C[I] > 10) HACER ESCRIBIR “Ingrese Nota” LEER C[I] FINMIENTRAS FINPARA
I: entero COMENZAR
¿Como modificamos este algoritmo si vamos a cargar las notas a partir del alumno 10 hasta el 20 en el Curso D?
ALGORITMO “EJEMPLO 2” COMENZAR Cur_A: arreglo [1..30] de entero Cur_B: arreglo [1..45] de entero I, Valor: entero
FIN
Llenado
Llenado
(Cur_A, 1, 30 )
(Cur_B, 1, 45 )
Cur_C: arreglo [1..30] de entero Cur_D: arreglo [1..30] de entero
ESCRIBIR “Cuantos Alumnos tiene el Curso C” LEER Valor
Llenado Llenado
(Cur_C, 1, Valor ) (Cur_D, 10, 20 )
Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016
![Page 43: Lenguaje de Diseño - Departamento de Informáticadirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · t 1 - Dibujo la base. t 2 - Dibujo el poste. t 3 - Dibujo el triángulo inferior](https://reader030.vdocuments.co/reader030/viewer/2022041118/5f2fa12e5a28712ca5635453/html5/thumbnails/43.jpg)
Ejemplo: Intercambiar el contenido de dos variables enteras . El algoritmo deberá ser diseñado como subalgoritmo denominado “Intercambio”.
43
Solución: - Intercambiar los contenidos mediante la ayuda de una variable auxiliar que almacene temporariamente el contenido de una de ellas. Ejemplo: estado inicial: 21 35 ?
A B Aux 1º acción: 21 35 21
A B Aux
2º acción: 35 35 21 A B Aux
3º acción: 35 21 21 A B Aux
Lenguaje de Diseño: Subalgoritmos
Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016
![Page 44: Lenguaje de Diseño - Departamento de Informáticadirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · t 1 - Dibujo la base. t 2 - Dibujo el poste. t 3 - Dibujo el triángulo inferior](https://reader030.vdocuments.co/reader030/viewer/2022041118/5f2fa12e5a28712ca5635453/html5/thumbnails/44.jpg)
44
Objetos:
SUBALGORITMO “Intercambio” ( ) COMENZAR FIN
A - variable entera con el primer dato. B - variable entera con el segundo dato. AUX - variable auxiliar.
Lenguaje de Diseño: Subalgoritmos
¿Variables? ¿Parámetros?
Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016
![Page 45: Lenguaje de Diseño - Departamento de Informáticadirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · t 1 - Dibujo la base. t 2 - Dibujo el poste. t 3 - Dibujo el triángulo inferior](https://reader030.vdocuments.co/reader030/viewer/2022041118/5f2fa12e5a28712ca5635453/html5/thumbnails/45.jpg)
45
SUBALGORITMO “Intercambio” ( A,B:entero ) COMENZAR AUX: entero AUX A A B B AUX FIN
Algoritmo Depurado:
Lenguaje de Diseño: Subalgoritmos
¿Clase de Parámetros?
inout
in out in out
Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016
![Page 46: Lenguaje de Diseño - Departamento de Informáticadirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · t 1 - Dibujo la base. t 2 - Dibujo el poste. t 3 - Dibujo el triángulo inferior](https://reader030.vdocuments.co/reader030/viewer/2022041118/5f2fa12e5a28712ca5635453/html5/thumbnails/46.jpg)
46
Lenguaje de Diseño: Subalgoritmos Ejercicio: Analice el siguiente algoritmo. Se pide que defina (en forma completa) los parámetros formales, parámetros actuales y las definiciones de variables correspondientes para un buen funcionamiento del mismo SUBALGORITMO “Ingreso” ( ) COMENZAR ESCRIBIR “INGRESE LA CANTIDAD DE CARACTERES” LEER LS MIENTRAS LS <=0 v LS > 100 HACER ESCRIBIR “INGRESE CANTIDAD” LEER LS VECES VECES + 1 FINMIENTRAS I LI MIENTRAS I <= LS HACER ESCRIBIR “INGRESE CARACTER” LEER ARR[I] I I + 1 FINMIENTRAS FIN
ALGORITMO “FINAL” COMENZAR Acar: arreglo [1..100] de caracter LI, LS, ERROR: entero LI 1 Ingreso ( )
ESCRIBIR “Ingreso “, ERROR, “veces un valor incorrecto” FIN
Int. a la Computación-Int. a la Programación – Fund. De la Informática - 2016
![Page 47: Lenguaje de Diseño - Departamento de Informáticadirinfo.unsl.edu.ar/servicios/abm/assets/uploads/... · t 1 - Dibujo la base. t 2 - Dibujo el poste. t 3 - Dibujo el triángulo inferior](https://reader030.vdocuments.co/reader030/viewer/2022041118/5f2fa12e5a28712ca5635453/html5/thumbnails/47.jpg)
47
FIN