Distribuição Eletronica de Elementos Químicos em C++
Publicado por suelen carvalho 11/06/2008
[ Hits: 32.008 ]
Homepage: http://suelengc.com.br
Download distribuicao_eletronicav2.cpp
Rotina em C++ que faz a distribuição eletrônica de qualquer elemento da tabela períódica existentes até a data de hoje.
Basta compilar e testar.
Existe um bug ainda não corrigido, quando se pede a distribuição do último elemento da tabela.
//distribuicao_eletronicav2.cpp
/*
Autor....: Suelen Goularte Carvalho
Data.....: 06/11/2007
Descrição: Realiza a distribuição eletronica de um elemento (tabela de Linus Pauling)
Entrada..: Inteiro número atômico
Saída....: Imprime distribuição eletrônica
*/
#include<iostream.h>
using namespace std;
struct Camadas{
int numCamada;
char strCamada;
int NumAtomico;
};
int main(){
int vCountCamada, vCountSubCamada, vCount, vEletronsUltimaCamada, vQtdeDistribuicao = 0, vNumAtomicoCamada;
int vNumAtomico;
int vNumAtomicoFixo;
cout << "************************************\n";
cout << "*** Desenvolvido por Suelen G.C. ***\n";
cout << "*** Data 06/11/2007 00h58 ***\n";
cout << "*** Distribuicao Eletronica v1.0 ***\n";
cout << "************************************\n\n\n";
cout << "Digite o valor do numero atomico: ";
cin >> vNumAtomico;
vNumAtomicoFixo = vNumAtomico;
/* Distribuição eletrônica completa */
Camadas distribuicao[18] = {{1, 's', 2}, {2, 's', 2}, {2, 'p', 6}, {3, 's', 2}, {3, 'p', 6}, {4, 's', 2}, {3, 'd', 10}, {4, 'p', 6}, {5, 's', 2}, {4, 'd', 10}, {5, 'p', 6}, {6, 's', 2}, {4, 'f', 14}, {5, 'd', 10}, {6, 'p', 6}, {7, 's', 2}, {5, 'f', 14}, {6, 'd', 10}};
/* encontra o numero de subcamadas por camada */
for(vCountSubCamada = 0; vCountSubCamada < 18; vCountSubCamada++){
if((vNumAtomicoFixo-distribuicao[vCountSubCamada].NumAtomico) < 0){
vEletronsUltimaCamada = vNumAtomicoFixo;
}
if( (vNumAtomicoFixo - distribuicao[vCountSubCamada].NumAtomico) >= 0 ){
vQtdeDistribuicao++;
vNumAtomicoFixo -= distribuicao[vCountSubCamada].NumAtomico;
}else{
if(vNumAtomicoFixo > 0){
vQtdeDistribuicao++;
}
vCountSubCamada = 18;
}
}
/* imprime distribuicao eletrica */
cout << "\n\nDistribuicao eletronica: \n\n" << endl;
if(vEletronsUltimaCamada == 0){
// imprime sem alterar eletron da ultima camada
for(vCount = 0; vCount < vQtdeDistribuicao; vCount++){
cout << distribuicao[vCount].numCamada << distribuicao[vCount].strCamada << distribuicao[vCount].NumAtomico << " ";
}
}else{
// imprime sem alterar eletron da ultima camada
for(vCount = 0; vCount < vQtdeDistribuicao; vCount++){
if(vCount == (vQtdeDistribuicao-1)){
cout << distribuicao[vCount].numCamada << distribuicao[vCount].strCamada << vEletronsUltimaCamada;
}else{
cout << distribuicao[vCount].numCamada << distribuicao[vCount].strCamada << distribuicao[vCount].NumAtomico << " ";
}
}
}
cout << "\n\n\n";
return 0;
}
Painel de configuração placas ati
Produto de duas matrizes alocadas dinamicamente
Faixa salarial de funcionários
Maquina modesta - a vez dos navegadores ferrarem o usuario
Fscrypt: protegendo arquivos do seu usuário sem a lentidão padrão de criptograr o disco
Faça suas próprias atualizações de pacotes/programas no Void Linux e torne-se um Contribuidor
Como rodar o Folding@home no Linux
Criando um painel de controle (Dashboard) para seu servidor com o Homepage
Utilizando a Ferramenta xcheckrestart no Void Linux
Pisando no acelerador do Linux Mint: Kernel XanMod, zRAM e Ajustes de Swap
Como compilar kernel no Linux Mint
O que significa essa expressão? (3)
o que é esta mensagem? relatorios do sistema (8)
como usar o caja como cliente FTP no linux mint? (2)
VMWare Player não conecta na rede nem consigo intercambiar arquivos (3)









