Buscar

Numero Extenso

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 3 páginas

Prévia do material em texto

Trabalho Prático 
Números Por extenso 
 
Aluno Curso 
Davi Silva Sousa Engenharia de Telecomunicações 
 
Instruções 
Faça um programa que leia um inteiro entre 0 e 2.000.000.000 e realize sua impressão por 
extenso. 
Após isto o programa deve imprimir 5 múltiplos deste número, também por extenso. 
 
Obs.: não foi possível imprimir os 5 múltiplos no número digitado em alguns casos, pois estoura 
a capacidade de memória. Tentei utilizar long int e mesmo assim, não consegui. 
 
#include <iostream> 
using namespace std; 
 
 
char * centenas[] = {"", "cento", "duzentos", "trezentos", "quatrocentso", "quientos", 
"seiscentos", "setecentos", "oitocentos", "novecentos"}; 
char * dezenas[] = {"dez", "onze", "doze", "treze", "quatorze", "quinze", "dezesseis", 
"dezessete", "dezoito", "dezenove"}; 
char * dezenasVinte[] = {"", "dez", "vinte", "trinta", "quarenta", "cinquenta", "sessenta", 
"setenta", "oitenta", "noventa"}; 
char * unidades [] = { "", "um", "dois", "tres", "quatro", "cinco", "seis", "sete", "oito", 
"nove"}; 
 
void imprimirUnidade(int centena, int dezena, int unidade) { 
 if (centena == 0 && dezena == 0 && unidade == 0) { 
 return; 
 } 
 
 cout << centenas[centena] << " "; 
 
 if (centena > 0 && dezena > 0) { 
 cout << "e "; 
 
 } 
 
 if (dezena == 1) { 
 cout << dezenas[unidade] << " "; 
 
 } else { 
 cout << dezenasVinte[dezena] << " "; 
 
 if (dezena > 0 && unidade > 0) { 
 cout << "e "; 
 } 
 
 cout << unidades[unidade] << " "; 
 } 
} 
 
void imprimirBilhao(int unidade) { 
 switch (unidade) { 
 case 1: 
 cout << "um bilhao "; 
 break; 
 case 2: 
 cout << "dois bilhoes "; 
 break; 
 } 
} 
 
void imprimirMilhao(int centena, int dezena, int unidade) { 
 if (centena == 0 && dezena == 0 && unidade == 0) { 
 return; 
 } 
 
 imprimirUnidade(centena, dezena, unidade); 
 
 if (unidade == 1 && dezena == 0 && centena == 0) { 
 cout << "milhao "; 
 } else { 
 cout << "milhoes "; 
 } 
} 
 
void imprimirMilhar(int centena, int dezena, int unidade) { 
 if (centena == 0 && dezena == 0 && unidade == 0) { 
 return; 
 } 
 
 imprimirUnidade(centena, dezena, unidade); 
 
 cout << "mil "; 
} 
 
 
void numeroPorExtenso(int num) { 
 int ub, centMilhao, dezMilhao, unidMilhao, centMilhar, dezMilhar, uniMilhar, centena, dezena, 
unidade; 
 
 cout << num << " = "; 
 if (num == 0) { 
 cout << "zero" << endl; 
 return; 
 } 
 
 //Bilhao 
 ub = num / 1000000000; 
 num = num - (ub * 1000000000); 
 
 //Milhao 
 centMilhao = num / 100000000; 
 num = num -(centMilhao *100000000); 
 dezMilhao = num / 10000000; 
 num = num -(dezMilhao *10000000); 
 unidMilhao = num / 1000000; 
 num = num - (unidMilhao *1000000); 
 
 //Milhar 
 centMilhar = num / 100000; 
 num = num -(centMilhar *100000); 
 dezMilhar = num / 10000; 
 num = num - (dezMilhar*10000); 
 uniMilhar = num / 1000; 
 num = num - (uniMilhar *1000); 
 
 //Unidade 
 centena = num / 100; 
 num = num - (centena *100); 
 dezena = num / 10; 
 num = num - (dezena *10); 
 unidade = num / 1; 
 num = num - (unidade *1); 
 
 imprimirBilhao(ub); 
 imprimirMilhao(centMilhao, dezMilhao, unidMilhao); 
 imprimirMilhar(centMilhar, dezMilhar, uniMilhar); 
 imprimirUnidade(centena, dezena, unidade); 
 cout << endl; 
} 
 
 
int main() { int numero; 
 double f; 
 
 cout << "Digite um numero:" << endl; 
 cin >> numero; 
 
 
 if (numero >= 0 && numero <= 2000000000) 
 
 { 
 for ( int i = 1; i <= 5; i++) { 
 f = numero * i; 
 numeroPorExtenso(numero); 
 } 
 } 
 else { 
 cout << "Numero invalido" << endl; 
 } 
 
 return 0; 
}

Continue navegando