Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1504 connectés 

  FORUM HardWare.fr
  Emploi & Etudes
  Aide aux devoirs

  Licence 1 informatique >> Preuve de programme PASCAL

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Licence 1 informatique >> Preuve de programme PASCAL

n°731271
sadgunner
Posté le 16-06-2006 à 23:46:01  profilanswer
 

Bonjour, je suis étudiant en première année de licence informatique, et j'ai un problème afin de résoudre un exercice. Voici mon problème ..
 
Le but est d'établir la preuve d'un programme pascal, un algorithme de calcul de la factorielle d'un naturel.
 
l'assertion P est :
 
k <= n
n et la valeur de k sont de meme parité
q = (k-1)k
f = k!

 
la condition C est :
 
k < n
 
Et I l'instruction :
 
begin
q := q + 4*k +2
f := f*q
k := k+2
end

 
La question est : "Quelles valeurs donner aux variables k,q et f avant l'execution de la boucle pour qu'à la terminaison de celle-ci la valeur de la variable f soit n!"
 
J'ai essayé de partir de l'état final ( f = n!, d'ou k =n .. ), mais je n'arrive pas à avancer ..
 
Merci d'avance de votre aide.

mood
Publicité
Posté le 16-06-2006 à 23:46:01  profilanswer
 

n°731305
ryujakk
Posté le 16-06-2006 à 23:57:58  profilanswer
 

Si tu prend k = n mod 2, f = 1, et q = 0, ca marche.
Fait le "à la main" pour des petites valeurs de n pour comprendre.

n°731338
sadgunner
Posté le 17-06-2006 à 00:11:01  profilanswer
 

Je comprends pour k = n mod 2, mais pas pour f = 1 et q =0 .. quant aux tests pour des petites valeurs de n, je ne vois même pas ou je dois remplacer sa valeur .. :(

n°732793
ryujakk
Posté le 18-06-2006 à 00:43:15  profilanswer
 

exemple pour n = 0:0! = 1
 
k = n mod 2 = 0;
f = 1;
q = 0;
la condition k < n est fausse, donc la boucle n'est pas executée.
résultat: f = 1 = 1!
 
exemple pour n = 3:3! = 6
 
k = n mod 2 = 1;
f = 1;
q = 0;
la condition k < n est vraie, donc boucle est executée:
q := q + 4*k +2 = 6;
f := f * q = 6;
k := k+2 = 3;
 
la condition k < n est fausse, donc boucle s'arrête.
résultat: f = 6 = 3!
 
Et ainsi de suite...
Pour la preuve, une preuve par récurrence semble bien adaptée.

n°733693
sadgunner
Posté le 18-06-2006 à 18:09:29  profilanswer
 

Merci beaucoup ryujakk pour ces réponses. Je comprend à présent. Au plaisir :)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Emploi & Etudes
  Aide aux devoirs

  Licence 1 informatique >> Preuve de programme PASCAL

 

Sujets relatifs
esa lille licence master gestioncomment former à l'informatique à domicile
robotique = etude d'automatisme , informatique ...?SOS oral licence pro banque assurance
test AFPA développeur informatiqueSpecialité master 2 informatique
test d'admission licence professionnellePeut on rentrer en licence technologique sans bts
licence de maths à distance à UPMC (télé sciences 6)VILLE AVRAY- LICENCE PRO HYPERFREQUENCE
Plus de sujets relatifs à : Licence 1 informatique >> Preuve de programme PASCAL


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR