1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.
  1. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    Fazes um ciclo entre todas as alternativas, usas uma variável que guarda o "valor máximo até agora", e cada vez que comparares essa variável com cada um dos números, se o número for maior que a variável, a variável passa a ter o valor do número (ou seja, um termo é considerado máximo até que ao longo do ciclo se encontre um número maior que ele).
    No fim do ciclo, o valor que restar na variável é o máximo de todos.

    Agora programa tu :D
     
  2. ups

    ups Power Member


    google

    Começa pelo basico. E muito mais facil e rapido do que andares aqui a perguntar. :P
     
  3. Kayvlim

    Kayvlim Undefined Moderator
    Staff Member

    Achas que o IF é um ciclo? :P

    Ciclos são estruturas que repetem o código tantas vezes quantas necessárias para satisfazer uma dada condição. FOR, WHILE...WEND, DO...LOOP são ciclos.
    Condições são estruturas que executam código dependendo de uma condição ser ou não satisfeita. IF e SELECT CASE são condições.

    Código:
    For i = 1 to 5 Step 1
       Msgbox "Numero actual: " & CStr(i)
    Next i
    
    Isto é um ciclo. Executa o corpo (a Msgbox) tantas vezes quantas necessárias até que i = 5. Again, o Step é facultativo, mas coloquei-o só para realçar o facto de que, no final do ciclo, ele incrementa 1 à variável i.

    Código:
    x = 1
    If x = 1 Then
      Msgbox "x é 1!"
    Else
      Msgbox "x não é 1!"
    End If
    
    Isto é uma condição. SE x for igual a 1 executa a primeira parte (antes do Else). SENÃO (Else), executa a segunda.

    Código:
    For i = 1 to 5
      If i = 3 Then
        Msgbox: "Numero actual: TRÊS!"
      Else
        Msgbox: "Numero actual: " & CStr(i)
      End If
    End For
    
    Aqui tens uma condição dentro de um ciclo.

    É essencial que saibas distinguir as coisas.

    Aconselho-te a ver este tópico: http://www.techzonept.com/showthread.php?t=46868 ;)
     
  4. alfinete

    alfinete Power Member

    simples

    assim

    Código:
    
      Dim valor1 As Integer = 10
            Dim valor2 As Integer = 5
            Dim valor3 As Integer = 30
            Dim arr(3) As Integer
            Dim max As Integer = 0
            Dim i As Integer
            arr(1) = valor1
            arr(2) = valor2
            arr(3) = valor3
    
    
            For i = 1 To 3
    
    
                If (arr(i) > max) Then
                    max = arr(i)
                End If
    
    
            Next
    
    
            Me.lblvalor.Text = max
    
    
     
  5. A partir do código que foi fornecido pelo afinete, podes criar uma variável que fique com o numero de valores introduzidos e essa variável será o limite do i (no ciclo for)

    Também com essa variável podes fazer com que todos os valores digitados sejam incluídos no array a partir do qual será feito o teste do valor mais alto (array arr())

    Mas não posso desemvolver muito mais senão fico sem terra debaixo dos pés :D
     
  6. alfinete

    alfinete Power Member

    Código:
    
     Private Sub btncalc_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btncalc.Click
           
    
            Me.lblvalor.Text = maximo(Convert.ToInt32(tb1.Text), Convert.ToInt32(tb2.Text), Convert.ToInt32(tb3.Text))
    
        End Sub
    
        Function maximo(ByVal valor1 As Integer, ByVal valor2 As Integer, ByVal valor3 As Integer) As Integer
            Dim arr(3) As Integer
            Dim max As Integer = 0
            Dim i As Integer
            arr(1) = valor1
            arr(2) = valor2
            arr(3) = valor3
    
    
            For i = 1 To 3
    
    
                If (arr(i) > max) Then
                    max = arr(i)
                End If
    
    
            Next
    
    
            Return max
    
    
        End Function
    
    tens aqui outra solução so para 3 com uma função eu retorna um inteito.

    criei trez caixas de texto (tb1,tb2,tb3), uma label(lblvalor) - para mostrar o maximo , e um botão para calcular o resultado.

    espero que ajude
     
  7. alfinete

    alfinete Power Member

    esta versão foi feita em vb 2005 hiper dinamica

    temos uma caixa de texto "tbnumgera" onde inserimos o valor do numero de txtbox que queremos gerar

    o utilizador digita um valor na tbnumgera e clica no botão gerar "btngerar" para gerar as mesmas, de seguida digita os valores numericos nas caixas e clica em calcular "btncalcular" , para termos o valor maximo de todos os inseridos

    atenção não verifiquei se o valor das caixas de texto é numero ou não....

    so verifiquei se as mesmas ja foram geradas

    Código:
    
    Public Class Form1
    
        Public conttxts As Integer 'numero de caixas de texto
        Public tbdinamica As TextBox ' variavel tipo caixa de texto
        Public estado As String ' para guardar o estado para gerar so uma vez
        Public i As Integer 'index das caixas de texto
    
        Private Sub btncalc_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btncalc.Click
            Dim j As Integer ' index dos valores
            Dim max As Integer = 0 ' valor maximo
            Dim valores(conttxts) As Integer ' array que guarda os valores
            'percorre as caixas tdas
            For j = 0 To conttxts - 1
                ' poe o respectivo valor da caixa na respectiva posição do array
                valores(j) = FlowLayoutPanelcaixas.Controls(j).Text
    
                ' verifica se o valor anterior é maior que maximo
                If (valores(j) > max) Then
    
                    max = valores(j) ' altera maximo
                End If
            Next
    
            Me.lblvalor.Text = max
          
        End Sub
    
       
    
    
        Private Sub btngerar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btngerar.Click
    
    
            conttxts = tbnumgera.Text
    
    
            If (estado = "") Then
    
                ' percorre tdos os valores a partir de 1 ate ao valor inserido para criar as caixas
                For i = 1 To conttxts
    
                    tbdinamica = New TextBox ' cria uma nova caixa de texto
                    tbdinamica.Name = "txt_" & i ' da o nome a mesma
                    tbdinamica.AutoSize = True
                    FlowLayoutPanelcaixas.Controls.Add(tbdinamica) ' acrescente um controlo ao flow layout
                    estado = "sim" '
                Next
    
            End If
    
            ' End If
    
    
        End Sub
    
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    
        End Sub
    
    agora so adaptar para vb6, é quase tdo igual, so não me recordo se existe este componente

    FlowLayoutPanel , penso que não mas não tenho a certeza... deve haver outro parecido

    espero que tenha ajudado

    so da para numeros positivos ou = o

    para todos valores , é uma alteração minima



    o componente FlowLayoutPanel tem de levar um autoscroll nas propriedades

    download versão do programa do maximo valor de n em vb2005

    Código:
    http://rapidshare.com/files/155049008/winteste.rar.html
     
    Última edição: 18 de Outubro de 2008

Partilhar esta Página