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

urgente,mas mesmo URGENTE. o mais rapido possivel

Discussão em 'Programação' iniciada por ldias9191, 18 de Abril de 2008. (Respostas: 6; Visualizações: 881)

  1. boas eu sou novo aki...
    preciso de umprograma em menos de 24 horas(ou seja ate as 18:00 de amanha), k fassa o seguinte:
    Em Portugal, as matrículas dos carros começaram por ter o formato XX-NN-NN, onde X era uma das 23 letras do nosso alfabeto entre A e Z (nota que as letras K, W e Y não são permitidas) e N era um dígito entre 0 e 9. Um exemplo de uma matrícula válida é QX-79-84. As matrículas são atribuídas a novos veículos de forma sequencial. Os novos valores na sequência são obtidos primeiro incrementando a parte numérica da matrícula (onde o dígito menos significativo está à direita), e depois a parte alfabética (tal como nos números, a letra menos significativo está à direita). Por exemplo, a seguir à matrícula CC-00-00 vem a matrícula CC-00-01, a seguir a CC-99-99 vem CD-00-00 e a seguir a CZ-99-99 vem a matrícula DA-00-00.

    A última matrícula válida neste sistema era o ZZ-99-99, mas rapidamente o número de veículos em circulação ultrapassou o permitido pelo esquema de matrículas e desse modo novos formatos foram adicionados ao sistema. A primeira extensão foi o formato NN-NN-XX. Quando estas matrículas esgotaram (a última foi 99-99-ZZ) foi introduzido o mais recente formato NN-XX-NN. Em todos estes esquemas, a parte dos números é incrementada antes da parte das letras. Por exemplo, a seguir a 00-AA-99 vem a matrícula 01-AA-00.
    É possível definir a distância entre duas matrículas observando a ordem em que elas foram sendo atribuídas. Por exemplo, a distância entre QX-79-84 e QX-79-86 é de 2. Já a distância entre ZZ-90-00 e ZZ-80-00 é de 1000, tal como a distância entre ZZ-90-00 e 00-00-AA. O Problema


    Dadas duas matrículas em qualquer um dos três formato possíveis, a tua tarefa é calcular e imprimir a distância entre elas. Input


    O input é constituído por duas linhas, cada uma delas contendo uma única matrícula. As matrículas vêm na forma XX-NN-NN, NN-NN-XX ou NN-XX-NN, onde X é uma letra portuguesa entre 'A' e 'Z' (não podem aparecer 'K', 'W' e 'Y') e X é um dígito entre 0 e 9. As duas matrículas são diferentes uma da outra. Output

    O output é constituído por uma única linha, contendo um número inteiro positivo que indica a distância entre as duas matrículas dadas.
    Exemplo de Input 1

    ZZ-90-00
    00-00-AA
    Exemplo de Output 1

    1000
    Exemplo de Input 2

    01-AA-00
    00-AA-99
    Exemplo de Output 2

    1
    Exemplo de Input 3

    AA-00-00
    00-00-AA
    Exemplo de Output 3

    5290000
    Exemplo de Input 4

    23-AC-47
    41-86-ZZ
    Exemplo de Output 4

    28161
    por favor rapido... e urgente.
     
    Última edição: 18 de Abril de 2008
  2. arkannis

    arkannis Power Member

    Ahah :P
    Já resolvi esse problema este ano nuns concursos de programaçao que eram a nivel nacional, talvez haja por aqui mais gente que também já tenha resolvido hehe.

    A Dica:
    Converte as matriculas para valores numericos.
    Por exemplo, a matricula AA-00-00 é 0, a matricula AA-01-23 é a 123, etc...
    Esta conversao pode ser conseguida de uma maneira semelhante ao modo de trabalhar com sistemas de numeração de diferentes bases.
    Depois é uma questão de subtraires os valores para achares a distancia entre as duas.

    Demorei cerca de 1h30 a fazer esse programa, portanto como podes ver, não é algo muito trabalhoso.
    Fazes isso na boa em 24h.
     
    Última edição: 18 de Abril de 2008
  3. Pauleta_Tubarao

    Pauleta_Tubarao Power Member

    bem acho que a parte dos números o que ele te disse dos números.
    para as letras fazes um vector a guardar as letras de A a Z divides as duas letras e compara uma de cada vez.
    fazes com o until uma ser igual a outra em seguida fazes o mesmo para a segunda letra e ai da-te o numero do carro

    penso que será isso
     
  4. jpaulino

    jpaulino Power Member

    Bem já está quase tudo dito ... em termos de dicas. Podes para facilitar utilizar a conversão para ascii nas letras.

    Ex.
    Asc("A") = 65
    Asc("Z") = 90

    Podes verificar a diferenca com base na letra a os números possíveis
     
    Última edição: 18 de Abril de 2008
  5. jpaulino

    jpaulino Power Member

    Mais uma coisa: parece-me trabalho de escola que ficou para a ultima ... mesmo à tuga!
     
  6. arkannis

    arkannis Power Member

    O que eu disse era para as letras também, não só para os numeros!
    As letras podem ser encaradas como sendo um sistema de numeração de base 23.

    Já agora, não te adianta nada ires pelos codigos ASCII nesta caso, pois o K,W,Y nao fazem parte de matriculas, e ia complicar infernalmente as coisas.
    Cria um vector com as letras.
     
  7. jpaulino

    jpaulino Power Member

    Nunca tinha reparado que as matriculas não tinham essa letras ... devo andar a dormir!
     

Partilhar esta Página