5 de agosto de 2011

Números de Armstrong

Saudações Garotas e Garotos!

Dia 20 iniciei meu curso de Técnico em Redes de Computadores, sei que isso não tem muito a ver com o tema do blog, ou tem?? Sei lá hsaushauhassuh...
Bom vamos continuar, o curso iniciou-se com Lógica de Programaçõa, algo bem nteressante, mas difícil para quem nunca viu algo do tipo, não me arrepiei tanto, pois já conhecia uma parte sobre o tema, mas enfin, esta semana, foi uma semana dura de exercícios, e o professor propôs um exercício extra, que vale 10 pontos na média final, esse exercício trata-se de criar um algorítmo que escreva os Números de Armstrong que estão entre 1 e 10.000, para quem não sabe o que é um Número de Amrstrong, segue uma pequena explicação:

O número 153 é um Número de Armstrong porque o somatório dos cubos de cada um dos seus
algarismos 13 + 53 + 33 = 1+125+27 = 153 é igual ao próprio número. Ou seja, todo número que o somatório do cubo de cada um de seus algarismos seja igual ao próprio número é um Número de Armstrong.




Depois de muito pesquisar, pensar e calcular, eu estava hoje no ônibus, enquanto voltava do SENAI, quando me veio a solução do Algorítmo, então eu fiz e deu certo, resolvi postar no blog, para quem estiver buscando uma ajuda, só não vou explicar como funciona,  o algoritmo está em pseudocódigo para o programa VisualG, se você for alguém que quer apenas ganhar nota no curso copie o pseudocódigo, se for alguém com intenção de aprender, estude e entenda o código. Boa Sorte.



algoritmo "Armstrong"
// Função : Exibir os números de Armstrong que estão entre 1 e 10.000
// Autor : Rafael gomes
// Data : 5/8/2011
// Seção de Declarações
var
m,c,d,u :inteiro
mil,cem,dez :inteiro
inicio
// Seção de Comandos
para u de 1 ate 9 faca
   se (u=u)entao
      escreval (u)
   fimse
fimpara
para d de 1 ate 9 faca
   dez<-10*d
   para u de 0 ate 9 faca
      se (d^2+u^2=dez+u)entao
         escreval (dez+u)
      fimse
   fimpara
fimpara
para c de 1 ate 9 faca
   cem<-100*c
   para d de 0 ate 9 faca
      dez<-10*d
      para u de 0 ate 9 faca
         se (c^3+d^3+u^3=cem+dez+u)entao
            escreval (cem+dez+u)
         fimse
      fimpara
   fimpara
fimpara
para m de 1 ate 9 faca
   mil<-1000*m
   para c de 0 ate 9 faca
      cem<-100*c
      para d de 0 ate 9 faca
         dez<-10*d
         para u de 0 ate 9 faca
            se (m^4+c^4+d^4+u^4=mil+cem+dez+u)entao
               escreval (mil+cem+dez+u)
            fimse
         fimpara
      fimpara
   fimpara
fimpara
se (1^5+0^5+0^5+0^5+0^5=10000) entao
escreva (100000)
fimse
fimalgoritmo

Comentários: