Forum programmation
 
AccueilPortailFAQRechercherS'enregistrerMembresGroupesConnexion

Partagez | 
 

 solution pour exercice

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
4scinfo
Nouveau
Nouveau


Nombre de messages : 4
Date d'inscription : 05/02/2008

MessageSujet: solution pour exercice   Mar 5 Fév - 14:24

svp aider moi à résoudre cet exercice en pascal :

Exercice

Ecrire une fonction récursive qui détermine la valeur la plus proche d'un entier m donné dans un tableau d'entier donné.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
ammouna8208
Nouveau
Nouveau


Nombre de messages : 3
Date d'inscription : 02/02/2008

MessageSujet: Re: solution pour exercice   Dim 10 Fév - 20:39

Program ex5page91 ;
uses wincrt;
type
tab=array[1..100] of integer;
var
t:tab;
m,n,d:integer;
procedure saisie(var n,m:integer; var t:tab);
var
i:integer;
begin
repeat
write('donner la taille du tableau ');
readln(n);
until (n>0) and (n<=50);
for i:=1 to n do
begin
write('t[',i,']=');
readln(t[i]);
end;
write('Donner un entier:');
readln(m);
end;
function proche(t:tab;n,m,d:integer):integer;
begin
if (d=n) then proche:=t[d]
else
if abs(t[d]-m) else proche:=proche(t,n,m,d+1);
end;
BEGIN
saisie(n,m,t);
write(proche(t,n,m,1));
END.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
4scinfo
Nouveau
Nouveau


Nombre de messages : 4
Date d'inscription : 05/02/2008

MessageSujet: Re: solution pour exercice   Mer 20 Fév - 19:19

merci de votre aide mais la solution n'est pas exécutable !!!!!!
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Soltan
Nouveau
Nouveau


Nombre de messages : 13
Date d'inscription : 31/01/2008

MessageSujet: Re: solution pour exercice   Jeu 21 Fév - 23:30

voilà une autre solution un peux meilleur

Program ex5page91 ;
uses wincrt;
type
tab=array[1..100] of integer;
var
t:tab;
m,n,b, a:integer;
procedure saisie(var n,m:integer; var t:tab);
var
i:integer;
begin
repeat
write('donner la taille du tableau ');
readln(n);
until (n>0) and (n<=50);
for i:=1 to n do
begin
write('t[',i,']=');
readln(t[i]);
end;
write('Donner un entier m :');
readln(m);
end;
function proche(t:tab;n,m:integer):integer;
begin
if (n=0) then proche:=b
else
if (abs(t[n]-m) begin
a:=abs(t[n]-m);
b:=t[n];
proche:=proche(t,n-1,m);
end
else
proche :=proche(t,n-1,m);

end;
BEGIN
saisie(n,m,t);
a:=abs(t[1]-m);
b :=t[1];
write(proche(t,n,m));
END.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
amanitta
Nouveau
Nouveau


Nombre de messages : 7
Age : 26
Date d'inscription : 10/02/2008

MessageSujet: Re: solution pour exercice   Lun 5 Jan - 1:20

i didn't understand 'the function proche' ??!! Sad

may you 'make it clearer ?'
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://www.golivewire.com/forums/
methodix
utilisateur régulier
utilisateur régulier


Nombre de messages : 65
Age : 36
Date d'inscription : 06/10/2007

MessageSujet: Re: solution pour exercice   Lun 5 Jan - 15:02

la valeur la plus proche de X dans un tableau est la valeur qui une distance minimal de X, càd: d = |T[i] - X| est minimale. d vaut ZERO si X appartient au tableau.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur http://infomath.online-talk.net
ferhat
Nouveau
Nouveau


Nombre de messages : 1
Date d'inscription : 01/11/2008

MessageSujet: Re: solution pour exercice   Lun 18 Mai - 19:26

Citation :
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
dorsaf
Nouveau
Nouveau


Nombre de messages : 12
Date d'inscription : 29/11/2007

MessageSujet: Re: solution pour exercice   Sam 8 Aoû - 20:55

Voici une solution optimale chmayti
Program proche_tab;
uses wincrt;
type tab=array[1..25] of integer;
var t:tab;
n,m,diff,i:integer;
(*******************************************)
procedure saisir(var n,m:integer;var t:tab);
var i:integer;
begin
repeat
writeln('Donner un entier entre 5 et 25');
readln(n);
until n in [5..25];
randomize;
for i:=1 to n do
begin
T[i]:=1+random(20);
write(T[i],' ');
end;
writeln;
write('M = ');readln(m);

end;
(*******************************************)
function cherche(t:tab;n,m:integer):integer;
begin
if (n=1) then cherche:=diff
else if abs(t[n]-m)<diff
then begin
diff:=abs(t[n]-m);
cherche:=cherche(t,n-1,m);
end
else cherche:=cherche(t,n-1,m);
end;
(*********************PP************************)
BEGIN
saisir(n,m,t);
diff:=abs(t[1]-m);
diff:=cherche(t,n,m);
writeln('la liste des valeurs les plus proches de ',m,' est :');
for i:=1 to n do
if abs(m-t[i])=diff
then write(t[i],' ');
END.
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
ali1
Nouveau
Nouveau


Nombre de messages : 1
Date d'inscription : 23/05/2010

MessageSujet: Re: solution pour exercice   Dim 23 Mai - 19:16

aidez moi dans ùn clù le paiment est effectùer a la fin dù mois la caùtion mensùelle est determiner par par le nombre d'entrées effectùes pendant le mois et le prix est a 15 dhs
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: solution pour exercice   

Revenir en haut Aller en bas
 
solution pour exercice
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» cherche la meilleure solution pour mettre une longue video
» Aide code facebook, autre solution?
» Liste des tutoriels présents sur le forum Bibou
» La largeur de mon portail est trop grande comparativement à ma bannière
» [Résolu] virus messenger

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