Procedure Pascal ?
Fermé
gotomtom
Messages postés
55
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
18 novembre 2012
-
Modifié par gotomtom le 13/12/2010 à 23:09
KX Messages postés 16755 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025 - 14 déc. 2010 à 11:53
KX Messages postés 16755 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 12 février 2025 - 14 déc. 2010 à 11:53
A voir également:
- Procedure Pascal ?
- Turbo pascal download - Télécharger - Édition & Programmation
- My pascal - Télécharger - Édition & Programmation
- Dev-pascal - Télécharger - Édition & Programmation
- Le point d'entrée de procédure est introuvable dans la bibliothèque de liens dynamiques ✓ - Forum Logiciels
- Procedure de taxe bara ✓ - Forum Consommation & Internet
3 réponses
KX
Messages postés
16755
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
13 déc. 2010 à 23:49
13 déc. 2010 à 23:49
Même erreur que ce midi, tu as oublié les VAR !
Remarque :
Il n'est pas normal que Geany ne supporte pas les begin avant les end (moi je n'ai pas eu de problème avec Dev-Pascal)
De plus, tu n'es pas obligé de faire une unité par procédure, tu peux (et c'est conseillé) mettre des méthodes associées dans une même unité. D'ailleurs tu peux mettre tes méthodes directement dans le corps du programme sans avoir à créer d'unités...
Remarque :
Il n'est pas normal que Geany ne supporte pas les begin avant les end (moi je n'ai pas eu de problème avec Dev-Pascal)
De plus, tu n'es pas obligé de faire une unité par procédure, tu peux (et c'est conseillé) mettre des méthodes associées dans une même unité. D'ailleurs tu peux mettre tes méthodes directement dans le corps du programme sans avoir à créer d'unités...
gotomtom
Messages postés
55
Date d'inscription
vendredi 28 novembre 2008
Statut
Membre
Dernière intervention
18 novembre 2012
97
Modifié par gotomtom le 14/12/2010 à 01:01
Modifié par gotomtom le 14/12/2010 à 01:01
Il signifie quoi le VAR ?
Je crois que VAR = paramètre en entrée/sortie.
A midi, je suis d'accord. a=5 et b=6 à l'entrée au clavier (exemple). a=6 et b=5 à la sortie, donc là je comprend paramètre en entrée/sortie. La valeur diffère durant la procédure.
Mais pour l'insertion, je ne comprends pas. a=5 à l'entrée au clavier et a=5 à la sortie de la procédure. La valeur ne diffère pas. Je ne comprends pas pourquoi il s'agit d'un paramètre en entrée/sortie.
Si nous devons mettre les procédures dans des unités, je pense que c'est pour nous familiariser avec la programmation orientée objet.
Je crois que VAR = paramètre en entrée/sortie.
A midi, je suis d'accord. a=5 et b=6 à l'entrée au clavier (exemple). a=6 et b=5 à la sortie, donc là je comprend paramètre en entrée/sortie. La valeur diffère durant la procédure.
Mais pour l'insertion, je ne comprends pas. a=5 à l'entrée au clavier et a=5 à la sortie de la procédure. La valeur ne diffère pas. Je ne comprends pas pourquoi il s'agit d'un paramètre en entrée/sortie.
Si nous devons mettre les procédures dans des unités, je pense que c'est pour nous familiariser avec la programmation orientée objet.
KX
Messages postés
16755
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
14 déc. 2010 à 11:42
14 déc. 2010 à 11:42
Je n'irai pas jusqu'à dire que c'est pour faire de la POO, mais pour l'encapsulation ça peut être une bonne idée. Cependant une procédure par unité c'est quand même abusif ! Mais bon, si c'est scolaire...
Concernant le mot clé VAR, lorsqu'il est utilisé dans les paramètres d'une fonction/procédure, il s'agit de passer le paramètre par variable, alors que sans le VAR il est passé par valeur :
exemple :
Ce qui se passe, c'est que ce n'est pas la variable x qui est passé à p1, mais sa valeur : 1, en conséquence même si on modifie a, en aucun cas x ne sera modifié. Par contre y est passé par variable à p2, donc modifier b c'est modifier y.
Dans ton cas : de même qu'il fallait mettre var pour la procédure échange car les valeurs de a et b étaient modifiées, dans ton problème d'insertion, il faut donc mettre les var pour récupérer les modifications de a et b opérées au moment du readln.
Concernant le mot clé VAR, lorsqu'il est utilisé dans les paramètres d'une fonction/procédure, il s'agit de passer le paramètre par variable, alors que sans le VAR il est passé par valeur :
exemple :
procedure p1(a:integer); // a est passé par valeur begin a:=5; end; procedure p2(var b:integer); // b est passé par variable begin b:=3; end; var x,y:integer BEGIN x:=1; y:=1; p1(x); // la valeur de x (c'est à dire 1) est passé à p1 p2(y); // la variable y est passé à p2 writeln(x,' ',y); // 1 3 END.
Ce qui se passe, c'est que ce n'est pas la variable x qui est passé à p1, mais sa valeur : 1, en conséquence même si on modifie a, en aucun cas x ne sera modifié. Par contre y est passé par variable à p2, donc modifier b c'est modifier y.
Dans ton cas : de même qu'il fallait mettre var pour la procédure échange car les valeurs de a et b étaient modifiées, dans ton problème d'insertion, il faut donc mettre les var pour récupérer les modifications de a et b opérées au moment du readln.
KX
Messages postés
16755
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
12 février 2025
3 020
14 déc. 2010 à 11:53
14 déc. 2010 à 11:53
Pour compléter mon exemple, en gros ce que le programme fait c'est :
x:=1; y:=1; // p1(x); a:=x; a:=5; // on modifie a, mais pas x // p2(y); b<=>y b:=3; <=> y:=3; // on modifie y en modifiant b writeln(x,' ',y); // x=1, y=3