elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado:


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 9 [10] 11 12
91  Programación / .NET (C#, VB.NET, ASP) / Duda con uno de mis ejercicios en: 1 Febrero 2013, 17:57 pm
Tengo una duda con uno de mis ejercicios, en el que me he propuesto hacer una carga aleatoria sin repetir ingún nº en una tabla de 25elementos. No se si es un ejercicio del que necesito mas nociones básicas, puesto que solo llevo 3meses de curso y hemos llegado hasta los arrays (ordenación y búsquedas). No se si me hace falta algo algún conocimiento más.

En principio necesito alguna idea que me ilumine el camino a seguir ya que lo que he realizado tiene sentido pero no se como hacer la parte de generar un nº diferente a los que ya están puestos.

Código
  1. Public Class Form1
  2.  
  3.    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
  4.  
  5.        Dim TB(4, 4) As Short
  6.        Dim TBC(24) As Short
  7.        Dim C_NUM As Short = 0
  8.        Dim H As Short = 0
  9.  
  10.        For I As Short = 0 To 4
  11.            For J As Short = 0 To 4
  12.                TB(I, J) = Int((25 - 1 + 1) * Rnd()) + 1
  13.                TB(I, J) = TBC(H)
  14.                H = H + 1
  15.            Next
  16.        Next
  17.        H = 0
  18.  
  19.  
  20.        Do
  21.            For I = 0 To 4
  22.                For J = 0 To 4
  23.                    If TBC(H) = TB(I, J + 1) Then
  24.                        C_NUM = C_NUM + 1
  25.                        TB(I, J + 1) = Int((24 - 0 + 1) * Rnd()) + 0
  26.                    Else
  27.                        C_NUM = C_NUM - 1
  28.                    End If
  29.                Next
  30.            Next
  31.            H = H + 1
  32.        Loop While C_NUM > 0
  33.  
  34.        For I = 0 To 4
  35.            For J = 0 To 4
  36.                TextBox1.Text = TextBox1.Text & TB(I, J)
  37.            Next
  38.        Next
  39.  
  40.  
  41.  
  42.    End Sub
  43. End ClasS
92  Programación / Programación General / Re: ¿como desarrollar la logica de programacion con pseudocodigo? en: 29 Enero 2013, 17:36 pm
Creo que hablo por experiencia, a quienes dicen que empieces por programar directamente en un lenguaje, seguramente un profesor les fue enseñando  directamente en ese lenguaje, sin embargo, aquellos que saben seudocódigo tan solo tienen que traducir su lógica al lenguaje deseado aprendieédose justamente lo que te están ofreciendo como tutoriales, la sintaxis y la declaración de variables.

Tal y como te han dicho no es lo mismo entender que hace un código en un lenguaje que en seudocódigo, en seudocódigo se entiende todo, solo usas el español sin mas. Y  por cierto los manuales normalmente no hablan y omiten lo que es un acumulador, un contador, totalizador, algoritmo de ordenación, o el método del switch porque lo dan por sentado, sin embargo esto si que te lo cuentan en el seudocódigo, dándote una base mínima de las operaciones, expresiones que puedes realizar.

Una vez aprendido y entendido el seudocódigo es entonces cuando tienes que meterte con los tutoriales que están por internet y que explican que tipo de variables puedes usar, como llamar a las funciones, que sintaxis tienen, que tipo de expresiones se pueden usar, pero no te hablarán de como hacer ningún algoritmo, que  por lo que veo es justo lo que buscas.

Aquí te dejo http://www.mediafire.com/?eqy3l7yzm5w 52 ejercicios en seudocódigo resueltos.

Y aquí un supermanual de seudocódigo: http://www.mediafire.com/?0wd5e0vyend

Te pasaría mis propios apuntes, pero los tengo hechos a papel y boli, el día que los pase a maquina... serán una obra de arte porque viene todo explicado de una forma sencillísima de entender.
93  Programación / .NET (C#, VB.NET, ASP) / Re: Duda ejercicio basico de programacion en: 25 Enero 2013, 16:59 pm
Justo es este tipo de cosas las que me fallan :), yo mismo he visto muy raro tanto if... y elseif junto y repetido, lo que no me he dado cuenta es que justo como dices con un select case puedo usarlo para todas las opciones :).

Gracias de nuevo :D
94  Programación / .NET (C#, VB.NET, ASP) / Re: Duda ejercicio basico de programacion en: 25 Enero 2013, 16:31 pm
Muchas gracias! ya veo lo que me faltaba !
 ;-)
95  Programación / .NET (C#, VB.NET, ASP) / Re: Duda ejercicio basico de programacion en: 24 Enero 2013, 21:33 pm
Encuentro una posible solución diferenciando el numero que entre el jugador 1 y el jugador 2, pero me parece mal hecho porque duplico código y lo que es peor, saldría bien porque son 2 jugadores, pero si fueran 23 jugadores queda completamente descartada esa opción.
96  Programación / .NET (C#, VB.NET, ASP) / Duda ejercicio basico de programacion en: 24 Enero 2013, 21:07 pm
Muy buenas, estaba haciendo un ejercicio en visual sobre un juego de adivinar un nº que se introduce por pantalla y no se como hacer una de las partes. Exactamente la parte de los acumuladores de los puntos, por no querer rescribir todo el código lo he ido haciendo de una manera y al final me esta dando mas problemas que otra cosa.

El problema dice así: se desea realizar un programa donde se tienen a 2 jugadores y un arbitro, el arbitro introduce un nº por teclado y los 2 jugadores intenta averiguarlo. El nº debe estar entre el 1 y 100. Como máximo tienen 5 intentos y juegan de manera alternada. El que acierta a la primera obtendra 10 pts, si es a la 2ª 8puntos, 3ª 6puntos, 4ª 4 puntos 5ª 2puntos 6ª pierden el juego.
Hay que darles pistas a los jugadores si el nº introducido se encuentra a + o - 3 del nº a acertar mostrar "quemando", si es + o - 7 caliente, si es + o - 15 mostrar templado, resto frio.
Se acumulan los puntos, de forma que  se muestren siempre los puntos aun terminando una partida, poner un botón de inicio y otro de finalizar.

Por ahora me sale todo bien, excepto que siempre se me mete por la misma sentencia en puntos acumulados y gane quien gane se los da siempre al jugador 1.
¿ De que otra forma debería haberlo hecho  o que tengo que cambiar ?, por otra parte como hago un botón finalizar que interactue en el código del sub_button1 que es el botón de iniciar ?.

Código
  1. Public Class Form1
  2.    Dim T_PUNTOS_J1 As Short
  3.    Dim T_PUNTOS_J2 As Short
  4.    Dim I As Integer
  5.  
  6.    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  7.        Dim NUM_ACERTAR As Short
  8.        Dim NUM As Short
  9.        Dim PISTAS As Short
  10.        Dim B As Boolean = False
  11.        Dim C_INTENTOS As Short = 0
  12.        Dim C_INTENTOS_J2 As Short = 0
  13.  
  14.        For Me.I = 0 To 999
  15.  
  16.            NUM_ACERTAR = InputBox("Que el arbitro introduzca un nº entre 1 y 100")
  17.            Do Until NUM_ACERTAR >= 1 And NUM_ACERTAR <= 100
  18.                NUM_ACERTAR = InputBox("Introduzca un nº entre 1 y 100")
  19.            Loop
  20.  
  21.            Do
  22.                If B = False Then
  23.                    B = True
  24.                    C_INTENTOS = C_INTENTOS + 1
  25.                    NUM = InputBox("Turno del Jugador 1, intento nº: " & C_INTENTOS, "Turno Jugador 1", 0)
  26.                    TextBox4.Text = TextBox4.Text & " Numero: " & NUM & Chr(13) & Chr(10)
  27.                Else
  28.                    B = False
  29.                    C_INTENTOS_J2 = C_INTENTOS_J2 + 1
  30.                    NUM = InputBox("Turno del Jugador 2, intento nº: " & C_INTENTOS_J2, "Turno Jugador 2", 0)
  31.                    TextBox4.Text = TextBox4.Text & " Numero: " & NUM & Chr(13) & Chr(10)
  32.                End If
  33.  
  34.                'MENSAJES DE TEXTO PISTAS
  35.                If NUM_ACERTAR > NUM Then
  36.                    PISTAS = NUM_ACERTAR - NUM
  37.                ElseIf NUM_ACERTAR < NUM Then
  38.                    PISTAS = NUM - NUM_ACERTAR
  39.                ElseIf NUM = NUM_ACERTAR Then
  40.                    PISTAS = 0
  41.                End If
  42.  
  43.                If PISTAS <= 3 Then
  44.                    TextBox1.Text = "QUEMANDO"
  45.                ElseIf PISTAS <= 7 Then
  46.                    TextBox1.Text = "CALIENTE"
  47.                ElseIf PISTAS <= 15 Then
  48.                    TextBox1.Text = "TEMPLADO"
  49.                Else
  50.                    TextBox1.Text = "FRIO"
  51.                End If
  52.  
  53.                'RECUENTOS DE LOS PUNTOS ACUMULADOS
  54.                If C_INTENTOS = 1 And NUM = NUM_ACERTAR Then
  55.                    T_PUNTOS_J1 = T_PUNTOS_J1 + 10
  56.                    C_INTENTOS = 6
  57.                    TextBox1.Text = "HAS GANADO J1"
  58.                ElseIf C_INTENTOS = 2 And NUM = NUM_ACERTAR Then
  59.                    T_PUNTOS_J1 = T_PUNTOS_J1 + 8
  60.                    C_INTENTOS = 6
  61.                    TextBox1.Text = "HAS GANADO J1"
  62.                ElseIf C_INTENTOS = 3 And NUM = NUM_ACERTAR Then
  63.                    T_PUNTOS_J1 = T_PUNTOS_J1 + 6
  64.                    C_INTENTOS = 6
  65.                    TextBox1.Text = "HAS GANADO J1"
  66.                ElseIf C_INTENTOS = 4 And NUM = NUM_ACERTAR Then
  67.                    T_PUNTOS_J1 = T_PUNTOS_J1 + 4
  68.                    C_INTENTOS = 6
  69.                    TextBox1.Text = "HAS GANADO J1"
  70.                ElseIf C_INTENTOS = 5 And NUM = NUM_ACERTAR Then
  71.                    T_PUNTOS_J1 = T_PUNTOS_J1 + 2
  72.                    C_INTENTOS = 6
  73.                    TextBox1.Text = "HAS GANADO J1"
  74.                ElseIf C_INTENTOS_J2 = 1 And NUM = NUM_ACERTAR Then
  75.                    T_PUNTOS_J2 = T_PUNTOS_J2 + 10
  76.                    C_INTENTOS = 6
  77.                    TextBox1.Text = "HAS GANADO J2"
  78.                ElseIf C_INTENTOS_J2 = 2 And NUM = NUM_ACERTAR Then
  79.                    T_PUNTOS_J2 = T_PUNTOS_J2 + 8
  80.                    C_INTENTOS = 6
  81.                    TextBox1.Text = "HAS GANADO J2"
  82.                ElseIf C_INTENTOS_J2 = 3 And NUM = NUM_ACERTAR Then
  83.                    T_PUNTOS_J2 = T_PUNTOS_J2 + 6
  84.                    C_INTENTOS = 6
  85.                    TextBox1.Text = "HAS GANADO J2"
  86.                ElseIf C_INTENTOS_J2 = 4 And NUM = NUM_ACERTAR Then
  87.                    T_PUNTOS_J2 = T_PUNTOS_J2 + 4
  88.                    C_INTENTOS = 6
  89.                    TextBox1.Text = "HAS GANADO J2"
  90.                ElseIf C_INTENTOS_J2 = 5 And NUM = NUM_ACERTAR Then
  91.                    T_PUNTOS_J2 = T_PUNTOS_J2 + 2
  92.                    C_INTENTOS = 6
  93.                    TextBox1.Text = "HAS GANADO J2"
  94.                End If
  95.  
  96.                TextBox2.Text = T_PUNTOS_J1
  97.                TextBox3.Text = T_PUNTOS_J2
  98.  
  99.            Loop Until C_INTENTOS >= 5
  100.            I = 99999
  101.        Next
  102.    End Sub
  103.  
  104. End Class
  105.  
97  Programación / Programación Visual Basic / Re: Duda ejercicio basico de programacion en: 24 Enero 2013, 21:03 pm
vaya, crei que eran lo mismo :/
98  Programación / Programación Visual Basic / Duda ejercicio basico de programacion en: 24 Enero 2013, 20:23 pm
Muy buenas, estaba haciendo un ejercicio en visual sobre un juego de adivinar un nº que se introduce por pantalla y no se como hacer una de las partes. Exactamente la parte de los acumuladores de los puntos, por no querer rescribir todo el código lo he ido haciendo de una manera y al final me esta dando mas problemas que otra cosa.

El problema dice así: se desea realizar un programa donde se tienen a 2 jugadores y un arbitro, el arbitro introduce un nº por teclado y los 2 jugadores intenta averiguarlo. El nº debe estar entre el 1 y 100. Como máximo tienen 5 intentos y juegan de manera alternada. El que acierta a la primera obtendra 10 pts, si es a la 2ª 8puntos, 3ª 6puntos, 4ª 4 puntos 5ª 2puntos 6ª pierden el juego.
Hay que darles pistas a los jugadores si el nº introducido se encuentra a + o - 3 del nº a acertar mostrar "quemando", si es + o - 7 caliente, si es + o - 15 mostrar templado, resto frio.
Se acumulan los puntos, de forma que  se muestren siempre los puntos aun terminando una partida, poner un botón de inicio y otro de finalizar.

Por ahora me sale todo bien, excepto que siempre se me mete por la misma sentencia en puntos acumulados y gane quien gane se los da siempre al jugador 1.
¿ De que otra forma debería haberlo hecho  o que tengo que cambiar ?, por otra parte como hago un botón finalizar que interactue en el código del sub_button1 que es el botón de iniciar ?.

Código
  1. Public Class Form1
  2.    Dim T_PUNTOS_J1 As Short
  3.    Dim T_PUNTOS_J2 As Short
  4.    Dim I As Integer
  5.  
  6.    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  7.        Dim NUM_ACERTAR As Short
  8.        Dim NUM As Short
  9.        Dim PISTAS As Short
  10.        Dim B As Boolean = False
  11.        Dim C_INTENTOS As Short = 0
  12.        Dim C_INTENTOS_J2 As Short = 0
  13.  
  14.        For Me.I = 0 To 999
  15.  
  16.            NUM_ACERTAR = InputBox("Que el arbitro introduzca un nº entre 1 y 100")
  17.            Do Until NUM_ACERTAR >= 1 And NUM_ACERTAR <= 100
  18.                NUM_ACERTAR = InputBox("Introduzca un nº entre 1 y 100")
  19.            Loop
  20.  
  21.            Do
  22.                If B = False Then
  23.                    B = True
  24.                    C_INTENTOS = C_INTENTOS + 1
  25.                    NUM = InputBox("Turno del Jugador 1, intento nº: " & C_INTENTOS, "Turno Jugador 1", 0)
  26.                    TextBox4.Text = TextBox4.Text & " Numero: " & NUM & Chr(13) & Chr(10)
  27.                Else
  28.                    B = False
  29.                    C_INTENTOS_J2 = C_INTENTOS_J2 + 1
  30.                    NUM = InputBox("Turno del Jugador 2, intento nº: " & C_INTENTOS_J2, "Turno Jugador 2", 0)
  31.                    TextBox4.Text = TextBox4.Text & " Numero: " & NUM & Chr(13) & Chr(10)
  32.                End If
  33.  
  34.                'MENSAJES DE TEXTO PISTAS
  35.                If NUM_ACERTAR > NUM Then
  36.                    PISTAS = NUM_ACERTAR - NUM
  37.                ElseIf NUM_ACERTAR < NUM Then
  38.                    PISTAS = NUM - NUM_ACERTAR
  39.                ElseIf NUM = NUM_ACERTAR Then
  40.                    PISTAS = 0
  41.                End If
  42.  
  43.                If PISTAS <= 3 Then
  44.                    TextBox1.Text = "QUEMANDO"
  45.                ElseIf PISTAS <= 7 Then
  46.                    TextBox1.Text = "CALIENTE"
  47.                ElseIf PISTAS <= 15 Then
  48.                    TextBox1.Text = "TEMPLADO"
  49.                Else
  50.                    TextBox1.Text = "FRIO"
  51.                End If
  52.  
  53.                'RECUENTOS DE LOS PUNTOS ACUMULADOS
  54.                If C_INTENTOS = 1 And NUM = NUM_ACERTAR Then
  55.                    T_PUNTOS_J1 = T_PUNTOS_J1 + 10
  56.                    C_INTENTOS = 6
  57.                    TextBox1.Text = "HAS GANADO J1"
  58.                ElseIf C_INTENTOS = 2 And NUM = NUM_ACERTAR Then
  59.                    T_PUNTOS_J1 = T_PUNTOS_J1 + 8
  60.                    C_INTENTOS = 6
  61.                    TextBox1.Text = "HAS GANADO J1"
  62.                ElseIf C_INTENTOS = 3 And NUM = NUM_ACERTAR Then
  63.                    T_PUNTOS_J1 = T_PUNTOS_J1 + 6
  64.                    C_INTENTOS = 6
  65.                    TextBox1.Text = "HAS GANADO J1"
  66.                ElseIf C_INTENTOS = 4 And NUM = NUM_ACERTAR Then
  67.                    T_PUNTOS_J1 = T_PUNTOS_J1 + 4
  68.                    C_INTENTOS = 6
  69.                    TextBox1.Text = "HAS GANADO J1"
  70.                ElseIf C_INTENTOS = 5 And NUM = NUM_ACERTAR Then
  71.                    T_PUNTOS_J1 = T_PUNTOS_J1 + 2
  72.                    C_INTENTOS = 6
  73.                    TextBox1.Text = "HAS GANADO J1"
  74.                ElseIf C_INTENTOS_J2 = 1 And NUM = NUM_ACERTAR Then
  75.                    T_PUNTOS_J2 = T_PUNTOS_J2 + 10
  76.                    C_INTENTOS = 6
  77.                    TextBox1.Text = "HAS GANADO J2"
  78.                ElseIf C_INTENTOS_J2 = 2 And NUM = NUM_ACERTAR Then
  79.                    T_PUNTOS_J2 = T_PUNTOS_J2 + 8
  80.                    C_INTENTOS = 6
  81.                    TextBox1.Text = "HAS GANADO J2"
  82.                ElseIf C_INTENTOS_J2 = 3 And NUM = NUM_ACERTAR Then
  83.                    T_PUNTOS_J2 = T_PUNTOS_J2 + 6
  84.                    C_INTENTOS = 6
  85.                    TextBox1.Text = "HAS GANADO J2"
  86.                ElseIf C_INTENTOS_J2 = 4 And NUM = NUM_ACERTAR Then
  87.                    T_PUNTOS_J2 = T_PUNTOS_J2 + 4
  88.                    C_INTENTOS = 6
  89.                    TextBox1.Text = "HAS GANADO J2"
  90.                ElseIf C_INTENTOS_J2 = 5 And NUM = NUM_ACERTAR Then
  91.                    T_PUNTOS_J2 = T_PUNTOS_J2 + 2
  92.                    C_INTENTOS = 6
  93.                    TextBox1.Text = "HAS GANADO J2"
  94.                End If
  95.  
  96.                TextBox2.Text = T_PUNTOS_J1
  97.                TextBox3.Text = T_PUNTOS_J2
  98.  
  99.            Loop Until C_INTENTOS >= 5
  100.            I = 99999
  101.        Next
  102.    End Sub
  103.  
  104. End Class
99  Programación / Programación General / Re: Consejo para recien iniciado en: 23 Enero 2013, 21:14 pm
Mmm... para empezar te recomiendo un manual de seudocódigo donde veas exactamente como funcionan las estructuras, que estructura usar y porque, e incluso realizar la operaciones a (mano ) papel y boli que fue como me enseñaron hace solamente 3 meses :) para saber que va haciendo por ejemplo un algoritmo de ordenación shell. Ayuda muchísimo hacer esto último para entender la programación. Te pasaría mis apuntes pero los tengo a mano porque no nos dejaban encender ni ordenador en clase, decían que si no se hacían las cosas de cabeza y sin fallos nos mal acostumbráabamos a picar código directamente sin pensar, y coincido con esto último, ahora es raro encontrar errores de programación en mis ejercicios.
http://www.mediafire.com/?mngjljykxny
Este enlace es un manual bastante parecido a mis apuntes muy completo sobre programación con ejercicios y explicaciones.

http://www.mediafire.com/?eqy3l7yzm5w
Este último son ejercicios resueltos en seudocodigo, pero antes para hacerlos necesitas saber como funciona el seudocodigo con el manual anterior.

Un saludo ;)
100  Programación / Programación General / Re: ¿Que te gusta en un lenguaje de programacion? en: 18 Enero 2013, 20:00 pm
En ese caso el Ide me parece fantástico
Páginas: 1 2 3 4 5 6 7 8 9 [10] 11 12
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines