Академический Документы
Профессиональный Документы
Культура Документы
PROCESO
SALIDA
IMPRIMIR x
Diagrama de Flujo:
INICIO
x=1
¿x<=10?
SI
IMPRIMIR
x
NO
x=x+1
FIN
Código 28:
Public Sub Main()
Dim x As Byte
x=1
While x <= 10
Print x
Inc x
Wend
End
Prueba de escritorio:
Memoria:
x= 0,1,2,3,4,5,6,7,8,9,10,11
Pantalla:
Conclusiones: Fue un ejercicio útil para conocer mejor el funcionamiento de los ciclos
WHILE-WEND
EJERCICIO 29
PROCESO
SALIDA
IMPRIMIR x
Diagrama de Flujo:
INICIO
x=1
IMPRIMIR
x
SI
x=x+1
¿x>10?
NO
FIN
Código 29:
Public Sub Main()
Dim x As Byte
x=1
Repeat
Print x
Inc x
Until x > 10
End
Prueba de escritorio:
Memoria:
x=0,1,2,3,4,5,6,7,8,9,10,11
Pantalla:
Conclusiones: Fue un ejercicio útil para conocer mejor el funcionamiento de los ciclos
REPEAT-UNTIL
EJERCICIO 30
PROCESO
SALIDA
IMPRIMIR x X y = xy
Diagrama de Flujo:
INICIO
x=1
¿x<11?
SI
y=1
¿y<11?
SI
IMPRIMIR
x X y= xy
NO
NO
y=y+1
x=x+1
FIN
Código 30:
Public Sub Main()
Dim x As Byte
Dim y As Byte
x=1
While x < 11
y=1
While y < 11
Print x; "x"; y; "="; x * y
Inc y
Wend
Inc x
Wend
End
Prueba de escritorio:
Memoria:
x=0,1,2,3,4,5,6,7,8,9,10,11
y=0,1,2,…,9,10,11,1,2,…,9,10,11,1,2,…,9,10,11,1,2,…,9,10,11,1,2,…,9,10,11,1,2,…,9,10,11,1,
2,…,9,10,11,1,2,…,9,10,11,1,2,…,9,10,11,1,2,…,9,10,11
Pantalla:
Conclusiones: Este ejercicio aumentó el nivel de complejidad al tener que anidar un ciclo
dentro de otro. Se aprendió más sobre el funcionamiento de los ciclos WHILE-WEND.
EJERCICIO 31
PROCESO
DETERMINAR SI x > 11
DETERMINAR SI y > 11
SALIDA
IMPRIMIR x X y = xy
Diagrama de Flujo:
INICIO
x=1
y=1
IMPRIMIR
xXy=y
NO
NO y=y +1
¿y>10?
SI
x=x +1
¿x>10?
SI
FIN
Código 31:
Public Sub Main()
Dim x As Byte
Dim y As Byte
x=1
Repeat
y=1
Repeat
Print x; "x"; y; "="; x * y
Inc y
Until y > 10
Inc x
Until x > 10
End
Prueba de escritorio:
Memoria:
x=0,1,2,3,4,5,6,7,8,9,10,11
y=0,1,2,…,9,10,11,1,2,…,9,10,11,1,2,…,9,10,11,1,2,…,9,10,11,1,2,…,9,10,11,1,2,…,9,10,11,1,
2,…,9,10,11,1,2,…,9,10,11,1,2,…,9,10,11,1,2,…,9,10,11
Pantalla:
Conclusiones: Este ejercicio aumentó el nivel de complejidad al tener que anidar un ciclo
dentro de otro. Se aprendió más sobre el funcionamiento de los ciclos REPEAT-UNTIL.
EJERCICIO 32
1. El programa debe indicar si el número ingresado por el usuario es mayor o menor que el
número por adivinar.
2. Al final de cada juego se debe decir al usuario si gana o pierde y luego preguntar si desea
jugar otra vez.
3. Se debe mostrar la cantidad de juegos ganados y perdidos cada vez que termina un juego.
Pseudocódigo:
ENTRADA
PEDIR n
PEDIR y
PROCESO
DETERMINAR SI n<x ó n>x ó n=x
SALIDA
IMPRIMIR más grande ó más chico ó ADIVINASTE
IMPRIMIR Bien jugado
Juegos ganados: ganados
Juegos perdidos: perdidos
Diagrama de Flujo:
INICIO
juegos=1
x=num.entero
aleatorio.de 1-1000
y=1
PEDIR n
¿n<x? NO
SI
¿n>x?
SI NO
IMPRIMIR
Mas grande
NO
IMPRIMIR IMPRIMIR
Mas chico ADIVINASTE
ganados=ganados+1
y=11
y=y+1
¿y>10?
SI
PEDIR y
B A
B A
¿y=1? NO
SI
juegos=juegos+1 j=NO
NO
j=SI
¿j=NO?
SI
FIN
Código 32:
Dim x As Integer
Dim y As Byte
Dim n As Integer
Dim j As Boolean
juegos = 1
'Volver a jugar?
Repeat
x = Int(Rnd(1, 1000.9999))
y=1
Repeat
Input n
If n < x Then
Else
Print "ADIVINASTE"
Inc ganados
y = 11
Endif
Inc y
Until y > 10
Input y
If y = 1 Then
Inc juegos
j = True
Else
j = False
Endif
Until j = False
Print "Bien jugado"
End
Prueba de escritorio:
Memoria:
x=0,957,646
y=0,1,2,3,4,5,6,7,8,11,12,1,2,3,4,5,6,7,8,9,10,11,12
n=0,500,750,875,950,975,960,955,957,500,750,635,700,675,650,640,645,647,646
j= FALSE, TRUE, FALSE
ganados=0,1,2
juegos=0,1,2
Pantalla:
Conclusiones: Este programa necesitaba de una anidación de ciclos más compleja, esto
llevó a que el mayor aprendizaje fuera la anidación de ciclos REPEAT-UNTIL, y crear un
juego entretenido con código.
EJERCICIO 33
Objetivo: Aprender más sobre los ciclos y su funcionamiento usando varias variables
dentro del mismo.
Descripción del problema: Realicé un programa que calculé e imprima los primeros n
términos de la serie de Fibonacci.
Pseudocódigo:
ENTRADA
PEDIR n
PROCESO
DECLARAR a = a + 1
DECLARAR a=b
DECLARAR b=x
DECLARAR b= x+a
SALIDA
IMPRIMIR x-
Diagrama de Flujo
INICIO
PEDIR n
b=1
¿x<=n?
SI
IMPRIMIR
x-
a=b
NO
b=x
x= a+b
IMPRIMIR
FIN
Código 33:
Dim n As Integer
Dim x As Integer
Dim a As Integer
Dim b As Integer
a=1
Input n
b=1
While x <= n
Print x; "-";
a=b
b=x
x=a+b
Wend
End
Prueba de escritorio:
Memoria:
n=0,18
x=0, 1,1,2,3,5,8,13
a=0,1,2,0,1,1,2,3,5,8
b=0,1,0,1,1,2,3,5,8,13
Pantalla:
Conclusiones: Este código fue difícil de visualizar la solución al inicio por la cantidad de
variables y el uso de acumuladores dentro del ciclo.
EJERCICIO 34
PEDIR m, g
x=1
¿x<=g?
SI
PEDIR h
m=m/h
NO
x=x+1
IMPRIMIR
Te tocan m
metros
FIN
Código 34:
Public Sub Main()
Dim m As Single
Dim g As Byte
Dim x As Byte
Dim h As Byte
Prueba de escritorio:
Memoria:
m=0.0, 10000.0,5000.0,2500.0,500
g=0,3
x=0,1,2,3,4
h=0,2,2,5
Pantalla:
EJERCICIO 35
INICIO
PEDIR
n
x=1
y=1
¿residuo de y/
2=0?
SI NO
p= p-(4/x) p= p+(4/x)
NO
x= x+2
y=y+1
¿y>n?
SI
PRINT
pi
FIN
Código 35:
Public Sub Main()
Dim x As Long
Dim y As Long
Dim n As Long
Dim p As Float
Input n
x=1
y=1
Repeat
If y Mod 2 = 0 Then
p = p - (4 / x)
Else
p = p + (4 / x)
Endif
x=x+2
Inc y
Until y > n
End
Prueba de escritorio:
Memoria:
x=0,1,3,5,8,…,200000,200002
y=0,1,2,3,4,…,100000,100001
n=0,100000
p=0.0,4.0,2.666,3.46,2.9666,…,4.1415
Pantalla:
Conclusiones: Se obtuvo una aproximación muy exacta del valor de pi, es el resultado de
utilizar una fórmula matemática en dentro de un ciclo.
EJERCICIO 36
Descripción del problema: Realizar un programa que imprima tantos renglones como
indique el usuario (valor de n). Imprimir las unidades únicamente.
Ej.: Si n= 5:
1 1
22 22
333 333
4444 4444
5555555555
4444 4444
333 333
22 22
1 1
Pseudocódigo:
ENTRADA
PEDIR n
PROCESO
DETERMINAR SI x<=n
DETERMINAR SI y <=x
DETERMINA SI y< 2n+1-2x
DETERMINAR SI y<=x
DETERMINAR SI y<= n-x
DETERMINAR SI y<=2x
DETERMINAR SI y< n-x
DETERMINAR SI x>=n
SALIDA
IMPRIMIR la unidad de x
IMPRIMIR Espacio
IMPRIMIR la unidad de x
IMPRIMIR la unidad de n-x
IMPRIMIR Espacio
IMPRIMIR la unidad de n-x
Diagrama de Flujo:
INICIO
PEDIR n
x=1
¿x<=n?
SI
y=1
¿y<=x?
SI
IMPRIMIR
unidades de
x
NO
NO
y=y+1
y=1
¿y<(2n+1)-(2x)?
SI
IMPRIMIR
espacio
NO
y=y+1
y=1
D C E
D C E
¿y<=x?
SI
IMPRIMIR
unidades de
x
NO
y=y+1
IMPRIMIR
intro
x=x+1
x=1
y=1
¿y<=n-x?
SI
IMPRIMIR
unidades de
n-x
NO
y=y+1
y=1
G F
G F
¿y<=2x?
SI
IMPRIMIR
espacio
NO
y=y+1
y=1
¿y<=n-x?
SI
IMPRIMIR
unidades de
n-x
NO NO
y=y+1
IMPRIMIR
intro
x=x+1
¿x>=n?
SI
FIN
Código 36:
Public Sub Main()
Dim n As Integer
Dim x As Integer
Dim y As Integer
'PARTE SUPERIOR
x=1
While x <= n
y=1
While y <= x
Print x Mod 10;
Inc y
Wend
'espacios
y=1
While y < (2 * n + 1) - (2 * x)
Print " ";
Inc y
Wend
'2 da piramide
y=1
While y <= x
Print x Mod 10;
Inc y
Wend
Print
Inc x
Wend
'PARTE INFERIOR
x=1
Repeat
y=1
While y <= n - x
Print (n - x) Mod 10;
Inc y
Wend
'espacios
y=1
While y <= 2 * x
Print " ";
Inc y
Wend
'2da piramide
y=1
While y <= n - x
Print (n - x) Mod 10;
Inc y
Wend
Print
Inc x
Until x >= n
End
Prueba de escritorio:
Memoria:
n=0,7
x=0,1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,1,2,3,4,5,6,7
y=0,1,2,1,2,3,1,2,3,4,1,2,3,4,5,1,2,3,4,5,6,1,2,3,4,5,6,7,1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,9,10,1
1,12,13,…,1,2,3,1,2,1,2,3,1,2,3,4,1,2,3,4,5,1,2,3,4,5,6,1,2,3,4,5,6,7,1,2,3,4,5,6,7,8,…,1,2,3,4
,5,6,1,2,3,4,5,1,2,3,4,1,2,3,1,2,1
Pantalla:
Conclusiones: Fue un ejercicio de mayor complejidad a los anteriores, el mayor reto fue la
integración de los dos ciclos dentro del mismo programa.
EJERCICIO 37
Diagrama de Flujo:
INICIO
PEDIR x,n
z=1
potencia=x
¿z<n?
SI
y=1
suma=potencia
¿x<y?
SI
potencia=potencia+
suma
NO
y=y+1 NO
z=z+1
IMPRIMIR x
a la n
=potencia
FIN
Código 37:
Public Sub Main()
Dim n As Integer
Dim x As Integer
Dim y As Integer
Dim z As Integer
Dim j As Integer
Dim suma As Integer
Dim potencia As Integer
z=1
potencia = X
While z < n
y=1
suma = potencia
While y < x
potencia = potencia + suma
Inc y
Wend
Inc z
Wend
Print x; "velevado a la "; n; "="; potencia
End
Prueba de escritorio:
Memoria:
n=
x=
y=
z=
j=
suma=
potencia=
Pantalla:
Conclusiones: Lo más difícil de realizar el programa era el “pensar” como la computadora
que realiza las operaciones con sumas. Ya logrado eso el programa no era extenso.
Bibliografía:
Algoritmos y Programación
Práctica 4