Diffuculté à comprendre un programme en c
Résolu/Fermé
DevGl
Messages postés
136
Date d'inscription
samedi 23 novembre 2013
Statut
Membre
Dernière intervention
16 mai 2015
-
Modifié par crapoulou le 2/01/2015 à 19:58
sambia39 Messages postés 610 Date d'inscription vendredi 31 juillet 2009 Statut Membre Dernière intervention 9 février 2023 - 10 janv. 2015 à 15:40
sambia39 Messages postés 610 Date d'inscription vendredi 31 juillet 2009 Statut Membre Dernière intervention 9 février 2023 - 10 janv. 2015 à 15:40
A voir également:
- Diffuculté à comprendre un programme en c
- Ce programme est écrit en python. il construit un mot secret dans une variable mais il ne l'affiche pas. modifiez-le pour qu'il affiche le mot secret. exécutez-le. quel est ce mot secret ? ✓ - Forum Python
- Frequence programme national ✓ - Forum Messagerie
- Programme demarrage windows 10 - Guide
- Programme bonjour ✓ - Forum Windows
- Programme démarrage windows 10 - Guide
2 réponses
salut,
k >= i donne true ou 1 en booleen si k est plus grand ou egale à i
il donne false ou 0 dans le cas inverse.
donc
si k>=i
si k<i
ça evite de faire
k >= i donne true ou 1 en booleen si k est plus grand ou egale à i
il donne false ou 0 dans le cas inverse.
donc
si k>=i
k+(k>=i)equivaut à k+1
si k<i
k+(k>=i)equivaut à k+0
ça evite de faire
if (k>=i)
{
mat_n_moins_1 [j][k] = mat [j+1][k+1];
}
else
{
mat_n_moins_1 [j][k] = mat [j+1][k];
}
sambia39
Messages postés
610
Date d'inscription
vendredi 31 juillet 2009
Statut
Membre
Dernière intervention
9 février 2023
48
10 janv. 2015 à 15:40
10 janv. 2015 à 15:40
Bonjour
@JwTdd:salut,
k >= i donne true ou 1 en booleen si k est plus grand ou egale à i
il donne false ou 0 dans le cas inverse.
La condition pour qu'une variable soit "vrai" est quand celle-ci est strictement supérieure à zéro ( NULL ) le contraire si elle est strictement égale à zéro cas du langage C.
Suivant cette logique, la condition "si" qui a pour rôle de tester l'expression évaluera si elle vaut vrai ou faux en résumé on peut alors écrire directement
Mais attention cette logique booléenne en langage C est légèrement trompeuse je m'explique, si la valeur de notre variable ou expression est égale à une valeur strictement négatif exemple -1 la logique veut que cette expression soit fausse (logiquement) mais, en langage C elle vaut et vrai.
De nombreux débutants font cette erreur ( erreur logique de programmation ) pour avoir une logique correspondant à nos besoins, c'est-à-dire toute valeur strictement supérieure à zéro ( vrais ) et toute valeur inférieure à zéro soit fausse il faut alors implémenter comme ceci
à bientôt
@JwTdd:salut,
k >= i donne true ou 1 en booleen si k est plus grand ou egale à i
il donne false ou 0 dans le cas inverse.
La condition pour qu'une variable soit "vrai" est quand celle-ci est strictement supérieure à zéro ( NULL ) le contraire si elle est strictement égale à zéro cas du langage C.
Suivant cette logique, la condition "si" qui a pour rôle de tester l'expression évaluera si elle vaut vrai ou faux en résumé on peut alors écrire directement
if ( expr ){
// si vrais faire
}else{
// faire ceci à la place
}
Mais attention cette logique booléenne en langage C est légèrement trompeuse je m'explique, si la valeur de notre variable ou expression est égale à une valeur strictement négatif exemple -1 la logique veut que cette expression soit fausse (logiquement) mais, en langage C elle vaut et vrai.
De nombreux débutants font cette erreur ( erreur logique de programmation ) pour avoir une logique correspondant à nos besoins, c'est-à-dire toute valeur strictement supérieure à zéro ( vrais ) et toute valeur inférieure à zéro soit fausse il faut alors implémenter comme ceci
#include <stdio.h>
#include <stdlib.h>
int main( void ){
int i = 1;
printf("Logique par defaut\n");
if( i ){
printf(" I vaut %d\t et est > 0 donc\t: (VRAI)\n", i );
i = -1;
}else{
printf(" I vaut %d\t et est <= 0 donc\t: (FAUX)\n", i );
}
if( i ){
printf(" I vaut %d\t et est > 0 donc\t: (VRAI)\n", i );
i = -6;
}else{
printf(" I vaut %d\t et est <= 0 donc\t: (FAUX)\n", i );
}
printf("Logique souhaiter\n");
if( i <= 0 ){
printf(" I vaut %d\t et est <= 0 donc\t: (FAUX)\n", i );
}else{
printf(" I vaut %d\t et est > 0 donc\t (VRAI)\n", i );
}
return( EXIT_SUCCESS );
}
à bientôt
10 janv. 2015 à 00:08