Sunteți pe pagina 1din 5

Para realizar esta actividad:

1. Lee los contenidos temáticos que integran esta unidad:

4.1. Programación estructurada


4.2. Saltos incondicionales
4.3. Saltos condicionales

2. A manera de ejemplo, presentamos el algoritmo para multiplicar. Sabemos que una


multiplicación es una suma abreviada, es decir, la multiplicación 25 x 7 equivale a la
suma 25 + 25 + 25 + 25 +25 +25 +25 = 175.

Usando la programación estructurada, un algoritmo para multiplicar sumando es el siguiente:


factor1 = 25
factor2 = 7
contador = 0
producto = 0
mientras (contador < factor2)
producto = producto + factor1
contador = contador + 1
fin_mientras

3. Al finalizar el mientras (), en la variable producto tenemos el resultado de la


multiplicación de 25 x 7 calculada sumando 25 siete veces.

En la tabla siguiente se muestran los valores de las variables producto y contador al


terminar cada una de las iteraciones que ejecuta el mientras ():

Iteración Contador < Contador Producto


factor2
1ra V 1 25
2da V 2 50
3ra V 3 75
4ta V 4 100
5ta V 5 125
6ta V 6 150
7ma V 7 175
8va F 7 175

Como puede verse, al tratar de ejecutarse la octava iteración, la condición contador < factor2 es
falsa; por lo tanto, el ciclo ya no se repite, y en producto tenemos el resultado de la
multiplicación.

4. Tomando como guía el ejemplo anterior, diseña los algoritmos para:


5. Dividir restando.
6. Obtener la raíz cuadrada aproximada restando impares sucesivos.

7. Para ayudarte un poco, ilustro brevemente estos algoritmos:

Dividir restando
Dividir 25/7 equivale a averiguar cuántas veces se puede restar el 7 al 25. Esto es,
25 - 7 = 18, al que todavía puedo restar 7, entonces
18 - 7 = 11, al que todavía puedo restar 7, entonces
11 - 7 = 4, al que ya no puedo restar 7, porque es menor o igual a 7.
Así que realicé tres restas y el resultado de la última resta fue 4.
Por tanto, al dividir 25/7 obtengo como cociente 3 y como residuo 4.

PROGRAMA A COMPILAR

; ---------------------------------------------
; Programa 4 Practica 1
;
;
; ---------------------------------------------

.NOLIST
.LIST

.Factor1=25
.Factor2=7

rjmp

Contador=0
Residuo=0
Cociente=0
Mientras(factor1>factor2)
Factor-factor2
Factor1=residuo
C=c+1 // contador
repite (residuo<=factor2)
cociente=residuo-factor2
fin_mientras ()

loopf:
rjmp loopf
Dividir 25/7 equivale averiguar cuantas veces se puede restar el 7 al 25. Esto es, 25-
7=18 y asi se van hasta que ya no se pueda restar el número 7.
Se divide 35/7, sabiendo que 7*5=35 por lo tanto tienen que salir 5 restas más.
35-7=28
28-7=21
21-7=14
14-7=7
7-7=0
Por lo que tenemos 5 restas y un residuo de 0
iteración Contador<factor2 contador producto

1ra V 1 35

2da V 2 28

3ra V 3 21

4ta V 4 17

5ta V 5 7

6ta F 5 0

Raíz cuadrada aproximada restando impares sucesivos


Se puede obtener la raíz cuadrada aproximada de un entero de la siguiente manera:
Supongamos que queremos obtener la raíz cuadrada aproximada de 99. Empezamos
restando el primer impar positivo, que es 1:

99 - 1 = 98, como 98 todavía es mayor a cero, restamos el siguiente impar:


98 - 3 = 95, como 95 todavía es mayor a cero, restamos el siguiente impar:
95 - 5 = 90, como 90 todavía es mayor a cero, restamos el siguiente impar:
90 - 7 = 83, como 83 todavía es mayor a cero, restamos el siguiente impar:
83 - 9 = 74, como 74 todavía es mayor a cero, restamos el siguiente impar:
74 - 11 = 63, como 63 todavía es mayor a cero, restamos el siguiente impar:
63 - 13 = 50, como 50 todavía es mayor a cero, restamos el siguiente impar:
50 - 15 = 35, como 35 todavía es mayor a cero, restamos el siguiente impar:
35 - 17 = 18, como 18 todavía es mayor a cero, restamos el siguiente impar:
18 - 19 = -1, como -1 es menor a cero, termine de restar.

Idi r16.0.

Idi r17.99.

Idi r18.0.

Cp r16.r17;mientras(r16>r17)

brsh finsi

add r18.r16

inc r16

finsi:

movr30+r16

iteración Contador<factor2 contador producto

1ra V 1 98

2da V 2 95

3ra V 3 90

4ta V 4 83

5ta V 5 74

6ta V 6 63

7ta V 7 50
8ta V 8 35
9ta V 9 18
10ta F 10 -1

Bibliografía:

Programación estructurada. (s.f.). Recuperado el 28 de febrero de 2017 desde:

http://www.esi2.us.es/~jaar/Datos/FIA/T7.pdf

Programación estructurada y algoritmos. Recuperado el 28 de febrero de 2017 desde:

http://www.uaa.mx/direcciones/dgdv/editorial/docs/algoritmos.pdf

S-ar putea să vă placă și