Advertisement
Guest User

Untitled

a guest
Jun 20th, 2019
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Go 3.74 KB | None | 0 0
  1. #include "pch.h"
  2. #include <iostream>
  3. #include <array>
  4. using namespace std;
  5.  
  6. class chimica {
  7.     public:
  8.         void configurazione_elettronica(int numero_atomico) {
  9.  
  10.             //dichiarazione variabili contatore e variabili tmp
  11.             int i;
  12.             int x;
  13.  
  14.             //dichiarazione dell'array di elettroni che potrebbero essere dell'atomo con il n.a passato
  15.             std::array<int,121> elettroni;
  16.  
  17.             //azzeramento di tutti i valori alla partenza
  18.             for (int i = 0; i < 121; i++) {
  19.  
  20.                 elettroni[i] = 0;
  21.             }
  22.  
  23.             //impostazione di tanti 1 quanti gli elettroni dell'atomo con il n.a passato
  24.             i = 0;
  25.             while (numero_atomico > 0) {
  26.                 elettroni[i] = 1;
  27.                 numero_atomico = numero_atomico - 1;
  28.                 i++;
  29.             }
  30.  
  31.             //controlli per orbitali
  32.                
  33.                     ///caso nullo
  34.  
  35.                     if ((elettroni[0] + elettroni[1]) == 0) {
  36.                         cout << "zero elettroni";
  37.                     }
  38.  
  39.                     ///primo orbitale
  40.                        
  41.                         //orbita s
  42.                         if (elettroni[0] + elettroni[1] > 0) {
  43.                             cout << "1s" << elettroni[0] + elettroni[1];
  44.                         }
  45.  
  46.                     ///secondo orbitale
  47.  
  48.                         //orbita s
  49.                             if (elettroni[2] + elettroni[3] > 0) {
  50.                             cout << "/2s" << elettroni[2] + elettroni[3];
  51.                             }
  52.  
  53.                         //orbita p
  54.                             x = 0;
  55.                             for (int i = 4; i < 10; i++) {
  56.                                 x = x + elettroni[i];
  57.                             }
  58.                             if(x > 0)
  59.                                 cout << "/2p" << x;
  60.                        
  61.  
  62.                     ///terzo orbitale
  63.  
  64.                             //orbita s
  65.                             if (elettroni[10] + elettroni[11] > 0) {
  66.                                 cout << "/3s" << elettroni[10] + elettroni[11];
  67.                             }
  68.  
  69.                             //orbita p
  70.                             x = 0;
  71.                             for (int i = 12; i < 18; i++) {
  72.                                 x = x + elettroni[i];
  73.                             }
  74.                             if (x > 0)
  75.                                 cout << "/3p" << x;
  76.  
  77.                             //orbita d
  78.                             x = 0;
  79.                             for (int i = 18; i < 28; i++) {
  80.                                 x = x + elettroni[i];
  81.                             }
  82.                             if (x > 0)
  83.                                 cout << "/3d" << x;
  84.            
  85.                     ///quarto orbitale
  86.  
  87.                             //orbita s
  88.                             if (elettroni[28] + elettroni[29] > 0) {
  89.                                 cout << "/4s" << elettroni[28] + elettroni[29];
  90.                             }
  91.  
  92.                             //orbita p
  93.                             x = 0;
  94.                             for (int i = 30; i < 36; i++) {
  95.                                 x = x + elettroni[i];
  96.                             }
  97.                             if (x > 0)
  98.                                 cout << "/4p" << x;
  99.  
  100.                             //orbita d
  101.                             x = 0;
  102.                             for (int i = 36; i < 46; i++) {
  103.                                 x = x + elettroni[i];
  104.                             }
  105.                             if (x > 0)
  106.                                 cout << "/4d" << x;
  107.  
  108.                             //orbita f
  109.                             x = 0;
  110.                             for (int i = 46; i < 59; i++) {
  111.                                 x = x + elettroni[i];
  112.                             }
  113.                             if (x > 0)
  114.                                 cout << "/4f" << x;
  115.  
  116.                     ///quinto orbitale
  117.  
  118.                             //orbita s
  119.                             if (elettroni[59] + elettroni[60] > 0) {
  120.                                 cout << "/5s" << elettroni[59] + elettroni[60];
  121.                             }
  122.  
  123.                             //orbita p
  124.                             x = 0;
  125.                             for (int i = 61; i < 67; i++) {
  126.                                 x = x + elettroni[i];
  127.                             }
  128.                             if (x > 0)
  129.                                 cout << "/5p" << x;
  130.  
  131.                             //orbita d
  132.                             x = 0;
  133.                             for (int i = 67; i < 76; i++) {
  134.                                 x = x + elettroni[i];
  135.                             }
  136.                             if (x > 0)
  137.                                 cout << "/5d" << x;
  138.  
  139.                             //orbita f
  140.                             x = 0;
  141.                             for (int i = 77; i < 91; i++) {
  142.                                 x = x + elettroni[i];
  143.                             }
  144.                             if (x > 0)
  145.                                 cout << "/5f" << x;
  146.  
  147.                     ///sesto orbitale
  148.  
  149.                             //orbita s
  150.                             if (elettroni[91] + elettroni[92] > 0) {
  151.                                 cout << "/6s" << elettroni[91] + elettroni[92];
  152.                             }
  153.  
  154.                             //orbita p
  155.                             x = 0;
  156.                             for (int i = 93; i < 99; i++) {
  157.                                 x = x + elettroni[i];
  158.                             }
  159.                             if (x > 0)
  160.                                 cout << "/6p" << x;
  161.  
  162.                             //orbita d
  163.                             x = 0;
  164.                             for (int i = 99; i < 109; i++) {
  165.                                 x = x + elettroni[i];
  166.                             }
  167.                             if (x > 0)
  168.                                 cout << "/6d" << x;
  169.  
  170.                     ///settimo orbitale
  171.  
  172.                             //orbita s
  173.                             if (elettroni[109] + elettroni[110] > 0) {
  174.                                 cout << "/7s" << elettroni[109] + elettroni[110];
  175.                             }
  176.         }
  177. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement