Você está na página 1de 33

Principios de Algoritmos

Logro esperado
Comprende y analiza los problemas para
elaborar un algoritmo aplicando modularidad,
escribiendo el seudocdigo.

Pablo Romero

Introduccin

Pablo Romero

Agenda

Introduccin
Programacin Modular
Subprograma
Subprogramas y arreglos
Ejemplo
Actividad en aula
Conclusiones

Pablo Romero

Programacin Modular
La programacin modular es una metodologa de
programacin que consiste en organizar un
programa en mdulos.
En la etapa de diseo de un programa se aplica la
estrategia Divide y vencers.
En la etapa de implementacin, cada uno de los
subproblemas se implementa a travs de un
mdulo.
Los mdulos ms simples son los procedimientos y
funciones.
Pablo Romero

Abstraccin
(Divide y vencers)

Pablo Romero

Subprogramas
Subprogramas: bloques de
cdigo que llevan a cabo una
tarea concreta (= resuelven un
subproblema concreto)

Tienen un
propsito

Permiten reutilizar
cdigo de manera
sencilla y segura

Ayudan a que el
cdigo del programa
principal sea

Legible:

Pablo Romero

Ordenado:

Subprogramas

Pablo Romero

Subprogramas

Procedimientos
Subprogramas
Funciones

Pablo Romero

Procedimiento
Son subprogramas que realizan una tarea determinada y
generan 0 o ms de un valor. Se utilizan para estructurar un
programa y mejorar su claridad y generalidad.
Sus parmetros pueden ser:
- de ENTRADA: Slo se utilizan para que los subprogramas que
llaman al procedimiento le pasen datos.
- de ENTRADA/SALIDA: Se utilizan por parte de los
subprogramas que llaman, para pasarle datos al procedimiento,
y por parte del procedimiento para pasar los resultados
obtenidos al subprograma que lo ha llamado.

Pablo Romero

10

Funcin
Son subprogramas que realizan una
determinada tarea y devuelven un nico
resultado o valor. Se utilizan para crear
operaciones nuevas no incluidas en el
lenguaje.
El resultado devuelto se indica mediante la
palabra reservada retornar, y TODOS LOS
PARMETROS son de ENTRADA.

Pablo Romero

11

mbito de variables
El buen uso de la programacin modular requiere
que los mdulos sean independientes.
Esto se consigue intentando satisfacer dos
condiciones:
Cada mdulo se disea sin conocimiento del diseo de
otros mdulos
La ejecucin de un subprograma particular no tiene por que
afectar a los valores de las variables de otros subprogramas.

Dado que se permite el anidamiento en la llamada a


subprogramas, es necesario evitar problemas con
los identificadores definidos en varias partes del
cdigo.
Pablo Romero

12

mbito de variables: Variable Local


Son aquellas que se declaran en el cuerpo de la
funcin. Solo son "visibles" o "usables" dentro de la
funcin donde se han declarado.
Dos funciones diferentes, pueden utilizar los mismos
nombres de variables sin "interferencias ya que se
refieren a posiciones diferentes de memoria.
Variables Locales

13
Pablo Romero

mbito de variables: Variable Global


Es aquella que se define fuera del cuerpo de
cualquier funcin, normalmente al principio del
programa y antes de cualquier funcin.
El mbito de una variable global son todas las
funciones que componen el programa,
cualquier funcin puede acceder a dichas
variables para leer y escribir en ellas. Es decir,
se puede hacer referencia a su direccin de
memoria en cualquier parte del programa.
Pablo Romero

14

mbito de variables: Variable Global


Al programar usando procedimientos y
funciones, no utilizaremos en nuestras
aplicaciones las variables globales, pues
atentan contra la modularidad y el bajo
acoplamiento que son lo que deseamos.

Pablo Romero

15

Parmetros actuales o reales


Son las variables de enlace definidas en el
programa principal y que se usan como
argumentos dentro de los parntesis que posee
una llamada a un subprograma.

Pablo Romero

16

Parmetros formales o ficticios


Son las variables de enlace definidas en la
entrada de un subprograma, que aceptan los
valores de los parmetros actuales que se
usan en la llamada al subprograma y se
comportan como otras variables locales.
Parmetros formales

Pablo Romero

17

Paso de parmetros: Por valor


El paso de parmetros por valor consiste
en copiar el contenido de la variable que
queremos pasar en otra dentro del mbito
local del subprograma. Se tendrn dos
valores duplicados e independientes, con
lo que la modificacin de uno no afecta al
otro.
18

Pablo Romero

Paso de parmetros: Por valor

Diferentes posiciones de
memoria

num

Pablo Romero

19

Paso de parmetros: Por Referencia


El paso de parmetros por referencia consiste
en proporcionar al subprograma al que se
quiere pasar el argumento, la direccin de
memoria del dato. En este caso se tiene un
nico valor referenciado (o apuntado) desde
dos puntos diferentes, el programa principal y
subprograma al que se pasa el argumento, por
lo que cualquier accin sobre el parmetro se
realiza sobre el mismo dato en la memoria.
Pablo Romero

20

Paso de parmetros: Por Referencia

La misma direccin de
memoria

Pablo Romero

r1

r2

x1

x2

21

Modularidad. Ejemplo
En un campeonato de ftbol se enfrentan 4
equipos, con 11 jugadores cada uno. Crear
un arreglo de 11x4. Se pide:
a) Guardar en el arreglo las edades de los 11
jugadores de cada uno de los 4 equipos.
b) Hallar la suma total de las edades de los
jugadores de cada equipo y guardar en
vector totEdad.
Pablo Romero

22

2
3
4

5
6
7
8
9
10
11
1

2
Pablo Romero

4
23

Proceso Principal
Dimension edades[11,4]
Definir edades Como Entero
Dimension totEdad[4]
Definir totEdad como Entero
llenarMatriz(edades)
guardarTotEdad(edades, totEdad)
mostrarMatriz(edades)
mostrarVector(totEdad)
FinProceso
Pablo Romero

24

Subproceso llenarMatriz(edades Por Referencia)


Definir i, j como Entero
Para i<-1 hasta 11 Hacer
Para j<- 1 hasta 4 Hacer
Leer edades[i,j]
FinPara
FinPara
FinSubProceso
Pablo Romero

25

SubProceso guardarTotEdad(edades, totEdad Por Referencia)


Definir i, j, tot como Entero
Para j<-1 hasta 4 Hacer
tot<-0
Para i<-1 hasta 11 Hacer
tot<-tot + edades[i,j]
FinPara
totEdad[j]<-tot
FinPara
FinSubProceso
Pablo Romero

26

Subproceso mostrarMatriz(edades)
Definir i, j como Entero
Para i<-1 hasta 11 Hacer
Para j<- 1 hasta 4 Hacer
escribir "Jugador ",i, " Equipo ", j," ",edades[i,j]
FinPara
FinPara
FinSubProceso
Subproceso mostrarVector(totEdad)
Definir i como Entero
Para i<-1 hasta 4 Hacer
escribir "Total Equipo ",i, " ",totEdad[i]
FinPara
FinSubProceso
Pablo Romero

27

Pseudocdigo

Pablo Romero

28

Pablo Romero

29

Ejecucin

Pablo Romero

30

Preguntas

Pablo Romero

31

Actividad
Halle el total de edades por jugador (el nro 1
de todos los equipos, el nro 2 de todos los
equipos, etc.) y guarde cada uno en un
vector llamado totAlu

Pablo Romero

32

Conclusiones
Comprende y analiza los problemas para elaborar un
algoritmo utilizando modularidad, escribiendo el
seudocdigo.

Programacin modular es ..
Procedimiento se caracteriza por..
La llamada la hace
Los parmetros van entre ..
Funcin se caracteriza por
Paso de parmetros con arreglos se hace por
..
Pablo Romero

33

Você também pode gostar