Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Algoritmos Ex1 2015 2
Algoritmos Ex1 2015 2
Secciones : IN41, IN42, IN43, IN44, IN45, IN46, IV42, IV43, IV44,
IV45, IX41, IX42, IX43, IX44, IX45, IX46, IX47, IX48
Profesores : Aranda Ipince, Duilio Ángel
Cárdenas Rengifo, Luís Enrique
Castillo Villalobos, Violeta Isabel
De La Cerna García, Nelva Bethy
Guevara Parker, Hans Christian
Morán Huanay, Eduardo Martín
Moya Tapia Mauricio Alonso
Namay Zevallos, Wilder Adán
Power Porto, George Félix
Segura Peña, Jaime Ildefonso
Vásquez Oré, Marco Antonio
Duración : 150 minutos
Indicaciones:
1
PREGUNTA 1 (3 p.)
1.2 Se quiere declarar una variable para el 1.5 Para manejar la hora de ingreso de un tra-
número de DNI de una persona, ¿qué tipo de bajador, la variable debe ser declarada como:
variable es más adecuado? a) Time
a) Integer b) Date
b) Single c) String
c) Long d) Cualquiera de ellas
d) Double e) Ninguna de anteriores
e) String
1.6 La instrucción MessageBox en Visual
1.3 ¿Cómo debe ser el tipo de variable del Basic sirve para:
contador de la estructura de control repetitiva I. Entrada de información
(For-Next)? II. Salida de información
I. Entero III. Mostrar botones
II. Real Son verdaderas:
III. Cadena de texto a) Solo I
Son verdaderas: b) Solo II
a) Solo I c) I y II
b) Solo II d) Todas
c) I y II e) Ninguna
d) Todas
e) Ninguna
Observaciones:
1.1) La instrucción selectiva doble (If-Then-Else) solo tiene una condición (que puede ser verdadera o falsa); se
entiende como condición a un valor tipo Boolean que puede resultar de una o más operaciones lógicas
1.2) También podría usarse el tipo Long (DNI es un número entero de 8 cifras) pero debe considerarse el formato
adecuado cuando empieza con cero y que no se realizarán operaciones con ese número; el tipo de variable más
adecuado es String*8, debiendo verificarse que el valor ingresado sea numérico
1.5) El tipo de variable Date almacena fecha y hora en un solo número, Time no existe
1.6) La instrucción MessageBox no existe, el nombre correcto es MsgBox.
2
PREGUNTA 2 (2 p.)
2.1 Analice el siguiente segmento de programa e indique qué valores se mostrarán para las
variables T, M y A luego de ejecutar el programa. (0.5 p.)
PREGUNTA 3 (2 p.)
3
Calificación: Ingreso y validación de datos (0.5 p.); Procesamiento y salida (1.5 p.)
Inicio
Repetir
Mostrar “Ingrese el monto de la venta”
Ingresar Venta
Si Venta <= 0 Entonces Mostrar “El valor de la venta debe ser positivo”
Hasta Venta > 0
Si Venta < 2000 Entonces
pDesc 0.03
De otro modo Si Venta <= 5000 Then
pDesc 0.05
De otro modo Si Venta < 8000 Entonces
pDesc 0.07
De otro modo
pDesc 0.095
Fin de Si
Descuento Venta * pDesc
Mostrar “El descuento a aplicar es: ” & Descuento
Fin
PREGUNTA 4 (3 p.)
El siguiente programa en VBA calcula el volumen de una pirámide, dados los lados de la base
(a y b) y la altura (h). Coloque en la columna de la izquierda un número indicando el orden en
que deben ir las instrucciones. (0.2 p. c/u)
No. Instrucción
0 Private Sub Piramide( )
4/5/6 a = Val(InputBox("Ingrese un lado de la base"))
2/3 Do
11 V=a*b*h/3
13 Respuesta = MsgBox("¿Desea realizar otro cálculo?", vbYesNo)
5/4/6 h = Val(InputBox("Ingrese la altura de la pirámide"))
12 MsgBox "El volumen de la pirámide es " & V
6/4/5 b = Val(InputBox("Ingrese el otro lado de la base"))
8 MsgBox "Los datos deben ser positivos"
7 If a <= 0 Or b <= 0 Or h <= 0 Then
10 Loop Until a>0 And b>0 And h>0
15 End Sub
9 End If
14 Loop Until Respuesta= vbNo
3/2 Do
1 Dim a As Single, b As Single, h As Single, V As Single, Respuesta As Integer
4
PREGUNTA 5 (4 p.)
Se pide desarrollar el diagrama de flujo del algoritmo para calcular la raíz n-ésima de un nú-
mero real positivo A por iteraciones sucesivas, según la fórmula siguiente:
1 𝐴
𝑥𝑘+1 = ( + (𝑛 − 1)𝑥𝑘 )
𝑛 𝑥𝑘𝑛−1
Donde los subíndices (k y k +1) denotan las iteraciones sucesivas de 𝑥, siendo 𝑥0 el valor inicial
de estimación. Las iteraciones continúan hasta que el valor absoluto de la diferencia entre los
resultados sucesivos |𝑥𝑘+1 − 𝑥𝑘 | sea menor que 110–6.
Debe validar que los valores ingresados sean positivos y que además x0 sea menor que A.
INICIO
A, n, x0
A>0n>0
x0 > 0 x0 < n
No
Sí
No Abs(x1-x0) <
x0 x1
0.000001
Sí
FIN
5
PREGUNTA 6 (6 p.)
Ud. ha sido contratado recientemente como asistente del Gerente de Ventas de un hotel, y el
primer trabajo que se le encarga es desarrollar un programa en Visual Basic que permita atender
diariamente a los clientes que llegan al hotel según el siguiente esquema:
a) Se ingresan como datos la cantidad de habitaciones disponibles de tipo Simple y Doble
para ese día. La atención finaliza cuando no queden clientes por atender o no hay habi-
taciones disponibles. (1 p.)
b) Cuando el cliente llega se le solicita los siguientes datos: Tipo de habitación (S o D),
y si es cliente Particular o viene de una Empresa (E o P) y el número de noches que se
quedará. (1 p.)
c) Si hubieran habitaciones disponibles del tipo solicitado por el cliente, se le indica el
monto total a pagar. Los precios se muestran en la tabla debajo. (2 p.)
Precios de habitaciones
Tipo de Precio por noche, US$
habitación E – Empresa P – Particular
S – Simple 65.00 75.00
D – Doble 80.00 100.00
Finalizada la atención de los clientes del día, muestre las siguientes estadísticas:
d) Monto Total cobrado por el alquiler de las habitaciones. (1 p.)
e) ¿Qué porcentaje de habitaciones de tipo Doble están ocupadas? (1 p.)
Option Explicit
Private Sub CommandButton1_Click()
Dim QSimples As Integer, QDobles As Integer, Tipo As String * 1, Cliente As String * 1, Noches As
Integer, Rpta As Integer
Dim TotalDobles As Integer, TSimples As Integer, TDobles As Integer, Asignado As String * 1
Dim C As Integer, Precio As Single, Total As Single, S As Single
Do 'Ingreso repetitivo de datos hasta que se conteste NO o se hayan agotado todas las habitaciones
Do
Tipo = UCase(InputBox("Ingrese el tipo de habitación: Simple o Doble"))
Loop Until Tipo = "S" Or Tipo = "D"
6
Do
Cliente = UCase(InputBox("Ingrese el tipo de cliente: Empresa o Particular"))
Loop Until Cliente = "E" Or Cliente = "P"
Do
Noches = Val(InputBox("Ingrese el número de noches que se quedará:"))
Loop Until Noches > 0