Forum programmation
 
AccueilPortailFAQRechercherS'enregistrerMembresGroupesConnexion

Partagez | 
 

 Exercice (PPCM)

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
fighters
Nouveau
Nouveau
avatar

Nombre de messages : 24
Age : 29
Date d'inscription : 27/03/2007

MessageSujet: Exercice (PPCM)   Jeu 10 Mai - 20:56

Voici un exercice du bac blanc 2007

Ecrire un programme PASCAL qui permet de saisir un tableau T de n entiers strictement superieurs a 1 et de calculer puis afficher leur PPCM.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
mtcs
Administrateur
Administrateur
avatar

Nombre de messages : 1605
Date d'inscription : 21/11/2006

MessageSujet: Re: Exercice (PPCM)   Jeu 10 Mai - 22:30

salut mon ami, voilà mon essai

Code:
program ppcm_bac;
uses wincrt;
type tableau=array[1..100] of word;
var  n:byte;
    t:tableau;
    x:word;

procedure remplire (var t:tableau; var n:byte);
var i:byte;
begin
  repeat
    writeln ('saisir la dimension de tableau ');
    readln (n);
  until (n>1);

  For i:= 1 to n do
    begin
      write ('T[',i,'] = ');
      readln (t[i]);
    end;
end;

{merci manianis}
function ppcm(a, b : word) : word;
var ka, kb : word;
begin
    ka := a; kb := b;
    while (ka <> kb) do begin
      if (ka > kb) then kb:=kb+b
      else ka:=ka+a;
    end;
    ppcm := ka; (* ou ppcm := kb; *)
end;

function fin (t:tableau; n:byte):word;
var i:byte; ppcm_tab:word;
begin
  ppcm_tab:= ppcm(t[1],t[2]);
  For i:= 3 to n-1 do
    if ppcm(t[i],t[i+1])> ppcm_tab then
      ppcm_tab := ppcm(t[i],t[i+1]);

  fin:= ppcm_tab;
end;

begin
  remplire(t,n);
  x:= fin(t,n);
  writeln ('la PPCM de tableau est ',x);
  writeln ('merci manianis pour la fonction ppcm');
  writeln ('merci fighters');
end.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
mtcs
Administrateur
Administrateur
avatar

Nombre de messages : 1605
Date d'inscription : 21/11/2006

MessageSujet: Re: Exercice (PPCM)   Jeu 10 Mai - 22:33

bien sûr s'il y a des problèmes je suis tjrs là

j'ai cherché la solution la plus optimal Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
fighters
Nouveau
Nouveau
avatar

Nombre de messages : 24
Age : 29
Date d'inscription : 27/03/2007

MessageSujet: Re: Exercice (PPCM)   Jeu 10 Mai - 23:03

merci mon ami
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
mtcs
Administrateur
Administrateur
avatar

Nombre de messages : 1605
Date d'inscription : 21/11/2006

MessageSujet: Re: Exercice (PPCM)   Jeu 10 Mai - 23:15

fighters a écrit:
merci mon ami


de rien mon ami, mais est ce qu'il y a d'autres solutions, j'attend vos solution mes amis.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
fighters
Nouveau
Nouveau
avatar

Nombre de messages : 24
Age : 29
Date d'inscription : 27/03/2007

MessageSujet: Re: Exercice (PPCM)   Jeu 10 Mai - 23:27

merci pour le code mais je pense qu'il y a quelques fautes
par exemple lorsque
n=4;
t1=2
t2=3
t3=5
t4=7
le ppcm doit etre 210 ( pas 35 )
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
fighters
Nouveau
Nouveau
avatar

Nombre de messages : 24
Age : 29
Date d'inscription : 27/03/2007

MessageSujet: Re: Exercice (PPCM)   Jeu 10 Mai - 23:33

il ya d'autre methode je pense mais j'ai pas pu réaliser
par exemple

60=2*2*3*5
35=5*7
22=2*11

ppcm de ces 3 nombre c'est = 2^2 * 3 * 5 * 7 * 11
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Chaker
Administrateur
Administrateur
avatar

Nombre de messages : 731
Age : 27
Date d'inscription : 17/01/2007

MessageSujet: Re: Exercice (PPCM)   Ven 11 Mai - 14:06

Salut à vous tous!
voilà le probléme :

Avant :
Code:
ppcm_tab := ppcm(t[i],t[i+1]);
Aprés :
Code:
ppcm_tab := ppcm(ppcm_tab,T[i]);


et ppcm_tab vous l'initialisez à ppcm(T[1],[2]);
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
fighters
Nouveau
Nouveau
avatar

Nombre de messages : 24
Age : 29
Date d'inscription : 27/03/2007

MessageSujet: Re: Exercice (PPCM)   Ven 11 Mai - 14:45

Merci mes amis, voici le code final
- j'ai utilisé une autre methode pour la procedure ppcm


Code:
program ppcm_bac;
uses wincrt;
type tableau=array[1..100] of word;
var  n:byte;
    t:tableau;
    x:word;
procedure remplire (var t:tableau; var n:byte);
var i:byte;
begin
  repeat
    writeln ('saisir la dimension de tableau ');
    readln (n);
  until (n>1);
  For i:= 1 to n do
    begin
      write ('T[',i,'] = ');
      readln (t[i]);
    end;
end;
function ppcm (a,b:word):word;
var i:word;
begin
i:=1; while (a*i mod b <> 0) do inc(i);
ppcm:=a*i;
end;
function fin (t:tableau; n:byte):word;
var i:byte; ppcm_tab:word;
begin
  ppcm_tab:= ppcm(t[1],t[2]);
  For i:= 3 to n do
    if ppcm(ppcm_tab,T[i])> ppcm_tab then
      ppcm_tab := ppcm(ppcm_tab,T[i]);
          fin:= ppcm_tab;
end;
begin
  repeat
  remplire(t,n);
  x:= fin(t,n);
  writeln ('la PPCM de tableau est ',x);
  readkey;clrscr;
  until keypressed;
end.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
manianis
V.I.P
V.I.P
avatar

Nombre de messages : 471
Age : 107
Date d'inscription : 19/03/2007

MessageSujet: Re: Exercice (PPCM)   Ven 11 Mai - 15:56

En effet oui mtcs tu aurait du écrire la fonction fin de la façon suivante :
Code:
function fin (t:tableau; n:byte):word;
var i:byte; ppcm_tab:word;
begin
    ppcm_tab:= ppcm(t[1],t[2]);
    For i:= 3 to n-1 do begin
        ppcm_tab := ppcm(ppcm_tab, t[i]);
    end;
    fin:= ppcm_tab;
end;
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://manianis.sitesled.com/
manianis
V.I.P
V.I.P
avatar

Nombre de messages : 471
Age : 107
Date d'inscription : 19/03/2007

MessageSujet: Re: Exercice (PPCM)   Ven 11 Mai - 16:04

Je crois que le test
Code:
if ppcm(ppcm_tab,T[i])> ppcm_tab then
      ppcm_tab := ppcm(ppcm_tab,T[i]);
est inutile pour une simple raison qu'il s'agit d'un multiple commun donc on est sur qu'il est >=a ou >=b ou même >= ppcm_tab.
aussi au cas ou cette condition est fausse la fonction ppcm est appelée quand même ce qui ne représente aucun avantage de point de vue performance.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://manianis.sitesled.com/
mtcs
Administrateur
Administrateur
avatar

Nombre de messages : 1605
Date d'inscription : 21/11/2006

MessageSujet: Re: Exercice (PPCM)   Sam 12 Mai - 9:56

vous avez raison mes amis Embarassed , merci pour les corrections
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
manianis
V.I.P
V.I.P
avatar

Nombre de messages : 471
Age : 107
Date d'inscription : 19/03/2007

MessageSujet: Re: Exercice (PPCM)   Sam 12 Mai - 14:34

Il n'y a pas de quoi Embarassed . Si tu voyais le premier programme que j'avais fait pour trier un tableau en GWBasic depuis plus de 10 ans tu aurais Laughing
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://manianis.sitesled.com/
makram
modérateur
modérateur
avatar

Nombre de messages : 549
Age : 28
Date d'inscription : 29/12/2006

MessageSujet: Re: Exercice (PPCM)   Sam 12 Mai - 17:32

pouvez vous nous expliquez gwbasic
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
mtcs
Administrateur
Administrateur
avatar

Nombre de messages : 1605
Date d'inscription : 21/11/2006

MessageSujet: Re: Exercice (PPCM)   Sam 12 Mai - 21:47

GWBasic est un langage interprété son éditeur est de la même veine que celui du DOS
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
mtcs
Administrateur
Administrateur
avatar

Nombre de messages : 1605
Date d'inscription : 21/11/2006

MessageSujet: Re: Exercice (PPCM)   Sam 12 Mai - 21:48

Pour tester GWbasic visiter ce lien
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
manianis
V.I.P
V.I.P
avatar

Nombre de messages : 471
Age : 107
Date d'inscription : 19/03/2007

MessageSujet: Re: Exercice (PPCM)   Dim 13 Mai - 11:39

Ce n'est pas suffisant il faudra donner un petit programme pour expliquer.
Exemple :
Code:
10 cls
20 Input "Donner a", a
30 Input "Donner b", b
40 Let c = a + b
50 Print "somme = ", c
J'ai oublié de vous dire d'appuyer sur la touche [F2] pour exécuter ce programme.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://manianis.sitesled.com/
manianis
V.I.P
V.I.P
avatar

Nombre de messages : 471
Age : 107
Date d'inscription : 19/03/2007

MessageSujet: Re: Exercice (PPCM)   Dim 13 Mai - 11:47

Si je trouves un bout de temps je vous donnerai un programme graphique en GWBasic.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://manianis.sitesled.com/
mtcs
Administrateur
Administrateur
avatar

Nombre de messages : 1605
Date d'inscription : 21/11/2006

MessageSujet: Re: Exercice (PPCM)   Dim 13 Mai - 14:55

merci bcp manianis, inchallah
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
makram
modérateur
modérateur
avatar

Nombre de messages : 549
Age : 28
Date d'inscription : 29/12/2006

MessageSujet: Re: Exercice (PPCM)   Dim 13 Mai - 15:42

merci anis et mohamed pour l'explication.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
manianis
V.I.P
V.I.P
avatar

Nombre de messages : 471
Age : 107
Date d'inscription : 19/03/2007

MessageSujet: Re: Exercice (PPCM)   Lun 14 Mai - 0:32

Promis... Je devrais tenir ma parole.
Code:
10 CLS:SCREEN 9:KEY OFF
15 GOSUB 1000
20 TM$= TIME$ : H1=VAL(MID$(TM$,1,2)):M1=VAL(MID$(TM$,4,2)):S1=VAL(MID$(TM$,7,2))
30 RH=50:RM=100:RS=100
40 IF (H1<>ANCH) OR (M1<>ANCM) OR (S1<>ANCS) THEN GOTO 50 ELSE GOTO 20
50 H=ANCH:M=ANCM:S=ANCS:CH=0:CM=0:CS=0:GOSUB 500
60 H=H1:M=M1:S=S1:CH=14:CM=12:CS=10:GOSUB 500
70 ANCH=H1:ANCM=M1:ANCS=S1
80 GOTO 20
500 REM Dessiner les aiguilles
510 X1=320+RH*COS(3.14/30*((H-3)*5+M/12))
520 Y1=175+RH*SIN(3.14/30*((H-3)*5+M/12))
530 LINE (320,175)-(X1,Y1),CH
540 X1=320+RM*COS(3.14/30*(M-15))
550 Y1=175+RM*SIN(3.14/30*(M-15))
560 LINE (320,175)-(X1,Y1),CM
570 X1=320+RS*COS(3.14/30*(S-15))
580 Y1=175+RS*SIN(3.14/30*(S-15))
590 LINE (320,175)-(X1,Y1),CS
600 RETURN
990 REM dessiner les cadrans
1000 FOR I=1 TO 60
1005 RI=130:IF (I MOD 5)=0 THEN RI=120
1010 X1= 320+140*COS(3.14/30*I):X2=320+RI*COS(3.14/30*I)
1020 Y1= 175+140*SIN(3.14/30*I):Y2=175+RI*SIN(3.14/30*I)
1030 LINE(X1,Y1)-(X2,Y2),12
1040 NEXT
1050 RETURN
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://manianis.sitesled.com/
mtcs
Administrateur
Administrateur
avatar

Nombre de messages : 1605
Date d'inscription : 21/11/2006

MessageSujet: Re: Exercice (PPCM)   Lun 14 Mai - 10:12

zayed m3ak ya bacha Wink
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
makram
modérateur
modérateur
avatar

Nombre de messages : 549
Age : 28
Date d'inscription : 29/12/2006

MessageSujet: Re: Exercice (PPCM)   Lun 14 Mai - 13:28

merci
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
manianis
V.I.P
V.I.P
avatar

Nombre de messages : 471
Age : 107
Date d'inscription : 19/03/2007

MessageSujet: Re: Exercice (PPCM)   Lun 14 Mai - 19:48

makram a écrit:
merci
Vous avez de la chance d'étudier Turbo Pascal car il simplifie bien la tache du programmeur.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://manianis.sitesled.com/
mtcs
Administrateur
Administrateur
avatar

Nombre de messages : 1605
Date d'inscription : 21/11/2006

MessageSujet: Re: Exercice (PPCM)   Lun 14 Mai - 20:16

manianis a écrit:
makram a écrit:
merci

Vous avez de la chance d'étudier Turbo Pascal car il simplifie bien la tache du programmeur.

oui je vois ça
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: Exercice (PPCM)   

Revenir en haut Aller en bas
 
Exercice (PPCM)
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Petit exercice autout du GRID
» Exercice d'arpèges et d'accords sur Coldplay
» Exercice MG accordéon accompagnement Boléro
» Exercice de mémoire?
» Kate Moss - Photofiltre débutant

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum programmation :: Programmation :: Delphi & Pascal :: Pascal :: Exercices-
Sauter vers: