π
<-

La fonction not

Programmation et implémentation d'algorithmes.

La fonction not

Unread postby Loulou 54 » 19 Nov 2009, 18:31

Bonjour tout le monde !

J'ai un petit problème : je suis en train de faire un programme qui dresse le tableau de vérité d'une équation logique, style a+b.
En fait, le programme détecte les "+" et les remplace par des " or ", les "*" et les remplace par des " and " et les "/" (barre) pour les remplacer par des "not ".
Tout va bien, mais le souci, c'est le "not " : au lieu de me retourner 1 pour 0 et 0 pour 1, il me retourne le complément de 32bit, c'est à dire :
Pour not 1
= 0b11111111111111111111111111111110
Pour not 0
= 0b11111111111111111111111111111111

= Alors comment faire, auriez vous une astuce pour retourner un 1 en 0 ou 0 en 1 par une même fonction ?

J'ai déjà essayé une astuce qui consiste à faire abs(a-1) (a représentant la variable à inverser ou l'opération entre () à inverser) mais pour a=1, ça me fait donc abs(0) mais là ça me fait "ERROR argument must be a boolean expression or integer"

Bon v'là. Merci !
Mes programmes => ici !
User avatar
Loulou 54Premium
Niveau 13: CU (Calculateur Universel)
Niveau 13: CU (Calculateur Universel)
Level up: 1.6%
 
Posts: 1985
Images: 8
Joined: 02 Aug 2009, 00:00
Location: 54, près de Metz
Gender: Male
Calculator(s):
MyCalcs profile
Class: Ingé Logiciel chez Amazon

Re: La fonction not

Unread postby critor » 19 Nov 2009, 18:44

Le problème entre autres, est que tu travailles sur des variables qui sont de type réel, alors que les opérateurs logiques attendent des types bouléens...

Une solution peut-être:
Remplace not(a) par (a=0).
Image
User avatar
critorAdmin
Niveau 19: CU (Créateur Universel)
Niveau 19: CU (Créateur Universel)
Level up: 51.3%
 
Posts: 42242
Images: 16691
Joined: 25 Oct 2008, 00:00
Location: Montpellier
Gender: Male
Calculator(s):
MyCalcs profile
YouTube: critor3000
Twitter: critor2000
GitHub: critor

Re: La fonction not

Unread postby Loulou 54 » 19 Nov 2009, 19:05

Bah pour les and et les or, tout marche mais le not il me retourne les 32 bit alors qu'il m'en faut qu'un 0=>1 ou 1=>0

En fait mon prog marche comme ça en gros : d'abord il remplace les +, *, / par les fonctions correspondantes EX : a+b*/c = a or b and non c
Ça ça marche, ensuite, il va faire toutes les possibilités du tableau en changeant les a, b, c, ... en conséquence dans des boucles pour à chaque tour calculer S...
EX :
0a : 0b : 0c : a or b and non c = 0
0a : 0b : 1c : a or b and non c = 0
. . . . .

ça marche très bien sans non dans la formule, mais avec un non...
Le not me retourne donc ce que j'ai déjà dit (en base BIN) :/ ou en base DEC il me retourne -2 pour 1 et -1 pour 0 !
Mes programmes => ici !
User avatar
Loulou 54Premium
Niveau 13: CU (Calculateur Universel)
Niveau 13: CU (Calculateur Universel)
Level up: 1.6%
 
Posts: 1985
Images: 8
Joined: 02 Aug 2009, 00:00
Location: 54, près de Metz
Gender: Male
Calculator(s):
MyCalcs profile
Class: Ingé Logiciel chez Amazon

Re: La fonction not

Unread postby Loulou 54 » 19 Nov 2009, 19:09

Ouuuuuuuh j'ai peut-être une fourberie là ! [...]
Je vais manger et je test ! :D
Mes programmes => ici !
User avatar
Loulou 54Premium
Niveau 13: CU (Calculateur Universel)
Niveau 13: CU (Calculateur Universel)
Level up: 1.6%
 
Posts: 1985
Images: 8
Joined: 02 Aug 2009, 00:00
Location: 54, près de Metz
Gender: Male
Calculator(s):
MyCalcs profile
Class: Ingé Logiciel chez Amazon

Re: La fonction not

Unread postby Bisam » 19 Nov 2009, 19:18

Euh, un truc tout bête : si tu ne travailles qu'avec des 0 et des 1, tu peux sans doute utiliser la fonction t->1-t. Elle transforme 0 en 1 et 1 en 0.

Mais le plus simple est tout de même d'utiliser les booléens "true" et "false"...
User avatar
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 69.6%
 
Posts: 5670
Joined: 11 Mar 2008, 00:00
Location: Lyon
Gender: Male
Calculator(s):
MyCalcs profile

Re: La fonction not

Unread postby Loulou 54 » 19 Nov 2009, 19:31

Ah oui, true et false ! ça marche bien pour le not aussi en effet, mais il faudra après que je me débrouille pour afficher des 0 et 1 à la place, dans le tableau...
Ben je vais voir, parce que je crois avoir trouvé une autre alternative avec les 1 et 0 et si ça va pas je verrai comme tu as dit.
Merci bien A+
Mes programmes => ici !
User avatar
Loulou 54Premium
Niveau 13: CU (Calculateur Universel)
Niveau 13: CU (Calculateur Universel)
Level up: 1.6%
 
Posts: 1985
Images: 8
Joined: 02 Aug 2009, 00:00
Location: 54, près de Metz
Gender: Male
Calculator(s):
MyCalcs profile
Class: Ingé Logiciel chez Amazon

Re: La fonction not

Unread postby Loulou 54 » 19 Nov 2009, 19:57

C'est bon !!! Ma technique à la mormoinleu (je l'avoue) fonctionne ! :#gni#:
Ca évite que je change pour mettre des true et des false à la place des 0 et 1...

Je peux donc tracer la table de vérité d'une équation logique jusqu'à 8 variables, pour vérifier mes simplifications !
En fait, j'ai fait une bidouille : les "/" je les remplace bien par des not mais je fais +2 comme ça :
not 1 (en base DEC) =-2 +2 = 0
not 0 = -1 +2 = 1
(Je ne sais pas pourquoi "not" donne de tels résultats en DEC mais bon... :D)

Et voilà ! Et ça marche aussi avec les parenthèses et tout ! Parfait !
Maintenant, je vais voir si il pourrait faire les tableaux de Karnaugh aussi...

Je crois que je le mettrais sur TI-BANK ;)
Mes programmes => ici !
User avatar
Loulou 54Premium
Niveau 13: CU (Calculateur Universel)
Niveau 13: CU (Calculateur Universel)
Level up: 1.6%
 
Posts: 1985
Images: 8
Joined: 02 Aug 2009, 00:00
Location: 54, près de Metz
Gender: Male
Calculator(s):
MyCalcs profile
Class: Ingé Logiciel chez Amazon

Re: La fonction not

Unread postby Bisam » 19 Nov 2009, 20:51

Pourquoi ne fais-tu pas simplement ce que je t'ai dit : 1-a ???
User avatar
BisamAdmin
Niveau 15: CC (Chevalier des Calculatrices)
Niveau 15: CC (Chevalier des Calculatrices)
Level up: 69.6%
 
Posts: 5670
Joined: 11 Mar 2008, 00:00
Location: Lyon
Gender: Male
Calculator(s):
MyCalcs profile

Re: La fonction not

Unread postby Loulou 54 » 20 Nov 2009, 20:12

Ah oui oui, j'avais pas fait gaffe ! Image Oui, c'est futé ça ! J'avais pas compris en fait t-1-t . . .
Ben je vais faire comme ça, c'est tout de même beaucoup plus logique.
J'avais pas remarqué que c'était faisable aussi simplement. Image
Merci bien Image
Mes programmes => ici !
User avatar
Loulou 54Premium
Niveau 13: CU (Calculateur Universel)
Niveau 13: CU (Calculateur Universel)
Level up: 1.6%
 
Posts: 1985
Images: 8
Joined: 02 Aug 2009, 00:00
Location: 54, près de Metz
Gender: Male
Calculator(s):
MyCalcs profile
Class: Ingé Logiciel chez Amazon


Return to Programmation

Who is online

Users browsing this forum: ClaudeBot [spider] and 0 guests

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
997 utilisateurs:
>971 invités
>19 membres
>7 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)