[Programmation ] questions de débutant

Répondre
Partager Rechercher
Message supprimé par son auteur.
Re: [Programmation ] questions de débutant
Citation :
Provient du message de Erocdrah
est une erreur de syntaxe ?
Parce que je pense que mon programme gagne plus en lisibilité que celui du corrigé (évidement s'il est faux ça sert à rien)
Il ne faut pas confondre programme et algorithmique.
Le "Si" teste si une propriété est vraie ou fausse et il faut donc bien écrire "si (m>0) et (n>0)" car "(m>0)" et "(n>0)" sont des propriétés vraies ou fausses
Quand tu écris "si NB1 et NB2 = VRAI", quelles sont les propriétés vraies ou fausses que tu testes ?
Citation :
Si Nb1 ET Nb2 = Vrai
réfléchi surtout sur la sémantique de ceci...
qu'est ce que ça veut dire ?

rien ....

déjà ça veut dire que nb1 et nb2 sont des booleens, et que la condition est vérifiée si les deux sont à vrai

donc ça n'a plus rien à voir avec ton probleme
Message supprimé par son auteur.
Citation :
posté par XhaK
Citation :
Si Nb1 ET Nb2 = Vrai
réfléchi surtout sur la sémantique de ceci...
qu'est ce que ça veut dire ?

rien ....
En fait si, ça veut bien dire quelque chose
Ça veut exactement dire : si Nb1 non nul et Nb2 non nul
Citation :
Provient du message de Eldarendil
En fait si, ça veut bien dire quelque chose
Ça veut exactement dire : si Nb1 non nul et Nb2 non nul
Non non en algorithmique ça ne veut rien dire.
Citation :
Provient du message de Eldarendil
réfléchi surtout sur la sémantique de ceci...
qu'est ce que ça veut dire ?

rien ....
En fait si, ça veut bien dire quelque chose
Ça veut exactement dire : si Nb1 non nul et Nb2 non nul

non ça veut rien dire ...
enfin ça veut dire que si nb1 et nb2 sont vrai donc je fais qlq chose

or ce sont des nombres

en C/C++, les conditions peuvent se faire aussi avec des entiers... et là vrai => non nul ...

mais fait : int cond = XXX;
if( cond == true ) then
...

ben tu vas voir ce qu'il va te dire ton compilateur C++...

@Erocdrah
réfléchi à la sementique du probleme....
tu veux voir si le produit de deux nombres est positif
or il est positif si les deux sont de meme signe...
et cela se test par :

(n1 < 0 et n2 < 0) ou ( n1 > 0 et n2 > 0)
//-> soit les deux sont negatifs soit les deux sont positifs !
Message supprimé par son auteur.
Citation :
(n1 < 0 et n2 < 0) ou ( n1 > 0 et n2 > 0)
En fait si on veut vraiment respecter la logique en langage symétrique, il faudrait écrire:
( ( ( (n1 < 0) et (n2 < 0) ) ou ( (n1 > 0) et (n2 > 0) ) ) = vrai )

Donc chaque opération binaire est évaluée en remontant vers la condition du plus niveau ( (...) = vrai ) qui ne concerne que le test "SI...ALORS". Si le test donne faux, c'est le sinon qui est exécuté.
Citation :
Provient du message de Erocdrah
Dans ce cas comment savoir comment quelle condition est liée à quelle instruction , cela pourrait être que
Code:
n1 < 0et n2 < 0
est associée a l'instruction "si ; alors" ...ou bien à l'instruction "sinon".
Bref , c'est un standart définie comme ça ou il y a quelque chose a comprendre ?
ben c'est simple, t'as une condition booleene ( x > z et y < 0 ou u = vrai )

la syntaxe du si est comme ça :

si condition alors action1
sinon action2

donc si la condition vaut vrai, tu fais action1, sinon action2
Citation :
posté par Melchiorus
Non non en algorithmique ça ne veut rien dire.
Si², ça veut bien dire quelque chose.
Il suffit qu'il y ait une fonction de l'espace des floats vers l'espace des booléens appelée vrai().
Or, il se trouve que c'est le cas
(et vrai(x) renvoie true si x est non nul)
Message supprimé par son auteur.
Citation :
Provient du message de Eldarendil
Si², ça veut bien dire quelque chose.
Il suffit qu'il y ait une fonction de l'espace des floats vers l'espace des booléens appelée vrai().
Or, il se trouve que c'est le cas
(et vrai(x) renvoie true si x est non nul)
Mais c'est pas de l'algorithmique ça ... c'est de la programmation.

En plus elle a écrit "Si nb1 et nb2 = Vrai" et pas "Si vrai(nb1) et vrai(nb2)".
Citation :
Provient du message de Eldarendil
Bin justement :
"Si nb1 et nb2 = Vrai" se traduit exactement par "Si vrai(nb1) et vrai(nb2)".
pas en algo, dans la majorite des langages de programmation oui, mais pas en algo

Erocdrah -> je te conseille (genre vraiment) de ne pas commencer par du C/C++ pour apprendre a coder (quand tu auras compris l'algo, je veux dire).

Lances toi plutot dans des langages comme le Python, tu pourras te concentrer sur ce que tu veux faire (tes algos) plutot que sur la maniere de le faire (la syntaxe) et ca te permettra d'avoir des bases "saines". Tu pourras passer a des langages de plus bas niveau (donc plus complexes a coder car plus proches du coeur de la machine) plus tard
Citation :
Provient du message de Eldarendil
Bin justement :
"Si nb1 et nb2 = Vrai" se traduit exactement par "Si vrai(nb1) et vrai(nb2)".
Il faut arrêter d'inventer des règles de lecture ou alors me prouver qu'en algorithmique cette syntaxe est utilisée.

"Si nb1 et nb2 = Vrai" n'a un sens que si nb1 et nb2 sont des booléens Vrai ou Faux et c'est tout.
Je le redis : algorithmique et langage de programmation c'est différent.
Citation :
Provient du message de Melchiorus
Je le redis : algorithmique et langage de programmation c'est différent.
/totally agree
il faut se rattacher à la sémantique des problèmes à résoudre... disait maitre yoda !
Citation :
posté par Melchiorus
Il faut arrêter d'inventer des règles de lecture ou alors me prouver qu'en algorithmique cette syntaxe est utilisée.
En algorithmique, on peut utiliser les fonctions que l'on veut, vu que justement ça ne repose pas sur un langage particulier.
On peut par exemple écrire si ma_fonction(x)>0 alors.... Et donc toi tu vas pleurer parce que ma_fonction n'existe pas ?
Citation :
"Si nb1 et nb2 = Vrai" n'a un sens que si nb1 et nb2 sont des booléens Vrai ou Faux et c'est tout.
Non, voir plus haut...
Citation :
Provient du message de Eldarendil
En algorithmique, on peut utiliser les fonctions que l'on veut, vu que justement ça ne repose pas sur un langage particulier.
On peut par exemple écrire si ma_fonction(x)>0 alors.... Et donc toi tu vas pleurer parce que ma_fonction n'existe pas ? Non, voir plus haut...
Sauf que la il n'a pas fait passer ses valeurs par des fonctions, pas plus qu'il n'a surdéfini l'operateur "et" (pas plus que l'operateur "="), et je doute que le type cast soit un standard de l'algorithmique

Dans la mesure ou il n'a pas définit la moindre fonction de conversion ET qu'il n'a pas fait traiter ses variables par une fonction (dont il aurait pu ne pas nous donner la définition), ton post n'a aucune justification
Citation :
posté par Masklinn
Dans la mesure ou il n'a pas définit la moindre fonction de conversion ET
Du moment qu'il utilise ET sur des variables non booléennes, il y en a forcément
Citation :
Provient du message de Eldarendil
Du moment qu'il utilise ET sur des variables non booléennes, il y en a forcément
hum... le "ET" est ici un lien logique, l'opérateur j'en discute a la ligne d'au dessus

Et le fait d'utiliser un operateur avec des variables qu'il ne gere pas s'appelle une erreur de syntaxe
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés