Bonjour/Bonsoir,
Dans un exo de TP je dois réaliser une calculatrice qui supporte uniquement les 4 opérations de base (qui sait donc effectuer des opérations du style "12*7" ). Bon, j'ai réussi et ça marche. Mais y'a un truc qui m'intrigue (une question de débutante qui se pose toujours trop de questions..) Je vous donne d'abord mon code:
PROCEDURE Calculatrice IS
I,J: Integer;
R: Float;
Op: Character;
BEGIN
Put("Veuillez entrer l'opération à effectuer: ");
Get(I);
Get(Op);
Get(J);
IF Op='*' THEN
R:=Float(I*J);
ELSIF Op='+' THEN
R:=Float(I+J);
ELSIF Op='/'THEN
R:=Float(I/J);
ELSE
R:=Float(I-J);
END IF;
New_Line;
Put("Résultat-----------> ");
Put(R,1,2,0);
END Calculatrice;
Voilà, donc en fait j'ai remarqué qu'en exécutant, si je tape mon opération d'un bloc ou si je fais entrée entre le premier nombre et le type d'opération (+,-,* ou/) et entre le type d'opération et le deuxième, ça marche dans les deux cas. En clair, que je tape
23*7
ou
23
*
7
le programme fonctionne et me donne le bon résultat.
Alors je me demande:
Quand je tape tout d'un bloc, comment le compilateur sait-il qu'à l'intérieur de ce bloc il y a la variable I suivie du type d'opération suivie de la variable J ?? Parce qu'avant de tester mon programme je pensais que pour que ça marche j'aurais dû faire entrée entre chaque élément, et que sinon il aurait considéré que tout ça n'était que la variable I et que le curseur aurait continué à clignoter en faisant entrée, afin que je rentre l'opération puis J... Or ça fonctionne
Je sais pas si c'est très clair lol...
Merci..