Distribuição Eletronica de Elementos Químicos em C++
Publicado por suelen carvalho 11/06/2008
[ Hits: 31.990 ]
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;
}
Função boa para ler string em C
Simulador do Sorteio da Mega Sena
Converçor de Decimal para Binario
Conjunto de Mandelbrot (Fractal)
SynapSeq - programa para estimular as ondas cerebrais
Por que seu __DIR__ falhou ou o "inferno" dos caminhos no PHP
Preparando-se para certificações da LPI através do LPI Lab
Migração de Arch Linux para repositórios CachyOS (Uso de Instruções v3 e v4)
Arch Linux com repos do CachyOS para otimização ou usar Gentoo?
Ativando o modo Quake no XFCE4-Terminal
[Tutorial] Configurando Multimaster no Samba 4 AD (DC02) + Explicação de FSMO Roles
[Resolvido] Google Chrome reclamando de perfil em uso após mudar hostname
Como instalar Warsaw no Gentoo? (5)
Senhor Einstein tinha razão mesmo! [RESOLVIDO] (12)
Como insiro e excluo um elemento XML e JSON ao código Javascript (2)
Da pra formatar um netbook MGB e usar algum linux nele? É possível usa... (4)









