Bonsoir, actuellement en terminale STI, je passe le BAC en fin d'année et mon sujet d'électronique repose sur une carte avec de la programmation.
Pour être "presque incollable " j'aimerais vous posez quelques questions.
Tout d'abord le prof nous as dit de commencer notre programme par un "void main", pourquoi pas un "int main" à la place? quels est l'avantage du void à la place du int?
Et quelle est la grosse différence entre les deux? Ensuite j'ai quelques questions sur un programme pour l'encodeur de ma carte.
LE voici:
int8 encodeur()
{
int8 x=0;
ea = input (ER_A);
eb = input (ER_B);
ebp= input (ER_BP);
if ( ebp == lbp)
{
if (eb == lb)
x=0;
else
{
if ((eb && ea) || ((!eb) && (!ea)))
x=1;
else
x=0xff;
lb=eb;
}
}
else
{
lbp=ebp;
if (!ebp)
x=0x80;
}
return x;
}
Alors, les lignes parlant des input(ER_A) ... au début qu'est ce que sa signifie exactement?
int8 = 0 c'est bien la condition de départ?
et le return x il retourne à quel ligne précisément? au début a mon x = 0 ?
Voila merci d'avance, ce ci peut paraitre super simple pour certain mais quand on débute depuis 15jours il y a des choses pas toujours clairs même si j'arrive a faire fonctionner toute ma carte avec des if, else et else if ^^ .
Bonne soirée.
Normalement on met "int main". Je pense que c'est surtout pour des raisons historiques, car on peut avoir besoin de tester si le programme s'est bien exécuté. Pour ce faire, il suffit de tester la valeur entière retournée par le main. Si c'est 0 c'est que tout s'est bien passé, sinon c'est qu'il y a eu une erreur.
Le "void main" marche aussi en principe.
ea = input (ER_A);
Je ne sais pas ce que signifient exactement ea ou ER_A dans le contexte de ton programme, mais cette ligne signifie que tu vas récupérer l'entrée ER_A de la carte et la mettre dans la variable ea de ton programme.
int8 x=0;
Ca veut simplement dire que tu déclares une variable entière x et que tu l'initialises avec la valeur 0.
Le 8 du int8 signifie que l'entier est codé sur 8 bits, soit 1 octet.
Par défaut les entiers sont souvent codés sur 4 octets.
return x;
C'est pas du tout ce que tu crois !
Le return définit la valeur de retour de ta fonction.
Comme tu as défini ta fonction par : int8 encodeur(), sa valeur de retour doit être un int8.
En gros une fonction en informatique c'est un peu comme une fonction mathématique :
— elle peut prendre des données en entrée (ici la tienne n'a pas d'entrée, mais elle récupère des inputs donc ça revient au même),
— elle effectue un calcul à partir de ces entrées,
— elle renvoie le résultat du calcul.
Dans ta fonction, tu renvoies la valeur de x. C'est correct car x a bien été défini comme étant de type int8.
D'ailleurs quand je parlais du "int main" un peu plus haut : c'est la même chose. A la fin de ton main tu peux mettre if(le programme s'est bien exécuté) return 0 else return -1
Ainsi, le type qui a demandé l'exécution de ton programme pourra savoir si tout s'est bien passé.
Bonsoir Dr_Cube, merci beaucoup d'avoir pris le temps de me répondre de plus tes réponses sont claires et bien détaillées !
JE ferme pas ce topic je risque y reposer des questions si j'ai d'autres soucis :=)
En tout cas j'ai bien fait d'avoir poster car je ne suis pas encore au point coté programmation !
Bonne soirée merci encore
Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois. Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.