Inscription / Connexion Nouveau Sujet
Niveau logiciels
Partager :

programme avec turbopascal

Posté par
LauHB
16-09-09 à 19:57

Bonsoir!

Voilà, je viens de commencer le cours sur les programmes, les histoires avec Pascal et tout ça et je dois faire l'exo suivant: "écrire un programme qui demande à l'utilisateur un entier naturel n puis qui calcule et affiche la valeur de n! + (2n)! "

Déjà, impossible d'installer turbopascal sur mon ordi!

Sinon il me semble que le programme avec n! est le suivant:

program fact;
var
i,n: integer;
f: real;
   begin
   writeln (' donner un entier naturel');
   read (n);
   f:=1;
   for i:=1 to n do f:= f*i;
   writeln (f);
   end


Mais je ne vois vrmt pas comment introduire le "2" dans (2n)! ... Auriez vous qques info bien utiles??

Merci d'avance!

Bonne soirée! =D

édit Océane : forum modifié

Posté par
carpediem
re : programme avec turbopascal 16-09-09 à 20:08

salut

connais-tu les fonctions récursives ?

crée la fonction fact(n) puis demande lui qu'il calcule et écrice fact(n) + fact(2n)

Posté par
LauHB
re : programme avec turbopascal 16-09-09 à 20:23

Ooooh la!

Je ne sais ABSOLUMENT PAS ce que c'est! ^^
En fait, on a fait que 2h dessus et on n'a vu que les bases de chez bases donc même pas comment faire des fonctions de ce type! :S

Mais sinon rien de très grave. J'ai reçu le premier exo donc... C'était éventuellement pour savoir s'il existe une methode à proprement parler pour faire ce genre d'exo...

Quoi qu'il en soit merci beaucoup!

Bonne soirée!

Posté par
carpediem
re : programme avec turbopascal 16-09-09 à 22:46

de rien, merci et à toi aussi

Posté par
patrice rabiller
re : programme avec turbopascal 17-09-09 à 04:41

Bonjour,

C'est vrai qu'on peut utiliser la récursivité pour calculer une factorielle (c'est même souvent le premier exemple que les professeurs donnent), mais, à mon avis, la récursivité n'est absolument pas adaptée dans ce cas particulier pour les raisons suivantes :

-> on sait dès le départ combien de fois l'itération doit être faite,
-> la mémoire est très sollicitée lors d'un calcul récursif (il faut gérer la pile d'appels avec les variables qui vont avec)

En gros, je ferais comme cela :

Program Calcul;

Var n : integer;
    x : real;

Function Factorielle(p:integer):real;
var k : integer;
    r : real;
begin
   r:=1;
   for k:=1 to p do r:=r*k;
   result:=r;
end;

Begin  //début du programme principal
   Writeln('Donner un entier naturel ';
   Readln(n)
   x:=Factorielle(n)+Factorielle(2*n);
   Writeln('La réponse est ');
   Writeln(x);
end.

Maintenant, pour installer TurboPascal, ça ne doit pas être facile. Il faut un ordinateur qui tourne sous DOS et ça fait bien 15 ans que TurboPascal a été remplacé par TurboPascal pour Windows puis Delphi Je suis surpris qu'on en soit resté encore à TP (tiens, ce sont les mêmes initiales que Tom Pascal : coïncidence ? )

Pour débuter en programmation, il me semble que des outils plus récents sont plus adaptés que TP ... mais je suppose que tu n'as pas le choix !



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !