33cl_dev
Messages postés6Date d'inscriptiondimanche 7 juin 2020StatutMembreDernière intervention25 décembre 2021
-
Modifié le 12 juin 2020 à 10:34
Whismeril
Messages postés18416Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention 1 juin 2023
-
12 juin 2020 à 10:48
Bonjour,
Je n'ai aucun problème mais j'aimerais avoir un avis sur la façon dont je commente mon code.
#include <stdio.h>
#include <stdlib.h>
int main(void){
int lettre;
// Entrée d'une lettre entre a et y
printf("Entrez une lettre entre a et y : ");
scanf("%c", &lettre);
// Vérification du contenu de la variable
if (lettre >= 4194401 && lettre < 4194426){
// La lettre saisie deviendra celle qui la suit dans l'alphabet
lettre++;
printf("%c\n", lettre);
}
// Indique que le caractère saisi n'est pas acceptable et le programme s'arrête
else{
printf("Une erreur est survenue\n");
return -1;
}
system("pause");
return 0;
}
Concernant tes commentaires, il y a 2 publics visés
toi-même, si tu dois maintenir le code dans 6 mois, 1 an, 10 ans etc... Les commentaires doivent te permettre de te replonger « instantanément » dans le bain
tes collègues actuels ou futurs, qui pourraient eux aussi maintenir ce code. Les commentaires doivent leur permettre de s’imprégner rapidement de ta façon de coder.
pgl10
Messages postés366Date d'inscriptionsamedi 18 décembre 2004StatutMembreDernière intervention17 mai 20239 12 juin 2020 à 09:22
Bonjour 33cl_dev,
L'écriture : lettre++ indique un programme en C++ et non en C.
Et le format %c concerne une variable char et non une variable int.
En programmation C++ on peut donc écrire :
#include <iostream>
int main(void){
char lettre;
// Entrée d'une lettre entre a et y
std::cout << "Entrez une lettre entre a et y : ";
std::cin >> lettre;
std::cout << std::endl << "La lettre lue est : " << lettre << std::endl;
// Vérification du contenu de la variable lettre
if (lettre >= 'a' && lettre <= 'y'){
// La lettre saisie deviendra celle qui la suit dans l'alphabet
lettre++;
std::cout << "La lettre suivante : " << lettre << std::endl;
}
// Indique que le caractère saisi pour la variable lettre n'est pas acceptable
else{
std::cout << "Une erreur est survenue" << std::endl;
return -1;
}
return 0;
}
cptpingu
Messages postés3837Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention28 mars 2023124 Modifié le 12 juin 2020 à 10:57
En gros, tu paraphrases ton code, donc les commentaires que tu as fait ne sont pas efficaces. De plus, un bon code est "self-documented", c'est-à-dire suffisamment clair pour être quasi documenté naturellement. Généralement on commente plus les fonctions, qui sont elles mêmes plus clairs.
Exemple:
#include <stdio.h>
#include <stdlib.h>
/*!
** nextChar returns the next char in the ascii table.
**
** @param c the char
** @return the next char
*/
char nextChar(char c) {
return c + 1;
}
/*!
** isValid checks if the char is valid, ie, is in a valid range.
**
** @param c the char to check
** @return if is in range
*/
int isValid(c char) {
return c >= 'a' && c <= 'y'
}
int main(void){
char lettre;
printf("Entrez une lettre entre a et y : ");
scanf("%c", &lettre);
if (isValid(lettre)){
printf("%c -> %c\n", lettre, nextChar(lettre));
} else{
printf("Une erreur est survenue\n");
return -1;
}
system("pause");
return 0;
}