PDF de programación - Tema 2: Programación Estructurada y Programación Modular - Complementos de Informática

Imágen de pdf Tema 2: Programación Estructurada y Programación Modular - Complementos de Informática

Tema 2: Programación Estructurada y Programación Modular - Complementos de Informáticagráfica de visualizaciones

Publicado el 4 de Marzo del 2020
500 visualizaciones desde el 4 de Marzo del 2020
147,9 KB
34 paginas
Creado hace 18a (21/10/2005)
Complementos de Informática
Tema 2: Programación Estructurada y

Programación Modular

Álvaro Romero Jiménez

Departamento de Ciencias de la Computación e Inteligencia Artificial

Universidad de Sevilla

Programación Estructurada

Conjunto de técnicas para desarrollar algoritmos fáciles de
escribir, verificar, leer y modificar.

Técnicas utilizadas:

2 / 23

Programación Estructurada

Conjunto de técnicas para desarrollar algoritmos fáciles de
escribir, verificar, leer y modificar.

Técnicas utilizadas:

I Diseño descendente: los algoritmos se diseñan por etapas,

de los conceptos generales a los detalles particulares.

2 / 23

Programación Estructurada

Conjunto de técnicas para desarrollar algoritmos fáciles de
escribir, verificar, leer y modificar.

Técnicas utilizadas:

I Diseño descendente: los algoritmos se diseñan por etapas,

de los conceptos generales a los detalles particulares.

I Recursos abstractos: la resolución de un problema

complejo se realiza suponiendo que los subproblemas en
los que se descompone están ya resueltos.

2 / 23

Programación Estructurada

Conjunto de técnicas para desarrollar algoritmos fáciles de
escribir, verificar, leer y modificar.

Técnicas utilizadas:

I Diseño descendente: los algoritmos se diseñan por etapas,

de los conceptos generales a los detalles particulares.

I Recursos abstractos: la resolución de un problema

complejo se realiza suponiendo que los subproblemas en
los que se descompone están ya resueltos.

I Estructuras básicas: los algoritmos se escriben utilizando

únicamente las estructuras secuencial, selectiva y
repetitiva.

2 / 23

Números Amigos

Definición
Dos números se dice que son amigos si cada uno de ellos es
igual a la suma de los divisores propios del otro.

Por ejemplo, los números 220 y 284 son amigos, ya que:
Suma de divisores de 284:
Suma de divisores de 220:

1 + 2 + 4 + 71 + 142 = 220
1 + 2 + 4 + 5 + 10 +
11 + 20 + 22 + 44 +
55 + 110 = 284

Problema: Encontrar y mostrar todas las parejas de números
amigos menores o iguales a uno dado.

3 / 23

Ejemplo de Algoritmo Estructurado I

Esqueleto del Algoritmo

algoritmo números_amigos
var

natural : cota, num1, num2

inicio

leer cota
para num1 desde 1 hasta cota-1 hacer

para num2 desde num1+1 hasta cota hacer

si num1 y num2 son amigos entonces

escribir num1, num2

fin si
fin para

fin para

fin

4 / 23

Ejemplo de Algoritmo Estructurado II

Primer Refinamiento

algoritmo números_amigos
var

natural : cota, num1, num2
natural : suma1, suma2

inicio

# Guardarán la suma de

los divisores

leer cota
para num1 desde 1 hasta cota-1 hacer

para num2 desde num1+1 hasta cota hacer
suma1 ← suma de los divisores de num1
suma2 ← suma de los divisores de num2

5 / 23

Ejemplo de Algoritmo Estructurado III

si suma1 = num2 y suma2 = num1 entonces

escribir num1, num2

fin si
fin para

fin para

fin

6 / 23

Ejemplo de Algoritmo Estructurado IV

Segundo Refinamiento

algoritmo números_amigos
var

natural : cota, num1, num2
natural : suma1, suma2, número

inicio

leer cota
para num1 desde 1 hasta cota-1 hacer

para num2 desde num1+1 hasta cota hacer

suma1 ← 0
para número desde 1 hasta num1-1 hacer

si número divide a num1 entonces

suma1 ← suma1 + número

fin si
fin para

7 / 23

Ejemplo de Algoritmo Estructurado V

suma2 ← 0
para número desde 1 hasta num2-1 hacer

si número divide a num2 entonces

suma2 ← suma2 + número

fin si
fin para
si suma1 = num2 y suma2 = num1 entonces

escribir num1, num2

fin si
fin para

fin para

fin

8 / 23

Programación Modular

Resolución independiente de los subproblemas resultantes de la
descomposición de un problema.

Completa y amplía el diseño descendente como método de
resolución de problemas.

Un problema será resuelto por un algoritmo principal que
transferirá el control a los distintos módulos o subalgoritmos,
los cuales al terminar su tarea devolverán el control al
algoritmo principal.

9 / 23

Programación Modular

Algunas ventajas significativas de la programación modular:

10 / 23

Programación Modular

Algunas ventajas significativas de la programación modular:

I La independencia de los módulos permite trabajar en ellos

simultáneamente.

10 / 23

Programación Modular

Algunas ventajas significativas de la programación modular:

I La independencia de los módulos permite trabajar en ellos

simultáneamente.

I La modificación de un módulo no afecta a los demás.

10 / 23

Programación Modular

Algunas ventajas significativas de la programación modular:

I La independencia de los módulos permite trabajar en ellos

simultáneamente.

I La modificación de un módulo no afecta a los demás.
I Los módulos solo se escriben una vez, aunque se

necesiten en distintas ocasiones.

10 / 23

Tipos de subalgoritmos

Funciones

Una función toma uno o más valores, denominados
argumentos o parámetros formales, y devuelve un resultado.

Para invocar a una función se utiliza su nombre seguido por
los parámetros actuales sobre los que aplicarla, escritos entre
paréntesis y separados por comas en una expresión.

Cada lenguaje de programación tiene sus propias funciones
internas incorporadas. Si estas no permiten realizar el tipo de
cálculo deseado será necesario declarar una función externa.

11 / 23

Declaración de funciones

<tipo de dato> función <nombre de la función>
(<parámetros formales>)
const

<declaración de constantes>

<declaración de variables>
inicio
...
devolver <resultado>

var

fin

12 / 23

Tipos de Subalgoritmos

Procedimientos

Un procedimiento es un algoritmo que realiza una tarea
específica, pero que generalmente no devuelve ningún
resultado.

La entrada de información se realiza a través de los
parámetros. En caso necesario la salida de información
también se realiza a través de los parámetros.

Para invocar a un procedimiento se utiliza la instrucción
llamar a seguida del nombre del procedimiento y de los
parámetros actuales sobre los que aplicarlo, escritos entre
paréntesis y separados por comas.

13 / 23

Declaración de procedimientos

procedimiento <nombre del procedimiento>
(<parámetros formales>)
const

<declaración de constantes>

<declaración de variables>
inicio
...

var

fin

14 / 23

Tipos de Parámetros

Los parámetros se clasifican según la dirección del flujo de
información como sigue:

I Parámetros de entrada (E): transmiten información desde

el programa llamador al subprograma.

I Parámetros de salida (S): transmiten información desde el

subprograma al programa llamador.

I Parámetros de entrada/salida (E/S): transmiten
información tanto desde como hacia el programa
llamador.

15 / 23

Paso de Parámetros

Al invocar un procedimiento o una función se produce una
correspondencia entre los parámetros formales y los
parámetros actuales.

16 / 23

Paso de Parámetros

Al invocar un procedimiento o una función se produce una
correspondencia entre los parámetros formales y los
parámetros actuales.

I Correspondencia posicional: los parámetros formales y los
actuales se emparejan según su posición, en la definición
del procedimiento o función los primeros, y en la llamada
realizada los segundos.

16 / 23

Paso de Parámetros

Al invocar un procedimiento o una función se produce una
correspondencia entre los parámetros formales y los
parámetros actuales.

I Correspondencia posicional: los parámetros formales y los
actuales se emparejan según su posición, en la definición
del procedimiento o función los primeros, y en la llamada
realizada los segundos.

I Correspondencia por nombre: la correspondencia entre los

parámetros formales y los actuales se indica
explícitamente en la llamada al procedimiento o función.

16 / 23

Paso de Parámetros

Según el lenguaje de programación utilizado, existen tres
métodos de transmisión de valores a los parámetros formales.

17 / 23

Paso de Parámetros

Según el lenguaje de programación utilizado, existen tres
métodos de transmisión de valores a los parámetros formales.
I Paso por valor: los parámetros formales reciben una copia

de los valores de los parámetros actuales.

17 / 23

Paso de Parámetros

Según el lenguaje de programación utilizado, existen tres
métodos de transmisión de valores a los parámetros formales.
I Paso por valor: los parámetros formales reciben una copia

de los valores de los parámetros actuales.

I Paso por valor resultado: los parámetros formales reciben

una copia de los valores de los parámetros actuales y al
finalizar la ejecución del subprograma se realiza el proceso
inverso.

17 / 23

Paso de Parámetros

Según el lenguaje de programación utilizado, existen tres
métodos de transmisión de valores a los parámetros formales.
I Paso por valor: los parámetros formales reciben una copia

de los valores de los parámetros actuales.

I Paso por valor resultado: los parámetros formales reciben

una copia de los valores de los parámetros actuales y al
finalizar la ejecución del subprograma se realiza el proceso
inverso.

I Paso por referencia: los parámetros formales reciben las
direcciones de memoria que referencian a los valores de
los parámetros actuales.

17 / 23

Variables Globales y Locales

Variable global: aquella tal que el ámbito en el que se conoce
su valor es el programa completo, incluídos los subprogramas.

Variable local: aquella tal que el ámbito en el que se conoce su
valor es únicamente una parte del programa.

Todas las variables usadas por un subprograma que no sean
variables globales deben declararse como variables locales de
ese subprograma. Los parámetros del subprograma también
actúan como variables locales.

Se puede declarar una variable local con el mismo nombre que
otra variable ya declarada. El valor asignado a la primera solo
tendrá vigencia para las expresiones incluidas dentro de su
ámbito.

18 / 23

Ejemplo de Algoritmo Modular I

algoritmo números_amigos
inicio

# Este algoritmo no tiene variables globales

procedimiento calcula_pares ()
var

# Variables locales del procedimiento

natural : cota, num1, num2

inicio

leer cota
para num1 desde 1 hasta cota-1 hacer

para num2 desde num1+
  • Links de descarga
http://lwp-l.com/pdf17355

Comentarios de: Tema 2: Programación Estructurada y Programación Modular - Complementos de Informática (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad