Visual Basic - Ayuda con programa

Life is soft - evento anual de software empresarial
   
Vista:

Ayuda con programa

Publicado por rodolfredo (2 intervenciones) el 20/06/2012 07:15:56
Una concesionaria de autos usados dispone de 10 autos diferentes para reparar y luego poner a la venta. De esos autos conoce su dominio (Patente), el precio de compra y el presupuesto de las reparaciones.

Hacer un programa que permita cargar los datos de los autos e informe:
- Cantidad de autos con precio de compra mayor a $12000
- Total que se prevee gastar en reparaciones.
- Dominio y precio de todos los autos ordenados por precio en forma descendente.
- Dominio de todos los autos cuyo presupuesto de reparaciones es mayor a la mitad del precio de compra.
- Dominio y precio del auto más barato.

Desde el principio empezé mal..
quize hacer el contador para los autos con precio mayor a $12000 y estó puse..

Public Sub ContarAutos(ByVal precio() As Integer)
Dim i, c As Integer
c = 0
For i = 1 To precio.Length - 1
If precio > 12000 Then
c = c + 1
End If
Next
End Sub

en "precio > 12000" me dice que ">" no esta definido para los tipos integer.. porque es??..
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Ayuda con programa

Publicado por cmgcharli (128 intervenciones) el 20/06/2012 08:26:05
En esta linea (ByVal precio() As Integer) precio() es una Variable matriz
En IF precio > 12000 Then precio es una variable distinta deberia ser IF Precio(i)> 1200 then......
En la linea For i = 1 To precio.Length - 1 deberia ejecutar las sentencias hasta el subindice mayor de la matriz precio() luego deberia ser For i=Lbound(precio,1) To Ubound(precio,1)
Lbound indicara el subindice menor de la matriz donde debe enpezar el bucle For.....Next...
Ubound Indicara el subindice mayor de la matriz
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Ayuda con programa

Publicado por rodolfredo (2 intervenciones) el 22/06/2012 18:31:25
Hola, gracias por la ayuda, pude solucionar el problema, ahora vengo con más avances y más errores..

Esto es lo que me salió hasta ahora para el punto 3 y 5.

- Dominio y precio de todos los autos ordenados por precio en forma descendente.
- Dominio y precio del auto más barato.

Module Module1

Sub Main()
Dim patente(3) As String
Dim precio(3) As Integer
Dim presupuesto(3) As Integer

CargarDatos(patente, precio, presupuesto)
ContarAutos(precio)
Ordenar(patente, precio, presupuesto)
MostrarDatos(patente, precio)

Console.ReadLine()
End Sub

Public Sub CargarDatos(ByVal patente As String(), ByVal precio As Integer(), ByVal presupuesto() As Integer)
Dim i As Integer

For i = 1 To patente.Length - 1
Console.WriteLine("Ingrese los datos del automóvil " & i)
Console.WriteLine("Ingrese la patente")
patente(i) = Console.ReadLine
Console.WriteLine("Ingrese el precio")
precio(i) = Console.ReadLine
Console.WriteLine("Ingrese el presupuesto de reparación")
presupuesto(i) = Console.ReadLine
Next
End Sub

Public Sub ContarAutos(ByVal precio() As Integer)
Dim i, c As Integer
c = 0
For i = 1 To precio.Length - 1
If precio(i) > 15000 Then
c = c + 1
Console.WriteLine("Los autos con precio mayor a $15000 son " & c)
End If
Next
End Sub

Public Sub Ordenar(ByVal patente As String(), ByVal precio As Integer(), ByVal presupuesto() As Integer)
Dim i, menor, mayor As Integer
Dim auxPatente As String
Dim auxPrecio As Integer
Dim auxPresupuesto As Single
Dim auxmenor As Single
For i = 1 To patente.Length - 2


auxPatente = patente(i)
patente(i) = patente(mayor)
patente(mayor) = auxPatente


auxPrecio = precio(i)
precio(i) = precio(mayor)
precio(mayor) = auxPrecio

menor = Buscarmenor(patente, i)
auxmenor = auxPresupuesto
auxPresupuesto = presupuesto(menor)
presupuesto(menor) = auxPresupuesto
Next
End Sub

Private Function Buscarmenor(ByVal patente As String(), ByVal fin As Integer) As Integer
Dim l As Integer
Dim menor As Integer = fin

For l = fin + 1 To patente.Length - 1
If patente(l) > patente(menor) Then
menor = l
End If
Next

Return menor
End Function

Public Sub MostrarDatos(ByVal patente As String(), ByVal precio() As Integer)
Dim i As Integer
For i = 1 To precio.Length - 1
Console.WriteLine("Autos Ordenados por precio:" & patente(i) & precio(i))
Next
Dim k As Integer
For k = 0 To 1
Console.WriteLine("Precio del auto más barato: " & patente(i) & precio(i))
Next

End Sub







End Module


No entiendo porque al ejecutarlo me dice 2 veces el resultado del primero punto (que había quedado funcionando bien hasta entonces), y me ordena mal los datos y los muestra 3 veces tambien.. Espero alguna respuesta, desde ya, gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar