NESESITO AYUDA EN ESTE PROGRAMA ME SALE ERROR EN TODA CODIFICACION Q PONGO

Iniciado por Gabriel094, 28 Enero 2013, 06:37 AM

0 Miembros y 5 Visitantes están viendo este tema.

MCKSys Argentina

Creo que en este caso Gabriel094 ha hecho el intento de solucionarlo por sus propios medios y no ha podido dar con la solucion.

En estos casos, estoy dispuesto a ayudar (al menos, hasta donde den mis conocimientos).

Por eso siempre pregunto por el código hecho hasta el momento y recuerdo que aquí no se hacen tareas.
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


alister

Cita de: MCKSys Argentina en 29 Enero 2013, 00:26 AM
Creo que en este caso Gabriel094 ha hecho el intento de solucionarlo por sus propios medios y no ha podido dar con la solucion.

En estos casos, estoy dispuesto a ayudar (al menos, hasta donde den mis conocimientos).

Por eso siempre pregunto por el código hecho hasta el momento y recuerdo que aquí no se hacen tareas.

estoy un poco de acuerdo, pero sigo viendo un problema severo de bases. y el tratamiento del problema, como si fuera una loteria, "a ver si cambiando el código acierto".
y la manera en la que estais orientándole tampoco me parece correcta. él debe construir el conocimiento dentro de su mente con las referencias adecuadas, no copiar y pegar snippets de código.

es mi opinion.
Back 2 business!

Danyfirex

@alist3r el que quiere aprender aprende. aunque le peguen  un snippet, solo es cuestión de analizarlo. a mi parecer.


Gabriel094

lo analice bn.. lo logre.. ahora... para q vean q io no hago deberes..¡¡¡¡ pos tenia planeado estudiar cada una de las cosas nuevas q agragaban en el codigo y si me intereso en aprender...¡¡¡¡ trankilos...¡¡¡¡ solo hice un intento y pedi ayuda nadies es perfecto icluso uno de uds.. a de haber pedido ayuda en algun momento.... asi mismo con los errores.. q por mas q los analicen se hacen faciles..¡¡¡¡¡

Gabriel094

te agradezco MCKSys Argentina hoy aprendi mucho gracias a ti.. gracias...¡¡¡¡¡¡

apuromafo CLS

aver un mini hint desde otro novato pero desde vb.net que he practicado en estos dias:

creo que estas viendo por arriba, sin entender como estructurar un poco el programa  y al preguntar no identificas tus errores por no saber que valores estan siendo procesados


yo estaba aprendiendo para vb.net  y llevare como 3 dias, pero reversando programas llevo mucho tiempo por ende es posible entender un poco mas estas logicas,  pero supongo que deben ser pacientes, porque no es un lugar para resolver tareas, sino para charlar de estos temas e ir guiando o aprendiendo, pero no que te lo hagan...


Asi que comento sobre la primera tarea y algo de tu segunda (a modo que vayas meditando) si es que no lo hiciste

un  programa que me permita iIngresar números hasta que uno sea cero. Calcular el promedio de ellos y mostrar el  resultado y cuántos se ingresaron.
puedo crear un form que muestre
1) valor a ingresar
2) suma
3) promedio
o inclusive un label que contenga todo concatenado
label.text1= "valores sumados fueron"+suma+" ; promedio : " + promedio +""

ahora debemos pensar en la logica:
debes tener contadores que permitan ingresar valores
y saber cuantos datos tienes

promedio= a la suma de los valores dividido en el total de datos
por lo cual necesitas
1) sumar los valores
2) contar los datos ingresados,
por lo cual luego tomas el
primero ( 1)  )  y lo divides en el 2)  
un error seria tomar el primero y dividirlo en el ultimo dato (eso hiciste)

cuando tengo el promedio deberia mostrarlo ya sea al label, texto o lo que sea
deberian haber 2 contadores, uno para la suma y otro para la cantidad de datos que se han ingresados, la otra variable es de la operacion de division, que puedes usar con cierta presicion o simplemente con valores(2 decimales, 1 decimal, sin decimales)

ahora veamos  lo que tienes

trabajaras con numeros:

Private Sub Command1_Click()
Dim n As Integer            
Dim suma As Integer  
Dim pro As Integer

una optimizacion seria en vb.net podria ser:
dim n,suma,pro,contador As integer

luego tenemos que creaste un if para cada valor I hasta 0, osea esperas que ingresen valores mediante inputbox


For I = 1 To 0
n = Val(InputBox("Dame un numero", "NUMEROS HASTA QUE UNO SEA 0"))
suma = suma + n
pro = suma / n


no hay filtros por si ingresas letras, no hay filtros si colocas comas o signos extraños

puedes colocar funciones para filtrar como isdigit()


optimizando al estilo vb.net :
para hacer mas simple el suma=suma+valor de n puede usarse una variable
suma += n   que es lo mismo que suma=suma+n

ahora viendo el segundo caso
pro = suma / n  

aqui hay una cosa especial:
el n contiene los valores ingresados en este caso el numero ingresado final, pero no es el numero de datos totales que hemos ingresado, por ende tu promedio esta mal enfocado
por lo cual la forma es crear un contador para saber cuantos datos fueron ingresados

luego como  @MCKSys Argentina  plantea usar otra estructura de ingreso

if Numero <> 0 then   ; si el numero es diferente de 0 procesa el loop , si no lo es seguira la rutina despues del loop

       Cantidad = Cantidad + 1
con esta variable cantidad el estara esperando contar cuantos datos fueron ingresados

pero el a diferencia usa while ->
el define el loop como
Do While Numero <> 0
   Numero = Val(InputBox("Dame un numero", "NUMEROS HASTA QUE UNO SEA 0"))
   if Numero <> 0 then
       Cantidad = Cantidad + 1
       Suma = Suma + Numero
       Pro = Suma / Cantidad
   end if
Loop


siendo los valores iniciales 0 y aun asi faltando un mini filtro de los valores ingresados.


tu proximo codigo refiere que si el valor de numero es cero muestra suma, si no para el proximo numero el promedio

pero como no pusiste contador van a haber problemas en mostrar los datos
*
If n = 0 Then
label1.Text = suma
Else
Next I
label2.pro
End If
End Sub


*
Claramente el codigo de @MCKSys Argentina esta funcionando para el primer caso
siempre y cuando ingresen numeros ;)


saludos Apuromafo





Tarea 2:
deberia ser la misma historia , comenzar a ver cuantos casos vamos a manejar
tienes snippet de  @MCKSys Argentina

pero no dudes de preguntar si tienes dudas ,mira que puedes hacer codigos largos o cortos, pero es la logica la que te permitira hacerlo mas breve...





Ingresar las notas de 10 alumnos pertenecientes a un curso e indicar:
Cantidad de alumnos que aprobaron con una nota comprendida entre 4 y 6.
Cantidad de alumnos aplazados (nota menor a 4).
Cantidad de alumnos promocionados (nota superior o igual o 6).

esta es la codificacion

ante el evento del boton funciona
Private Sub Command1_Click()
Dim n As Integer
For I = 1 To 10


n = Val(InputBox("Dame un NOTAS", "INGRESA LOS NOTAS########"))
If n >= 6 Then
Label1.Caption = n
Else
End If



en este primer caso  dices que el valor si es mayor a 6 muestre el label, pero coloca un contador ejemplo

buenos=bueno+1  o bien buenos +=1

siendo ese contador en integer(guiandote como lo anterior), pero para mostrarlo deberias codificarlo en string, por lo menos en vb.net se hace asi
buenos as string
bueno as integer
buenos=(buenos+1).tostring

luego envio el caption de lo que llevo
luego haces las mismas condicionantes, estas mal usando el valor n

If n >= 4 Then
Label2.Caption = n
Else
Label3.Caption = n
End If
Next I
End Sub


lo mismo se ve en estos casos, debes crear un mini contador para los datos que tienes para eso, son solo 3 contadores

luego el valor final que mostraras no debe ser n con el ultimo dato, sino mas bien el valor contador para cada caso.

insisto, aun no veo que filtren que datos son ingresados, si es realmente un numero entre 0 y cierto valor, por ejemplo que sumen un 8, cuando tenia notas del 0 al 7


otra idea para ir comparando los valores es que vayas creando mensajes
con variables en formato de string, asi luego comparas si vas bien o no
messagebox.show("mensaje")

lo importante es saber que hace cada cosa, variable evento  a modo de entender que accion hace.
saludos cordiales Apuromafo


MCKSys Argentina

Cita de: Gabriel094 en 29 Enero 2013, 00:55 AM
te agradezco MCKSys Argentina hoy aprendi mucho gracias a ti.. gracias...¡¡¡¡¡¡

Como dijo el chavo del 8: No hay por dónde...  :P

Saludos!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


alister

venga! voy a admitir que el alumno progresa bien! y que mi opinion anterior está dejando de aplicarse a el! :D
jajajaja
Back 2 business!

Gabriel094

jejejejejeje pos... sip.... aprendi muxo y seguire aprendiendo eso siempre.y cuando.. me enseñen.. jejejje y pa ir io mediante el internet.. toodo lo nuevo q dan pues.. consultar gracias... a todos....¡¡¡ jejjej ;-) ;-) :huh: :huh: ::) ::) :D :D