Autor Tópico: [Pascal] Dizer o numero por extenso  (Lida 3474 vezes)

Offline Teotónio Ricardo

  • Administrator
  • Newbie
  • *****
  • Mensagens: 0
  • Karma: +0/-0
    • Ver Perfil
    • http://www.teotonio.pt
[Pascal] Dizer o numero por extenso
« em: Dezembro 02, 2005, 01:05:47 pm »
[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:

Código: [Seleccione]
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

Offline Dungee

  • Newbie
  • *
  • Mensagens: 0
  • Karma: +0/-0
    • Ver Perfil
[Pascal] Dizer o numero por extenso
« Responder #1 em: Dezembro 14, 2005, 04:28:28 pm »
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

Offline KTachyon

  • Global Moderator
  • Newbie
  • *****
  • Mensagens: 0
  • Karma: +0/-0
    • Ver Perfil
    • http://twitter.com/KTachyon
[Pascal] Dizer o numero por extenso
« Responder #2 em: Janeiro 02, 2006, 06:10:31 pm »
Aki está uma tradução para C++:

Código: [Seleccione]
// Author: KhAoTiK TaChYoN



#include <iostream>



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;

}
My Q4 estimate: Macs: 5.89M; iPods: 4.19M; iPhones: 30.0M; iPads: 18.05M; Revenue: 37.00B; EPS: 9.50
AAPL Q3 result: Macs: 4.02M; iPods: 6.80M; iPhones: 26.0M; iPads: 17.04M; Revenue: 35.02B; EPS: 9.32

Offline Teotónio Ricardo

  • Administrator
  • Newbie
  • *****
  • Mensagens: 0
  • Karma: +0/-0
    • Ver Perfil
    • http://www.teotonio.pt
[Pascal] Dizer o numero por extenso
« Responder #3 em: Janeiro 02, 2006, 06:23:43 pm »
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!

Offline KTachyon

  • Global Moderator
  • Newbie
  • *****
  • Mensagens: 0
  • Karma: +0/-0
    • Ver Perfil
    • http://twitter.com/KTachyon
[Pascal] Dizer o numero por extenso
« Responder #4 em: Janeiro 02, 2006, 06:38:56 pm »
Tks. Eu vou colocando alguns algoritmos k axe interessantes.
My Q4 estimate: Macs: 5.89M; iPods: 4.19M; iPhones: 30.0M; iPads: 18.05M; Revenue: 37.00B; EPS: 9.50
AAPL Q3 result: Macs: 4.02M; iPods: 6.80M; iPhones: 26.0M; iPads: 17.04M; Revenue: 35.02B; EPS: 9.32

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49