Il y a actuellement 47 visiteurs
Mercredi 15 Janvier 2025
accueilactualitésdossierscomparer les prixtélécharger gratuitement vos logicielsoffres d'emploiforum informatique
Connexion
Créer un compte

[réglé]probleme de fonction en pascal avec fpc et geany

Besoin d'aide pour configurer un serveur ? Vous souhaitez obtenir des conseils pour référencer votre site ? Un petit souci pour accéder à votre FTP ? Des soucis de programmation en PHP / ASP / HTML / XHTML / XML / XSLT / CSS / ReactJS / AngularJS / VueJS / CGI / PERL / C / MySQL / PostgreSQL ??? Nous avons peut-être la solution dans ce forum ...

[réglé]probleme de fonction en pascal avec fpc et geany

Message le 27 Juil 2008 19:11

Salut,

J'utilise FPC avec comme editeur de texte Geany pour faire des exercices en pascal.

Lorsque je code une fonction simple de type :

Code: Tout sélectionner
program testfunction;

function plus3 (var x:integer):integer;
begin
  result := x+3;
end;

var a,b:integer;
begin
  writeln ('entrez un nombre');
  readln (a);
  b:= plus3 (a);
  writeln (a, '+ 3 =',b);
end. 


le compilateur me sort une erreur : Error: Identifier not found "result"

Alors que la meme fonction se compile bien avec textpad et borland sous windows.

Que puis je faire pour regler ce probleme ?
Merci d'avance.
Avatar de l'utilisateur
blu
Apprenti(e) Expert(e)
Apprenti(e) Expert(e)
 
Messages: 315
Inscription: 28 Avr 2003 19:51
 


Message le 29 Juil 2008 12:05

Est ce que cela pourrait venir du fait que mon os soit 64bits ?
Avatar de l'utilisateur
blu
Apprenti(e) Expert(e)
Apprenti(e) Expert(e)
 
Messages: 315
Inscription: 28 Avr 2003 19:51
 

Message le 29 Juil 2008 12:19

Sans connaitre ni avoir appris le Pascal, je dirais que l'erreur est logique.
Ta variable "result" n'est pas déclarée (en global, ou en local dans la fonction), et surtout elle n'est pas retournée par la fonction si je ne me trompe pas. Tu affecte une valeur mais elle n'est pas utilisée par la suite.
Je pense que le programme tel qu'il est écrit est faux. Après, il y a des compilateurs souples et d'autres moins compréhensifs, d'où la différence de traitement à la compilation :)
Avatar de l'utilisateur
CaSa
PC-Infopraticien
PC-Infopraticien
 
Messages: 9048
Inscription: 13 Mai 2003 16:32
Localisation: Sisteron... et jamais loin d'une Debian
 

Message le 29 Juil 2008 12:28

Mais est ce que cette ligne :

Code: Tout sélectionner
result := x+3;


Ne constituerais pas à la fois en une déclaration et une initialisation de le variable result ?

Je ne connais pas le Pascal, je me fie au peu de C que je connais...

En C, cela aurait donné :
Code: Tout sélectionner
int result = x+3;
Avatar de l'utilisateur
H3bus
Moderateur
Moderateur
 
Messages: 12195
Inscription: 08 Avr 2008 15:13
Localisation: /home/h3bus
 

Message le 29 Juil 2008 12:53

La variable result n'est elle pas implicitement déclarée par le deuxiemme "integer" celui apres les parentheses ?
Code: Tout sélectionner
function plus3 (var x:integer):integer;


mon programme est supposé etre correct, c'est un prof qui nous a apris a coder les fonctions comme cela.
Avatar de l'utilisateur
blu
Apprenti(e) Expert(e)
Apprenti(e) Expert(e)
 
Messages: 315
Inscription: 28 Avr 2003 19:51
 

Message le 29 Juil 2008 14:56

Soit le prof a oublié qqchose, soit le Pascal c'est très crade comme langage.
J'ai jamais trop vu ça en programmation, et j'analyse bêtement le code :
Code: Tout sélectionner
function plus3 (var x:integer):integer;

Déclaration d'integer, soit, mais ici rien n'indique que cet integer est la variable "result".
Code: Tout sélectionner
result := x+3;

Pas de déclaration explicite de "result". C'est quoi ? un integer, autre chose ?
Et sur la fin de la fonction, rien n'indique que la variable result est à retourner en résultat. Donc rien n'indique son type et rien ne la rattache au fameux 1er "integer"...

D'intuition, je mettrais qqchose comme
Code: Tout sélectionner
var result:integer;

OU
Code: Tout sélectionner
return result;
(si ça se déclare comme cela en Pascal)
... dans la fonction. Je pense que ce serait plus propre et que ça aurait plus de chances de passer.
Je pense d'ailleur plus fortement à la 2eme solution.
Avatar de l'utilisateur
CaSa
PC-Infopraticien
PC-Infopraticien
 
Messages: 9048
Inscription: 13 Mai 2003 16:32
Localisation: Sisteron... et jamais loin d'une Debian
 

Message le 29 Juil 2008 15:41

CaSa a écrit:Et sur la fin de la fonction, rien n'indique que la variable result est à retourner en résultat. Donc rien n'indique son type et rien ne la rattache au fameux 1er "integer"...

Je pensais que result est implicitement le resultat de la fonction.

J'ai essayé de déclarer result en variable locale. Cela résous le probleme sous linux. Par contre sous windows, j'ai un message d'erreur qui dit :
Error : identifier redeclared : 'result'
Avatar de l'utilisateur
blu
Apprenti(e) Expert(e)
Apprenti(e) Expert(e)
 
Messages: 315
Inscription: 28 Avr 2003 19:51
 

Message le 29 Juil 2008 20:28

j'ai posté mon problème sur les forums de developpez.net, voici la solution :

Je pense qu'il faut activer la compatibilité Delphi avec la directive

Code: Tout sélectionner
{$MODE DELPHI}


J'ai pas tout compris, mais ca fonctionne :)
Avatar de l'utilisateur
blu
Apprenti(e) Expert(e)
Apprenti(e) Expert(e)
 
Messages: 315
Inscription: 28 Avr 2003 19:51
 



Sujets similaires

Message [Réglé] S'affranchir du code PIN Windows
Bonjour à tous et meilleurs voeux !Comme je suis seul à me servir de mes machines, je souhaitais supprimer la demande de code PIN de Win 10.J'ai l'ai donc supprimé mais c'est Microsoft qui ne l'entend pas comme çà: Il demande le mot de passe Microsoft à la place.....Peut on s'affranchir de ces optio ...
Réponses: 2

Message [Réglé] Conseils performances achat...???
Bonjour a tous,ça faisait un moment que j'étais venu vous lire car tout allait bien mais je me pose maintenant quelque questions de performances et d'éventuel achat.Pour l'historique mon ordinateur portable est un ASUS N56VZ (S40 23V)avec un processor Intel(R) Core(TM) i7-3610QM CPU @ 2.30GHz 2.30 ...
Réponses: 7

Message [Réglé] Infection, bannière ou pub
FRST.txtAddition.txtShortcut.txtHello à tous,depuis novembre que vous m'avez pris en charge je n'ai plus eu de soucies, et voila que ca recommence, des bannières par dizaine, avec entête Mc caffe, Norton, Avira, Pub, Gain etc...donc je m'en remets une foie de plus à vous je vous mets déjà les rappor ...
Réponses: 8

Message problème jeu pc indiana jones et le cercle ancien
Bonjour,Pourriez-vous m'aider à résoudre l'erreur " english missing vulkan device extensions please update your graphics driver or gpu vk KHR ray querry" au moment de démarrer le jeu pc "Indiana Jones et le cercle ancien" sur un pc avec la configuration :Carte mère F898 Saber ...
Réponses: 9

Message [Réglé] Votre avis sur les disques durs "INN®" (ou Innovtec)
Bonjour à tousFaisant des recherches sur le net en vue d'acheter un disque dur externe de 6 ou 8 To, je suis tombé sur des annonces - sur le site Cdiscount de la marque Innovtec et, vu les tarifs affichés, je m'interroge sur la qualité du produit.Par exemple, celui-ci : https://www.cdiscount.com/inf ...
Réponses: 8

Message [Réglé] Mauvaise performance SSD NVME
Bonjour, j'ai un WDC PC SN530 SDBPNPZ-512G, et quand je fais des benchmark où je ne comprends rien, ils m'indiquent dès résultat pas terrible, y a t'il moyen d'arranger ça ?https://www.userbenchmark.com/UserRun/68904129Merci de votre aide.
Réponses: 10

Message [Réglé] Suite de mon sujet Démarrage PC parfois difficile
Bonjour,j'avais ouvert un sujet suite au démarrage très lent de mon PC. Votre aide m'a permis d'améliorer la situation mais ce n'est pas parfait (plus de 2 minutes avant la fenêtre de saisie du code d'accès Windows).On m'a conseillé de demander une désinfection. J'ai suivi la procédure et je joins l ...
Réponses: 34


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités


.: Nous contacter :: Flux RSS :: Données personnelles :.