Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
- DEPARTAMENTO DE COMPUTACIÓN
CÁTEDRA DE COMPUTACIÓN II - PRIMER PERIODO LECTIVO DE 2018.
RECIPIENTES DE GAS
Una empresa distribuidora de gas realiza una licitación pública para la construcción de
tanques de acero con la forma de un cilindro circular recto con semiesferas en los
extremos (ver figura) para almacenar gas propano. Para el control de cada una de las
propuestas recibidas la empresa cuenta con un archivo de nombre “propuestas.txt”
como los siguientes datos:
ANÁLISIS
PROGRAMA
'Programa que determina el volumen y costo de recipientes para gas
'y estadísticas sobe ellos
'Elaborado por: J. Muñoz Fecha: 01-05-2018
Module Module1
'DECLARACIÓN de estucturas
Structure archivo
Dim na As Integer
Dim nomba As String
Sub abriral(ByVal na As Integer, ByVal nomba As String)
FileOpen(na, nomba, OpenMode.Input)
End Sub
Sub abrirae(ByVal na As Integer, ByVal nomba As String)
FileOpen(na, nomba, OpenMode.Output)
End Sub
Sub cerrara(ByVal na As Integer)
FileClose(na)
End Sub
End Structure
Structure esfera
Dim r As Single
Function vol(ByVal r As Single) As Single
vol = (4 / 3 * 3.14 * r ^ 3)
End Function
UNIVERSIDAD DE CARABOBO - FACULTAD DE INGENIERÍA. - DEPARTAMENTO DE COMPUTACIÓN
CÁTEDRA DE COMPUTACIÓN II - PRIMER PERIODO LECTIVO DE 2018.
Sub Main()
'DECLARACIÓN de variables
'Var. de ENTRADA
Dim arch As archivo
Dim prop As propuesta
'Var. de SALIDA
Dim provmin As String
Dim porc, prom As Single
'Var. de PROCESO
Dim fechamin As Date
Dim cpnocumple, cpsicumple, cpropuestas As Integer
Dim band As Integer
Dim suma As Single
'APERTURA de archivos
UNIVERSIDAD DE CARABOBO - FACULTAD DE INGENIERÍA. - DEPARTAMENTO DE COMPUTACIÓN
CÁTEDRA DE COMPUTACIÓN II - PRIMER PERIODO LECTIVO DE 2018.
arch.abriral(1, "propuestas.txt")
'FileOpen(1, "propuestas.txt", OpenMode.Input)
'INICIALIZACIÓN de variables
cpnocumple = 0 : cpsicumple = 0 : cpropuestas = 0
suma = 0 : band = 0
'ESCRITURA de resultados
Console.WriteLine("Nro. Proveedor Volumen Costo Cumple")
Console.WriteLine("==== ========== ======= ===== ======")
'PROCESAMIENTO de datos
While Not EOF(1)
With prop
'LECTURA de datos
.leer(1, prop)
cpropuestas = cpropuestas + 1
'ESCRITURA de resultados
Console.Write(Format(.nro, " 0# ") & .proveedor.PadRight(10))
Console.Write(Format(.rec.vol(.rec.e.r, .rec.c.l), " ####.00").PadLeft(10))
Console.Write(Format(.costo(.rec.e.r, .rec.c.l, 2500), " ####.00").PadLeft(10))
If .rec.vol(.rec.e.r, .rec.c.l) >= 30 And .rec.vol(.rec.e.r, .rec.c.l) <= 35
Then
cpsicumple = cpsicumple + 1
suma = suma + .costo(.rec.e.r, .rec.c.l, 2500)
Console.WriteLine(" ok")
Else
cpnocumple = cpnocumple + 1
Console.WriteLine(" x")
End If
If band = 0 Then
fechamin = .fecha
provmin = .proveedor
band = 1
Else
If .fecha < fechamin Then
fechamin = .fecha
provmin = .proveedor
End If
End If
End With
End While
porc = cpnocumple / cpropuestas * 100
'ESCRITURA de resultados
Console.WriteLine()
Console.WriteLine("Porcentaje de propuestas que NO cumplen: " & porc & "%")
If cpsicumple > 0 Then
prom = suma / cpsicumple
Console.WriteLine("Promedio del costo de las propuestas que cumplen: Bs." & prom)
Else
Console.WriteLine("No hay propuestas que cumplen")
End If
Console.WriteLine("Proveedo con la propuesta más temprana: " & provmin)
'CIERRE de archivos
arch.cerrara(1)
Console.ReadKey() 'Pausa
End Sub
End Module
UNIVERSIDAD DE CARABOBO - FACULTAD DE INGENIERÍA. - DEPARTAMENTO DE COMPUTACIÓN
CÁTEDRA DE COMPUTACIÓN II - PRIMER PERIODO LECTIVO DE 2018.
“propuestas.txt”
01, Que Tanque, 02/05/2018,1.0, 1.0
02, Más Tanque, 03/05/2018,1.0, 1.1
03, Puro Gas , 04/05/2018,1.5, 1.0
04, Recipiente, 05/05/2018,1.5, 2.0
05, Ese Tanque, 06/05/2018,1.5, 2.5
06, Gas y Gas , 07/05/2018,1.5, 2.7
07, Mejora Gas, 08/05/2018,1.5, 3.0
08, Gas Tanque, 09/05/2018,2.0, 1.0
09, GasRecTanq, 10/05/2018,2.0, 2.0
10, Solo Gas , 11/05/2018,2.5, 2.0
EJECUCIÓN 1
NOTA: recuerde, antes de “correr” el programa, elaborar (con el programa Bloc de notas u
otro editor de texto) el archivo “propuestas.txt” y ubicarlo en la carpeta Debug de su
proyecto.
Documentos – Visual Studio 2010 – Projects – Su proyecto – Su proyecto - bin - Debug
NOTA: recuerde ejecutar “correr” el programa PASO a PASO empleando para ello la tecla F8 y
así poder observar como se ejecuta cada instrucción del programa una por una.
NOTA: durante la ejecución PASO a PASO (F8) haga clic en el botón Variables locales
(Ctr+Alt+V, L), ver figura, para observar los valores que toman las variables durante la
ejecución del programa.
NOTA: realice la Corrida en frio tal como se desarrollo en clase, compárela con la ejecución
PASO a PASO (F8) y con los valores que toman las variables (Variables locales) durante la
UNIVERSIDAD DE CARABOBO - FACULTAD DE INGENIERÍA. - DEPARTAMENTO DE COMPUTACIÓN
CÁTEDRA DE COMPUTACIÓN II - PRIMER PERIODO LECTIVO DE 2018.
ejecución del programa. Verifique finalmente los resultados finales del programa con sus
propios cálculos, para así validar estos y la efectividad del programa.