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

Dúvida em Visual Basic

Discussão em 'Programação' iniciada por Caveira, 1 de Março de 2007. (Respostas: 5; Visualizações: 1486)

  1. Caveira

    Caveira Power Member

    É o seguinte, eu quero introduzir um número ou uma palavra e depois quero retirar/analisar um caracter duma posição específica para posterior uso. Como faço isso?

    Por exemplo, o programa gera o número 155 e eu introduzo 915 e preciso que o programa diga-me quantos algarismos na posição correcta e quantos algarismos na posição incorrecta eu acertei (é um jogo). Neste caso, 1 na posição correcta e 1 na posição incorrecta. Ou, noutro exemplo, quero transformar um número normal num número romano: preciso de transformar cada algarismo no equivalente romano (915 -> 9 1 5 -> CM X IV -> CMXIV).

    Para este algoritmo preciso de analisar cada caracter/algarismo de cada palavra/número. Mas não sei como é que faço isso no VB, nem sei se é possível. Alguém me pode ajudar? Obrigado desde já por qualquer ajuda!
     
  2. HecKel

    HecKel The WORM

    Na primeira parte não me recordo como se faz isso em visual basic, mas julgo que consegues transformar uma string num array de caracteres facilmente, depois é trabalhares nesses arrays.

    Sobre a segunda parte, nada mais fácil do que um Numero MOD 10 (salvo erro é o mod, troco-me sempre todo :X) e Número DIV 10 para extraíres a outra parte, por exemplo:

    915 mod 10 = 91
    915 div 10 = 5

    Agora dá asas à tua imaginação com esta informação :P Mas certifica-te que não me troquei com os DIVs e MODs, é normal comigo trocar-me nisto :P

    abraços, HecKel
     
  3. Caveira

    Caveira Power Member

    Pois que eu tenho que meter os caracteres num array eu sei, a questão é: como? Aí é que eu estou preso. Quanto à tua segunda sugestão, é inviável(sp?), pois a conversão teria que funcionar com qualquer número e assim não daria (penso eu de que), digo isto sem certeza se percebi a tua sugestão. lol mas obrigado na mesma!
     
  4. HecKel

    HecKel The WORM

    Não daria com qualquer número? Como assim? Separas os números todos e depois é contigo, existe outras alternativas, por exemplo, que é de estares a fazer várias comparações se X é maior que 1000 e afins, não faltam alternativas ;)

    Mais logo dou-te um resultado em PROLOG que fiz um exame (se o encontrar), é capaz de ser giro de mostrar :P

    abraços, HecKel
     
  5. Caveira

    Caveira Power Member

    É só para dizer que acho que já encontrei a resposta num site sobre VB... está lá um código que faz algo parecido, portanto, é só uma questão de eu decifrar aquilo a aplicar no meu programa! :wow: :x2:
     
  6. Caveira

    Caveira Power Member

    A solução que encontrei foi esta (ainda não testei pois só tenho VB na escola):


    Dim Numero As String
    Dim Array1()
    Dim ContarAlgarismos, i As Integer

    ContarAlgarismos = LEN(Numero)) //Conta o número de caracteres da String
    ReDim Array1(1 to ContarAlgarismos) //Redimensiona Array1 de acordo com o número de caracteres da string
    For i=1 to ContarAlgarismos //Ciclo de repetição, analisa cada caracter
    Array1(i)=Mid(Numero, i, 1) //Adiciona ao indíce i do Array1, o caracter da posição i e mais nenhum caracter

    A ver se tenho 20 neste projecto de BP este período! :)
     

Partilhar esta Página