برمجة بلغة c و c++ و c# برمجة بلغة السي وتطوراتها وجديدها وكل ما يلزمها

إضافة رد
قديم 15-03-2010, 09:50 PM
  #1
نرمين*
مشرفة منتدى
الرياضيات والإعلام الآلي
 الصورة الرمزية نرمين*
 
La spécialité: Autres
اخرى ( جامعة عربية او اجنبية )
تاريخ التسجيل: 08-11-2008
الدولة: الجزائر
المشاركات: 3,989
نرمين* عضو محترف الابداعنرمين* عضو محترف الابداعنرمين* عضو محترف الابداعنرمين* عضو محترف الابداعنرمين* عضو محترف الابداعنرمين* عضو محترف الابداعنرمين* عضو محترف الابداعنرمين* عضو محترف الابداعنرمين* عضو محترف الابداعنرمين* عضو محترف الابداعنرمين* عضو محترف الابداع
افتراضي exemple systeme expert


#include <iostream.h>
#include <conio.h> //getch

struct liste { //déclaration nécissaire
char el;
liste * next;
};

struct fait {
char el;
char test;
fait * next;
};

struct regle {
liste * condition;
liste * resultat;
char testr;
regle * suivant;
};

//############################## ############################## ##

fait * Creation_Base_Fait (fait * F){
int k;

F = new fait;
cout<<"\nDonner une base fait : ";
cin>> F->el;
F->test = '#';
F->next = NULL;

fait * p = F;

cout<<"\nContinier ... 0/1 : "; cin>> k;
while (k != 0 ) {
fait * q = new fait;
cout<<"\nDonner une base fait : ";
cin>> q->el;
q->test = '#';
q->next = NULL;
p->next = q;
p = q;

cout<<"\nContinier ... 0/1 : "; cin>> k;
}
return F;
}

//############################## ############################## ##

liste * creation (int n){
liste * tete = new liste;
cin>> tete->el;
tete->next = NULL;
liste * q = tete;

for (int i = 2; i<=n; i++){
cout<<"--- ^ ---\n";
liste * p = new liste;
cin>> p->el;
p->next = NULL;
q->next = p;
q = p;
}
return tete;
}

//------------------------------------------------

regle * Creation_Base_Regle (regle * Rr){
int n1,n2; int k;
Rr = new regle;

cout<<"\nDonner le nombre de condition : "; cin >> n1;
Rr->condition = creation (n1);
cout<<"\nDonner le nombre de resultat : "; cin >> n2;
Rr->resultat = creation (n2);
Rr->testr = '*';
Rr->suivant = NULL;

cout<<"\nContinier ... 0/1 : "; cin>> k;
regle * p = Rr;
while (k != 0 ) {
regle * q = new regle;

cout<<"\nDonner le nombre de condition : "; cin >> n1;
q->condition = creation (n1);
cout<<"\nDonner le nombre de resultat : "; cin >> n2;
q->resultat = creation (n2);
q->testr = '*';
q->suivant = NULL;
p->suivant = q;
p = q;

cout<<"\nContinier ... 0/1 : "; cin>> k;
}
return Rr;
}

//############################## ############################## ##


void Ajoute_Regle(regle * &R) {
int n1,n2;
regle * nouveau = new regle;

cout<<"\nDonner le nombre de condition : "; cin >> n1;
nouveau->condition = creation (n1);

cout<<"\nDonner le nombre de resultat : "; cin >> n1;
nouveau->resultat = creation (n1);

nouveau->testr = '*';

nouveau->suivant = NULL;

regle * p = R;

while (p->suivant != NULL)
p = p->suivant;

p->suivant = nouveau;


}

//------------------------------------------------

void Ajoute_Fait (fait * &F,char el, char x){
fait * nouveau = new fait;
nouveau->el=el;
nouveau->test = x;
nouveau->next = NULL;

fait * p =F;
while (p->next != NULL)
p = p->next;

p->next = nouveau;
}

//############################## ########################

void Afficher_Base_Conn (fait * F, regle * R){
fait * ff = F;
while (ff != NULL){
cout<< ff->el<<"\n";
ff=ff->next;
}

regle * rr = R;
while (rr != NULL){
liste * p = rr->resultat;
while (p != NULL){
cout<< p->el<<"\n";
p = p->next;
}

rr=rr->suivant;
}
}

//############################## ########################

int nombre_liste (liste * li){ //nombre d'élément d'une liste
int cpt = 0;
for (liste * p = li; p != NULL; p = p->next)
cpt ++;

return cpt;
}

//------------------------------------------------------

int egual (liste * regcon , liste * L2){ //test égalité de deux listes
int cpt = 0;

for (liste *p2 = L2; p2!= NULL; p2=p2->next)
for (liste *reg = regcon; reg!= NULL; reg=reg->next)
if (p2->el == reg->el)
cpt ++;

if ((nombre_liste (L2) == cpt))
return 1;
else
return 0;
}

//------------------------------------------------------------------

int Moteur_Inference (liste * L ,fait * &F, regle * &R){
regle * r = R; int n1;

cout<<"\nDonner le nombre n : "; cin >> n1;
L = creation (n1);

while (r != NULL) {
if (r->testr == '*')
if ((nombre_liste (L)) == (nombre_liste (r->condition)))
if(egual(r->condition, L ) == 1) {
r->testr = '#';
for (liste * p = r->resultat; p != NULL; p = p->next)
Ajoute_Fait (F,p->el , '*');

return 0;
}
r = r->suivant;
}
return 0;
}

//############################## ############################## #######

void Afficher_Resultat (fait * M) { //affichage des résultat éxécution de moteur inference
fait * p = M;

while (p != NULL){
if (p->test == '*')
cout<<"\nResultat est : "<< p->el;

p = p->next;
}
}


//############################## ############################## #############
//############################## ############################## #############
//############################## ############################## #############

void afficherMenu(void) //affichage de menu
{

cout<<" --------------------------------------- \n";
cout<<" | 1- saisir les faits . | \n";
cout<<" | 2- Saisir les regles . | \n";
cout<<" | 3- Ajouter une regle. | \n";
cout<<" | 4- Ajouter un fait. | \n";
cout<<" | 5- Affichager base de connaissance. | \n";
cout<<" | 6- Moteur d inference. | \n";
cout<<" | 7- affichage du resultats. | \n";
cout<<" | 0- Quiter. | \n";
cout<<" --------------------------------------- \n ";
cout<<" Realiser Par NERMINE \n";
cout<<" en 08/03/2010 \n";

}

int main(){

regle *RRR = NULL; regle*R;
fait *FFF = NULL ; fait *F;
liste * LL; char K;
int nn;
char choix;

do {

afficherMenu();
choix = getch();
switch ( choix )
{
case '1':
cout<<"\n-----------------------------------------------------\n";
cout<<"\n\tCHARGEMENT BASE DE FAIT\n ";
FFF = Creation_Base_Fait(F);
getch();
break;

case '2':
cout<<"\n-----------------------------------------------------\n";
cout<<"\n\tCHARGEMENT BASE DE REGLE\n ";
RRR=Creation_Base_Regle(R);
getch();
break;

case '3':
cout<<"\n-----------------------------------------------------\n";
cout<<"\n\tAJOUTE UNE REGLE\n ";
Ajoute_Regle(RRR);
getch();
break;

case '4':
cout<<"\n-----------------------------------------------------\n";
cout<<"\n\tAJOUTE UN FAIT\n ";
cout<< "\nDonner une base de fait : "; cin >> K;
Ajoute_Fait(FFF,K, '#');
getch();
break;

case '5':
cout<<"\n-----------------------------------------------------\n";
cout<<"\n\tAFFICHAGE BASE DE CONNAISSANCE\n ";
cout<<"\nLa base de connaissance est : \n";
Afficher_Base_Conn ( FFF, RRR);
getch();
break;

case '6':
cout<<"\n-----------------------------------------------------\n";
cout<<"\n\tMOTEUR D'INFERENCE \n ";
Moteur_Inference (LL,FFF , RRR);
getch();
break;

case '7':
cout<<"\n-----------------------------------------------------\n";
cout<<"\n\tRESULTAT \n ";
Afficher_Resultat (FFF) ;
getch();
break;
}
}
while ( choix != '0' );

cout<<"\n ----- LE PROGRAMME TERMINE -----";


cin>>nn;
return 0;
}












__________________
رباهـ قد عشت في دنياي مغتربا ,, ويلاهـ إن أغترب في العالمـ الثاني
أسـتـغـفـر الله مــن كفران نعمته ,, بل فوق ما أستحق
الله أعطاني
ألمـ يجدني أخا غي فأرشدني ,, وهائما غير ذي مأوى فأواني
ألمـ يجدني أخا جهل فعلمني ,, وعائلا غير ذي وجد فأغناني
لبيكـ ملئ فمي ،، يارب يارب من قلبي ووجداني







نرمين* غير متواجد حالياً  
رد مع اقتباس
قديم 15-03-2010, 10:18 PM
  #2
نورالنهار
VIP_MEMBRE
 الصورة الرمزية نورالنهار
 
La spécialité: Autres
المدرسة العليا للأساتذة القبة
تاريخ التسجيل: 30-09-2009
المشاركات: 347
نورالنهار عضو محترف الابداعنورالنهار عضو محترف الابداعنورالنهار عضو محترف الابداعنورالنهار عضو محترف الابداعنورالنهار عضو محترف الابداعنورالنهار عضو محترف الابداعنورالنهار عضو محترف الابداعنورالنهار عضو محترف الابداعنورالنهار عضو محترف الابداع
افتراضي رد: exemple systeme expert

شكرا نرمين بارك الله فيك
__________________

نورالنهار غير متواجد حالياً  
رد مع اقتباس
قديم 16-03-2010, 09:52 PM
  #3
نرمين*
مشرفة منتدى
الرياضيات والإعلام الآلي
 الصورة الرمزية نرمين*
 
La spécialité: Autres
اخرى ( جامعة عربية او اجنبية )
تاريخ التسجيل: 08-11-2008
الدولة: الجزائر
المشاركات: 3,989
نرمين* عضو محترف الابداعنرمين* عضو محترف الابداعنرمين* عضو محترف الابداعنرمين* عضو محترف الابداعنرمين* عضو محترف الابداعنرمين* عضو محترف الابداعنرمين* عضو محترف الابداعنرمين* عضو محترف الابداعنرمين* عضو محترف الابداعنرمين* عضو محترف الابداعنرمين* عضو محترف الابداع
افتراضي رد: exemple systeme expert

شكرا نور على مرورك الطيب ان شاء الله تكوني استفدتي
__________________
رباهـ قد عشت في دنياي مغتربا ,, ويلاهـ إن أغترب في العالمـ الثاني
أسـتـغـفـر الله مــن كفران نعمته ,, بل فوق ما أستحق
الله أعطاني
ألمـ يجدني أخا غي فأرشدني ,, وهائما غير ذي مأوى فأواني
ألمـ يجدني أخا جهل فعلمني ,, وعائلا غير ذي وجد فأغناني
لبيكـ ملئ فمي ،، يارب يارب من قلبي ووجداني







نرمين* غير متواجد حالياً  
رد مع اقتباس
قديم 18-10-2010, 10:42 AM
  #4
bynaruto
 
تاريخ التسجيل: 29-06-2008
المشاركات: 16
bynaruto عضو يستحق التميز
افتراضي رد: exemple systeme expert

ana khosni le compilateur akhi
hal mina al moumkine an tab3atahou ilaya wa choukran
bynaruto غير متواجد حالياً  
رد مع اقتباس
إضافة رد

أدوات الموضوع
انواع عرض الموضوع

تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة

الانتقال السريع

المواضيع المتشابهه
الموضوع كاتب الموضوع المنتدى مشاركات آخر مشاركة
{عيّنة} Exemple de PV de chantier gc19 الهندسة المدنية 18 11-05-2015 02:46 AM
robot expert zizou1186 قسم الإستفسارات و الطّلبات 2 19-01-2014 05:56 PM
see electrical expert ahmed_ الإستفسارات و الطّلبات 6 01-07-2010 10:21 AM
systeme expert نرمين* الإعــلام الآلي والرياضيــات 8 05-02-2010 11:07 AM
see electrical expert ahmed_ منتدى الالكترونيك 6 17-09-2009 04:26 AM


الساعة الآن 06:42 PM.