Ir ao conteúdo

Posts recomendados

Postado

Estou fazendo na faculdade uma matéria de VBA, mas estou tendo muita dificuldade, tenho que entregar duas questões para hoje, uma delas é essa aqui:

 

"Escreva uma subrotina que receba um vetor x de qualquer tamanho como parâmetro de entrada e retorne um vetor y contendo os elementos de x sem repetição de elementos. Por exemplo: x=[1 2 5 1 7 9 8 0 6 4 2 8 3 41 8 0 200 7 -0,6 1], então y=[1 2 5 7 9 8 0 6 4 3 41 200 -0,6]. Escreva também a subrotina que chama sua sub."

 

porém não sei nem por onde começar, será que alguém consegue me dar um norte de por onde eu tenho que ir?

  • Obrigado 1
  • Triste 1
Postado

@Gameiro Na função inicie o novo vetor com o primeiro elemento do outro vetor e depois use dois loops aninhados: O mais externo referente ao vetor passado como argumento e o mais interno do vetor que receberá os elementos. E assim poderá testar cada elemento para não duplicar os valores. Com o comando ReDim você pode ir aumentando o tamanho do novo vetor a medida que novos elementos são inseridos.

  • Obrigado 2
Postado
57 minutos atrás, Midori disse:

@Gameiro Na função inicie o novo vetor com o primeiro elemento do outro vetor e depois use dois loops aninhados: O mais externo referente ao vetor passado como argumento e o mais interno do vetor que receberá os elementos. E assim poderá testar cada elemento para não duplicar os valores. Com o comando ReDim você pode ir aumentando o tamanho do novo vetor a medida que novos elementos são inseridos.

Muito Obrigado amigo, sempre salvando com VBA, infelizmente mesmo com sua explicação não estou conseguindo desenvolver os dois loops aninhados para testar os valores

  • Curtir 1
  • Moderador
Postado

Caro usuário,

 

Seja bem-vindo ao Clube do Hardware.

 

No intuito de servir como fonte de pesquisa no caso de instituições de ensino, informamos que incorrer no resolvimento por completo de questões relacionadas a disciplinas escolares de cursos técnicos e faculdades podem ser revistas e removidas pela Equipe de Moderação do Clube do Hardware.

 

Para sanar dúvidas sobre esse tipo de problema, por gentileza, publique o passo a passo do desenvolvimento da questão, projeto, monografia ou conteúdo em dúvida para que possamos analisar se a resposta está correta ou não, ou para que possa ser auxiliado com a dúvida no desenvolvimento do exercício.

 

Infelizmente, não há como resolver os trabalhos pelos usuários. O objetivo do Clube do Hardware é auxiliar seus usuários a encontrar soluções para que possam sanar suas dúvidas, e não de trazer soluções prontas para seus usuários. Além disso, copiar e colar respostas que não são de autoria própria do qualquer usuário é considerado plágio, o que é ilegal.

 

Esperamos que compreenda.

 

Atenciosamente,

Equipe Clube do Hardware

  • Curtir 2
Postado
1 hora atrás, DiF disse:

Caro usuário,

 

Seja bem-vindo ao Clube do Hardware.

 

No intuito de servir como fonte de pesquisa no caso de instituições de ensino, informamos que incorrer no resolvimento por completo de questões relacionadas a disciplinas escolares de cursos técnicos e faculdades podem ser revistas e removidas pela Equipe de Moderação do Clube do Hardware.

 

Para sanar dúvidas sobre esse tipo de problema, por gentileza, publique o passo a passo do desenvolvimento da questão, projeto, monografia ou conteúdo em dúvida para que possamos analisar se a resposta está correta ou não, ou para que possa ser auxiliado com a dúvida no desenvolvimento do exercício.

 

Infelizmente, não há como resolver os trabalhos pelos usuários. O objetivo do Clube do Hardware é auxiliar seus usuários a encontrar soluções para que possam sanar suas dúvidas, e não de trazer soluções prontas para seus usuários. Além disso, copiar e colar respostas que não são de autoria própria do qualquer usuário é considerado plágio, o que é ilegal.

 

Esperamos que compreenda.

 

Atenciosamente,

Equipe Clube do Hardware

Com certeza! essa não foi minha intenção, apenas estou tendo muita dificuldade em interpretar mesmo o que deve ser feito.

 

até por sinal esta é a parte na qual estou travado:

Sub repeticao()
Dim n As Integer, i As Integer, y As Single, j As Integer
Dim v() As Single
n = InputBox("Digite um tamanho (inteiro) para o vetor")
ReDim v(n)

For i = 1 To UBound(v)
    v(i) = Int(Rnd * 10)
    Cells(1, i) = v(i)
Next
Dim flag As Boolean
    For i = 0 To n - 1
        flag = False
        For j = 0 To i - 1
            If v(i) = v(j) Then
                flag = True
                Exit For
            End If
        Next j
        If flag = False Then
            Cells(2, i) = v(i)
            
        End If
    Next i

End Sub

 

foi mais ou menos onde consegui chegar com a ajuda do @Midori , porém não estou conseguindo agora transformar em um novo vetor e mostrar na tela. que seria o final da questão acredito eu.

  • Amei 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...