In advance, sorry for using french and english in the same soft... this is multilanguage...
and you are lucky, I didn't use arabic...
How to Represent a carbon molecule and compute all "ramifications" starting from a radical
Let's start for presenting a screen capture of the application :
Programme usage
Four zones appear :
Command buttons (left).
Input zone (manuel and pre-entered datas) (middle).
Pseudo-graphic visualisation zone (right).
Text output area, where results are displayed (bottom).
Select Manuel or Selected input
You can enter the data or use the default given as example.
In manual input, molecule data are entered showing the number of carbon tied to another carbon atome, seprated by spaces.
You can use one line to enter many "links" (liaisons), but you have to use commas.
Then press Load Data.
The data of the carbon molecule are displayed in the bottom text display area, in order to verify the correct reading of the lolecule. Example :
Affiche liaisons existantes de la molécule
1-2 2-3 3-4 4-5 4-8 5-6 6-7 6-9 8-10 10-11
Then, enter the carbon number (Radical n°) from which all possible ramifications are looked for.
Press Calcule.
All ramifications are displayed :
Nouvelle recherche ŕ partir de 1, Manuel input
___Ramifications :
1-2 2-3 3-4 4-5 5-6 6-7
1-2 2-3 3-4 4-5 5-6 6-9
1-2 2-3 3-4 4-8 8-10 10-11
Another search from radical n° 5 gives :
Nouvelle recherche ŕ partir de 5, Manuel input
___Ramifications :
5-4 4-3 3-2 2-1
5-4 4-8 8-10 10-11
5-6 6-7
5-6 6-9
If you press Dessine, a kind of graphical representation, using tree view, is drawn.
Points represents a link between carbon atomes.
How it works :
The program use recursive function calls to search for all possibilities.
Have a look to the algorithm functions :
void __fastcall ChercheCollegue(int r);
void __fastcall ChercheTous();
in the sources.
Download :
If you want to compile it again, you will need Borland C++ Builder 6 and : ramifications_src.zip Sources in Borland C++ Builder 6.
For a direct use click below : ramifications.zip The executable, ready to use.