Baixe o app para aproveitar ainda mais
Prévia do material em texto
PROVA – TP1 Nome: Patrícia Avelar Ribeiro Matrícula: 164200060 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. #include <iostream> #include <conio.h> using namespace std; Como a função não necessita de retorno, foi utilizado a função void para começar. Então foi utilizado as variáveis: int c, int d e int u para centenas, dezenas e unidades respectivamente , para imprimir os valores de centena. Logo após foi utilizado uma sequência de comandos if para centenas, entre 100 e 999, esse comando é o switch. Isso faz com que, se unidade e dezena receber qualquer valor diferente de zero, o programa irá imprimir o valor da centena mais a letra “e” e se unidade e dezena receber zero, o programa irá imprimir o valor da centena. void imprimir_centena (int c, int d, int u) { switch (c) { case 9: if (u==0 && d==0 ) cout << (" Novecentos "); else cout << (" Novecentos e "); break; case 8: if (u==0 && d==0 ) cout << (" Oitocentos "); else cout << (" Oitocentos e "); break; case 7: if (u==0 && d==0 ) cout << (" Setecentos "); else cout << (" Setecentos e "); break; case 6: if (u==0 && d==0 ) cout << (" Seiscentos "); else cout << (" Seiscentos e "); break; case 5: if (u==0 && d==0 ) cout << (" Quinhentos "); else cout << (" Quinhentos e "); break; case 4: if (u==0 && d==0 ) cout << (" Quatrocentos"); else cout << (" Quatrocentos e "); break; case 3: if (u==0 && d==0 ) cout << (" Trezentos "); else cout <<(" Trezentos e "); break; case 2: if (u==0 && d==0 ) cout << (" Duzentos "); else cout << (" Duzentos e "); break; case 1: if (u==0 && d==0 ) cout << (" Cem "); else cout << (" Cento e "); break; } } Nessa próxima parte foi utilizado as variáveis int d e int u para dezenas e unidades respectivamente, para imprimir os valores de dezenas. Nessa parte o switch (d) foi utilizado para dezenas entre 10 e 99. Dessa forma, se a unidade receber um número diferente de zero, o programa irá imprimir o valor da dezena mais a letra “e” e se a unidade receber zero, o programa irá imprimir apenas o valor da dezena. Como pode ser observado, na parte de 10 à 19, no programa foi colocado muitos comandos if, isso é para diferenciar os valores, por exemplo: Se a unidade for 4, seria 14, se a unidade for 5, seria 15. void imprimir_dezena (int d, int u) { switch (d) { case 9: if (u==0) cout << (" Noventa "); else cout << (" Noventa e "); break; case 8: if (u==0) cout << (" Oitenta "); else cout << (" Oitenta e "); break; case 7: if (u==0) cout << (" Setenta "); else cout << (" Setenta e "); break; case 6: if (u==0) cout << (" Sessenta "); else cout << (" Sessenta e "); break; case 5: if (u==0) cout << (" Cinquenta "); else cout << (" Cinquenta e "); break; case 4: if (u==0) cout << (" Quarenta"); else cout << (" Quarenta e "); break; case 3: if (u==0) cout << (" Trinta "); else cout << (" Trinta e "); break; case 2: if (u==0) cout << (" Vinte "); else cout << (" Vinte e "); break; case 1: if (d==1 && u==9) cout << (" Dezenove "); if (d==1 && u==8) cout << (" Dezoito "); if (d==1 && u==7) cout << (" Dezessete "); if (d==1 && u==6) cout << (" Dezesseis "); if (d==1 && u==5) cout << (" Quinze "); if (d==1 && u==4) cout << (" Quatorze "); if (d==1 && u==3) cout << (" Treze "); if (d==1 && u==2) cout << (" Doze "); if (d==1 && u==1) cout << (" Onze "); if (d==1 && u==0) cout << (" Dez "); break; } } Nessa parte, foi utilizado as variáveis int d e int u para dezenas e unidades respectivemente, para imprimir os valores de unidades. E o comando switch (u) foi usado entre 0 e 9. Dessa forma, a unidade irá imprimir o valor correspondente. void imprimir_unidade(int d, int u) { if (d!=1) { switch (u) { case 9: cout << (" Nove "); break; case 8: cout << (" Oito "); break; case 7: cout << (" Sete "); break; case 6: cout << (" Seis "); break; case 5: cout << (" Cinco "); break; case 4: cout << (" Quatro "); break; case 3: cout << (" Três "); break; case 2: cout << (" Dois "); break; case 1: cout << (" Um "); break; } } } Nessa próxima parte do programa novas variáveis foram definidas, que são elas: int u, d, c, um, dm, cm, uM, dM, cM, uB (unidades, dezenas e centenas de milhares, milhões e bilhões). Foi utilizado funções imprimir_centena, imprimir_dezena e imprimir_unidade para imprimir os milhares. void imprimir_milhar (int c, int d, int u) { imprimir_centena (c,d,u); imprimir_dezena (d,u); imprimir_unidade (d,u); } Então, os valores que cada variável recebia foram definidos nessa parte. void imprimir_por_extenso (int n) { int u,d,c,um,dm,cm,uM,dM,cM,uB; uB=n/1000000000; n=n%1000000000; cM=n/100000000; n=n%100000000; dM=n/10000000; n=n%10000000; uM=n/1000000; n=n%1000000; cm=n/100000; n=n%100000; dm=n/10000; n=n%10000; um=n/1000; n=n%1000; c=n/100; n=n%100; d=n/10; n=n%10; u=n; imprimir_milhar (0,0,uB); if (uB==1) cout << (" bilhao "); else if (uB>1) cout << ("bilhoes"); imprimir_milhar (cM,dM,uM); if (cM != 0 || dM !=0 || uM != 0 ) { if (cM==0 && dM==0 && uM==1) cout << (" milhao "); else cout << (" milhoes"); } imprimir_milhar (cm,dm,um); if (cm!=0 || dm!=0 || um!=0) cout << (" Mil "); imprimir_milhar (c,d,u); } E para finalizar, abaixo é a função principal do programa que é responsável em imprimir por extenso o número, utilizando imprimir_por_extenso que foi já foi definida. Sendo assim, com essa função é possível digitar qualquer valor, e o valor irá aparecer por extenso. O comando responsável por imprimir em sequências todos os valores é o for(i=1; i<=6; i++). int main () { int n , i; cin >> n; for (i=1; i<=6; i++) { imprimir_por_extenso (n*i); cout << ("\n"); } }
Compartilhar