Anda di halaman 1dari 33

Ejercicios del Primer

Parcial En VB2008
Por Manuel Fernndez y Lisbeth Pacheco
Ejercicios resueltos en el primer parcial traducidos al Visual
Basic 2008, se incluyen anlisis y algoritmos en Algor. El
proceso de toma de datos es a travs de proceso interactivo.

Perodo 2-2009

Ejercicios del Primer Parcial En VB2008


Perodo
2-2009

Contenido
Ejercicio 1 ...................................................................................................................................................... 3
Anlisis del Problema .................................................................................................................. 3
Tabla de Variables ....................................................................................................................... 3
Algoritmo..................................................................................................................................... 4
Cdigo en Visual Basic 2008 ........................................................................................................ 5
Ejercicio 2 ...................................................................................................................................................... 7
Anlisis del Problema .................................................................................................................. 7
Tabla de Variables ....................................................................................................................... 7
Algoritmo..................................................................................................................................... 8
Cdigo en Visual Basic 2008 ........................................................................................................ 9
Ejercicio 3 ....................................................................................................................................................10
Anlisis del Problema ................................................................................................................ 10
Tabla de Variables ..................................................................................................................... 10
Algoritmo................................................................................................................................... 11
Cdigo en Visual Basic 2008 ...................................................................................................... 11
Ejercicio 4 ....................................................................................................................................................12
Anlisis del Problema ................................................................................................................ 13
Tabla de Variables ..................................................................................................................... 13
Algoritmo................................................................................................................................... 14
Cdigo en Visual Basic 2008 ...................................................................................................... 15
Ejercicio 5 ....................................................................................................................................................16
Anlisis del Problema ................................................................................................................ 16
Tabla de Variables ..................................................................................................................... 17
Algoritmo................................................................................................................................... 17
Cdigo en Visual Basic 2008 ...................................................................................................... 19
Ejercicio 6 ....................................................................................................................................................20
Anlisis del Problema ................................................................................................................ 21
Tabla de Variables ..................................................................................................................... 21

Ejercicios del Primer Parcial En VB2008


Perodo
2-2009

Algoritmo................................................................................................................................... 22
Cdigo en Visual Basic 2008 ...................................................................................................... 23
Ejercicio 7 ....................................................................................................................................................25
Anlisis del Problema ................................................................................................................ 26
Tabla de Variables ..................................................................................................................... 26
Algoritmo................................................................................................................................... 27
Cdigo en Visual Basic 2008 ...................................................................................................... 28
Ejercicio 8 ....................................................................................................................................................30
Algoritmo................................................................................................................................... 30
Cdigo en Visual Basic 2008 ...................................................................................................... 31

Ejercicios del Primer Parcial En VB2008


Perodo
2-2009

Ejercicio 1
En un experimento se obtuvieron un conjunto de pares de valores (S, V) y se requiere que
desarrolle un programa que determine e imprima:

1)
2)
3)
4)

Cuantos pares (S, V) tienen el mismo valor de S que el primer par (S, V) de la lista.
Primer valor de S mayor que V
En cuantos pares (S, V) se cumple que S es el doble de V
Productoria de los valores se S no nulos, donde V es nulo.

Anlisis del Problema


Qu informacin est
presente?
1. Conjunto de pares (S, V)
2. Centinela

Qu resultados exige?

Cmo lo logro?

1. Cuantos pares (S, V) tienen el


mismo valor de S del primer par
2. Primer valor de S, donde S > V
3. Cuantas veces se cumple que
S=2*V
4. Productoria de los valores de S
no nulos, donde V=0

1. Se inician los contadores en


cero, la productoria en uno y la
bandera en cero antes del ciclo
2. Dentro del ciclo, despus de
leer, se captura con PS el primer
valor de S ledo y con el resto de
los pares se cuenta con C1
cuantas veces S=PS
3. Luego, si se verifica que S > V, se
captura con PSV el primer valor
de S>V
4. Luego, si se verifica que S = 2*V
se cuenta este hecho con C2
5. Luego, si se verifica que V = 0 y S
no es nulo, se acumula por
producto en P el valor de S
6. Despus del ciclo, se imprimen
los contadores y la productoria y
si hubo algn S>V se imprime PSV

Tabla de Variables
Descripcin del dato

Nombre de la Variable

Valor de S
Valor de V
Centinela
Bandera para capturar el primer
valor de S
Primer Valor de S
Cantidad de veces que se
repite el primer valor de S en el
resto de los pares
Bandera para capturar el primer
valor de S cuyo V > 0
Primer valor de S donde su V >0
Cantidad de veces que S=2*V
Productoria de los valores de S
no nulos, donde V sea nulo

S
V
Cent
Capturado1

Tipo de Dato
O Entero Real
O Entero Real
O Entero O Real
Entero O Real

PS
C1 | S=PS

O Entero Real O Lgico O Cadena


Entero O Real O Lgico O Cadena

Capturado2

Entero O Real O Lgico O Cadena

PSV
C2 | S=2*V
P <- P * S | (S <> 0) and (V=0)

O Entero Real O Lgico O Cadena


Entero O Real O Lgico O Cadena
O Entero Real O Lgico O Cadena

O Lgico
O Lgico
O Lgico
O Lgico

O Cadena
O Cadena
Cadena
O Cadena

Ejercicios del Primer Parcial En VB2008


Perodo
2-2009

Algoritmo
Algoritmo uno
Variables
; Entrada - Proceso

S, V : Real ; un par de valores de la lista


Cent : Cadena ; Centinela
; Proceso - Auxiliar

Capturado1 : entero ; Bandera Captura Primer Valor de S


Capturado2 : entero ; Bandera Captura del primer S | S > V
PS : Real ; Primer valor de S de la lista
; Proceso - Salida

C1 : Entero ; Cantidad de pares donde se repite PS en S


C2 : Entero ; Cantidad de veces donde S=2*V
P : Real ; Productoria de S, (S<>0) AND (V=0)
; Salida

PSV : Real ; Primer valor de S | S > V


Inicio
; iniciar contadores, productoria y banderas

Capturado1 <- 0
Capturado2 <- 0
C1 <- 0
C2 <- 0
P <- 1
Repetir
Imprimir "Valor de S:"
Leer S
Imprimir "Valor de V:"
Leer V
Si Capturado1 = 0 entonces
PS <- S
Capturado1 <- 1
Sino
Si S=PS entonces
C1 <- C1 + 1
Finsi
FinSi
Si S > V entonces
Si Capturado2 = 0 entonces
PSV<-S
Capturado2 <- 1
Finsi
Finsi
Si S=2*V entonces
C2 <- C2 + 1
FinSi
Si (S <> 0) AND (V = 0) entonces
P <- P * S
FinSi
Imprimir "Ultimo Par (S/N)?:"
Leer Cent
Hasta (Cent = "S") OR (Cent = "s")
Imprimir "Cantidad de veces que se repite el primer valor de S:",C1
Si Capturado2=0 entonces

Ejercicios del Primer Parcial En VB2008


Perodo
2-2009
Imprimirln "En ningun par, S fue mayor que V"
Sino
Imprimirln "Primer valor de S, donde S fue mayor que V:",PSV
FinSi
Imprimirln "Cantidad de veces que S duplica a V:", C2
Imprimirln "Productoria de S donde V fue nulo:",P
Fin

Cdigo en Visual Basic 2008


Module Module1
Sub Main()
'Declaracin de variables
' Entrada(-Proceso)
Dim S, V As Single ' un par de valores de la lista
Dim Cent As String ' Centinela
' Proceso - Auxiliar
Dim Capturado1 As Integer 'Bandera Captura Primer Valor de S
Dim Capturado2 As Integer ' Bandera Captura del primer S | S > V
Dim PS As Single 'Primer valor de S de la lista
' Proceso - Salida
Dim C1 As Integer ' Cantidad de pares donde se repite PS en S
Dim C2 As Integer' Cantidad de veces donde S=2*V
Dim P As Single ' Productoria de S, (S<>0) AND (V=0)
' Salida
Dim PSV As Single' Primer valor de S | S > V
' iniciar contadores, productoria y banderas
Capturado1 = 0
Capturado2 = 0
C1 = 0
C2 = 0
P = 1
Do
Console.Write("Valor de S:")
S = Console.ReadLine
Console.WriteLine("Valor de V:")
V = Console.ReadLine
If Capturado1 = 0 Then
PS = S
Capturado1 = 1
Else
If S = PS Then
C1 = C1 + 1
End If
End If

Ejercicios del Primer Parcial En VB2008


Perodo
2-2009
If S > V Then
If Capturado2 = 0 Then
PSV = S
Capturado2 = 1
End If
End If
If S = 2 * V Then
C2 = C2 + 1
End If
If (S <> 0) And (V = 0) Then
P = P * S
End If
Console.Write("Ultimo Par (S/N)?:")
Cent = Console.ReadLine
Loop Until (Cent = "S") Or (Cent = "s")

Console.WriteLine("Cantidad de veces que se repite el primer valor de


S:" & C1)
If Capturado2 = 0 Then
Console.WriteLine("En ningun par, S fue mayor que V")
Else
Console.WriteLine("Primer valor de S, donde S fue mayor que V:" &
PSV)
End If
Console.WriteLine("Cantidad de veces que S duplica a V:" & C2)
Console.WriteLine("Productoria de S donde V fue nulo:" & P)
'para que la ventana de ejecucin no se cierre
Console.ReadKey()
End Sub
End Module

Ejercicios del Primer Parcial En VB2008


Perodo
2-2009

Ejercicio 2
Dadas las cdulas y notas de una evaluacin complementaria correspondientes a una seccin
de Computacin I, organizadas segn fueron recibidas en la aplicacin de la evaluacin,
desarrolle un programa Pascal que determine e imprima:

1) Cdula de la primera persona en la lista que aprob la evaluacin


2) Cuantas personas obtuvieron la misma nota que el primero de la lista que aprob.
3) Porcentaje de reprobados.

Anlisis del Problema


Qu informacin est
presente?
1. Cdula del estudiante
2. Nota del Estudiante
3. Centinela

Qu resultados exige?

Cmo lo logro?

1. Cdula del primer estudiante de


la lista que aprob la evaluacin
2. Cantidad de estudiantes con la
misma
nota
del
primer
aprobado
3. Porcentaje de reprobados

1. Se inician los contadores en


cero, la bandera en cero antes
del ciclo
2. Dentro del ciclo, despus de
leer, se captura con PC y PN la
cedula y nota de la primera
nota >=10; si ya fue capturado,
se cuenta con C1 las veces que
se repite
3. Luego, si se verifica que la Nota
< 10, se cuenta el hecho con C2,
y se cuenta el hecho que se
verific la condicin con C3
4. Despus del ciclo, si alguien
aprob, se imprime PC y la
cantidad de veces que se
repite; Luego se calcula el
porcentaje y se imprime

Tabla de Variables
Descripcin del dato

Nombre de la Variable

Cdula del Estudiante


Nota del Estudiante
Centinela
Bandera para capturar cdula y
nota de la primera nota >=10
Primera Cdula cuya Nota >=10
Primera Nota >=10
Cantidad de veces que se repite la
primera nota >=10 en el resto de la
lista
Porcentaje de reprobados
Cantidad de veces que Nota <10
Cantidad total de notas

CI
Nota
Cent
Capturado

Tipo de Dato
O Entero Real
O Entero Real
O Entero O Real
Entero O Real

PC
PN
C1 | Nota=PN

Entero O Real O Lgico O Cadena


O Entero Real O Lgico O Cadena
Entero O Real O Lgico O Cadena

Por <- C2/C3*100


C2 | Nota < 10
C3 | Para toda nota

O Entero Real O Lgico O Cadena


Entero O Real O Lgico O Cadena
Entero O Real O Lgico O Cadena

O Lgico
O Lgico
O Lgico
O Lgico

O Cadena
O Cadena
Cadena
O Cadena

Ejercicios del Primer Parcial En VB2008


Perodo
2-2009

Algoritmo
Algoritmo dos
Variables
; Entrada - Proceso
CI : Entero ; Cedula del Estudiante
Nota : Entero ; Nota del Estudiane
Cent : Cadena ; Centinela
; Proceso - Auxiliar
Capturado : entero ; Bandera Captura Cedula y Nota | Nota >=10
C2 : Entero ; Cantidad de Notas < 10
C3 : Entero ; Cantidad Total de Notas
; Proceso - Salida
PC : Entero ; Cedula de la primera Nota >=10
PN : Entero ; Primer Nota >=10
C1 : Entero ; Cantidad de veces que se repite PN en Nota
; Salida
Por : Real ; Porcentaje de reprobados
Inicio
; iniciar contadores y bandera
Capturado <- 0
C1 <- 0
C2 <- 0
C3 <- 0
Repetir
Imprimir "Cedula del estudiante:"
Leer CI
Imprimir "Nota del estudiante:"
Leer Nota
Si Nota >=10 entonces
Si Capturado = 0 entonces
PC <- CI
PN <- Nota
Capturado <- 1
Sino
Si Nota = PN entonces
C1 <- C1 + 1
FinSi
FinSi
Sino ; esta reprobado
C2 <- C2 + 1
FinSi
C3 <- C3 + 1
Imprimir "Ultimo Estudiante (S/N)?:"
Leer Cent
Hasta (Cent = "S") OR (Cent = "s")
Si Capturado = 0 entonces
Imprimirln "No hubo estudiantes aprobados en la lista"
Sino
Imprimirln "Primera Nota aprobatoria de la lista:", PN
Imprimirln "Fue obtenida por:", PC
Imprimirln "y se repitio en la lista:",C1
FinSi
Por <- C2/C3*100
Imprimirln "Porcentaje de Reprobados:",Por
Fin

Ejercicios del Primer Parcial En VB2008


Perodo
2-2009

Cdigo en Visual Basic 2008


Module Module1
Sub Main()
'Declaracin de Variables
' Entrada - Proceso
Dim CI As Integer ' Cedula del Estudiante
Dim Nota As Integer ' Nota del Estudiane
Dim Cent As String 'Centinela
' Proceso - Auxiliar
Dim Capturado As Integer 'Bandera Captura Cedula y Nota | Nota >=10
Dim C2 As Integer ' Cantidad de Notas < 10
Dim C3 As Integer ' Cantidad Total de Notas
' Proceso
Dim PC As
Dim PN As
Dim C1 As

- Salida
Integer ' Cedula de la primera Nota >=10
Integer ' Primer Nota >=10
Integer ' Cantidad de veces que se repite PN en Nota

' Salida
Dim Por As Single

' Porcentaje de reprobados

' iniciar contadores y bandera


Capturado = 0
C1 = 0
C2 = 0
C3 = 0
Do
Console.Write("Cedula del estudiante:")
CI = Console.ReadLine
Console.Write("Nota del estudiante:")
Nota = Console.ReadLine
If Nota >= 10 Then
If Capturado = 0 Then
PC = CI
PN = Nota
Capturado = 1
Else
If Nota = PN Then
C1 = C1 + 1
End If
End If
Else
' esta reprobado
C2 = C2 + 1
End If
C3 = C3 + 1
Console.Write("Ultimo Estudiante (S/N)?:")
Cent = Console.ReadLine
Loop Until (Cent = "S") Or (Cent = "s")

Ejercicios del Primer Parcial En VB2008


Perodo
2-2009
If Capturado = 0 Then
Console.WriteLine("No hubo estudiantes aprobados en la lista")
Else
Console.WriteLine("Primera Nota aprobatoria de la lista:" & PN)
Console.WriteLine("Fue obtenida por:" & PC)
Console.WriteLine("y se repitio en la lista:" & C1)
End If
Por = C2 / C3 * 100
Console.WriteLine("Porcentaje de Reprobados:" & Por)
'para que la ventana de ejecucin no se cierre
Console.ReadKey()
End Sub
End Module

Ejercicio 3
Dada un conjunto de Q valores de A, positivos, negativos o nulos. Desarrolle un programa que
determine e imprima:

1)
2)
3)

La sumatoria de los valores negativos o nulos de A


La productoria de los valores positivos no nulos
Porcentaje de valores de A nulos.

Anlisis del Problema


Qu informacin est
presente?

Qu resultados exige?

Cmo lo logro?

1. Cantidad de valores de A
(Q)
2. Valores de A

1. Sumatoria A | A <=0
2. Productoria A | A > 0
3. Porcentaje A=0

1. Se inician el contador y la
sumatoria en cero, y la
productoria en uno antes del
ciclo
2. Dentro del ciclo, despus de leer
A, si se verifica que A <= 0 se
suma A en S1; si adems de
verifica que A=0, se cuenta este
hecho en C2; si no se verifica, es
decir que A>0, se acumula por
producto en P

Descripcin del dato


Cantidad de Valores de A
Valor de A
Sumatoria de A <=0
Contador de A = 0
Productoria de A > 0
Porcentaje de A=0

Nombre de la Variable
Q
A
S1
C2
P
Por <- C2/Q*100

Tipo de Dato
Entero O Real
O Entero Real
O Entero Real
Entero O Real
Entero O Real
O Entero Real

Tabla de Variables
O Lgico
O Lgico
O Lgico
O Lgico
O Lgico
O Lgico

O Cadena
O Cadena
O Cadena
O Cadena
O Cadena
O Cadena

10

Ejercicios del Primer Parcial En VB2008


Perodo
2-2009

Algoritmo
Algoritmo tres
Variables
; Entrada - Proceso
Q : Entero ; Cantidad de valores de A
A : Real ; Cada valor de A
; Proceso - Auxiliar
I : Entero ; Variable de control
C2 : Entero ; Cantidad de veces que A=0
; Proceso - Salid
S1 : Real ; Sumatoria de A | A <= 0
P : Real ; Productoria de A | A > 0
; Salida
Por : Real ; Porcentaje de A=0
Inicio
; iniciar sumador, contador y productoria
S1 <- 0
C2 <- 0
P <- 1
Imprimir "Cantidad de valores de A:"
Leer Q
Para I <- 1 hasta Q hacer
Imprimir "Valor de A:"
Leer A
Si A <= 0 entonces
S1 <- S1 + A
Si A = 0 entonces
C2 <- C2 + 1
FinSi
Sino ; A es positivo no nulo
P <- P * A
finsi
Finpara
Imprimirln "Sumatoria de valores de A <=0:",S1
Imprimirln "Productoria de valores de A>0:",P
Por <- C2/Q*100
Imprimirln "Porcentaje de valores de A nulos:",Por
Fin

Cdigo en Visual Basic 2008


Module Module1
Sub Main()
'Declaracin de Variables
' Entrada - Proceso
Dim Q As Integer ' Cantidad de valores de A
Dim A As Single ' Cada valor de A
' Proceso - Auxiliar
Dim I As Integer ' Variable de control
Dim C2 As Integer ' Cantidad de veces que A=0
' Proceso - Salid
Dim S1 As Single ' Sumatoria de A | A <= 0
Dim P As Single ' Productoria de A | A > 0
' Salida
Dim Por As Single ' Porcentaje de A=0

11

Ejercicios del Primer Parcial En VB2008


Perodo
2-2009
' iniciar sumador & contador y productoria
S1 = 0
C2 = 0
P = 1
Console.Write("Cantidad de valores de A:")
Q = Console.ReadLine
For I = 1 To Q
Console.Write("Valor de A:")
A = Console.ReadLine
If A <= 0 Then
S1 = S1 + A
If A = 0 Then
C2 = C2 + 1
End If
Else
' A es poiftivo no nulo
P = P * A
End If
Next I
Console.WriteLine("Sumatoria de valores de A <=0:" & S1)
Console.WriteLine("Productoria de valores de A>0:" & P)
Por = C2 / Q * 100
Console.WriteLine("Porcentaje de valores de A nulos:" & Por)
'para que la ventana de ejecucin no se cierre
Console.ReadKey()
End Sub
End Module

Ejercicio 4
Dado un conjunto de pares de valores X1 y X2, donde ambos son valores positivos no nulos,
desarrolle un programa que determine e imprima:

1)

El promedio de X1 y X2

2) La media geomtrica de X1 y X2, sabiendo que la media geomtrica se calcula como


3) Porcentaje de veces que el promedio es menor que la media geomtrica.
4) El primer par de valores de X1 y X2 donde el promedio es igual a la media geomtrica.

X1*X2

12

Ejercicios del Primer Parcial En VB2008


Perodo
2-2009

Anlisis del Problema


Qu informacin est
presente?
1. Valor de X1
2. Valor de X2
3. Centinela

Qu resultados exige?

Cmo lo logro?

1. Promedio de X1 y X2
2. Media Geomtrica de X1 y
X2
3. Porcentaje donde el
promedio es menor que la
media geomtrica
4. Primer Par donde el
promedio es igual a la media
geomtrica

1. Se inician los contadores


antes del ciclo
2. Dentro del ciclo, despus de
leer X1 y X2, se calcula e
imprime el promedio y Media
geomtrica de X1 y X2
3. Luego, si se verifica que le
promedio es menor que la
media geomtrica, se
cuenta este hecho con C1, y
se cuenta el total de pares
con C2.
4. Luego, se captura el primer
par que se verifica que el
promedio es igual a la media
geomtrica.
5. Despus del ciclo, se calcula
e imprime el porcentaje y si
hubo algn par donde el
promedio y la media
geomtrica fueron iguales, se
imprime el primer par
capturado.

Descripcin del dato

Nombre de la Variable

Valor de X1
Valor de X2
Centinela
Promedio de X1 y X2
Media geomtrica de X1 y X2
Bandera para capturar el
primer
par
donde
su
promedio
y
media
geomtrica sean iguales
Primera Valor de X1 donde el
promedio
y
media
geomtrica sean iguales
Primera Valor de X2 donde el
promedio
y
media
geomtrica sean iguales
Cantidad de veces donde el
promedio es menor que la
media geomtrica
Cantidad Total de Pares

X1
X2
Cent
Pro <- (X1+X2)/2
Por <- (X1*X2)^0.5
Capturado

Tipo de Dato
O Entero Real
O Entero Real
O Entero O Real
O Entero Real
O Entero Real
Entero O Real

PX1

O Entero Real O Lgico O Cadena

PX2

O Entero Real O Lgico O Cadena

C1

Entero O Real O Lgico O Cadena

C2

Entero O Real O Lgico O Cadena

Tabla de Variables
O Lgico
O Lgico
O Lgico
O Lgico
O Lgico
O Lgico

O Cadena
O Cadena
Cadena
O Cadena
O Cadena
O Cadena

13

Ejercicios del Primer Parcial En VB2008


Perodo
2-2009

Algoritmo
Algoritmo cuatro
Variables
; Entrada - Proceso
X1, X2 : Real ; Cada par de valores
Cent : Cadena ; Centinela
; Proceso - Auxiliar
C1 : Entero ; Cantidad de veces que Pro < MG
C2 : Entero ; Cantidad total de pares
Capturado : Entero;
; Proceso - Salida
Pro : Real ; Promedio de X1 y X2
MG : Real ; Media Geometrica de X1 y X2
PX1, PX2 : Real ; Primer par donde Pro=MG
; Salida
Por : Real ; Porcentaje que Pro<MG
Inicio
; iniciar
C1 <- 0
C2 <- 0
Capturado <- 0
Repetir
Imprimir "Valor de X1:"
Leer X1
Imprimir "Valor de X2:"
Leer X2
Pro <- (X1+X2)/2
Imprimirln "Promedio:",Pro
MG <- (X1*X2)^0.5
Imprimirln "Media Geometrica:", MG
Si Pro < MG entonces
C1 <- C1 + 1
Sino
Si Pro = MG entonces
Si Capturado = 0 entonces
PX1 <- X1
PX2 <- X2
Capturado <- 1
Finsi
FinSi
Finsi
C2 <- C2 + 1
Imprimir "Ultimo par (S/N)?:"
Leer Cent
Hasta (Cent= "S") OR (Cent = "s")
Por <- C1/C2*100
Imprimirln "Porcentaje donde el promedio < Media Geometrico:",Por
Si Capturado = 0 entonces
Imprimirln "En ningun par el promedio fue igual a la Media Geometrica"
Sino
Imprimirln "X1 del primer Par donde Promedio=Media Geometrica:",PX1
Imprimirln "X2 del primer Par donde Promedio=Media Geometrica:",PX2
Finsi

Fin

14

Ejercicios del Primer Parcial En VB2008


Perodo
2-2009

Cdigo en Visual Basic 2008


Module Module1
Sub Main()
'Declaracin de Variables
' Entrada - Proceso
Dim X1, X2 As ifngle ' Cada par de valores
Dim Cent As String ' Centinela
' Proceso - Auxiliar
Dim C1 As Integer ' Cantidad de veces que Pro < MG
Dim C2 As Integer ' Cantidad total de pares
Dim Capturado As Integer 'bandera
' Proceso - Salida
Dim Pro As ifngle ' Promedio de X1 y X2
Dim MG As ifngle ' Media Geometrica de X1 y X2
Dim PX1, PX2 As ifngle ' Primer par donde Pro=MG
' Salida
Dim Por As Single ' Porcentaje que Pro<MG
' iniciar
C1 = 0
C2 = 0
Capturado = 0
Do
Console.Write("Valor de X1:")
X1 = Console.ReadLine
Console.Write("Valor de X2:")
X2 = Console.ReadLine
Pro = (X1 + X2) / 2
Console.WriteLine("Promedio:" & Pro)
MG = (X1 * X2) ^ 0.5
Console.WriteLine("Media Geometrica:" & MG)
If Pro < MG Then
C1 = C1 + 1
Else
If Pro = MG Then
If Capturado = 0 Then
PX1 = X1
PX2 = X2
Capturado = 1
End If
End If
End If
C2 = C2 + 1
Console.Write("Ultimo par (S/N)?:")
Leer(Cent)
Loop Until (Cent = "S") Or (Cent = "s")
Por = C1 / C2 * 100
Console.writeln("Porcentaje donde el promedio < Media Geometrico:", Por)

If Capturado = 0 Then
Console.WriteLine("En ningun par el promedio fue igual a la Media
Geometrica")
Else
Console.WriteLine("X1 del primer Par donde Promedio=Media
Geometrica:", PX1)

15

Ejercicios del Primer Parcial En VB2008


Perodo
2-2009
Console.WriteLine("X2 del primer Par donde Promedio=Media
Geometrica:", PX2)
End If
'para que la ventana de ejecucin no se cierre
Console.ReadKey()
End Sub
End Module

Ejercicio 5
En el plano cartesiano, la distancia entre dos puntos de coordenadas cartesianas (X1, Y1) y (X2,
(X2-X2)2+(Y2-Y1)2 . Dados un conjunto de L coordenadas cartesianas

Y2) se determina como

de tres puntos, desarrolle un programa que determine e imprima para cada tro de puntos:

1) Porcentaje de veces que los puntos forman un tringulo issceles


2) Entre los tringulos issceles, porcentaje que forman tringulo rectngulo
Pitgoras:

3) Las

H2

C12

C22.

segn el teorema de

Considere todos los casos.

coordenadas cartesianas de los tres puntos de la lista que forman el primer tringulo

equiltero.

Anlisis del Problema


1.

2.
3.

4.

Qu informacin est
presente?
Un conjunto de sextetos
correspondientes, cada
par, a la Abscisa y
Ordenada de un Punto
Centinela
La frmula para
determinar la distancia
entre dos puntos
Las caractersticas de un
tringulo Equiltero e
Issceles

Qu resultados exige?
1. Porcentaje de puntos que
forman tringulo issceles
2. Entre los tringulos issceles,
porcentaje que forman
triangulo rectngulo
3. Coordenadas de los puntos
del primer tringulo
equiltero

Cmo lo logro?
1. Utilizando la frmula dada se
calcula la longitud de cada
lado del tringulo (L1, L2, L3)
2. Si L1=L2
L3 L1=L3
L2
L2=L3
L1  a) Contar el
hecho que es issceles con
C1 y contar el hecho de
verificar el tipo de tringulo
con C2
b) Si forma tringulo
rectngulo, contar este
hecho con C3.
3. Si L1=L2=L3  Capturar las
coordenadas de los tres
primeros puntos.
4. Despus del ciclo, antes de
imprimir los resultados,
chequear que hubo
tringulos issceles y
equilteros

16

Ejercicios del Primer Parcial En VB2008


Perodo
2-2009

Tabla de Variables
Descripcin del dato
Cantidad de sextetos
Abscisa del Primer punto
Ordenada del Primer punto
Abscisa del segundo punto
Ordenada del segundo punto
Abscisa del tercer punto
Ordenada del tercer punto
Variable de Control
Longitud del primer punto al segundo
punto
Longitud del segundo punto al tercer
punto
Longitud del tercer punto al primer punto
Porcentaje de Tringulos Issceles
Cantidad de tringulos Issceles
Cantidad total de tringulos
Porcentaje de Issceles que son tringulo
rectngulo
Cantidad de Issceles que son tringulo
rectngulo
Bandera para capturar los puntos que
forman el primer tringulo equiltero
Coordenadas de los puntos que forman
el primer tringulo equiltero.

Nombre de la Variable
L
X1
Y1
X2
Y2
X3
Y3
I
L1

Tipo de Dato
Entero O Real
O Entero Real
O Entero Real
O Entero Real
O Entero Real
O Entero Real
O Entero Real
Entero O Real
O Entero Real

L2

O Entero Real O Lgico O Cadena

L3
Por1= C1/C2 * 100
C1
C2
Por2 = C3/C1 *100

O Entero
O Entero
Entero
Entero
O Entero

C3

Entero O Real O Lgico O Cadena

Bandera

Entero O Real O Lgico O Cadena

PX1,PY1,PX2,PY2,PX3,PY3

O Entero O Real O Lgico Cadena

Real
Real
O Real
O Real
Real

O Lgico
O Lgico
O Lgico
O Lgico
O Lgico
O Lgico
O Lgico
O Lgico
O Lgico

O Lgico
O Lgico
O Lgico
O Lgico
O Lgico

O Cadena
O Cadena
O Cadena
O Cadena
O Cadena
O Cadena
O Cadena
O Cadena
O Cadena

O Cadena
O Cadena
O Cadena
O Cadena
O Cadena

Algoritmo
Algoritmo cinco
Variables
; Entrada - Proceso
L : Entero ; Cantidad de sextetos
X1,Y1,X2,Y2,X3,Y3 : Real ; Coordenadas de los tres puntos
; Proceso - Auxiliar
I : Entero ; variable de control
L1, L2, L3 : Real ; Longitud de los lados del triangulo
C1 : Entero ; Cantidad de triangulos isosceles
C2 : Entero ; Cantidad total de triangulos
C3 : Entero ; Cantidad de triangulos isosceles que son rectangulo
Bandera : Entero ; Bandera para capturar los puntos del primer equilatero
; Salida
Por1 : Real ; porcentaje de Triangulos Isosceles
Por2 : Real ; porcentaje de Triangulos Isosceles y rectngulos
PX1,PY1,PX2,PY2,PX3,PY3 : Entero ; Puntos que formaron el primer equilatero
Inicio
C1 <- 0
C2 <- 0
C3 <- 0
Bandera <- 0 ; 0=No he capturado, 1=Ya capture
Imprimir "Cantidad de Sextetos:"
Leer L

17

Ejercicios del Primer Parcial En VB2008


Perodo
2-2009
Para I <- 1 hasta L hacer
Imprimir "Abscisa del primer punto:"
Leer X1
Imprimir "Ordenada del primer punto:"
Leer Y1
Imprimir "Abscisa del segundo punto:"
Leer X2
Imprimir "Ordenada del segundo punto:"
Leer Y2
Imprimir "Abscisa del tercer punto:"
Leer X3
Imprimir "Ordenada del tercer punto:"
Leer Y3
L1 <- ((X2-X1)*(X2-X1)+(Y2-Y1)*(Y2-Y1))^0.5
L2 <- ((X3-X2)*(X3-X2)+(Y3-Y2)*(Y3-Y2))^0.5
L3 <- ((X1-X3)*(X1-X3)+(Y1-Y3)*(Y1-Y3))^0.5
C2 <- C2 + 1
Si (L1=L2) AND (L2<>L3) OR (L1=L3) AND (L3<>L2) OR (L2=L3) AND (L3<>L1) entonces
; es isosceles
C1 <- C1 + 1
; Caso L1 Hipotenusa or L2 Hipotenusa or L3 Hipotenusa
Si (L1^2=L2^2+L3^2) or (L2^2=L1^2+L3^2) or (L3^2=L1^2+L2^2) entonces
; es rectangulo
C3 <- C3 + 1
FinSi
FinSi
Si (L1=L2) AND (L2=L3) entonces
; es equilatero
Si Bandera = 0 entonces
PX1 <- X1
PY1 <- Y1
PX2 <- X2
PY2 <- Y2
PX3 <- X3
PY3 <- Y3
Bandera <- 1
FinSi
FinSi
FinPara
Por1 <- C1/C2*100
Imprimirln "Porcentaje de Triangulos Isosceles:",Por1
Si C1 = 0 entonces
Imprimirln "No hubo triangulos Isosceles para saber si eran rectangulos"
Sino
Por2 <- C3/C1 * 100
Imprimirln "Porcentaje de Triangulos isosceles rectangulos:",Por2
FinSi
Si Bandera = 0 entonces
Imprimirln "No hubo triangulos equilateros"
Sino
Imprimirln "Coordenadas del primer triangulo equilatero de la lista"
Imprimirln "Punto 1: (",PX1,",",PY1,")"
Imprimirln "Punto 2: (",PX2,",",PY2,")"
Imprimirln "Punto 3: (",PX3,",",PY3,")"
FinSi
Fin

18

Ejercicios del Primer Parcial En VB2008


Perodo
2-2009

Cdigo en Visual Basic 2008


Module Module1
Sub Main()
'Declaracin de Variables
' Entrada - Proceso
Dim L As Integer ' Cantidad de sextetos
Dim X1, Y1, X2, Y2, X3, Y3 As Single ' Coordenadas de los tres puntos
' Proceso - Auxiliar
Dim I As Integer ' variable de control
Dim L1, L2, L3 As Single ' Longitud de los lados del triangulo
Dim C1 As Integer ' Cantidad de triangulos isosceles
Dim C2 As Integer ' Cantidad total de triangulos
Dim C3 As Integer ' Cantidad de triangulos isosceles que son
rectangulo
Dim Bandera As Integer ' Bandera for capturar los puntos del primer
equilatero
' Salida
Dim Por1 As Single ' porcentaje de Triangulos Isosceles
Dim Por2 As Single ' porcentaje de Triangulos Isosceles y rectngulos
Dim PX1, PY1, PX2, PY2, PX3, PY3 As Integer ' Puntos que formaron el
primer equilatero
C1 = 0
C2 = 0
C3 = 0
Bandera = 0 ' 0=No he capturado, 1=Ya capture
Console.Write("Cantidad de Sextetosas")
L = Console.ReadLine
For I = 1 To L
Console.Write("Abscisa del primer punto: ")
X1 = Console.ReadLine
Console.Write("Ordenada del primer punto: ")
Y1 = Console.ReadLine
Console.Write("Abscisa del segundo punto:")
X2 = Console.ReadLine
Console.Write("Ordenada del segundo punto:")
Y2 = Console.ReadLine
Console.Write("Abscisa del tercer punto:")
X3 = Console.ReadLine
Console.Write("Ordenada del tercer punto:")
Y3 = Console.ReadLine
L1 = ((X2 - X1) * (X2 - X1) + (Y2 - Y1) * (Y2 - Y1)) ^ 0.5
L2 = ((X3 - X2) * (X3 - X2) + (Y3 - Y2) * (Y3 - Y2)) ^ 0.5
L3 = ((X1 - X3) * (X1 - X3) + (Y1 - Y3) * (Y1 - Y3)) ^ 0.5
C2 = C2 + 1
If (L1 = L2) And (L2 <> L3) Or (L1 = L3) And (L3 <> L2) Or (L2 =
L3) And (L3 <> L1) Then
' es isosceles
C1 = C1 + 1
' Caso L1 Hipotenusa or L2 Hipotenusa or L3 Hipotenusa
If (L1^2 = L2^2 + L3^2 ) Or (L2 ^2= L1 ^2+ L3 ^2) Or (L3 ^2=
L1 ^2+ L2 ^2) Then

19

Ejercicios del Primer Parcial En VB2008


Perodo
2-2009
' es rectangulo
C3 = C3 + 1
End If
End If
If (L1 = L2) And (L2 = L3) Then
' es equilatero
If Bandera = 0 Then
PX1 = X1
PY1 = Y1
PX2 = X2
PY2 = Y2
PX3 = X3
PY3 = Y3
Bandera = 1
End If
End If
Next I
Por1 = C1 / C2 * 100
Console.WriteLine("Porcentaje de Triangulos Isoscelesas", Por1)
If C1 = 0 Then
Console.WriteLine("No hubo triangulos Isosceles for saber if eran
rectangulos")
Else
Por2 = C3 / C1 * 100
Console.WriteLine("Porcentaje de Triangulos isosceles
rectangulosas", Por2)
End If
If Bandera = 0 Then
Console.WriteLine("No hubo triangulos equilateros")
Else
Console.WriteLine("Coordenadas del primer triangulo equilatero de
la lista")
Console.WriteLine("Punto 1as (" & PX1 & "," & PY1 & ")")
Console.WriteLine("Punto 2as (" & PX2 & "," & PY2 & ")")
Console.WriteLine("Punto 3as (" & PX3 & "," & PY3 & ")")
End If

'Para que la ventana de ejecucin no se cierre


Console.ReadKey()
End Sub
End Module

Ejercicio 6
Se tiene la siguiente informacin relacionada a los empleados de una empresa:
nombre del empleado
Sexo: 0 = femenino, 1 = masculino
departamento: 1= compras, 2= contabilidad, 3= control de calidad, 4= ingeniera
edad
tiempo en aos que tiene trabajando en la empresa

Elabore un programa que determine lo siguiente:

20

Ejercicios del Primer Parcial En VB2008


Perodo
2-2009

1) Promedio de edad de las mujeres


2) Promedio del tiempo trabajando para la empresa del personal mayor de 40 aos
3) Nombre y edad de la persona con mayor tiempo trabajando en la empresa
4) Porcentaje de mujeres que trabajan en el departamento de contabilidad

Anlisis del Problema


Qu informacin est
presente?
1.
2.
3.
4.
5.
6.

Nombre del Empleado


Sexo del Empleado
Departamento
Edad
Tiempo trabajado en aos
Centinela

Qu resultados exige?

Cmo lo logro?

1. Promedio de Edad de las


mujeres
2. Promedio de Tiempo Trabajando
para aquellos con Edad > 40
aos
3. Nombre y Edad de la persona
con mayor Tiempo en aos en la
empresa
4. Porcentaje de Sexo=0 y Dpto=2

1. Se inician los contadores,


sumadores, banderas, mayor y
menor
2. Dentro del ciclo, despus de
leer, si se verifica que Sexo=0, se
suma la edad en S1 y se cuenta
con C1; si adems se verifica
dpto=2, se cuenta este hecho
en C3. Luego, para todo
trabajador se cuenta en C4
3. Luego, se aplica la tcnica de
bsqueda del mayor TT,
anotando en variables auxiliares
el Nombre y la Edad
4. Luego, se verifica si Edad > 40 y
se suma en S2 a TT y se cuenta
en C2
5. Despus del ciclo, antes de
imprimir los resultados, chequear
si hubo mujeres, personas
mayores de 40 aos, antes de
calcular los promedios

Nombre de la Variable
Nombre
Sexo
Dpto
Edad
TT
Cent
Pro1 <- S1/C1
S1
C1
Pro2 <- S2/C2
S2
C2
Bandera
Mayor
MNombre
Medad
Por <- C3/C4 *100
C3

Tipo de Dato
O Entero O Real
Entero O Real
Entero O Real
Entero O Real
Entero O Real
O Entero O Real
O Entero Real
O Entero Real
Entero O Real
O Entero Real
Entero O Real
Entero O Real
Entero O Real
Entero O Real
O Entero O Real
Entero O Real
O Entero Real
Entero O Real

C4

Entero O Real O Lgico O Cadena

Tabla de Variables
Descripcin del dato
Nombre del Empleado
Sexo del Empleado
Departamento
Edad del Empleado
Tiempo trabajado en aos
Centinela
Promedio de Edad Sexo=0
Sumatoria de Edad Sexo = 0
Cantidad de veces que S1 sumo
Promedio de TT Edad >40
Sumatoria de TT Edad > 40
Cantidad de veces que S2 sumo
Bandera para Mayor TT
Mayor TT
Nombre del Mayor TT
Edad del Mayor TT
Porcentaje de Sexo
Cantidad de veces que Sexo=0 y
Dpto=2
Cantidad total de empleados

O Lgico
O Lgico
O Lgico
O Lgico
O Lgico
O Lgico
O Lgico
O Lgico
O Lgico
O Lgico
O Lgico
O Lgico
O Lgico
O Lgico
O Lgico
O Lgico
O Lgico
O Lgico

Cadena
O Cadena
O Cadena
O Cadena
O Cadena
Cadena
O Cadena
O Cadena
O Cadena
O Cadena
O Cadena
O Cadena
O Cadena
O Cadena
Cadena
O Cadena
O Cadena
O Cadena

21

Ejercicios del Primer Parcial En VB2008


Perodo
2-2009

Algoritmo
Algoritmo seis
Variables
; Entrada - Proceso
Nombre : Cadena
Sexo : Entero ; 0=Femenino,1=Masculino
Dpto : Entero ; 1=compras,2=contabilidad,3=control de calidad,4=ingenieria
Edad : Entero
TT : Entero ; Tiempo en aos Trabajado en la empresa
Cent : Cadena
; Proceso - Auxiliar
S1 : Entero ; Sumatoria de edad de las mujeres
C1 : Entero ; Cantidad de veces que S1 sumo
S2 : Entero ; Sumatoria de TT Edad > 40
C2 : Entero ; Cantidad de veces que S2 sumo
Bandera : Entero ; Bandera para mayor TT
C3 : Entero ; cantidad de mujeres que trabajan en contabilidad
C4 : Entero ; cantidad Total de Mujeres
Mayor : Entero ; Mayor TT
; Salida
Pro1 : Real ; Promedio de Edad de las Mujeres
Pro2 : Real ; Promedio de TT con Edad > 40
MNombre : Cadena ; Nombre del empleado con mayor TT
MEdad : Entero ;
Edad del empleado con mayor TT
Por : Real ; Porcentaje de mujeres en contabilidad
Inicio
S1 <- 0
C1 <- 0
S2 <- 0
C2 <- 0
Bandera <- 0
C3 <- 0
C4 <- 0
Repetir
Imprimir "Nombre de la Persona:"
Leer Nombre
Imprimir "Sexo (0=Femenino, 1=Masculino):"
Leer Sexo
Imprimir "Departamento (1=compras,2=contabilidad,3=control de calidad,4=ingenieria):"
Leer Dpto
Imprimir "Edad:"
Leer Edad
Imprimir "Tiempo en aos trabajado en la empresa:"
Leer TT
Si Sexo=0 entonces
S1 <- S1 + Edad
C1 <- C1 + 1
Si Dpto=2 entonces
C3 <- C3 + 1
FinSi
FinSi
C4 <- C4 + 1
Si Edad > 40 entonces
S2 <- S2 + TT
C2 <- C2 + 1
Finsi
Si Bandera = 0 entonces

22

Ejercicios del Primer Parcial En VB2008


Perodo
2-2009
Mayor <- TT
MNombre <- Nombre
MEdad <- Edad
Bandera <- 1
Sino
Si TT > Mayor entonces
Mayor <- TT
MNombre <- Nombre
MEdad <- Edad
FinSi
FinSi
Imprimir "Ultimo Trabajador (S/N):?"
Leer Cent
Hasta (Cent="S") or (Cent="s")
Si C1 = 0 entonces
Imprimirln "No hubo empleadas a quienes calcular el promedio de la edad"
Sino
Pro1 <- S1/C1
Imprimirln "Promedio de Edad de las Mujeres:",Pro1
FinSi
Si C2 = 0 entonces
Imprimirln "No Hubo empleados mayores de 40 aos para el promedio"
Sino
Pro2 <- S2/C2
Imprimirln "Promedio de tiempo trabajado de aquellos con edad > 40:",Pro2
FinSi
Imprimirln "Nombre del empleado con mayor tiempo trabajado:", MNombre
Imprimirln "Edad del empleado con mayor tiempo trabajado:",MEdad
Por <- C3/C4*100
Imprimirln "Porcentaje de mujeres que trabajan en contabilidad:",Por
Fin

Cdigo en Visual Basic 2008


Module Module1
Sub Main()
'Declaracin de Variables
' Entrada - Proceso
Dim Nombre As String
Dim Sexo As Integer ' 0=Femenino , 1=Masculino
Dim Dpto As Integer ' 1=compras,2=contabilidad,3=control de calidad, 4=ingenieria
Dim Edad As Integer
Dim TT As Integer ' Tiempo en aos Trabajado en la empresa
Dim Cent As String
' Proceso Dim
Dim
Dim
Dim
Dim
Dim
Dim
Dim

Auxiliar
S1 As Integer ' Sumatoria de edad de las mujeres
C1 As Integer ' Cantidad de veces que S1 sumo
S2 As Integer ' Sumatoria de TT Edad > 40
C2 As Integer ' Cantidad de veces que S2 sumo
Bandera As Integer ' Bandera para mayor TT
C3 As Integer ' cantidad de mujeres que trabajan en contabilidad
C4 As Integer ' cantidad Total de Mujeres
Mayor As Integer ' Mayor TT

23

Ejercicios del Primer Parcial En VB2008


Perodo
2-2009
' Salida
Dim Pro1 As Single ' Promedio de Edad de las Mujeres
Dim Pro2 As Single ' Promedio de TT con Edad > 40
Dim MNombre As String ' Nombre del empleado con mayor TT
Dim MEdad As Integer ' Edad del empleado con mayor TT
Dim Por As Single ' Porcentaje de mujeres en contabilidad
S1 = 0
C1 = 0
S2 = 0
C2 = 0
Bandera = 0
C3 = 0
C4 = 0
Do
Console.Write("Nombre de la Persona:")
Nombre = Console.ReadLine
Console.Write("Sexo (0=Femenino , 1=Masculino):")
Sexo = Console.ReadLine
Console.Write("Departamento (1=compras , 2=contabilidad ,
3=control de calidad ,4=ingenieria):")
Dpto = Console.ReadLine
Console.Write("Edad:")
Edad = Console.ReadLine
Console.Write("Tiempo en aos trabajado en la empresa:")
TT = Console.ReadLine
If Sexo = 0 Then
S1 = S1 + Edad
C1 = C1 + 1
If Dpto = 2 Then
C3 = C3 + 1
End If
End If
C4 = C4 + 1
If Edad > 40 Then
S2 = S2 + TT
C2 = C2 + 1
End If
If Bandera = 0 Then
Mayor = TT
MNombre = Nombre
MEdad = Edad
Bandera = 1
Else
If TT > Mayor Then
Mayor = TT
MNombre = Nombre
MEdad = Edad
End If
End If
Console.Write("Ultimo Trabajador (S/N)?")
Cent = Console.ReadLine
Loop Until (Cent = "S") Or (Cent = "s")

24

Ejercicios del Primer Parcial En VB2008


Perodo
2-2009
If C1 = 0 Then
Console.WriteLine("No hubo empleadas a quienes calcular el
promedio de la edad")
Else
Pro1 = S1 / C1
Console.WriteLine("Promedio de Edad de las Mujeres:" & Pro1)
End If
If C2 = 0 Then
Console.WriteLine("No Hubo empleados mayores de 40 aos para el
promedio")
Else
Pro2 = S2 / C2
Console.WriteLine("Promedio de tiempo trabajado de aquellos con
edad > 40:" & Pro2)
End If
Console.WriteLine("Nombre del empleado con mayor tiempo trabajado:" &
MNombre)
Console.WriteLine("Edad del empleado con mayor tiempo trabajado:" &
MEdad)
Por = C3 / C4 * 100
Console.WriteLine("Porcentaje de mujeres que trabajan en
contabilidadas" & Por)

'Para que la ventana de ejecucin no se cierre


Console.ReadKey()
End Sub
End Module

Ejercicio 7
Dado el nombre, da de la semana (0=domingo, 1=lunes, 2=martes, etc.), nmero de horas
diurnas y nmero de horas nocturnas trabajadas de un grupo de trabajadores, tomando en
cuenta que:
La tarifa de las horas diurnas es de Bs. 10000
La tarifa de horas nocturnas es de Bs. 25000
En caso de ser Domingo la tarifa se incrementar en Bs. 5000 el turno diurno y Bs. 7500
el turno nocturno
Desarrolle un programa que determine e imprima:

1)
2)
3)
4)

Para cada trabajador, el monto a cobrar por concepto de salario


Nombre del primer trabajador cuyas horas nocturnas son mayores que las diurnas
Nombre del trabajador y da de la semana con mayor salario.
Promedio de horas de los trabajadores que laboraron el da domingo

25

Ejercicios del Primer Parcial En VB2008


Perodo
2-2009

Anlisis del Problema


Qu resultados exige?

Cmo lo logro?

1. Por trabajador, monto total a


cobrar
2. Nombre del primer
trabajador cuyas horas
nocturnas son mayores que
las diurnas
3. Nombre del trabajador y dia
de la semana con mayor
salario
4. Promedio de horas DS = 0

1. Se inician los contadores,


sumadores, banderas, mayor
y menor
2. Dentro del ciclo, despus de
leer, si se verifica que Sexo=0,
se suma la edad en S1 y se
cuenta con C1; si adems se
verifica dpto=2, se cuenta
este hecho en C3. Luego,
para todo trabajador se
cuenta en C4
3. Luego, se aplica la tcnica
de bsqueda del mayor TT,
anotando en variables
auxiliares el Nombre y la
Edad
4. Luego, se verifica si Edad > 40
y se suma en S2 a TT y se
cuenta en C2
5. Despus del ciclo, antes de
imprimir los resultados,
chequear si hubo mujeres,
personas mayores de 40
aos, antes de calcular los
promedios

Descripcin del dato

Nombre de la Variable

Nombre del Empleado


Da de la Semana
Horas Diurnas
Horas Nocturnas
Centinela
Monto individual a cobrar
cada trabajador
Bandera para capturar el
nombre del primer trabajador
con HN>HD
Nombre del primer trabajador
con HN > ND
Bandera para mayor MT
Mayor MT
Nombre del Mayor MT
Da del Mayor MT
Promedio de horas DS=0
Sumador de horas
Cantidad de veces que S1
Sumo

Nombre
DS
HD
HN
Cent
MT

Tipo de Dato
O Entero O Real
Entero O Real
Entero O Real
Entero O Real
O Entero O Real
O Entero Real

Bandera1

Entero O Real O Lgico O Cadena

PNombre

O Entero O Real O Lgico Cadena

Bandera2
Mayor
MNombre
MDia
Pro <- S1/C1
S1
C1

Entero
O Entero
O Entero
Entero
O Entero
Entero
Entero

1.
2.
3.
4.
5.

Qu informacin est
presente?
Nombre del Empleado
Da de la semana
Horas Diurnas
Trabajadas
Horas Nocturnas
Trabajadas
Centinela

Tabla de Variables

O Real
Real
O Real
O Real
Real
O Real
O Real

O Lgico
O Lgico
O Lgico
O Lgico
O Lgico
O Lgico

O Lgico
O Lgico
O Lgico
O Lgico
O Lgico
O Lgico
O Lgico

Cadena
O Cadena
O Cadena
O Cadena
Cadena
O Cadena

O Cadena
O Cadena
Cadena
O Cadena
O Cadena
O Cadena
O Cadena

26

Ejercicios del Primer Parcial En VB2008


Perodo
2-2009

Algoritmo
Algoritmo Siete
Variables
; Entrada - Proceso
Nombre : Cadena ; Nombre del empleado
DS : Entero
; 0=domingo, 1=lunes, 2=martes, 3=Miercoles, etc
HD : Entero
; Horas diurnas
HN : Entero
; Horas Nocturnas
Cent : Cadena ; Centinela
; Proceso - Auxiliar
Bandera1 : Entero ; Bandera para capturar primer trabajador HN>HD
Bandera2 : Entero ; Bandera para el mayor MT
Mayor : Real ; Mayor MT
S1 : Entero ; Sumatoria de Hora con DS=0
C1 : Entero ; Cantidad de veces que S1 sumo
; Proceso - Salida
MT : Real ; Salario a cobrar por cada trabajador
PNombre : Cadena ; Nombre del primer trabajador HN>HD
MNombre : Cadena ; Nombre del mayor MT
MDia : Entero ; Dia del Mayor MT
; Salida
Pro : Real ; Proemdio de horas en DS=0
Inicio
Bandera1 <- 0
; 0=No he capturado, 1=Ya capture
Bandera2 <- 0 ; 0=No hay un mayor aun, 1=Existe un mayor
S1 <- 0
C1 <- 0
Repetir
Imprimir "Nombre del empleado:"
Leer Nombre
Imprimir "Dia de la Semana (0=Do,1=Lu,2=Ma,3=Mi,4=Ju,5=Vi,6=Sa):"
Leer DS
Imprimir "Horas Diurnas:"
Leer HD
Imprimir "Horas Nocturnas:"
Leer HN
Si DS=0 entonces
MT <- HD*15000+HN*32500
S1 <- S1 + HD + HN
C1 <- C1 + 1
Sino
MT <- HD*10000+HN*25000
FinSi
Imprimirln Nombre,":",MT
Si HN > HD entonces
Si Bandera1 = 0 entonces
PNombre <- Nombre
Bandera1 <- 1
FInSi
FinSi
Si Bandera2 = 0 entonces
Mayor <- MT
MNombre <- Nombre
MDia <- DS
Bandera2 <- 1
Sino
Si MT > Mayor entonces

27

Ejercicios del Primer Parcial En VB2008


Perodo
2-2009
Mayor <- MT
MNombre <- Nombre
MDia <- DS
FinSi
FinSi
Imprimir "Ultimo empleado (S/N)?:"
Leer Cent
Hasta (Cent="S") or (Cent="s")
Si Bandera1 = 0 entonces
Imprimirln "No hubo trabajadores con HN > HD"
Sino
Imprimirln "Nombre del primer trabajador con HN > HD:",PNombre
FinSI
Imprimirln "Nombre de la persona con mayor salario:", MNombre
Imprimirln "Dia de la semana donde gano el mayor salario:",MDia
Si C1 = 0 entonces
Imprimirln "No hubo trabajadores en Domingo"
Sino
Pro <- S1/C1
Imprimirln "Promedio de horas los domingos:", Pro
FinSi
Fin

Cdigo en Visual Basic 2008


Module Module1
Sub Main()
'Declaracin de Variables
' Entrada - Proceso
Dim Nombre As String ' Nombre del empleado
Dim DS As Integer
' 0=domingo, 1=lunes, 2=martes, 3=Miercoles,
etc
Dim HD As Integer
' Horas diurnas
Dim HN As Integer
' Horas Nocturnas
Dim Cent As String
' Centinela
' Proceso - Auxiliar
Dim Bandera1 As Integer ' Bandera para capturar primer trabajador
HN>HD
Dim
Dim
Dim
Dim

Bandera2 As Integer ' Bandera para el mayor MT


Mayor As Single ' Mayor MT
S1 As Integer ' Sumatoria de Hora con DS=0
C1 As Integer ' Cantidad de veces que S1 sumo

' Proceso - Salida


Dim MT As Single ' Salario a cobrar por cada trabajador
Dim PNombre As String ' Nombre del primer trabajador HN>HD
Dim MNombre As String ' Nombre del mayor MT
Dim MDia As Integer ' Dia del Mayor MT
' Salida
Dim Pro As Single ' Proemdio de horas en DS=0
Bandera1 = 0 ' 0=No he capturado, 1=Ya capture
Bandera2 = 0 ' 0=No hay un mayor aun, 1=Existe un mayor
S1 = 0
C1 = 0

28

Ejercicios del Primer Parcial En VB2008


Perodo
2-2009
Do
Console.Write("Nombre del empleado : ")
Nombre = Console.ReadLine
Console.Write("Dia de la Semana (0=Do , 1=Lu , 2=Ma , 3=Mi , 4=Ju
, 5=Vi , 6=Sa) : ")
DS = Console.ReadLine
Console.Write("Hor: Diurn: : ")
HD = Console.ReadLine
Console.Write("Hor: Nocturnas : ")
HN = Console.ReadLine
If DS = 0 Then
MT = HD * 15000 + HN * 32500
S1 = S1 + HD + HN
C1 = C1 + 1
Else
MT = HD * 10000 + HN * 25000
End If
Console.WriteLine(Nombre & " : " & MT)
If HN > HD Then
If Bandera1 = 0 Then
PNombre = Nombre
Bandera1 = 1
End If
End If
If Bandera2 = 0 Then
Mayor = MT
MNombre = Nombre
MDia = DS
Bandera2 = 1
Else
If MT > Mayor Then
Mayor = MT
MNombre = Nombre
MDia = DS
End If
End If
Console.Write("Ultimo empleado (S/N)? : ")
Cent = Console.ReadLine
Loop Until (Cent = "S") Or (Cent = "s")
If Bandera1 = 0 Then
Console.WriteLine("No hubo trabajadores con HN > HD")
Else
Console.WriteLine("Nombre del primer trabajador con HN > HD : " & PNombre)

End If
Console.WriteLine("Nombre de la persona con mayor salario : " & MNombre)
Console.WriteLine("Dia de la semana donde gano el mayor salario : " & MDia)

If C1 = 0 Then
Console.WriteLine("No hubo trabajadores en Domingo")
Else
Pro = S1 / C1
Console.WriteLine("Promedio de horas los domingos :
End If

" & Pro)

'para que la ventana de ejecucin no se cierre


Console.ReadKey()
End Sub
End Module

29

Ejercicios del Primer Parcial En VB2008


Perodo
2-2009

Ejercicio 8
Para ser admitidos en el Club MENSA los candidatos deben aprobar un test de inteligencia con
un puntaje de 74 puntos como mnimo. Los nombres de los candidatos y los resultados son
suministrados a una computadora. Elabore un programa que procese la informacin y
determine lo siguiente:

1)
2)
3)
4)
5)

Cuntos candidatos aprobaron el test


Porcentaje de candidatos que no aprobaron el test
Cul fue el mayor puntaje
Cul fue el menor puntaje
Cuntos candidatos aprobaron con un puntaje entre 80 y 100 puntos

Algoritmo
Algoritmo ocho
Variables
; Entrada - Proceso
Nombre : Cadena
Puntos : Entero
Cent : Cadena
; Proceso - Auxiliar
C2 : Entero ; Cantidad de Reprobados
C3 : Entero ; Cantidad total de Candidatos
Bandera1 : Entero ; Bandera para el mayor ptos
Bandera2 : Entero ; Bandera para el menor ptos
; Proceso - Salida
C1 : Entero ; Cantidad de candidatos con Ptos >= 74
C4 : Entero ; Cantidad de cantidatos con Ptos entre [80,100]
Mayor : Entero ; Mayor puntaje
Menor : Entero ; Menor puntaje
; Salida
Por : Real ; Porcentaje de Candidatos Reprobados
Inicio
C1 <- 0
C2 <- 0
C3 <- 0
Bandera1 <- 0
Bandera2 <- 0
C4 <- 0
Repetir
Imprimir "Nombre:"
Leer Nombre
Imprimir "Puntos obtenidos:"
Leer Puntos
Si Puntos >= 74 entonces
C1 <- C1 + 1
Si (Puntos >= 80) AND (Puntos <= 100) entonces
C4 <- C4 + 1
FinSi
Sino ; Puntos < 74
C2 <- C2 + 1

30

Ejercicios del Primer Parcial En VB2008


Perodo
2-2009
FinSi
C3 <- C3 + 1
Si Bandera1 = 0 entonces
Mayor <- Puntos
Bandera1 <- 1
Sino
Si Puntos > Mayor entonces
Mayor <- Puntos
FinSi
FinSi
Si Bandera2 = 0 entonces
Menor <- Puntos
Bandera1 <- 1
Sino
Si Puntos < Menor entonces
Menor <- Puntos
FinSi
FinSi
Imprimir "Ultimo Candidato:"
Leer Cent
Hasta (Cent="S") or (Cent="s")
Imprimirln "Cantidad de Candidatos que aprobaron el test:",C1
Por <- C2/C3*100
Imprimirln "Porcentaje de Candidatos reprobados:",Por
Imprimirln "Mayor Puntaje:",Mayor
Imprimirln "Menor Puntaje:",Menor
Imprimirln "Cantidad de Candidatos con Puntos entre [80,100]:",C4
Fin

Cdigo en Visual Basic 2008


Module Module1
Sub Main()
'Declaracin de Variables
' Entrada - Proceso
Dim Nombre As String
Dim Puntos As Integer
Dim Cent As String
' Proceso - Auxiliar
Dim C2 As Integer ' Cantidad de Reprobados
Dim C3 As Integer ' Cantidad total de Candidatos
Dim Bandera1 As Integer ' Bandera para el mayor ptos
Dim Bandera2 As Integer ' Bandera para el menor ptos
' Proceso - Salida
Dim C1 As Integer ' Cantidad de candidatos con Ptos >= 74
Dim C4 As Integer ' Cantidad de cantidatos con Ptos entre [80,100]
Dim Mayor As Integer ' Mayor puntaje
Dim Menor As Integer ' Menor puntaje
' Salida
Dim Por As Single ' Porcentaje de Candidatos Reprobados
C1 = 0
C2 = 0
C3 = 0
Bandera1 = 0
Bandera2 = 0

31

Ejercicios del Primer Parcial En VB2008


Perodo
2-2009
C4 = 0
Do
Console.Write("Nombre:")
Nombre = Console.ReadLine
Console.Write("Puntos obtenidos:")
Puntos = Console.ReadLine
If Puntos >= 74 Then
C1 = C1 + 1
If (Puntos >= 80) And (Puntos <= 100) Then
C4 = C4 + 1
End If
Else ' Puntos < 74
C2 = C2 + 1
End If
C3 = C3 + 1
If Bandera1 = 0 Then
Mayor = Puntos
Bandera1 = 1
Else
If Puntos > Mayor Then
Mayor = Puntos
End If
End If
If Bandera2 = 0 Then
Menor = Puntos
Bandera1 = 1
Else
If Puntos < Menor Then
Menor = Puntos
End If
End If
Console.Write("Ultimo Candidato:")
Cent = Console.ReadLine
Loop Until (Cent = "S") Or (Cent = "s")
Console.WriteLine("Cantidad de Candidatos que aprobaron el test:" &
C1)
Por = C2 / C3 * 100
Console.WriteLine("Porcentaje de Candidatos reprobados:" & Por)
Console.WriteLine("Mayor Puntaje:" & Mayor)
Console.WriteLine("Menor Puntaje:" & Menor)
Console.WriteLine("Cantidad de Candidatos con Puntos entre [80 &
100]:" & C4)

'para que la ventana de ejecucin no se cierre


Console.ReadKey()
End Sub
End Module

32