Ir ao conteúdo
  • Cadastre-se

VisualG Numero por extenso: exceções de dezenas ou unidades?


Visitante

Posts recomendados

< Algoritmo "CONVERSAO DE UM EM EXTENSO"
// *****************************************
Procedimento cabecalho
var

inicio
   Limpatela
   Escreval("CÁLCULO DO VALOR EXTENSO DE UM NUMERO")
   Escreval("=====================================")
   Escreval
FimProcedimento
// *****************************************
Funcao consistencia: inteiro
var
   n, numero: inteiro
   certo: logico

inicio
   certo <- falso
   Enquanto (não certo) faca
      Limpatela
      Escreva("INFORME O NÚMERO: ")
      Leia(numero)
      Se(numero < 0) ou (numero > 999) entao
         Para n de 1 ate 3 faca
            Limpatela
            Escreva(" INVÁLIDO !!")
            Timer 50
         FimPara
      Senao
         certo <- verdadeiro
      FimSe
   FimEnquanto
   Timer 0
   Retorne numero
FimFuncao
//******************************************
Procedimento resultado
var
inicio
   Escreval
   Escreval("----------------------------------------")
   Escreva("O NÚMERO ",numero," extenso é: ")
   Escreval(Maiusc(saida))
   Escreval("----------------------------------------")
   Escreval
FimProcedimento
//******************************************


Var

   Extenso: vetor[0..3,0..9] de caractere
   saida: caractere
   numero,cent,deze,unid: caractere
   uni,dez,cen: inteiro

Inicio
   Extenso[0,0] <- ""
   Extenso[0,1] <- "um"
   Extenso[0,2] <- "dois"
   Extenso[0,3] <- "tres"
   Extenso[0,4] <- "quatro"
   Extenso[0,5] <- "cinco"
   Extenso[0,6] <- "seis"
   Extenso[0,7] <- "sete"
   Extenso[0,8] <- "oito"
   Extenso[0,9] <- "nove"

   Extenso[1,0] <- "dez"
   Extenso[1,1] <- "onze"
   Extenso[1,2] <- "doze"
   Extenso[1,3] <- "treze"
   Extenso[1,4] <- "quatorze"
   Extenso[1,5] <- "quinze"
   Extenso[1,6] <- "dezesseis"
   Extenso[1,7] <- "dezessete"
   Extenso[1,8] <- "dezoito"
   Extenso[1,9] <-"dezenove"

   Extenso[2,0] <- ""
   Extenso[2,1] <- ""
   Extenso[2,2] <- "vinte"
   Extenso[2,3] <- "trinta"
   extenso[2,4] <- "quarenta"
   Extenso[2,5] <- "cinquenta"
   Extenso[2,6] <- "sessenta"
   Extenso[2,7] <- "setenta"
   Extenso[2,8] <- "oitenta"
   Extenso[2,9] <- "noventa"

   Extenso[3,0] <- ""
   Extenso[3,1] <- "cento"
   Extenso[3,2] <- "duzentos"
   Extenso[3,3] <- "trezentos"
   Extenso[3,4] <- "quatrocentos"
   Extenso[3,5] <- "quinhentos"
   Extenso[3,6] <- "seiscentos"
   Extenso[3,7] <- "setecentos"
   Extenso[3,8] <- "oitocentos"
   Extenso[3,9] <- "novecentos"

   cabecalho

   numero <- numpcarac(consistencia)

   uni <- caracpnum(copia(numero;3;1))
   dez <- caracpnum(copia(numero;2;1))
   cen <- caracpnum(copia(numero;1;1))

   Se (dez = 0) e (uni = 0) entao
      Escolha cen
      Caso 1
         Se (dez = 0) e (uni = 0) entao
            saida <- "cem"
         Senao
            saida <- Extenso(3,cen)
         FimSe
      OutroCaso
         saida <- Extenso[3,cen]
      FimEscolha
      resultado
fimalgoritmo
   FimSe


cent <- Extenso[3,cen]
deze <- Extenso[2,dez]
unid <- Extenso[0,uni]

saida <- cent + " e " + deze + " e " + unid
resultado

Fimalgoritmo >

  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

  • Visitante alterou o título para Numero por extenso: exceções de dezenas ou unidades?

Se eu coloco "106" para converter em extenso fica "CENTO E E SEIS",

sendo que almejo o "CENTO E SEIS".

 

Algoritmo "CONVERSAO DE UM EM EXTENSO - PARTE 2"
// *****************************************
Procedimento cabecalho
var

inicio
   Limpatela
   Escreval("CÁLCULO DO VALOR EXTENSO DE UM NUMERO")
   Escreval("=====================================")
   Escreval
FimProcedimento
// *****************************************
Funcao consistencia: inteiro
var
   n, numero: inteiro
   certo: logico

inicio
   certo <- falso
   Enquanto (não certo) faca
      Limpatela
      Escreva("INFORME O NÚMERO: ")
      Leia(numero)
      Se(numero < 0) ou (numero > 999) entao
         Para n de 1 ate 3 faca
            Limpatela
            Escreva("NÚMERO INVÁLIDO !!")
            Timer 50
         FimPara
      Senao
         certo <- verdadeiro
      FimSe
   FimEnquanto
   Timer 0
   Retorne numero
FimFuncao
//******************************************
Procedimento resultado
var
inicio
   Escreval
   Escreval("----------------------------------------")
   Escreva("O NÚMERO ",numero," em extenso é: ")
   Escreval(Maiusc(saida))
   Escreval("----------------------------------------")
   Escreval
FimProcedimento
//******************************************

Var
   extenso: vetor[0..3,0..9] de caractere
   saida: caractere
   numero,cent,deze,unid: caractere
   uni,dez,cen: inteiro

Inicio
   Extenso[0,0] <- ""
   Extenso[0,1] <- "um"
   Extenso[0,2] <- "dois"
   Extenso[0,3] <- "tres"
   Extenso[0,4] <- "quatro"
   Extenso[0,5] <- "cinco"
   Extenso[0,6] <- "seis"
   Extenso[0,7] <- "sete"
   Extenso[0,8] <- "oito"
   Extenso[0,9] <- "nove"

   Extenso[1,0] <- "dez"
   Extenso[1,1] <- "onze"
   Extenso[1,2] <- "doze"
   Extenso[1,3] <- "treze"
   Extenso[1,4] <- "quatorze"
   Extenso[1,5] <- "quinze"
   Extenso[1,6] <- "dezesseis"
   Extenso[1,7] <- "dezessete"
   Extenso[1,8] <- "dezoito"
   Extenso[1,9] <-"dezenove"

   Extenso[2,0] <- ""
   Extenso[2,1] <- ""
   Extenso[2,2] <- "vinte"
   Extenso[2,3] <- "trinta"
   extenso[2,4] <- "quarenta"
   Extenso[2,5] <- "cinquenta"
   Extenso[2,6] <- "sessenta"
   Extenso[2,7] <- "setenta"
   Extenso[2,8] <- "oitenta"
   Extenso[2,9] <- "noventa"

   Extenso[3,0] <- ""
   Extenso[3,1] <- "cento"
   Extenso[3,2] <- "duzentos"
   Extenso[3,3] <- "trezentos"
   Extenso[3,4] <- "quatrocentos"
   Extenso[3,5] <- "quinhentos"
   Extenso[3,6] <- "seiscentos"
   Extenso[3,7] <- "setecentos"
   Extenso[3,8] <- "oitocentos"
   Extenso[3,9] <- "novecentos"

   cabecalho

   // TAREFA: FAZER A CONSISTENCIA PARA NÃO ENTRAR COM No DECIMAL,
   //         No MENOR OU IGUAL A ZERO E No MAIOR DO QUE 999
   numero <- numpcarac(consistencia)

   uni <- caracpnum(copia(numero;3;1))
   dez <- caracpnum(copia(numero;2;1))
   cen <- caracpnum(copia(numero;1;1))

   se (dez = 0) e (uni = 0) entao
      escolha cen
      caso 1
         se (dez = 0) e (uni = 0) entao
            saida <- "cem"
         senao
            saida <- Extenso(3,cen)
         fimse
      outrocaso
         saida <- Extenso[3,cen]
      fimescolha
      resultado
fimalgoritmo
fimse

cent <- Extenso[3,cen]
deze <- Extenso[2,dez]
unid <- Extenso[0,uni]

saida <- cent + " e " + deze + " e " + unid
resultado

Fimalgoritmo
Link para o comentário
Compartilhar em outros sites

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...

Curso de Hacker Ético

LANÇAMENTO!

CLIQUE AQUI E CONFIRA!

* Este curso não é ministrado pela equipe do Clube do Hardware.