Vocabulaire

Discutez d'informatique ici !
sad13
Membre Irrationnel
Messages: 1526
Enregistré le: 29 Oct 2010, 21:37

vocabulaire

par sad13 » 10 Mar 2012, 00:55

Bonsoir, j'ai deux versions de programmes Xcas; l'une est dite récursive et l'autre itérative; quelle est la différence svp?



Avatar de l’utilisateur
fatal_error
Membre Légendaire
Messages: 6610
Enregistré le: 22 Nov 2007, 12:00

par fatal_error » 10 Mar 2012, 09:07

récursion
Code: Tout sélectionner
factorielle(n) :=
 if (n==1) return 1
 else return n * factorielle(n-1)


iteratif
Code: Tout sélectionner
factorielle(n) :=
  s=1
  for i = 2 a n;
   s*=i
  endfor
  return s

la fonction récursive se rappele elle même. Pas l'itérative.
la vie est une fête :)

sad13
Membre Irrationnel
Messages: 1526
Enregistré le: 29 Oct 2010, 21:37

par sad13 » 10 Mar 2012, 23:36

Merci;

il y a une erreur dans le code:


c'est plutôt :

for i = 2 a n;
s=s*i
i=i+1
endfor

Non?

Elerinna
Membre Rationnel
Messages: 559
Enregistré le: 27 Fév 2012, 18:59

Le XCas au codage C++

par Elerinna » 11 Mar 2012, 01:33

sad13 a écrit:c'est plutôt :

for i = 2 a n;
s=s*i
i=i+1
endfor

Non?


Non : il n'y a aucune erreur dans ce code de fatal_error (aussi contradictoire qu'il soit) car en C++ :

pour l'opérateur multiplicatif de base, la notation : est srictement équivalente à :

Skullkid
Habitué(e)
Messages: 3075
Enregistré le: 08 Aoû 2007, 19:08

par Skullkid » 11 Mar 2012, 02:59

Qui plus est, dans une boucle for, l'incrémentation du compteur de boucle (le i) est gérée automatiquement. En exécutant ton programme qui contient la ligne "i = i +1", au mieux tu auras un message d'erreur ou un warning, au pire le programme va s'exécuter sans se plaindre mais va te donner un résultat faux puisque tu l'auras forcé à sauter une boucle sur deux.

Dlzlogic
Membre Transcendant
Messages: 5273
Enregistré le: 14 Avr 2009, 12:39

par Dlzlogic » 11 Mar 2012, 13:14

Bonjour Skullkid,
"En exécutant ton programme qui contient la ligne "i = i +1", au mieux tu auras un message d'erreur ou un warning,"
Les messages d'erreur ou les warnings peuvent survenir à la compilation. Aucub compilateur ne trouvera à critiquer cette instruction, elle est tout à fait légale.
A l'exécution, la machine n'indique que les erreurs d'exécution, type division par 0, racine carrée d'au nombre négatif etc.

Le code écrit par fatal error n'est pas du C.
En C/C++, ce pourrait être
Code: Tout sélectionner
int Factoriel(int n)
{
  int S=1;
  for (int i=1; i<=n; i++)
  {
    S*=i;
  }
  return S;
}

Elerinna
Membre Rationnel
Messages: 559
Enregistré le: 27 Fév 2012, 18:59

Le code sous XCas

par Elerinna » 11 Mar 2012, 14:55

Dans le langage du XCas (écrit à partir du C++), on aura à la place des mot-clés: "for" et "endfor" respectivement soit la version d'origine en C++ soit celle présente en Français: "pour" et "fpour" (une illustration). La syntaxe plus haut est une "production mixte" de XCas et du langage IDL (un exemple).

Dlzlogic
Membre Transcendant
Messages: 5273
Enregistré le: 14 Avr 2009, 12:39

par Dlzlogic » 11 Mar 2012, 15:38

Elerinna a écrit:Dans le langage du XCas (écrit à partir du C++),

Bonjour Elerinna,
Je pense que presque tous les langages interprétés sont écrits en C/C++. Selon mes informations c'était déjà le cas pour DBaseII.
Mais il n'a pas vraiment de raison qu'il y ait une quelconque similitude dans la logique ou dans la syntaxe, dans un sens ou dans l'autre.

Elerinna
Membre Rationnel
Messages: 559
Enregistré le: 27 Fév 2012, 18:59

L'environnement de XCas

par Elerinna » 11 Mar 2012, 16:05

Dlzlogic a écrit:Mais il n'a pas vraiment de raison qu'il y ait une quelconque similitude dans la logique ou dans la syntaxe, dans un sens ou dans l'autre.


Certes, toutefois la sémantique du XCas est transcrite fidèlement de celle du C++ (un guide exhaustif).

Dlzlogic
Membre Transcendant
Messages: 5273
Enregistré le: 14 Avr 2009, 12:39

par Dlzlogic » 12 Mar 2012, 13:07

Bonjour,
Je pense qu'en matière de langage informatique, le terme "sémantique" peut être pris comme synonyme de syntaxe.
Je ne trouve pas que le Xcas ait repris la syntaxe du C, par exemple le signe d'affectation ':=' est celui du Pascal et non du C. Je suppose que l'opérateur de comparaison (égalité) en Xcas est '=', alors qu'en C c'est '=='.
Autre différence qui me parait importante.
En C une boucle for contient 3 instructions : initialisation, test, incrémentation, apparemment en Xcas, c'est initialisation du compteur, valeur maximum du compteur et peut-être valeur de l'incrément du compteur, 1 par défaut.

Il y a un langage qui a repris la syntaxe du C/C++, c'est le PHP.
Concernant la logique de Xcas, est-ce les notions de new, delete et autres choses du même genre sont prévues, j'en suis pas sûr.

Je n'ai pas à juger de ce choix de syntaxe, par contre, je suis sûr qu'il faut éviter de faire croire aux étudiants qu'ils utilisent un langage qui "transcrit fidèlement" la sémantique du C++.

Elerinna
Membre Rationnel
Messages: 559
Enregistré le: 27 Fév 2012, 18:59

Au sujet de XCas

par Elerinna » 12 Mar 2012, 16:27

Dlzlogic a écrit:Je pense qu'en matière de langage informatique, le terme "sémantique" peut être pris comme synonyme de syntaxe.


La logique est celle de l'objet défini en tant que signifié (qui dépend des propriétés à transcrire par un signifiant, le programme). "Le terme de sémantique est utilisé en opposition à celui de syntaxe dans l'étude des langages de programmation en informatique, pour laquelle elle a été développée de manière formelle. Il y a entre la sémantique et la syntaxe le même rapport qu'entre le fond et la forme" (wikipedia).



Dlzlogic a écrit:Je n'ai pas à juger de ce choix de syntaxe, par contre, je suis sûr qu'il faut éviter de faire croire aux étudiants qu'ils utilisent un langage qui "transcrit fidèlement" la sémantique du C++.


Une confusion a lieu entre le formalisme d'encapsulation de librairies et les commandes en fonctionnement.

Dlzlogic
Membre Transcendant
Messages: 5273
Enregistré le: 14 Avr 2009, 12:39

par Dlzlogic » 12 Mar 2012, 18:19

Elerinna a écrit:La logique est celle de l'objet défini en tant que signifié (qui dépend des propriétés à transcrire par un signifiant, le programme). "Le terme de sémantique est utilisé en opposition à celui de syntaxe dans l'étude des langages de programmation en informatique, pour laquelle elle a été développée de manière formelle. Il y a entre la sémantique et la syntaxe le même rapport qu'entre le fond et la forme" (wikipedia).

Une confusion a lieu entre le formalisme d'encapsulation de librairies et les commandes en fonctionnement.
Merci pour ces précisions.

Retourner vers ϟ Informatique

Qui est en ligne

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

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite