Está en la página 1de 17

EJEMPLOS T4 PROGRAMACIÓN

TÉCNICAS DE DISEÑO DE ALGORITMOS

1. TOP-DOWN

El problema ha sufrido una descomposición inicial y tenemos un esquema descendente


de nivel 1. Las subdivisiones no se han terminado, lo cual queda indicado con una flecha
de continuidad. Se ha decidido no incluirlas por motivos de espacio o presentación.
El siguiente esquema recoge el desarrollo del nodo 2 (nivel 1) hasta el nivel 3.

Según este esquema toda la herencia del nodo 2 muere excepto la derivada del nodo 12, que se
encuentra en el nivel 3. En otro esquema, supongamos que final para esta rama, tendríamos el
desarrollo del nodo 12 a nivel 4, o a nivel 5, o a nivel 16, según la cantidad de ramificaciones que
hubiera. Una vez desarrollados todos los nodos hasta un punto de no división, podríamos
representar el problema como un árbol. Para este ejemplo el desarrollo final nos lleva a algo así:
2. BOTTOM-UP
El esquema es el mismo pero el orden de los módulos no ya que se empieza a la
inversa
TIPOS DE ALGORITMOS

1. DIAGRAMA DE FLUJO
2. PSEUDOCÓDIGO
3. DIAGRAMA ESTRUCTURADO O DE CHAPIN
ESTRUCTURAS ALGORÍTMICAS

1. SECUENCIALES
2. CONDICIONALES DOBLES
CONDICIONALES MÚLTIPLES

3. CÍCLICAS
repetir desde-hasta (FOR)

Suma los primeros cinco números naturales (1,2,3,4,5) y mostrar el resultado.


Ejemplo
Calcular la tabla de multiplicar de un número dado.

mientras (while)
Video:
https://www.aprendeaprogramar.com/cursos/verApartado.php?id=2006

Por ejemplo, un programa capaz de sumar muchos números, todos los que el usuario
quisiera, y en el que hubiera que escribir "0" para indicar que queremos terminar,
podría ser así:

Algoritmo Mientras01
Escribir "Dime un numero"
Leer x
suma <- 0
Mientras x <> 0 Hacer
suma <- suma + x
Escribir "Hasta ahora, la suma es ", suma
Escribir "Dime otro numero"
Leer x
FinMientras
Escribir "Terminado"
FinAlgoritmo
repetir hasta (DO-WHILE)
Video:
https://www.aprendeaprogramar.com/cursos/verApartado.php?id=2007
Crea un programa que pida al usuario un código de usuario y una contraseña. Deberá
repetirse hasta que el código sea "1" y la contraseña sea "1234".

Algoritmo Repetir
Repetir
Escribir “Dime tu código de usuario”
Leer ID;
Escribir “Dime tu ontraseña”
Leer clave;
Si ID <> 1 y clave <> 1234
Escribir “El usuario o la contraseña son incorrectas”
Finsi
Hasta Que ID=1 y clave=1234
FinAlgoritmo
Estructuras Cíclicas
REPETIR DESDE-HASTA HACER-MIENTRAS REPETIR-HASTA
Repetir desde VC=LI hasta VC=LS Mientras <condición> Repetir
Acción1 Acción1 Acción1
Acción2 Acción2 Acción2

Acción N Acción N Acción N


Fin-repetir Fin-mientras Hasta <condición>

TIPOS DE DATOS ESTRUCTURADOS

VECTORES O ARRAYS

Inicialización de un vector de 10 elementos tipo int a 0


Repetir desde i=0 hasta i>10
Vec[i]=0
I=i+1
Fin-repetir

Escribir los elementos de un vector por pantalla:

Repetir desde i=0 hasta i>10


Escribir Vec[i]
I=i+1
Fin-repetir
Ejemplo: Crear un vector de 3 elementos, guardar datos en sus 3 posiciones y
mostrar el primer dato y el tercero así:

Algoritmo Vector3

datos[1] = 10
datos[2] = 25
datos[3] = 50

Escribir "El primer dato es ", datos[1]


Escribir "Y el tercero es ", datos[3]

FinAlgoritmo

Ejemplo: Como una vector puede contener muchos datos, es frecuente


recorrerlos de forma repetitiva, empleando una orden "para". Así un ejemplo
que nos pida 6 datos y luego los muestre en orden contrario al que se han
introducido podría ser:

Algoritmo MostrarAlReves

Dimension datos[6]

Para i = 1 Hasta 6 Hacer


Escribir "Dime el dato numero ", i
Leer datos[i]
FinPara

Escribir "Los datos al reves son: "


Para i <- 6 Hasta 1 Con Paso -1 Hacer
Escribir datos[i]
FinPara

FinAlgoritmo

MATRICES

Inicializar una matriz de 5x5

Repetir desde F=1 hasta F>5 Repetir desde C=1 hasta F>5
Repetir desde C=1 hasta C>5 Repetir desde F=1 hasta F>5
Mat[F,C]=0 Mat[F,C]=0
C=C+1 F=F+1
Fin-repetir Fin-repetir
F=F+1 C=C+1
Fin-repetir Fin-repetir

Escribir los elementos de una matriz por pantalla:

Repetir desde F=1 hasta F>5 Repetir desde C=1 hasta F>5
Repetir desde C=1 hasta C>5 Repetir desde F=1 hasta F>5
Escribir Mat[F,C] Escribir Mat[F,C]
C=C+1 F=F+1
Fin-repetir Fin-repetir
F=F+1 C=C+1
Fin-repetir Fin-repetir

Ejemplo: Calcular el promedio de los elementos de una matriz


Inicio
var suma, promedio,i,j
M[3][3]

repetir desde i= 0 hasta 2


repetir desde j= 0 hasta 2
Leer M[i][j]
fin_repetir_j
fin_ repetir _i

repetir desde i= 0 hasta 2


repetir desde j= 0 hasta 2
suma=suma+M[i][j]
fin_ repetir _j
fin_ repetir _i
promedio = suma/9

repetir desde i= 0 hasta 2 hacer


repetir desde j= 0 hasta 2 hace
Escribir M[i][j]
fin_ repetir _j
fin_ repetir _i
Fin

Ejemplo: Algoritmo para leer una matriz de 10 x 10 y determinar la posición [f][c] del número
mayor almacenado en la matriz. Se supone que todos los números son diferentes.

Inicio
Var f,c,posf,posc,M,mayor
M[3,3]

Repetir desde f=0 hasta 2


Repetir desde c=0 hasta 2
Escribir ”Ingrese elemento en la fila”, f+1 ”columna”, c+1
Leer M[f,c]
Si M[f,c] > mayor entonces
Mayor=M[f,c]
Posf=f+1
Posc=c+1
Fin_si
Fin_repetir_c
Fin_repetir_f
Fin

MANEJO DE MÓDULOS

También podría gustarte