[Pascal] Dizer o numero por extenso
Aqui esta um programa em pascal que escreve os numeros até 9999 em extenso, uma pequena brincadeira que demorou algum tempo a fazer nas aulas de BP:
program extenso;
uses crt;
var texto:string;
tamanho: integer;
begin
clrscr;
writeln (\\'..::]Programa produzido pelo cenourinha[::..\\');
writeln (\\' ..::]www.webtuga.com[::.. \\');
readkey;
clrscr;
writeln(\\' Introduza um numero para passar a extenso \\');
read(texto);
tamanho:=length(texto);
writeln(\\'Milhares: \\',texto[1]);
writeln(\\'Centenas: \\',texto[2]);
writeln(\\'Dezenas: \\',texto[3]);
writeln(\\'Unidades: \\',texto[4]);
readkey;
case texto[1] of
\\'1\\':write(\\'Mil\\');
\\'2\\':write(\\'Dois Mil\\');
\\'3\\':write(\\'Tres Mil\\');
\\'4\\':write(\\'Quatro Mil\\');
\\'5\\':write(\\'Cinco Mil\\');
\\'6\\':write(\\'Seis Mil\\');
\\'7\\':write(\\'Sete Mil\\');
\\'8\\':write(\\'Oito Mil\\');
\\'9\\':write(\\'Nove Mil\\');
end;
if (texto[3]=\\'0\\') and (texto[4]=\\'0\\') then
write(\\' e Cem \\')
else
case texto[2] of
\\'1\\':write(\\' Cento e\\');
\\'2\\':write(\\' Duzentos e\\');
\\'3\\':write(\\' Trezentos e\\');
\\'4\\':write(\\' Quatrocentos e\\');
\\'5\\':write(\\' Quinhentos e\\');
\\'6\\':write(\\' Seiscentos e\\');
\\'7\\':write(\\' Setecentos e\\');
\\'8\\':write(\\' Oitocentos e\\');
\\'9\\':write(\\' Novecentos e\\');
end;
if texto[3]=\\'1\\' then
if texto[3]+texto[4]=\\'11\\' then
write(\\'onze\\');
if texto[3]+texto[4]=\\'12\\' then
write(\\'doze\\');
if texto[3]+texto[4]=\\'13\\' then
write(\\'treze\\');
if texto[3]+texto[4]=\\'14\\' then
write(\\'Catorze\\');
if texto[3]+texto[4]=\\'15\\' then
write(\\'Quinze\\');
if texto[3]+texto[4]=\\'16\\' then
write(\\'Dezasseis\\');
if texto[3]+texto[4]=\\'17\\' then
write(\\'dezasete\\');
if texto[3]+texto[4]=\\'18\\' then
write(\\'Dezoito\\');
if texto[3]+texto[4]=\\'19\\' then
write(\\'dezanove\\');
case texto[3] of
\\'1\\':write(\\' \\');
\\'2\\':write(\\' Vinte e\\');
\\'3\\':write(\\' Trinta e\\');
\\'4\\':write(\\' Quarenta e\\');
\\'5\\':write(\\' Cinquenta e\\');
\\'6\\':write(\\' Secenta e\\');
\\'7\\':write(\\' Setenta e\\');
\\'8\\':write(\\' Oitenta e\\');
\\'9\\':write(\\' Noventa e\\');
end;
if texto[3]<>\\'1\\' then
case texto[4] of
\\'1\\':write(\\' um \\');
\\'2\\':write(\\' dois \\');
\\'3\\':write(\\' tres \\');
\\'4\\':write(\\' quatro \\');
\\'5\\':write(\\' cinco \\');
\\'6\\':write(\\' seis \\');
\\'7\\':write(\\' sete \\');
\\'9\\':write(\\' Oito \\');
end;
readkey;
end.
Espero que gostem desta brincadeira, alguma duvida é só dizer
fiquem bem
Hohoho gostei disso deve te cansado nao ??
eu progamo vB hehe dps eu ponho uma calculadora ake pro seis ve ;DD
fuiz
[]\\'s
faz tempo q num venho ake oO
Aki está uma tradução para C++:
// Author: KhAoTiK TaChYoN
#include
int main (int argc, char * const argv[]) {
int i, a;
std::cout << "Number to print: ";
std::cin >> i;
if (i == 0) {
std::cout << "Zero";
return 0;
}
a = i/1000;
i %= 1000;
switch (a) {
case 1: std::cout << "Mil ";
break;
case 2: std::cout << "Dois Mil ";
break;
case 3: std::cout << "Três Mil ";
break;
case 4: std::cout << "Quatro Mil ";
break;
case 5: std::cout << "Cinco Mil ";
break;
case 6: std::cout << "Seis Mil ";
break;
case 7: std::cout << "Sete Mil ";
break;
case 8: std::cout << "Oito Mil ";
break;
case 9: std::cout << "Nove Mil ";
break;
}
if (a != 0 && i % 100 == 0) {
a = i/100;
i %= 100;
switch (a) {
case 1: std::cout << "e Cem";
break;
case 2: std::cout << "e Duzentos";
break;
case 3: std::cout << "e Trezentos";
break;
case 4: std::cout << "e Quatrocentos";
break;
case 5: std::cout << "e Quinhentos";
break;
case 6: std::cout << "e Seiscentos";
break;
case 7: std::cout << "e Setecentos";
break;
case 8: std::cout << "e Oitocentos";
break;
case 9: std::cout << "e Novecentos";
break;
}
}
a = i/100;
i %= 100;
switch (a) {
case 1: std::cout << "Cento e ";
break;
case 2: std::cout << "Duzentos e ";
break;
case 3: std::cout << "Trezentos e ";
break;
case 4: std::cout << "Quatrocentos e ";
break;
case 5: std::cout << "Quinhentos e ";
break;
case 6: std::cout << "Seiscentos e ";
break;
case 7: std::cout << "Setecentos e ";
break;
case 8: std::cout << "Oitocentos e ";
break;
case 9: std::cout << "Novecentos e ";
break;
}
switch (i) {
case 11: std::cout << "Onze";
return 0;
case 12: std::cout << "Doze";
return 0;
case 13: std::cout << "Treze";
return 0;
case 14: std::cout << "Catorze";
return 0;
case 15: std::cout << "Quize";
return 0;
case 16: std::cout << "Desasseis";
return 0;
case 17: std::cout << "Desassete";
return 0;
case 18: std::cout << "Desoito";
return 0;
case 19: std::cout << "Desanove";
return 0;
}
a = i/10;
i %= 10;
if (i == 0) {
a = i/100;
i %= 100;
switch (a) {
case 1: std::cout << "Dez";
break;
case 2: std::cout << "Vinte";
break;
case 3: std::cout << "Trinta";
break;
case 4: std::cout << "Quarenta";
break;
case 5: std::cout << "Cinquenta ";
break;
case 6: std::cout << "Sessenta ";
break;
case 7: std::cout << "Setenta";
break;
case 8: std::cout << "Oitenta";
break;
case 9: std::cout << "Noventa";
break;
}
}
switch (a) {
case 2: std::cout << "Vinte e ";
break;
case 3: std::cout << "Trinta e ";
break;
case 4: std::cout << "Quarenta e ";
break;
case 5: std::cout << "Cinquenta e ";
break;
case 6: std::cout << "Sessenta e ";
break;
case 7: std::cout << "Setenta e ";
break;
case 8: std::cout << "Oitenta e ";
break;
case 9: std::cout << "Noventa e ";
break;
}
switch (i) {
case 1: std::cout << "Um";
break;
case 2: std::cout << "Dois";
break;
case 3: std::cout << "Três";
break;
case 4: std::cout << "Quatro";
break;
case 5: std::cout << "Cinco";
break;
case 6: std::cout << "Seis";
break;
case 7: std::cout << "Sete";
break;
case 8: std::cout << "Oito";
break;
case 9: std::cout << "Nove";
break;
}
return 0;
}
Porreiro, ainda não sei C++ mas tenho intensão de saber, se tiveres ai mais codigos e algoritmos, não exites, posta!
Ah e já agora bem vindo ao Forum!
Tks. Eu vou colocando alguns algoritmos k axe interessantes.