Reinhart le 24/05/2010 à 19:45
Bonjour à tous, je vous présente un de mes plus gros programme de seconde, la loi de léwis. Il donne le nombre de doublets liants, non liants, c'est utile pour vérifier ses resultats, car la chimie ne permet pas d'erreur (La suite de l'exercice et la représentation est fausse si les calculs ont foiré)
Voila, il fait 3000 Octets.
ü représente Sto
ù représente le -
Code
EffEcr
Output(3,6,"LOI DE"
Output(4,6,"LEWIS
Output(5,2,"BY REINHART
Pause
Lbl 0
Menu("MENU PRINCIPAL","ATOME",1,"MOLECULE",2,"QUITTER",9
Lbl 1
EffEcr
Disp "ENTRER Z :"
Input "=",A
If A÷ (
) 2 et Aø0
Then
Goto 3
Else
If Aù (
) 6 et A÷ (
) 10
Then
Goto 4
Else
If Aù (
) 14 et A÷ (
) 18
Then
Goto 5
Else
EffEcr
Output(4,4,"ERREUR")
Pause
Goto 0
Lbl 3
EffEcr
Disp "LIANT :",2-A
Disp "NON LIANT :",A-1
Pause
Goto 0
Lbl 4
EffEcr
Disp "LIANT(S) :",10-A
Disp "NON LIANT(S) :",A-6
Pause
Goto 0
Lbl 5
EffEcr
Disp "LIANT(S) :",18-A
Disp "NONú (
) LIANT",A-14
Pause
Goto 0
Lbl 2
1ü (
) H
4ü (
) C
5ü (
) N
6ü (
) O
7ü (
) F
(2/3)ü (
) I
5ü (
) P
6ü (
) S
1.75ü (
) L
EffEcr
Menu("NOMBRE D ATOME","2",21,"3",22,"4",23,"RETOUR AU MENU",0)
Lbl 21
Input "1ER ATOME :",B
Input "INDICE :",D
Input "2EME ATOME :",E
Input "INDICE :",G
EffEcr
Disp "ELEC. EXTERNE :",BD+EG
Disp "DOUBLETS :",(BD+EG)/2
Pause
EffEcr
If B=1 et E=1
Then
(ú (
) B+2)ü (
) J
(ú (
) E+2)ü (
) K
Disp "LIANT :",(JD+KG)/2
Disp "NONú (
) LIANT :",(D(B-J)+G(E-K))/2
Pause
Goto 2
Else
If B=1 et Eù (
) 4 et E÷ (
) 7
Then
(ú (
) B+2)ü (
) J
(ú (
) E+8)ü (
) K
Disp "LIANT :",(JD+KG)/2
Disp "NONú (
) LIANT :",(D(B-J)+G(E-K))/2
Pause
Goto 2
Else
If Bù (
) 4 et B÷ (
) 7 et E=1
Then
(ú (
) B+8)ü (
) J
(ú (
) E+2)ü (
) K
Disp "LIANT :",(JD+KG)/2
Disp "NONú (
) LIANT :",(D(B-J)+G(E-K))/2
Pause
Goto 2
Else
If Bù (
) 4 et B÷ (
) 7 et Eù (
) 4 et E÷ (
) 7
Then
(ú (
) B+8)ü (
) J
(ú (
) E+8)ü (
) K
Disp "LIANT :",(JD+KG)/2
Disp "NONú (
) LIANT :",(D(B-J)+G(E-K))/2
Pause
Goto 2
Lbl 22
Input "1ER ATOME :",B
Input "INDICE :",D
Input "2EME ATOME :",E
Input "INDICE :",G
Input "3EME ATOME :",M
Input "INDICE :",Q
EffEcr
Disp "ELEC. EXTERNES :",BD+EG+MQ
Disp "DOUBLETS :",(BD+EG+MQ)/2
Pause
EffEcr
If Bù (
) 4 et B÷ (
) 7 et Eù (
) 4 et E÷ (
) 7 et M=1
Then
(ú (
) B+8)ü (
) J
(ú (
) E+8)ü (
) K
(ú (
) M+2)ü (
) R
Disp "LIANTS :",(JD+KG+RQ)/2
Disp "NONú (
) LIANTS :",(D(B-J)+G(E-K)+Q(M-R))/2
Pause
Goto 2
Else
If Bù (
) 4 et B÷ (
) 7 et E=1 et Mù (
) 4 et M÷ (
) 7
Then
(ú (
) B+8)ü (
) J
(ú (
) E+2)ü (
) K
(ú (
) M+8)ü (
) R
Disp "LIANTS :",(JD+KG+RQ)/2
Disp "NONú (
) LIANTS :",(D(B-J)+G(E-K)+Q(M-R))/2
Pause
Goto 2
Else
If B=1 et Eù (
) 4 et E÷ (
) 7 et Mù (
) 4 et M÷ (
) 7
Then
(ú (
) B+2)ü (
) J
(ú (
) E+8)ü (
) K
(ú (
) M+8)ü (
) R
Disp "LIANTS :",(JD+KG+RQ)/2
Disp "NONú (
) LIANTS :",(D(B-J)+G(E-K)+Q(M-R))/2
Pause
Goto 2
Else
If Bù (
) 4 et B÷ (
) 7 et Eù (
) 4 et E÷ (
) 7 et Mù (
) 4 et M÷ (
) 7
Then
(ú (
) B+8)ü (
) J
(ú (
) E+8)ü (
) K
(ú (
) M+8)ü (
) R
Disp "LIANTS :",(JD+KG+RQ)/2
Disp "NONú (
) LIANTS :",(D(B-J)+G(E-K)+Q(M-R)
Pause
Goto 2
Lbl 23
EffEcr
Disp "ENTRER :"
Input "1ER ATOME :",B
Input "INDICE :",D
Input "2EME ATOME :",E
Input "INDICE :",G
Input "3EME ATOME :",M
Input "INDICE :",Q
Input "4EME ATOME :",T
Input "INDICE :",U
EffEcr
Disp "ELEC. EXTERNES :",BD+EG+MQ+TU
Disp "DOUBLET :",(BD+EG+MQ+TU)/2
Pause
EffEcr
If Bù (
) 4 et B÷ (
) 7 et Eù (
) 4 et E÷ (
) 7 et Mù (
) 4 et M÷ (
) 7 et T=1
Then
8-Bü (
) J
8-Eü (
) K
8-Mü (
) R
2-Tü (
) V
Disp "LIANTS :",(JD+KG+RQ+VU)/2
Disp "NONú (
) LIANTS :",(D(B-J)+G(E-K)+Q(M-R)+U(T-V))/2
Pause
Goto 2
Else
If Bù (
) 4 et B÷ (
) 7 et Eù (
) 4 et E÷ (
) 7 et M=1 et Tù (
) 4 et T÷ (
) 7
Then
8-Bü (
) J
8-Eü (
) K
2-Mü (
) R
8-Tü (
) V
Disp "LIANTS :",(JD+KG+RQ+ÁU)/2
Disp "NONú (
) LIANTS :",(D(B-J)+G(E-K)+Q(M-R)+U(T-V))/2
Pause
Goto 2
Else
If Bù (
) 4 et B÷ (
) 7 et E=1 et M÷ (
) 7 et Mù (
) 4 et T÷ (
) 7 et Tù (
) 4
Then
8-Bü (
) J
2-Eü (
) K
8-Mü (
) R
8-Tü (
) V
Disp "LIANTS :",(JD+KG+RQ+VU)/2
Disp "NONú (
) LIANTS :",(D(B-J)+G(E-K)+Q(M-R)+U(T-V))/2
Pause
Goto 2
Else
If B=1 et Eù (
) 4 et E÷ (
) 7 et Mù (
) 4 et M÷ (
) 7 et Tù (
) 4 et T÷ (
) 7
Then
2-Bü (
) J
8-Eü (
) K
8-Mü (
) Q
8-Tü (
) V
Disp "LIANTS :",(JD+KG+RQ+VU)/2
Disp "NONú (
) LIANTS :",(D(B-J)+G(E-K)+Q(M-R)+U(T-V))/2
Pause
Goto 2
Else
If Bù (
) 4 et B÷ (
) 7 et Eù (
) 4 et E÷ (
) 7 et Mù (
) 4 et M÷ (
) 7 et Tù (
) 4 et T÷ (
) 7
8-Bü (
) J
8-Eü (
) K
8-Mü (
) R
8-Tü (
) V
Disp "LIANTS :",(JD+KG+RQ+VU)/2
Disp "NONú (
) LIANTS :",(D(B-J)+G(E-K)+R(M-Q)+U(T-V))/2
Pause
Goto 2
Lbl 9