Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| MINI SYSTEME EXPERT (Intelligence Artificielle) | |
| | Auteur | Message |
---|
Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: MINI SYSTEME EXPERT (Intelligence Artificielle) Sam 27 Jan 2018 - 11:20 | |
| Bonjour à tous ! Une fois n'est pas coutume, je souhaite vous faire découvrir un programme qui n'est pas de moi ! Il s'agit en fait d'un programme d'IA qui va ajouter des connaissances à une base de données qui pourra ensuite être interrogée. Ce programme a été présenté initialement dans le magazine MICRO_SYSTEMES de décembre 1984. Il a été écrit en basic pour l' Apple II ! Il s'agit du MINI-SYSTEME EXPERT de Philippe Larvet. Vous pouvez retrouver l'article ici avec le code présenté dans les pages du magazine. Et vous avez aussi ce lien ici qui vous explique en détail les résultats ainsi que des versions plus récentes du logiciel. Patrice Dargenton a repris ce code et l'a adapté en VB sur son site (IAVB). Bonne lecture et bon amusement...
Dernière édition par Minibug le Dim 8 Jan 2023 - 20:09, édité 6 fois | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: MINI SYSTEME EXPERT (Intelligence Artificielle) Dim 28 Jan 2018 - 11:16 | |
| Salut à tous ! Je viens de retrouver mon fichier contenant le code initial du programme de 1984 que j'avais recopié. Je vous le livre aussi ci-dessous. Si quelqu'un veut le mettre au format Panoramic... J’espère ne pas avoir recopié trop d'erreurs... - code MINI-SYSTEME EXPERT sur APPLE II:
- Code:
-
10 REM ===================== 20 REM BASE DE CONNAISSANCES 30 REM RELATIONNELLE 40 REM INTERROGEABLE EN 50 REM LANGAGE NATUREL. 51 REM 52 REM RELATIONS TRAITEES : 53 REM HORIZONTALES ET 54 REM VERTICALES : 55 REM — INDIRECTION 56 REM — COMPOSITION DE 57 REM FONCTIONS 58 REM — SYLLOGISMES 59 REM 60 REM AUTEUR : 62 REM PHILIPPE LARVET 64 REM 70 REM COPYRIGHT 1984 90 REM ===================== 100 NP = 4:NM = 100 110 DIM B$(100.5) 120 DIM C$(10) 130 DIM E$(60) 132 DIM W$(10) 134 DIM D(2) 136 DIM P(2) 138 DIM E(10) 140 DIM S(100,3) 150 NT = 0 270 REM -------------------- 280 REM MOTS NON—SIGNIFIANTS 290 REM -------------------- 300 NE = 0 310 READ A$ 320 IF A$="FF" THEN 1000 330 NE = NE + 1:E$(NE) = A$ 340 GOTO 310 400 EST,LE,LA,DE,UN,UNE 410 L,DU,D,LES,DES,ET 412 OU,QUE,QUI,SONT 413 IL,ELLE,A,T,ETE 414 EN,OU,COMMENT,AU 416 N,NE,S,SE,ETAIT 420 QUOI,C,CE,QUEL,QUELLE 422 QUELS,QUELLES,PAR 424 LEQUEL,LAQUELLE 426 CA,SIGNIFIE,TOUT,OR 428 TOUS,TOUTE,TOUTES 430 =,(,),Y,FF 970 REM ================ 980 REM ENTREE 990 REM ================ 1000 PRINT : NI = 0 1010 INPUT "—> " ;A$ 1020 L = LEN (A$) 1470 REM ------------------ 1480 REM EXAMEN DE L'ENTREE 1490 REM ------------------ 1500 IF LEFT$ (A$,1) = "/" THEN 9950 1520 IF RIGHT$ (A$,1) < > "?" THEN 2000 1530 A$ = LEFT$ (A$,L — 1) 1540 NI = 1 1970 REM ------------------- 1980 REM EXTRACTION DES MOTS 1990 REM ------------------- 2000 FOR K = 1 TO NP 2010 C$(K) = " " :E(K) = 0 2020 NEXT K 2030 L = LEN (A$):H$ = "" 2040 N = 1:ND = 0:J = 1 2100 I = J 2120 J = J + 1 2122 G$ = MID$ (A$,J,1) 2130 IF G$ < > " " AND G$ < > "'" AND G$ < > "—" AND G$ < > "(" AND G$ < > ")" AND J < = L THEN 2120 2132 F$ = MID$ (A$,1,J — I) 2133 IF (I = 1) AND (LEFT$ (F$, 2) = "QU") THEN N = 0 : GOTO 2160 2135 FOR K = 1 TO NE 2136 IF E$(K) < > F$ THEN NEXT K 2138 IF K < = NE THEN 2160 2140 ND = ND + 1 2142 IF (NI = 0) AND (ND > NP) THEN 3600 2150 H$ = H$ + F$:C$(ND) = F$ 2152 IF ND > 2 THEN 2160 2154 D(ND) = J 2160 IF J > L THEN 3000 2170 J = J + 1 2180 IF MID$ (A$,J,1) = " " AND J < = L THEN 2170 2200 IF J < = L THEN 2100 2970 REM -------------- 2980 REM FIN EXTRACTION 2990 REM -------------- 3000 IF C$(1) = "" THEN 3700 3004 IF (NI > 0) AND (C$(1) = "DONC") THEN 9200 3010 IF NI > 0 THEN 6000 3020 IF ND > 1 THEN 4000 3470 REM ----------------- 3480 REM E R R E U R 3490 REM ----------------- 3500 PRINT "** VOTRE PHRASE EST TROP COURTE ! 3510 GOTO 1000 3600 PRINT "** VOTRE PHRASE EST TROP LONGUE ! 3610 GOTO 1000 3700 PRINT "** VOTRE QUESTION EST INCOMPLETE ! 3710 GOTO 1000 3900 REM =================== 3910 REM ASSERTION 3920 REM =================== 3980 REM CONTROLE EXISTENCE 3982 REM DE L'ASSERTION 3984 REM DANS LA BASE 3990 REM ------------------- 4000 IF NT = 0 THEN 5000 4100 FOR I = 1 TO NT 4110 Z$ = "" 4120 FOR J = 1 TO NP 4130 Z$ = Z$ + B$(I,J) 4140 NEXT J 4150 IF Z$ < > H$ THEN NEXT I 4160 IF I > NT THEN 5000 4170 REM --------------------- 4180 REM ASSERTION DEJA CONNUE 4190 REM --------------------- 4200 PRINT "** ASSERTION DEJA CONNUE ! 4210 GOTO 1000 4970 REM ------------------- 4980 REM ENRICHISSEMENT BASE 4990 REM ------------------- 5000 FOR I = 1 TO NM 5010 IF B$ (I, 1) < > "" THEN NEXT I 5020 IF I < = NM THEN 5050 5030 PRINT "** STOP ! LA BASE EST PLEINE ! 5040 STOP 5050 FOR J = 1 TO NP 5052 B$(I,J) = C$(J) 5054 NEXT J 5056 B$(I,NP + 1) = A$ 5058 S(I,1) = ND:S(1,2) = D(1):S( 1,3) = D(2) 5160 PRINT "** COMPRIS 5070 IF I > NT THEN NT = I 5080 GOTO 1000 5970 REM ================== 5980 REM INTERROGATION 5990 REM ================== 5992 REM CONTROLE EXISTENCE 5994 REM DE CHACUN DES MOTS 5996 REM ------------------ 6000 K = 0:M = NT 6010 T = 0:K = K + 1 6100 FOR I = 1 TO NT 6110 FOR J = 1 TO S(I,1) 6120 IF B$(I,J) < > C$(K) THEN NEXT J 6130 IF J > S(I, 1) THEN 6180 6132 T = 1 6134 IF E(K) = 0 THEN E(K) = I 6140 IF ND > 1 THEN 6170 6142 IF (J = 2) AND (L > (LEN (C$(K)) + 1)) THEN 6162 6150 PRINT B$(I,NP + 1) 6160 GOTO 6180 6170 A = 1:I=NT 6180 NEXT I 6200 IF T = 0 THEN 9000 6210 IF ND =1 THEN 1000 6220 IF A < M THEN M = A 6230 IF K < ND THEN 6010 6240 IF (NB > NP) THEN 8100 6970 REM -------------------- 6980 REM RELATION HORIZONTALE 6990 REM -------------------- 7000 V = 0 7010 FOR I = M TO NT 7020 T = 0:K = 0:J = 0 7030 K = K + 1 7040 IF K > ND THEN 7300 7050 J = J + 1 7060 IF J > S(I,1) THEN 7200 7070 IF B$(I,J) < > C$(K) THEN 7050 7080 T = T + 1 7090 IF T › 2 THEN 7030 7094 P(T) = J 7100 GOTO 7030 7200 IF T = 0 THEN 7400 7300 IF (T < > ND) OR (T < > S(I,1)) THEN 7330 7310 PRINT "** OUI":V = 1:I = NT 7320 GOTO 7400 7330 IF T < > ND THEN 7400 7340 V = 1 7344 IF (P(1) = 1) AND (P(2) = 2) THEN 7372 7350 IF P(1) = 2 THEN 7380 7352 IF P(1) = 3 THEN 7390 7360 PRINT B$(I,NP + 1) 7370 GOTO 7400 7372 LB = LEN (B$(I,NP + 1)) 7374 PRINT RIGHT$ (B$(I,NP + 1), LB - S(I,3)) 7376 GOTO 7400 7380 PRINT LEFT$ (B$(I,NP + 1),S(I,2)) 7382 GOTO 7400 7390 PRINT LEFT$ (B$(I,NP + 1),S(I,3)) 7400 NEXT I 7410 IF V = 1 THEN 1000 7970 REM ------------------ 7980 REM RELATION VERTICALE 7990 REM ------------------ 8000 REM COMPOSITION 8080 REM DE FONCTIONS 8090 REM ------------------ 8100 FOR K = 1 TO ND 8110 W$(K) = C$(K) 8120 NEXT K 8130 R = ND 8140 Z$ = W$(R - 1) + W$(R) 8150 FOR I = M TO NT 8160 IF (B$(I,2) + B$(I,3)) < > Z$ THEN NEXT I 8170 IF I > NT THEN 8300 8180 R = R - 1:W$(R) = B$(I,1) 8190 IF R > 1 THEN 8140 8200 PRINT W$(1) 8210 GOTO 1000 8270 REM ----------------- 8280 REM INDIRECTION 8290 REM ----------------- 8300 12 = E(2):T = 0 8310 E(2) = 12 8320 FOR J1 = 1 TO S(E(1),1) 8330 Z$ = B$(E(1),J1) 8340 FOR J2 = 1 TO S(E(2),1) 8350 IF (E(1) < > E(2)) AND (Z$ = B$(E(2),J2)) AND (Z$ C$(1)) AND (Z$ > C$(2)) THEN T = 1 : PRINT B$(E(1) : JI = NP:J2 = NP 8360 NEXT J2 8380 NEXT JI 8400 = 2 : GOSUB 9100 8410 IF V = 1 THEN 8320 8420 K = 1 : GOSUB 9100 8430 IF V = 1 THEN 8.310 8440 IF T = 1 THEN 1000 8870 REM 8880 REM ECHEC FINAL 8890 REM 8900 IF N = 0 THEN 8950 8910 PRINT "** non 8920 GOTO 1000 8950 PRINT "** JE L'IGNORE 8960 GOTO 1000 8970 REM 8980 REM MOT INCONNU 8990 REM 9000 PRINT "** JE NE CONNAIS PAS ";"'";C$(K);"'" 9020 GOTO 1000 9070 REM ////////////////////// 9080 REM MODULE DE RECHERCHE 9084 REM D'UN PROCHAIN E(K) 9090 REM ///////////////////// 9100 V = 0 9104 FOR I = E(K) + 1 TO NT 9110 FOR J = 1 TO S(E(K),1) 9120 IF (B$(I,J) = C$(K)) THEN V = 1:E(K) = I:J = NP:I = NT 9130 NEXT J 9140 NEXT I 9150 RETURN 9190 REM ===================== 9192 REM S Y L L O G I S M E 9196 REM ===================== 9197 REM RECHERCHE MOYEN TERME 9198 REM --------------------- 9200 S2 = NT:S1 = NT - 1:T = 0 9210 LI = LEN (B$(S1,NP + 1)) 9214 L2 = LEN (B$(S2,NP + 1)) 9220 FOR K = 1 TO 3 9230 FOR J = 1 TO 3 9234 IF B$(S1,J) = "" THEN 9270 9240 IF B$(S2,K) > B$(S1,J) THEN 9270 9250 T = 1:JM = J:KM = K 9260 J = NP:K = NP 9270 NEXT J 9280 NEXT K 9290 IF T = 0 THEN 9800 9292 REM 9294 REM RESOLUTION 9296 REM 9300 ON KM GOTO 9310,9330,9350 9310 X$ = RIGHT$ (B$(S2,NP + 1), L2 - S(S2,2)) 9320 GOTO 9360 9330 X$ = LEFT$ (B$(S2,NP + 1),S (62,2)) 9340 GOTO 9360 9350 X$ = LEFT$ (8$(52,NP + 1),S (S2,3)) 9360 IF LEFT$ (X$,3) = "OR " THEN X$ = RIGHT$ (X$, LEN (X$) - 3) 9368 ON JM GOTO 9370,9390,9410 9370 Z$ = RIGHT$ (B$(S1,NP + 1), LI - S(S1,2)) 9380 GOTO 9420 9390 Z$ = LEFT$ (B$(S1,NP + 1),S (S1,2)) 9400 GOTO 9420 9410 Z$ = LEFT$ (B$(S1,NP + 1),S (S1,3)) 9420 IF KM + JM < > 2 THEN 9500 9430 IF LEFT$ (X$,4) = "EST " THEN X$ = RIGHT$ (X$, LEN (X$) - 4):X$ = "QUELQUE " + X$ + " " : GOTO 9500 9440 IF LEFT$ (X$,5) = "SONT " THEN X$ = RIGHT$ (X$, LEN (X$) - 5):X$ = "QUELQUES " + X$ + " " 9500 PRINT "DONC " ; X$ ; Z$ 9510 PRINT 9520 GOTO 1000 9790 REM --------------------- 9792 REM ABSENCE DE CONCLUSION 9796 REM --------------------- 9800 PRINT "** JE NE PEUX RIEN C ONCLURE ! 9810 GOTO 1000 9900 REM ==================== 9910 REM COMMANDES DE SERVICE 9920 REM ==================== 9950 IF A$ = "/L" THEN 10000 9952 IF LEFT$ (A$,2) = "/D" THEN 11000 9954 IF A$ = "/EFF" THEN 12000 9956 PRINT "** COMMANDE INCONNUE 9960 GOTO 1000 9970 REM ------------------ 9980 REM LISTAGE DE LA BASE 9990 REM ------------------ 10000 FOR I = 1 TO NT 10010 PRINT I ; " " ; B$(I,NP + 1) 10020 NEXT I 10030 GOTO 1000 10970 REM ----------- 10980 REM SUPPRESSION 10990 REM ----------- 11000 IF L > 2 THEN 11008 11004 I = NT : GOTO 11010 11008 I = VAL (RIGHT$ (A$,L)) 11010 FOR J = 1 TO NP + 1 11020 B$(I,J) = "" 11030 NEXT J 11040 PRINT "** ASSERTION " ; I ; " SUPPRIMEE 11050 GOTO 1000 11990 REM ------------- 11992 REM EFFACEMENT DE 11994 REM TOUTE LA BASE 11996 REM ------------- 12000 PRINT "** VOULEZ-VOUS EFFACER 12010 INPUT " TOUTE LA BASE ? (0/N) " ; A$ 12020 IF A$ < › "0" THEN 1000 12030 FOR I -= 1 TO NT 12040 FOR J = 1 TO NP + 1 12050 B$(I,J) = "" 12060 NEXT 12070 NEXT 12080 PRINT "** BASE ENTIEREMENT EFFACEE 12O90 NI = 0 : GOTO 1000
Dernière édition par Minibug le Dim 8 Jan 2023 - 13:39, édité 1 fois | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: MINI SYSTEME EXPERT (Intelligence Artificielle) Dim 4 Fév 2018 - 2:25 | |
| Bonsoir a tous !
J'ai converti le source en Panoramic. Maintenant on peut donc tester directement avec le code ci-dessous.
Par contre il reste encore quelques erreurs dans les formules. Il faut dire que le code initial contenait de nombreux GOTO et peut être aussi des erreurs de typographie. J'ai fait le ménage mais je pense qu'il en reste encore...
Pour les tests, commencez par ajouter des phrases simples comme : - laurent possede un stylo bleu - claude possede un stylo vert - etc...
Ensuite vous pouvez poser des questions du type : - qui possede un stylo bleu ? - est ce que laurent possede un stylo vert ?
N'oubliez pas le '?' pour les questions et évitez les accents et la ponctuation.
Pour mieux comprendre je vous invite à reprendre les posts précédents qui font référence aux sites correspondants.
Dernière édition par Minibug le Dim 8 Jan 2023 - 12:56, édité 2 fois | |
| | | Pedro
Nombre de messages : 1596 Date d'inscription : 19/01/2014
| Sujet: Intelligence Artificielle. Dim 4 Fév 2018 - 8:24 | |
| Bonjour.
J'éprouve un grand intérêt pour les programmes d'IA. La traduction automatique rejoint un peu ce genre de programmes. J'ai donc testé les données suivantes, après avoir ajouté 'combien' dans la liste des mots:
le corbeau est un oiseau un oiseau a 2 ailes combien d'ailes a le corbeau ?
Le programme me répond 'non' !!
Aurais-je omis quelque chose ? | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: MINI SYSTEME EXPERT (Intelligence Artificielle) Dim 4 Fév 2018 - 9:38 | |
| Salut Pedro Alvarez ! Non, tu n'as rien omis. Encore que pour les SYLLOGISMES il faut utiliser la question 'DONC ?' pour que le programme parvienne à recouper tes deux phrases de tel manière que : le corbeau est un oiseau et un oiseau a 2 ailes correspondent à le corbeau a 2 ailes. Si tu as suivi le post depuis le début, j'ai expliqué avoir récupéré ce code sur internet. Il date de 1984 et était initialement destiné à l"APPLE II ( de PHILIPPE LARVET). J'ai donc recopié entièrement le code depuis le magazine MICRO_SYSTEMES. Il se peut qu'il y est des erreurs de saisie comme le 1 et le I par exemple ! Après j'ai du adapter le code pour Panoramic. Il y avez beaucoup de GOTO que j'ai tenté d'éliminer. Tout cela explique sûrement le problème que tu as rencontré... Pour les SYLLOGISMES et les RELATIONS VERTICALES je sais qu'il y a une ou plusieurs erreurs mais pas facile à trouver dans les suites de calculs ! Tu peux aussi tester la version Visual Basic (IAVB) de Patrice Dargenton que j'ai déposé sur mon WEBDAV. Elle fonctionne parfaitement bien et intègre de nombreuses questions pour faire un tour complet du programme. Maintenant que j'ai les bases, je vais tenter de développer mon propre système en Panoramic. Bien que ce ne soit pas évident, je vais essayé de refaire un programme équivalent. Merci d'avoir tenté le test Pedro. | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: MINI SYSTEME EXPERT (Intelligence Artificielle) Dim 4 Fév 2018 - 12:34 | |
| Merci Laurent alias Minibug pour le partage. Pour la sempiternelle fois, le forum t’a bouffé l’anti-slash en ligne 35 Codez comme ceci - Code:
-
chemin$=DIR_CURRENT$+chr$(92)
| |
| | | JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: MINI SYSTEME EXPERT (Intelligence Artificielle) Dim 4 Fév 2018 - 13:36 | |
| Une vengeance de la 'Bêtise Naturelle'. | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: MINI SYSTEME EXPERT (Intelligence Artificielle) Dim 4 Fév 2018 - 17:58 | |
| Merci Papydall, je viens de corriger. En même temps, il n'est pas utilisé dans le code que j'ai mis en ligne. C'est un reliquat d'un ancien code que j'ai pris pour la gestion de l'interface ! | |
| | | RMont
Nombre de messages : 233 Age : 82 Localisation : charente maritime Date d'inscription : 29/12/2008
| Sujet: Re: MINI SYSTEME EXPERT (Intelligence Artificielle) Mar 6 Fév 2018 - 17:17 | |
| bonjour a tous. pour minibug. je me suis penché (un peu) sur ta traduction du prg IA et je me pose cette question: est-ce que ces lignes ont une utilité ' examen de service : IF LEFT$(A$,1)="/" ' listage de la base : IF A$="/L" ' suppression : IF LEFT$(A$,2) ="/D" ' effacement de toute la base : IF A$="/EFF" si oui ,peux-tu m'expliquer: j'ai fait une recherche avec edition/rechercher et il n'y a que dans ces lignes que je trouve "/" ; "/L" ; "/D" ;"/EFF" bonne soirée a vous | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: MINI SYSTEME EXPERT (Intelligence Artificielle) Mar 6 Fév 2018 - 19:27 | |
| Bonsoir Rmont !
Oui elles ont une utilité. Le / permet d'utiliser des fonctions particulières.
/L : (LISTE) donne la liste de toute les assertions connues dans le programme. /D xx : (DELETE xx) permet de supprimer l'assertion xx de la liste. /EFF : (EFFACE) permet de supprimer la liste de toutes les assertions connues.
Si vous souhaitez en savoir plus reportez vous au premier message et testez la version IAVB présentée par PATRICE DARGENTON. Ce programme est réalisé en Visual Basic et il donne même la parole au programme. En plus vous avez tout un ensemble de phrases déjà enregistrée qu'il suffit de valider... Je vous invite vraiment à le tester, c'est bluffant ! | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: MINI SYSTEME EXPERT (Intelligence Artificielle) Dim 8 Jan 2023 - 13:05 | |
| Bonjour les amis ! Je ressort ce topic de plusieurs années de léthargie... J'ai enfin réussi à déboguer le programme. Je vous en propose donc une version toute fraiche ! Je rappelle pour info que ce programme n'est pas de moi. Il provient du magazine MICRO-SYSTEMES publié en 1984. Philippe Larvet en est l'auteur. Et je l'ai adapté à Panoramic. Vous avez + de 170 exemples d'assertions pour tester le programme. Il suffit d'accepter le test au lancement et après vous cliquez sur le bouton 'suivant' pour continuer. Vous pouvez bien sûr ajouter vos propres assertions en cours de route... Bon dimanche ! PS : Dernière mise à jour : 08.01.2023 à 14h57 - Code:
-
' ################################################################################################################# ' ################################################################################################################# ' ################ ################ ' ################ BASE DE CONNAISSANCES RELATIONNELLE INTERROGEABLE EN LANGAGE NATUREL ################ ' ################ ################ ' ################ RELATIONS TRAITEES : ################ ' ################ HORIZONTALES ET VERTICALES ################ ' ################ INDIRECTION / COMPOSITION DE FONCTIONS / SYLLOGISMES ################ ' ################ ################ ' ################ AUTEUR : PHILIPPE LARVET (COPYRIGHT 1984) ################ ' ################ ################ ' ################ Article paru dans le magazine MICRO-SYSTEMES de juillet-aout 1984 ################ ' ################ http://patrice.dargenton.free.fr/ia/iavb/1984/ArticleIAVB1984.html ################ ' ################ ################ ' ################ ADAPTATION POUR PANORAMIC : Minibug (2018-2023) ################ ' ################ ################ ' ################################################################################################################# ' #################################################################################################################
' ############################################## LISTE DES VARIABLES ############################################## DIM no% , form% , memo% , edit% , button% , dlist% DIM chemin$
DIM JM , KM , NP , NM , NT , NE , NI , ND , JI , LB DIM A , I , J , K , L , M , N , V , R , T , J1 , J2 , L1 , L2 , I2 , S1 , S2 DIM A$ , H$ , G$ , F$ , T$ , X$ , Z$ DIM B$(101,6) , C$(11) , E$(61) , W$(11) , D(3) , P(3) , E(11) , S(101,4) ' ########################################### LABELS ET SOUS-PROGRAMMES ########################################### LABEL erreur , decode , agrandissement , suivant LABEL ligne2000 , ligne2100 , ligne2120 LABEL ligne2160 , ligne2170 LABEL ligne3000 LABEL ligne5000 , ligne6000 , ligne6010 , ligne6170 , ligne6180 LABEL ligne7030 , ligne7050 , ligne7200 , ligne7300 , ligne7330 , ligne7400 LABEL ligne8100 , ligne8140 , ligne8310 , ligne8320 LABEL ligne9200 , ligne9270 , ligne9950 ' ############################################## MOTS NON SIGNIFIANTS ############################################# DATA "EST","LE","LA","DE","UN","UNE","L","DU","D","LES","DES","ET","QU","QUE","QUI" DATA "SONT","IL","ELLE","A","T","ETE","EN","OU","COMMENT","AU","N","NE","S","SE" DATA "ETAIT","QUOI","C","CE","QUEL","QUELLE","QUELS","QUELLES","PAR","LEQUEL","LAQUELLE","CA" DATA "SIGNIFIE","TOUT","OR","TOUS","TOUTE","TOUTES","=","(",")","Y","FF"
' #################################### EXEMPLE D ASSERTION EN MODE AUTOMATIQUE #################################### DATA "TOUT STYLO EST BLEU" DATA "FRANÇOIS POSSÈDE UN STYLO" DATA "BLEU EST UNE COULEUR" DATA "ROUGE EST UNE COULEUR" DATA "TOUT STYLO EST EN PLASTIQUE" DATA "LE PLASTIQUE EST UNE MATIÈRE" DATA "FRANÇOIS POSSÈDE-T-IL UN STYLO ROUGE ?" DATA "QUELLE EST LA COULEUR DU STYLO DE FRANÇOIS ?" DATA "RAOUL A ACHETÉ UN STYLO ÉGALEMENT" DATA "DE QUELLE COULEUR EST LE STYLO DE RAOUL ?" DATA "TOUT STYLO EST EN QUELLE MATIÈRE ?" DATA "EN QUELLE MATIÈRE EST TOUT STYLO ?" DATA "FRANÇOIS POSSÈDE-T-IL UN STYLO BLEU ?" DATA "FRANÇOIS POSSÈDE-T-IL UN STYLO ?" DATA "COULEUR STYLO FRANÇOIS ?" DATA "DE QUELLE COULEUR EST LE STYLO DE FRANÇOIS ?" DATA "ANNIE EST UNE JOLIE FILLE" DATA "ANNIE EST SAGE" DATA "MINNA EST UNE FILLE ELLE AUSSI" DATA "MINNA EST FOFOLLE" DATA "QUELLE FILLE EST SAGE ?" DATA "ET LAQUELLE EST FOFOLLE ?" DATA "JOLIE EST LE CONTRAIRE DE LAIDE" DATA "EST-CE QU'ANNIE EST LAIDE ?" DATA "CA SIGNIFIE-T-IL QU'ANNIE EST UNE JOLIE FILLE ?" DATA "JEAN REGARDE MARIE" DATA "MARIE REGARDE HUGUES" DATA "QUI MARIE REGARDE-T-ELLE ?" DATA "MARIE REGARDE-T-ELLE JEAN ?" DATA "HUGUES EST LE FRÈRE D'HENRI" DATA "HENRI EST LE FILS D'OCTAVE" DATA "OCTAVE EST L'ONCLE D'ANATOLE" DATA "QUI EST LE FILS DE L'ONCLE D'ANATOLE ?" DATA "ET QUI REGARDE LE FRÈRE DU FILS DE L'ONCLE D'ANATOLE ?" DATA "L'ENTREPRISE A UN SIÈGE ET UNE ANNEXE" DATA "M.BERTRAND EST RESPONSABLE DE L'ANNEXE" DATA "L'ANNEXE A 15 SERVICES DIFFÉRENTS" DATA "M.JACQUES EST RESPONSABLE DE LA SAISIE" DATA "M.RENÉ EST LE CHEF DU SERVICE COMPTABILITÉ" DATA "M.MARTIN EST UN AMI DE M.JACQUES" DATA "M.DUBOIS EST CHEF DU SERVICE PHOTO" DATA "LA SAISIE EST UN SERVICE DÉCENTRALISÉ" DATA "RENAUD EST LE FILS DE M.BERTRAND" DATA "DAMIEN EST LE FILS DE M.RENÉ" DATA "CHEF DE SERVICE ?" DATA "CHEF DE SERVICE PHOTO ?" DATA "SERVICE PHOTO ?" DATA "RESPONSABLE ?" DATA "M.MARTIN EST L'AMI DE QUI ?" DATA "QUI EST LE FILS DU RESPONSABLE DES 15 SERVICES ?" DATA "QUI EST LE FILS D'UN CHEF DE SERVICE ?" DATA "QUI EST L'AMI DU RESPONSABLE D'UN SERVICE DÉCENTRALISÉ ?" DATA "TOUT HOMME EST MORTEL" DATA "OR SOCRATE EST UN HOMME" DATA "DONC ?" DATA "TOUT HOMME EST BIPÈDE" DATA "OR PAUL EST UN HOMME" DATA "DONC ?" DATA "DONC ?" DATA "TOUT CE QUI EST RARE EST CHER" DATA "UN CHEVAL BON.MARCHÉ EST RARE" DATA "DONC ?" DATA "PLATON EST GREC" DATA "OR PLATON EST PHILOSOPHE" DATA "DONC ?" DATA "QUEL PHILOSOPHE EST GREC ?" DATA "Y A-T-IL UN PHILOSOPHE GREC ?" DATA "QUI EST GREC ET PHILOSOPHE ?" DATA "PHILOSOPHE GREC ?" DATA "PLATON EST-IL GREC ?" DATA "LES SAVANTS SONT SOUVENT DISTRAITS" DATA "OR TOUS LES SAVANTS SONT BAVARDS" DATA "DONC ?" DATA "TOUS LES HOMMES SONT DES MORTELS" DATA "OR DES HOMMES SONT JUSTES" DATA "DONC ?" DATA "X1 = X2" DATA "X2 = X3" DATA "PAR QUOI X1 = X3 ?" DATA "Y1 = F DE X" DATA "F DE X ?" DATA "X = G DE T1" DATA "V = K DE W" DATA "T1 = H DE V" DATA "F DE G DE H DE K DE W ?" DATA "A QUOI EST = F DE G DE H DE K DE W ?" DATA "F G H K W ?" DATA "CHAT = ANIMAL" DATA "CHAT = MANGEUR(SOURIS)" DATA "TIGRE = ANIMAL" DATA "TIGRE = MANGEUR(HOMME)" DATA "ANIMAL MANGEUR ?" DATA "MANGEUR D'HOMME = ?" DATA "DONC ?" DATA "DONC ?" DATA "Y A-T-IL UN MANGEUR DE SOURIS ET D'HOMME ?" DATA "QUI EST MANGEUR D'HOMME ET DE SOURIS ?" DATA "ARTABAN = CHEVAL DE HENRI.4" DATA "BLANC = COULEUR D'ARTABAN" DATA "HENRI.4 = ROI DE NAVARRE" DATA "LOUIS.14 = ROI DE FRANCE" DATA "COULEUR DU CHEVAL DU ROI DE NAVARRE ?" DATA "QUELLE EST LA COULEUR DU CHEVAL DU ROI DE NAVARRE ?" DATA "QUELLE EST LA COULEUR DU CHEVAL BLANC DU ROI DE NAVARRE ?" DATA "QUELLE EST LA COULEUR DU CHEVAL DU ROI ?" DATA "QUEL ROI A UN CHEVAL ?" DATA "CHEVAL DU ROI ?" DATA "CHEVAL DU ROI DE NAVARRE ?" DATA "CHEVAL DU ROI DE FRANCE ?" DATA "LE CANARI EST UN OISEAU JAUNE" DATA "JAUNE EST UNE COULEUR" DATA "QUEL OISEAU EST JAUNE ?" DATA "QUEL EST L'OISEAU JAUNE ?" DATA "DE QUELLE COULEUR EST LE CANARI ?" DATA "QUELLE EST LA COULEUR DU CANARI ?" DATA "COULEUR CANARI ?" DATA "COULEUR ?" DATA "MARSEILLE EST LA VILLE PHOCÉENNE" DATA "DEFERRE EST LE MAIRE DE MARSEILLE" DATA "PHOCÉENNE SIGNIFIE ORIGINAIRE DE PHOCÉE" DATA "LA PHOCÉE EST UNE PROVINCE GRECQUE" DATA "GASTON EST LE PRÉNOM DE DEFERRE" DATA "QUEL EST LE PRÉNOM DU MAIRE DE MARSEILLE ?" DATA "QUEL EST LE PRÉNOM DU MAIRE DE LA VILLE ORIGINAIRE D'UNE PROVINCE GRECQUE ?" DATA "QUEL EST LE PRÉNOM DU MAIRE DE LA VILLE ORIGINAIRE D'UNE PROVINCE ?" DATA "PAUL POSSÈDE UN PERROQUET BAVARD" DATA "MULTICOLORE SIGNIFIE DE PLUSIEURS COULEURS" DATA "UN PERROQUET EST UN ANIMAL MULTICOLORE" DATA "QUI POSSÈDE UN ANIMAL DE PLUSIEURS COULEURS ?" DATA "MARIE EST UNE JOLIE FILLE" DATA "JOLIE EST LE CONTRAIRE DE LAIDE" DATA "MARIE EST-ELLE LAIDE ?" DATA "EST-CE QUE MARIE EST LAIDE ?" DATA "SABINE AIME JACQUES" DATA "QUI AIME JACQUES ?" DATA "QUI AIME SABINE ?" DATA "QUI JACQUES AIME-T-IL ?" DATA "JACQUES AIME-T-IL SABINE ?" DATA "SABINE AIME-T-ELLE JACQUES ?" DATA "TOUT CHEVAL EST UN ÉQUIDÉ" DATA "OR TOUT ÉQUIDÉ EST HERBIVORE" DATA "DONC ?" DATA "TOUT HOMME EST BIPÈDE" DATA "OR PAUL EST BIPÈDE" DATA "DONC ?" DATA "DONC ?" DATA "OR PAUL EST BIPÈDE :" DATA "TOUT HOMME EST RATIONNEL" DATA "OR ARISTOTE EST RATIONNEL" DATA "DONC ?" DATA "ARISTOTE ÉTAIT GREC" DATA "ARISTOTE ÉTAIT PHILOSOPHE" DATA "PHILOSOPHE GREC ?" DATA "OR SOCRATE EST UN HOMME" DATA "TOUT HOMME EST MORTEL" DATA "DONC ?" DATA "DONC ?" DATA "TOUT HOMME EST MORTEL :" DATA "TOUT HOMME EST MORTEL" DATA "TOUT HOMME EST BIPÈDE" DATA "OR SOCRATE EST UN HOMME" DATA "DONC ?" DATA "OR PAUL EST UN HOMME" DATA "DONC ?" DATA "DONC ?" DATA "TOUT LOGICIEN EST INCOMPRIS" DATA "OR TOUT HOMME SENSÉ EST LOGICIEN" DATA "DONC ?" DATA "LE LOUVRE EST BEAU" DATA "OR J'AIME TOUT CE QUI EST BEAU" DATA "DONC ?" DATA "ZZ"
ERROR_FRENCH : ON_ERROR_GOTO erreur
chemin$=DIR_CURRENT$+""
LEFT no%,(SCREEN_X-800)/2 : TOP no%,(SCREEN_Y-600)/2 : WIDTH no%,800 : HEIGHT no%,600 : COLOR no%,200,200,200 CAPTION no%,"IA - 08.01.2023" : BORDER_SMALL no% : ON_RESIZE no%,agrandissement : form%=no% : no%=no%+1 MEMO no% : PARENT no%,form% : LEFT no%,5 : TOP no%,5 WIDTH no%,WIDTH(form%)-27 : HEIGHT no%,HEIGHT(form%)-80 : COLOR no%,240,240,240 FONT_NAME no%,"@FangSong" : BAR_BOTH no% : memo%=no% : no%=no%+1 EDIT no% : PARENT no%,form% : LEFT no%,5 : TOP no%,HEIGHT(form%)-70 WIDTH no%,WIDTH(form%)-185 : HEIGHT no%,30 : COLOR no%,240,240,240 FONT_NAME no%,"@FangSong" : FONT_BOLD no% : FONT_SIZE no%,10 ON_KEY_DOWN no%,decode : edit%=no% : no%=no%+1 BUTTON no%: PARENT no%,form% : LEFT no%,WIDTH(form%)-175 : TOP no%,HEIGHT(form%)-70 WIDTH no%,155 : HEIGHT no%,27 : FONT_SIZE no%,10 : CAPTION no%,"Suivant" ON_CLICK no%,suivant : button%=no% : no%=no%+1 DLIST no% : dlist%=no% : no%=no%+1 IF FILE_EXISTS(chemin$+"mots.ini")=1 THEN FILE_LOAD dlist%,chemin$+"mots.ini" ITEM_ADD memo%,"I.A. > Je suis prêt ! " SET_FOCUS edit%
REPEAT READ A$ NE=NE+1 : E$(NE)=A$ UNTIL A$="FF"
' ################################################# INITIALISATION ################################################ NP=4 : NM=100
a$="Le programme comprends plus de 170 assertions pour exemples."+CHR$(13) a$=a$+"Souhaitez vous les utiliser pour tester le programme ?" IF MESSAGE_CONFIRMATION_YES_NO(a$)<>1 HIDE button% : A$="ZZ" : WIDTH edit%,WIDTH(form%)-27 END_IF
END
' ############################################## PROCEDURE DECODAGE ############################################### decode:
IF KEY_DOWN_CODE=13 ' ============= ' ENTREE ' ============= A$=UPPER$(TEXT$(edit%)) : L=LEN(A$) : NI=0 ITEM_ADD memo%,"Vous > "+A$ : TEXT edit%,""
' -------------------- ' EXAMEN DE L'ENTREE ' -------------------- IF LEFT$(A$,1)="/" THEN GOTO ligne9950
IF RIGHT$(A$,1)<>"?" THEN GOTO ligne2000 A$=LEFT$(A$,L-1) : NI=1 ' -------------------- ' EXTRACTION DES MOTS ' -------------------- ligne2000: FOR K=1 TO NP C$(K)="" : E(K)=0 NEXT K L=LEN(A$) : H$="" N=1 : ND=0 : J=1
ligne2100: I=J
ligne2120: J=J+1 G$=MID$(A$,J,1) IF G$<>" " AND G$<>"'" AND G$<>"-" AND G$<>"(" AND G$<>")" AND J<=L THEN GOTO ligne2120 F$=MID$(A$,I,J-I) IF I=1 AND LEFT$(F$,2)="QU" THEN N=0 : GOTO ligne2160
FOR K=1 TO NE IF E$(K)=F$ THEN EXIT_FOR NEXT K IF K<=NE THEN GOTO ligne2160
ND=ND+1 IF NI=0 AND ND>NP THEN ITEM_ADD memo%,"IA > Votre phrase est trop longue !" : RETURN
H$=H$+F$ : C$(ND)=F$ IF ND>2 THEN GOTO ligne2160 D(ND)=J
ligne2160: IF J>L THEN GOTO ligne3000
ligne2170: J=J+1 IF MID$(A$,J,1)=" " AND J<=L THEN GOTO ligne2170 IF J<=L THEN GOTO ligne2100
' -------------------- ' FIN EXTRACTION ' -------------------- ligne3000: IF C$(1)="" THEN ITEM_ADD memo%,"IA > Votre question est incompléte !" : RETURN
IF NI>0 AND C$(1)="DONC" THEN GOTO ligne9200 IF NI>0 THEN GOTO ligne6000 IF ND<=1 THEN ITEM_ADD memo%,"IA > Votre phrase est trop courte !" : RETURN
' --------------------------------------------- ' CONTROLE EXISTENCE DE L'ASSERTION DANS LA BASE ' ---------------------------------------------- IF NT=0 THEN GOTO ligne5000 FOR I=1 TO NT Z$="" FOR J=1 TO NP Z$=Z$+B$(I,J) NEXT J IF Z$=H$ THEN EXIT_FOR NEXT I IF I>NT THEN GOTO ligne5000
' --------------------- ' ASSERTION DEJA CONNUE ' --------------------- ITEM_ADD memo%,"IA > Assertion déjà connue !" : RETURN
' ------------------- ' ENRICHISSEMENT BASE ' ------------------- ligne5000: FOR I=1 TO NM IF B$(I,1)="" THEN EXIT_FOR NEXT I IF I>NM THEN ITEM_ADD memo%,"IA > STOP ! La base est pleine !" : TERMINATE
FOR J=1 TO NP B$(I,J)=C$(J) NEXT J B$(I,NP+1)=A$ S(I,1)=ND : S(I,2)=D(1) : S(I,3)=D(2) ITEM_ADD memo%,"IA > J'ai Compris" IF I>NT THEN NT=I RETURN
' ================= ' INTERROGATION ' ================= ' CONTROLE EXISTENCE DE CHACUN DES MOTS ' ------------------------------------ ligne6000: K=0 : M=NT
ligne6010: T=0 : K=K+1 FOR I = 1 TO NT FOR J = 1 TO S(I,1) IF B$(I,J)=C$(K) THEN EXIT_FOR NEXT J IF J>S(I,1) THEN GOTO ligne6180 T=1 IF E(K)=0 THEN E(K)=I IF ND>1 THEN GOTO ligne6170 IF J=2 AND L>(LEN(C$(K))+1) ITEM_ADD memo%,"IA > "+LEFT$(B$(I,NP+1),S(I,2)) : GOTO ligne6180 END_IF ITEM_ADD memo%,"IA > "+B$(I,NP+1) : GOTO ligne6180
ligne6170: A=I : I=NT
ligne6180: NEXT I
' --------------- ' MOT INCONNU ' --------------- IF T=0 THEN ITEM_ADD memo%,"IA > Je ne connais pas "+"'"+C$(K)+"' !" : RETURN IF ND=1 THEN RETURN IF A<M THEN M=A IF K<ND THEN GOTO ligne6010 IF ND>NP THEN GOTO ligne8100 ' --------------------- ' RELATION HORIZONTALE ' --------------------- V = 0 FOR I=M TO NT T=0 : K=0 : J=0 ligne7030: K=K+1 IF K>ND THEN GOTO ligne7300
ligne7050: J=J+1 IF J>S(I,1) THEN GOTO ligne7200 IF B$(I,J)<>C$(K) THEN GOTO ligne7050 T=T+1 IF T>2 THEN GOTO ligne7030 P(T)=J GOTO ligne7030
ligne7200: IF T=0 THEN GOTO ligne7400
ligne7300: IF (T<>ND) OR (T<>S(I,1)) THEN GOTO ligne7330 ITEM_ADD memo%,"IA > oui" : V=1 : I=NT GOTO ligne7400
ligne7330: IF T<>ND THEN GOTO ligne7400 V=1 IF P(1)=1 AND P(2)=2 : LB=LEN(B$(I,NP+1)) ITEM_ADD memo%,"IA > "+RIGHT$(B$(I,NP+1),LB-S(I,3)) GOTO ligne7400 END_IF IF P(1)=2 THEN ITEM_ADD memo%,"IA > "+LEFT$(B$(I,NP+1),S(I,2)) : GOTO ligne7400 IF P(1)=3 THEN ITEM_ADD memo%,"IA > "+LEFT$(B$(I,NP+1),S(I,3)) : GOTO ligne7400 ITEM_ADD memo%,"IA > "+B$(I,NP+1)
ligne7400: NEXT I IF V=1 THEN RETURN
' ------------------------ ' RELATION VERTICALE ' ------------------------ ' COMPOSITION DE FONCTIONS ' ------------------------ ligne8100: FOR K=1 TO ND W$(K)=C$(K) NEXT K R=ND
ligne8140: Z$=W$(R-1)+W$(R) FOR I=M TO NT IF B$(I,2)+B$(I,3)=Z$ THEN EXIT_FOR NEXT I IF I<=NT R=R-1 : W$(R)=B$(I,1) IF R>1 THEN GOTO ligne8140 ITEM_ADD memo%,"IA > "+W$(1) : RETURN END_IF ' ------------- ' INDIRECTION ' ------------- I2=E(2) : T=0
ligne8310: E(2)=I2
ligne8320: FOR J1=1 TO S(E(1),1) Z$=B$(E(1),J1) FOR J2 = 1 TO S(E(2),1) IF (E(1)<>E(2)) AND (Z$=B$(E(2),J2)) AND (Z$<>C$(1)) AND (Z$<>C$(2)) T=1 : ITEM_ADD memo%,"IA > "+B$(E(1),J1) : J1=NP : J2=NP END_IF NEXT J2 NEXT J1 K=2 : recherche() IF V=1 THEN GOTO ligne8320 K=1 : recherche() IF V=1 THEN GOTO ligne8310 IF T=1 THEN RETURN
' ------------- ' ECHEC FINAL ' ------------- IF N=0 : ITEM_ADD memo%,"IA > Je l'ignore !" : ELSE : ITEM_ADD memo%,"IA > non" : END_IF RETURN
' ===================== ' S Y L L O G I S M E ' ===================== ' RECHERCHE MOYEN TERME ' --------------------- ligne9200: S2=NT : S1=NT-1 : T=0 L1=LEN(B$(S1,NP+1)) L2=LEN(B$(S2,NP+1)) FOR K=1 TO 3 FOR J =1 TO 3 IF B$(S1,J)="" THEN GOTO ligne9270 IF B$(S2,K)<>B$(S1,J) THEN GOTO ligne9270 T=1 : JM=J : KM=K J=NP : K=NP ligne9270: NEXT J NEXT K ' --------------------- ' ABSENCE DE CONCLUSION ' --------------------- IF T=0 THEN ITEM_ADD memo%,"IA > Je ne peux rien conclure !" : RETURN
' ------------ ' RESOLUTION ' ------------ SELECT KM CASE 1 : X$=RIGHT$(B$(S2,NP+1),L2-S(S2,2)) CASE 2 : X$=LEFT$(B$(S2,NP+1),S(S2,2)) CASE 3 : X$=LEFT$(B$(52,NP+1),S(S2,3)) END_SELECT IF LEFT$(X$,3)="OR " THEN X$=RIGHT$(X$,LEN(X$)-3)
SELECT JM CASE 1 : Z$=RIGHT$(B$(S1,NP+1),L1-S(S1,2)) CASE 2 : Z$=LEFT$(B$(S1,NP+1),S(S1,2)) CASE 3 : Z$=LEFT$(B$(S1,NP+1),S(S1,3)) END_SELECT IF KM+JM=2 IF LEFT$(X$,4)="EST " THEN X$=RIGHT$(X$,LEN(X$)-4) : X$="QUELQUE "+X$+" " IF LEFT$(X$,5)="SONT " THEN X$=RIGHT$(X$,LEN(X$)-5) : X$="QUELQUES "+X$+" " END_IF ITEM_ADD memo%,"IA > Donc "+X$+" "+Z$ : ITEM_ADD memo%,"IA > " : RETURN ' ==================== ' COMMANDES DE SERVICE ' ==================== ' LISTAGE DE LA BASE ' -------------------- ligne9950: IF A$="/L" FOR I = 1 TO NT ITEM_ADD memo%,"IA > "+STR$(I)+" "+B$(I,NP+1) NEXT I RETURN END_IF ' SUPPRESSION IF LEFT$(A$,2)="/D" IF L<=2 : I=NT : ELSE : I=VAL(RIGHT$(A$,L-2)) : END_IF FOR J=1 TO NP+1 B$(I,J)="" NEXT J ITEM_ADD memo%,"IA > L'assertion n° "+STR$(I)+" est supprimée !" RETURN END_IF ' EFFACEMENT DE TOUTE LA BASE IF A$="/EFF" IF MESSAGE_CONFIRMATION_YES_NO("Voulez vous effacer toute la base ?")=1 FOR I=1 TO NT FOR J=1 TO NP+1 B$(I,J)="" NEXT J NEXT I ITEM_ADD memo%,"IA > La base est entièrement effacée !" NI=0 ELSE ITEM_ADD memo%,"IA > Aucun élément n'est effacé !" END_IF RETURN END_IF END_IF RETURN
' REDIMENTIONNEMENT DE LA FENETRE agrandissement:
WIDTH memo%,WIDTH(form%)-27 : HEIGHT memo%,HEIGHT(form%)-80 TOP edit%,HEIGHT(form%)-70 IF HIDE(button%)=1 WIDTH edit%,WIDTH(form%)-27 ELSE WIDTH edit%,WIDTH(form%)-185 END_IF RETURN
' ASSERTION AUTOMATIQUE suivant:
READ A$ IF A$<>"ZZ" INACTIVE button% TEXT edit%,A$ : PAUSE 800 : TRIGGER_KEY_DOWN edit%,13,0 ACTIVE button% ELSE HIDE button% : WIDTH edit%,WIDTH(form%)-27 A$="Fin des exemples d'assertions !"+CHR$(13)+CHR$(13) A$=A$+"Vous pouvez continuer en rentrant vos propres assertions." MESSAGE A$ END_IF RETURN
' PROCEDURE DE RECHERCHE D'UN PROCHAIN E(K) SUB recherche()
V=0 FOR I=E(K)+1 TO NT FOR J=1 TO S(E(K),1) IF (B$(I,J)=C$(K)) THEN V=1 : E(K)=I : J=NP : I=NT NEXT J NEXT I END_SUB ' PROCEDURE ERREUR erreur:
MESSAGE STR$(ERROR_NUMBER)+" "+ERROR_TYPE$+" a la ligne "+STR$(ERROR_LINE) TERMINATE
' #################################################################################################################
Dernière édition par Minibug le Lun 13 Fév 2023 - 18:22, édité 1 fois | |
| | | Froggy One
Nombre de messages : 598 Date d'inscription : 06/01/2012
| Sujet: Re : MINI SYSTEME EXPERT (Intelligence Artificielle) Mar 10 Jan 2023 - 11:22 | |
| Merci Minibug ! et bonne année à tous !! | |
| | | Marc
Nombre de messages : 2466 Age : 63 Localisation : TOURS (37) Date d'inscription : 17/03/2014
| Sujet: Re: MINI SYSTEME EXPERT (Intelligence Artificielle) Mer 11 Jan 2023 - 19:23 | |
| Bonsoir à tous ! A propos d’IA, un site qui vaut le détour : ChatGPT (OpenAI)Vous pouvez (presque) tout lui demander, même d’écrire du code ! C’est bluffant ! 175 milliards de paramètres ! | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: MINI SYSTEME EXPERT (Intelligence Artificielle) Mer 11 Jan 2023 - 20:46 | |
| Bonsoir Marc, Oui j'ai lu plusieurs articles sur le sujet... Il parait qu'il sait même convertir un code d'un langage vers un autre et est aussi capable de corriger les erreurs dans un code ! Il réponds dans un langage naturel et c'est très impressionnant ! Dans un même ordre d'idée, Microsoft est en train de développer une IA permettant de reprendre votre voix avec seulement 3 secondes de saisie de votre parole. Elle permet de parler à votre place en TTS (Text to Speech) avec les intonations de la voix selon la phrase. Et nous ne sommes qu'à l'aube de cette technologie.... | |
| | | Froggy One
Nombre de messages : 598 Date d'inscription : 06/01/2012
| Sujet: Re: MINI SYSTEME EXPERT (Intelligence Artificielle) Dim 15 Jan 2023 - 20:14 | |
| Ooops ! j'ai essayé ton programme, et dans Panoramic (ou Elip) on me signale une instruction illégale en ligne 28... qui ne contient rien ! étrange... | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: MINI SYSTEME EXPERT (Intelligence Artificielle) Dim 15 Jan 2023 - 22:23 | |
| Bonsoir Froggy One, Heuuuu.... ben j'ai aucune idée du problème car tout fonctionne parfaitement chez moi ! Ca serai pas un problème entre la chaise et l'écran ?? Je t'invite à refaire un copié collé du code et vérifiant bien d'avoir l'intégralité du programme. Bonne soirée et à bientôt. | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: MINI SYSTEME EXPERT (Intelligence Artificielle) Lun 16 Jan 2023 - 0:17 | |
| - Minibug a écrit:
- Ca serai pas un problème entre la chaise et l'écran ??
Le problème se trouve certainement entre la chaise et le CLAVIER ! L'écran n'a rien à faire dans cette histoire d' I.A | |
| | | Froggy One
Nombre de messages : 598 Date d'inscription : 06/01/2012
| | | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: MINI SYSTEME EXPERT (Intelligence Artificielle) Lun 16 Jan 2023 - 15:45 | |
| @Froggy One Qu’y a-t-il en ligne 28 ? Tu dis que la ligne 28 ne contient rien, es-tu sûr ? Voici ce code Apparemment il n’y a rien en ligne 3 et pourtant il y a quelque chose d’invisible : il y a un caractère (w) pour être précis très loin dans la ligne, donc hors de portée de notre vision qui déclenche l’erreur. Dans ton cas, si la ligne 28 est apparemment vide, supprime-la ! | |
| | | Froggy One
Nombre de messages : 598 Date d'inscription : 06/01/2012
| Sujet: Re: MINI SYSTEME EXPERT (Intelligence Artificielle) [résolu] Mar 17 Jan 2023 - 14:39 | |
| En effet, c'est la sagesse même ! j'ai oublié mes bons réflexes. En supprimant la ligne 28 puis la 31, tout fonctionne !! Merci Papydall !!! | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| | | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: MINI SYSTEME EXPERT (Intelligence Artificielle) Mar 17 Jan 2023 - 21:27 | |
| Une fois de plus, la théorie de "le problème se trouve entre la chaise et le clavier" se révèle juste ! | |
| | | Contenu sponsorisé
| Sujet: Re: MINI SYSTEME EXPERT (Intelligence Artificielle) | |
| |
| | | | MINI SYSTEME EXPERT (Intelligence Artificielle) | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |