Ejercicios del Primer Parcial En VB2008 Por Manuel Fernández y Lisbeth Pacheco Ejercicios resueltos en el primer parcial traducidos al Visual Basic 2008, se incluyen análisis y algoritmos en Algor. El proceso de toma de datos es a través de proceso interactivo. Período 2-2009
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Ejercicios del Primer
Parcial En VB2008 Por Manuel Fernández y Lisbeth Pacheco
Ejercicios resueltos en el primer parcial traducidos al Visual
Basic 2008, se incluyen análisis y algoritmos en Algor. El
proceso de toma de datos es a través de proceso interactivo.
Código en Visual Basic 2008 ...................................................................................................... 31
Ejercicios del Primer Parcial En VB2008
3
Período
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) Cuantos pares (S, V) tienen el mismo valor de S que el primer par (S, V) de la lista.
2) Primer valor de S mayor que V
3) En cuantos pares (S, V) se cumple que S es el doble de V
4) Productoria de los valores se S no nulos, donde V es nulo.
Análisis del Problema
¿Qué información está presente?
¿Qué resultados exige? ¿Cómo lo logro?
1. Conjunto de pares (S, V) 2. Centinela
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, después de leer, se captura con PS el primer valor de S leído 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. Después del ciclo, se imprimen los contadores y la productoria y si hubo algún S>V se imprime PSV
Tabla de Variables Descripción del dato Nombre de la Variable Tipo de Dato
Valor de S S O Entero ⊗ Real O Lógico O Cadena
Valor de V V O Entero ⊗ Real O Lógico O Cadena
Centinela Cent O Entero O Real O Lógico ⊗ Cadena
Bandera para capturar el primer valor de S
Capturado1 ⊗ Entero O Real O Lógico O Cadena
Primer Valor de S PS O Entero ⊗ Real O Lógico O Cadena
Cantidad de veces que se repite el primer valor de S en el resto de los pares
C1 | S=PS ⊗ Entero O Real O Lógico O Cadena
Bandera para capturar el primer valor de S cuyo V > 0
Capturado2 ⊗ Entero O Real O Lógico O Cadena
Primer valor de S donde su V >0 PSV O Entero ⊗ Real O Lógico O Cadena
Cantidad de veces que S=2*V C2 | S=2*V ⊗ Entero O Real O Lógico O Cadena
Productoria de los valores de S no nulos, donde V sea nulo
P <- P * S | (S <> 0) and (V=0) O Entero ⊗ Real O Lógico O Cadena
Ejercicios del Primer Parcial En VB2008
4
Período
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
5
Período
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
Código en Visual Basic 2008
Module Module1
Sub Main()
'Declaración 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
6
Período
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 ejecución no se cierre
Console.ReadKey()
End Sub
End Module
Ejercicios del Primer Parcial En VB2008
7
Período
2-2009
Ejercicio 2
Dadas las cédulas y notas de una evaluación complementaria correspondientes a una sección
de Computación I, organizadas según fueron recibidas en la aplicación de la evaluación,
desarrolle un programa Pascal que determine e imprima:
1) Cédula de la primera persona en la lista que aprobó la evaluación
2) Cuantas personas obtuvieron la misma nota que el primero de la lista que aprobó.
3) Porcentaje de reprobados.
Análisis del Problema
¿Qué información está presente?
¿Qué resultados exige? ¿Cómo lo logro?
1. Cédula del estudiante 2. Nota del Estudiante 3. Centinela
1. Cédula del primer estudiante de la lista que aprobó la evaluación
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, después 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 condición con C3
4. Después 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 Descripción del dato Nombre de la Variable Tipo de Dato
Cédula del Estudiante CI O Entero ⊗ Real O Lógico O Cadena
Nota del Estudiante Nota O Entero ⊗ Real O Lógico O Cadena
Centinela Cent O Entero O Real O Lógico ⊗ Cadena
Bandera para capturar cédula y nota de la primera nota >=10
Capturado ⊗ Entero O Real O Lógico O Cadena
Primera Cédula cuya Nota >=10 PC ⊗ Entero O Real O Lógico O Cadena
Primera Nota >=10 PN O Entero ⊗ Real O Lógico O Cadena
Cantidad de veces que se repite la primera nota >=10 en el resto de la lista
C1 | Nota=PN ⊗ Entero O Real O Lógico O Cadena
Porcentaje de reprobados Por <- C2/C3*100 O Entero ⊗ Real O Lógico O Cadena
Cantidad de veces que Nota <10 C2 | Nota < 10 ⊗ Entero O Real O Lógico O Cadena
Cantidad total de notas C3 | Para toda nota ⊗ Entero O Real O Lógico O Cadena
Ejercicios del Primer Parcial En VB2008
8
Período
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
9
Período
2-2009
Código en Visual Basic 2008 Module Module1
Sub Main()
'Declaración 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 - Salida
Dim PC As Integer ' Cedula de la primera Nota >=10
Dim PN As Integer ' Primer Nota >=10
Dim C1 As 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
10
Período
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 ejecución 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) La sumatoria de los valores negativos o nulos de A
2) La productoria de los valores positivos no nulos 3) Porcentaje de valores de A nulos.
Análisis del Problema
¿Qué información está presente?
¿Qué resultados exige? ¿Cómo 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, después de leer A, si se verifica que A <= 0 se suma A en S1; si además 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
Tabla de Variables Descripción del dato Nombre de la Variable Tipo de Dato
Cantidad de Valores de A Q ⊗ Entero O Real O Lógico O Cadena
Valor de A A O Entero ⊗ Real O Lógico O Cadena
Sumatoria de A <=0 S1 O Entero ⊗ Real O Lógico O Cadena Contador de A = 0 C2 ⊗ Entero O Real O Lógico O Cadena
Productoria de A > 0 P ⊗ Entero O Real O Lógico O Cadena
Porcentaje de A=0 Por <- C2/Q*100 O Entero ⊗ Real O Lógico O Cadena
Ejercicios del Primer Parcial En VB2008
11
Período
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
Código en Visual Basic 2008 Module Module1
Sub Main()
'Declaración 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
Ejercicios del Primer Parcial En VB2008
12
Período
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 ejecución 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 geométrica de X1 y X2, sabiendo que la media geométrica se calcula como 2X1*X2
3) Porcentaje de veces que el promedio es menor que la media geométrica.
4) El primer par de valores de X1 y X2 donde el promedio es igual a la media geométrica.
Ejercicios del Primer Parcial En VB2008
13
Período
2-2009
Análisis del Problema
¿Qué información está presente?
¿Qué resultados exige? ¿Cómo lo logro?
1. Valor de X1 2. Valor de X2 3. Centinela
1. Promedio de X1 y X2
2. Media Geométrica de X1 y X2
3. Porcentaje donde el promedio es menor que la media geométrica
4. Primer Par donde el promedio es igual a la media geométrica
1. Se inician los contadores antes del ciclo
2. Dentro del ciclo, después de leer X1 y X2, se calcula e imprime el promedio y Media geométrica de X1 y X2
3. Luego, si se verifica que le promedio es menor que la media geométrica, 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 geométrica.
5. Después del ciclo, se calcula e imprime el porcentaje y si
hubo algún par donde el promedio y la media geométrica fueron iguales, se imprime el primer par capturado.
Tabla de Variables Descripción del dato Nombre de la Variable Tipo de Dato
Valor de X1 X1 O Entero ⊗ Real O Lógico O Cadena
Valor de X2 X2 O Entero ⊗ Real O Lógico O Cadena
Centinela Cent O Entero O Real O Lógico ⊗ Cadena
Promedio de X1 y X2 Pro <- (X1+X2)/2 O Entero ⊗ Real O Lógico O Cadena
Media geométrica de X1 y X2 Por <- (X1*X2)^0.5 O Entero ⊗ Real O Lógico O Cadena
Bandera para capturar el primer par donde su promedio y media geométrica sean iguales
Capturado ⊗ Entero O Real O Lógico O Cadena
Primera Valor de X1 donde el promedio y media geométrica sean iguales
PX1 O Entero ⊗ Real O Lógico O Cadena
Primera Valor de X2 donde el promedio y media geométrica sean iguales
PX2 O Entero ⊗ Real O Lógico O Cadena
Cantidad de veces donde el promedio es menor que la media geométrica
C1 ⊗ Entero O Real O Lógico O Cadena
Cantidad Total de Pares C2 ⊗ Entero O Real O Lógico O Cadena
Ejercicios del Primer Parcial En VB2008
14
Período
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
Ejercicios del Primer Parcial En VB2008
15
Período
2-2009
Código en Visual Basic 2008 Module Module1
Sub Main()
'Declaración 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)
Ejercicios del Primer Parcial En VB2008
16
Período
2-2009
Console.WriteLine("X2 del primer Par donde Promedio=Media
Geometrica:", PX2)
End If
'para que la ventana de ejecución 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,
Y2) se determina como (X2-X2)2+(Y2-Y1)2 . Dados un conjunto de L coordenadas cartesianas
de tres puntos, desarrolle un programa que determine e imprima para cada trío de puntos:
1) Porcentaje de veces que los puntos forman un triángulo isósceles
2) Entre los triángulos isósceles, porcentaje que forman triángulo rectángulo según el teorema de
Pitágoras: H2 = C12 + C22. Considere todos los casos.
3) Las coordenadas cartesianas de los tres puntos de la lista que forman el primer triángulo
equilátero.
Análisis del Problema
¿Qué información está presente?
¿Qué resultados exige? ¿Cómo lo logro?
1. Un conjunto de sextetos correspondientes, cada par, a la Abscisa y Ordenada de un Punto
2. Centinela 3. La fórmula para
determinar la distancia entre dos puntos
4. Las características de un triángulo Equilátero e Isósceles
1. Porcentaje de puntos que forman triángulo isósceles
2. Entre los triángulos isósceles, porcentaje que forman triangulo rectángulo
3. Coordenadas de los puntos del primer triángulo equilátero
1. Utilizando la fórmula dada se calcula la longitud de cada lado del triángulo (L1, L2, L3)
2. Si L1=L2≠≠≠≠L3 ó L1=L3≠≠≠≠L2 ó L2=L3≠≠≠≠L1 � a) Contar el
hecho que es isósceles con C1 y contar el hecho de verificar el tipo de triángulo con C2 b) Si forma triángulo rectángulo, contar este
hecho con C3. 3. Si L1=L2=L3 � Capturar las
coordenadas de los tres primeros puntos.
4. Después del ciclo, antes de imprimir los resultados,
chequear que hubo triángulos isósceles y equiláteros
Ejercicios del Primer Parcial En VB2008
17
Período
2-2009
Tabla de Variables Descripción del dato Nombre de la Variable Tipo de Dato
Cantidad de sextetos L ⊗ Entero O Real O Lógico O Cadena
Abscisa del Primer punto X1 O Entero ⊗ Real O Lógico O Cadena Ordenada del Primer punto Y1 O Entero ⊗ Real O Lógico O Cadena
Abscisa del segundo punto X2 O Entero ⊗ Real O Lógico O Cadena
Ordenada del segundo punto Y2 O Entero ⊗ Real O Lógico O Cadena
Abscisa del tercer punto X3 O Entero ⊗ Real O Lógico O Cadena Ordenada del tercer punto Y3 O Entero ⊗ Real O Lógico O Cadena
Variable de Control I ⊗ Entero O Real O Lógico O Cadena
Longitud del primer punto al segundo punto
L1 O Entero ⊗ Real O Lógico O Cadena
Longitud del segundo punto al tercer punto
L2 O Entero ⊗ Real O Lógico O Cadena
Longitud del tercer punto al primer punto L3 O Entero ⊗ Real O Lógico O Cadena Porcentaje de Triángulos Isósceles Por1= C1/C2 * 100 O Entero ⊗ Real O Lógico O Cadena
Cantidad de triángulos Isósceles C1 ⊗ Entero O Real O Lógico O Cadena
Cantidad total de triángulos C2 ⊗ Entero O Real O Lógico O Cadena
Porcentaje de Isósceles que son triángulo rectángulo
Por2 = C3/C1 *100 O Entero ⊗ Real O Lógico O Cadena
Cantidad de Isósceles que son triángulo rectángulo
C3 ⊗ Entero O Real O Lógico O Cadena
Bandera para capturar los puntos que forman el primer triángulo equilátero
Bandera ⊗ Entero O Real O Lógico O Cadena
Coordenadas de los puntos que forman el primer triángulo equilátero.
PX1,PY1,PX2,PY2,PX3,PY3 O Entero O Real O Lógico ⊗ 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 rectángulos 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
Ejercicios del Primer Parcial En VB2008
18
Período
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
Ejercicios del Primer Parcial En VB2008
19
Período
2-2009
Código en Visual Basic 2008
Module Module1
Sub Main()
'Declaración 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 rectángulos
Dim PX1, PY1, PX2, PY2, PX3, PY3 As Integer ' Puntos que formaron el
Se tiene la siguiente información 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= ingeniería edad tiempo en años que tiene trabajando en la empresa
Elabore un programa que determine lo siguiente:
Ejercicios del Primer Parcial En VB2008
21
Período
2-2009
1) Promedio de edad de las mujeres
2) Promedio del tiempo trabajando para la empresa del personal mayor de 40 años
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
Análisis del Problema
¿Qué información está presente?
¿Qué resultados exige? ¿Cómo lo logro?
1. Nombre del Empleado 2. Sexo del Empleado 3. Departamento 4. Edad 5. Tiempo trabajado en años 6. Centinela
1. Promedio de Edad de las mujeres
2. Promedio de Tiempo Trabajando para aquellos con Edad > 40 años
3. Nombre y Edad de la persona con mayor Tiempo en años 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, después de leer, si se verifica que Sexo=0, se suma la edad en S1 y se cuenta con C1; si además se verifica dpto=2, se cuenta este hecho en C3. Luego, para todo trabajador se cuenta en C4
3. Luego, se aplica la técnica de búsqueda 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. Después del ciclo, antes de imprimir los resultados, chequear si hubo mujeres, personas mayores de 40 años, antes de calcular los promedios
Tabla de Variables Descripción del dato Nombre de la Variable Tipo de Dato
Nombre del Empleado Nombre O Entero O Real O Lógico ⊗ Cadena
Sexo del Empleado Sexo ⊗ Entero O Real O Lógico O Cadena
Departamento Dpto ⊗ Entero O Real O Lógico O Cadena
Edad del Empleado Edad ⊗ Entero O Real O Lógico O Cadena Tiempo trabajado en años TT ⊗ Entero O Real O Lógico O Cadena
Centinela Cent O Entero O Real O Lógico ⊗ Cadena
Promedio de Edad Sexo=0 Pro1 <- S1/C1 O Entero ⊗ Real O Lógico O Cadena Sumatoria de Edad Sexo = 0 S1 O Entero ⊗ Real O Lógico O Cadena
Cantidad de veces que S1 sumo C1 ⊗ Entero O Real O Lógico O Cadena
Promedio de TT Edad >40 Pro2 <- S2/C2 O Entero ⊗ Real O Lógico O Cadena
Sumatoria de TT Edad > 40 S2 ⊗ Entero O Real O Lógico O Cadena Cantidad de veces que S2 sumo C2 ⊗ Entero O Real O Lógico O Cadena
Bandera para Mayor TT Bandera ⊗ Entero O Real O Lógico O Cadena
Mayor TT Mayor ⊗ Entero O Real O Lógico O Cadena
Nombre del Mayor TT MNombre O Entero O Real O Lógico ⊗ Cadena Edad del Mayor TT Medad ⊗ Entero O Real O Lógico O Cadena
Porcentaje de Sexo Por <- C3/C4 *100 O Entero ⊗ Real O Lógico O Cadena
Cantidad de veces que Sexo=0 y Dpto=2
C3 ⊗ Entero O Real O Lógico O Cadena
Cantidad total de empleados C4 ⊗ Entero O Real O Lógico O Cadena
Ejercicios del Primer Parcial En VB2008
22
Período
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 años 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 años 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
Ejercicios del Primer Parcial En VB2008
23
Período
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 años 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
Código en Visual Basic 2008
Module Module1
Sub Main()
'Declaración 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 años Trabajado en la empresa
Dim Cent As String
' Proceso - Auxiliar
Dim S1 As Integer ' Sumatoria de edad de las mujeres
Dim C1 As Integer ' Cantidad de veces que S1 sumo
Dim S2 As Integer ' Sumatoria de TT Edad > 40
Dim C2 As Integer ' Cantidad de veces que S2 sumo
Dim Bandera As Integer ' Bandera para mayor TT
Dim C3 As Integer ' cantidad de mujeres que trabajan en contabilidad
Dim C4 As Integer ' cantidad Total de Mujeres
Dim Mayor As Integer ' Mayor TT
Ejercicios del Primer Parcial En VB2008
24
Período
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
Console.Write("Tiempo en años 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")
Ejercicios del Primer Parcial En VB2008
25
Período
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 años 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 ejecución no se cierre
Console.ReadKey()
End Sub
End Module
Ejercicio 7
Dado el nombre, día de la semana (0=domingo, 1=lunes, 2=martes, etc.), número de horas
diurnas y número 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) Para cada trabajador, el monto a cobrar por concepto de salario 2) Nombre del primer trabajador cuyas horas nocturnas son mayores que las diurnas 3) Nombre del trabajador y día de la semana con mayor salario. 4) Promedio de horas de los trabajadores que laboraron el día domingo
Ejercicios del Primer Parcial En VB2008
26
Período
2-2009
Análisis del Problema
¿Qué información está presente?
¿Qué resultados exige? ¿Cómo lo logro?
1. Nombre del Empleado
2. Día de la semana 3. Horas Diurnas
Trabajadas 4. Horas Nocturnas
Trabajadas
5. Centinela
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, después de leer, si se verifica que Sexo=0, se suma la edad en S1 y se
cuenta con C1; si además se verifica dpto=2, se cuenta este hecho en C3. Luego, para todo trabajador se cuenta en C4
3. Luego, se aplica la técnica de búsqueda 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. Después del ciclo, antes de imprimir los resultados, chequear si hubo mujeres, personas mayores de 40 años, antes de calcular los
promedios
Tabla de Variables Descripción del dato Nombre de la Variable Tipo de Dato
Nombre del Empleado Nombre O Entero O Real O Lógico ⊗ Cadena
Día de la Semana DS ⊗ Entero O Real O Lógico O Cadena
Horas Diurnas HD ⊗ Entero O Real O Lógico O Cadena
Horas Nocturnas HN ⊗ Entero O Real O Lógico O Cadena
Centinela Cent O Entero O Real O Lógico ⊗ Cadena
Monto individual a cobrar cada trabajador
MT O Entero ⊗ Real O Lógico O Cadena
Bandera para capturar el nombre del primer trabajador con HN>HD
Bandera1 ⊗ Entero O Real O Lógico O Cadena
Nombre del primer trabajador con HN > ND
PNombre O Entero O Real O Lógico ⊗ Cadena
Bandera para mayor MT Bandera2 ⊗ Entero O Real O Lógico O Cadena
Mayor MT Mayor O Entero ⊗ Real O Lógico O Cadena
Nombre del Mayor MT MNombre O Entero O Real O Lógico ⊗ Cadena
Día del Mayor MT MDia ⊗ Entero O Real O Lógico O Cadena
Promedio de horas DS=0 Pro <- S1/C1 O Entero ⊗ Real O Lógico O Cadena
Sumador de horas S1 ⊗ Entero O Real O Lógico O Cadena
Cantidad de veces que S1 Sumo
C1 ⊗ Entero O Real O Lógico O Cadena
Ejercicios del Primer Parcial En VB2008
27
Período
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
Ejercicios del Primer Parcial En VB2008
28
Período
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
Código en Visual Basic 2008 Module Module1
Sub Main()
'Declaración 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 Bandera2 As Integer ' Bandera para el mayor MT
Dim Mayor As Single ' Mayor MT
Dim S1 As Integer ' Sumatoria de Hora con DS=0
Dim 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
Ejercicios del Primer Parcial En VB2008
29
Período
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 : " & Pro)
End If
'para que la ventana de ejecución no se cierre
Console.ReadKey()
End Sub
End Module
Ejercicios del Primer Parcial En VB2008
30
Período
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 mínimo. Los nombres de los candidatos y los resultados son
suministrados a una computadora. Elabore un programa que procese la información y
determine lo siguiente:
1) Cuántos candidatos aprobaron el test
2) Porcentaje de candidatos que no aprobaron el test
3) Cuál fue el mayor puntaje
4) Cuál fue el menor puntaje
5) Cuántos 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
Ejercicios del Primer Parcial En VB2008
31
Período
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
Código en Visual Basic 2008 Module Module1
Sub Main()
'Declaración 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
Ejercicios del Primer Parcial En VB2008
32
Período
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 &