Les Allergies
Alimentaires
Posez votre question Signaler

[Turbo Pascal] Solution d'un exercice

butterfly66 31Messages postés 12 novembre 2006Date d'inscription - Dernière réponse le 10 mai 2010 à 18:20
Bonjour,
Je cherche la solution du preoblème suivant en Pascal:
1- Ecrire une unité qui contient:
a- déclaration d'un tableau à n éléments (1<n<50) entiers.
b- procédure qui lit le tableau.
c- fonction qui retourne l'indice du tableau, du plus grand élément à partir d'une position donée (de k) à l aposition n (1<k<n).
d- procédure qui affiche les éléments du tableau.
2- Ecrire un programme en Turbo Pascal qui fait apple aux procédures et fonctions de l'unité pour ordonner un tableau au sens décroissant.
Merci d'avance, j'ai galéré avec cet exercice..
Lire la suite 

[Turbo Pascal] Solution d'un exercice »

10 réponses
Réponse
+1
moins plus
ecrire une analyse et en deduir un algorithme intitulé neg qui transfere les elements positifs et les elements negatif d un tableau t dans deux tableaux tp et tn
robin - 27 juil. 2008 à 12:00
program neg;
uses wincrt;
type
tab=array[1..60]of integer;
var
n,i,j,k:integer;
t,tp,tn:tab;

procedure saisie_n(var n:integer);
begin
repeat
writeln('donner entier');
readln(n);
until (n>0)and (n<60);
end;

procedure remplir_t(n:integer;var t:tab);
var i:integer;
begin
for i:=1 to n do
begin
writeln('donner entier');
readln(t[i]);
end;
end;
procedure classement(n:integer;t:tab;var tp ,tn:tab);
var i,j,k:integer;
begin
for i:=1 to n do
begin
if t[i]<0 then
begin
for j:=1 to n do
tn[j]:=t[i];
end;
if t[i]>=0 then
begin
for k:=1 to n do
tp[k]:=t[i];
end;
end;
end;
procedure affichage(n:integer;t,tn,tp:tab);
begin
for i:=1 to n do
writeln('le tableau a analyser :'t[i]);
for j:=1 to n do
writeln('le tableau positif est :',tp[j]);
for k:=1 to n do
writeln('le tableau negatif est:',tn[k]);
end;
begin
saisie_n(n);
remplir_t(n,t);
classement(n,t,tp,tn);
affichage(n,t,tp,tn);
end.


****************************************************************************************
essaye le c mieux que rien chui pas sur et je ne l'ai pas encore compilé.bonne chance!
****************************************************************************************
KX- 27 juil. 2008 à 13:18
Ta procedure classement ne donne pas le résultat voulu...
En fait dans ton algoritme tn=t si t[n]<0 et tp=t si t[n]>=0...
De plus le type de tab est inadapté...
const Nmax=60;

type Tab=record
         a:array[1..Nmax] of integer;
         n:integer;
         end;

procedure Neg(var t,tn,tp:Tab);
var i:integer;
begin
tn.n:=0;
tp.n:=0;
for i:=1 to t.n do
    if t.a[i]<0 then begin
                     tn.a[i]:=t.a[i];
                     inc(tn.n);
                     end
                else begin
                     tp.a[i]:=t.a[i];
                     inc(tp.n);
                     end
end;
Pour le reste il est à noter que remplir_t et affichage sont également fausses
procedure remplir_t(n:integer;var t:tab); // avec TON type tab
var i:integer;
begin
     for i:=1 to n do
         saisie_n(t[i]);
end;

procedure affichage(n:integer;t,tn,tp:tab); // avec TON type tab
var i:integer;
begin
write('le tableau a analyser : ');
for i:=1 to n do
    write(t[i],' ');
writeln('le tableau positif  : ');
for i:=1 to n do
    write(tp[i],' ');
writeln('le tableau negatif  : ');
for i:=1 to n do
    write(tn[i],' ');
end; 
--
La confiance n'exclut pas le contrôle 
Ajouter un commentaire
Réponse
+1
moins plus
salut je suis etudiante a el jadida je veux la solution de l'exercice suivant
procedure qui inverse le tableau entre deux positions données
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,
vous etes etudiant(e) a la fac d'el jadida ?????
asma alger - 10 mai 2010 à 18:13
la solution d'un programme qui cherche les point selle d''une matrice
Ajouter un commentaire
Réponse
+0
moins plus
oui, je suis étudiant à l'UCD
Ajouter un commentaire
Réponse
+0
moins plus
Bonjour,
Je cherche la solution du preoblème suivant en Pascal
mounk - 14 mai 2008 à 02:37
slt amine...
si c'est le probleme en pascal concernant l'unité sur le tableau, voici une unité qui pourra t'aider....
pour la taille du tableau, je me suis arreté a 10, a toi d'augmenter juska 50 ou plus si tu veux.


unit U_Tableau;

Interface


type indice = cardinal;

type tableau = array [ 1 .. 10 ] of cardinal ;


// Lecture du tableau
procedure lireTableau ( out t : tableau ) ;

// Affichage des elements du tableau
procedure afficherTableau ( const t : tableau ) ;


// Retourne l'indice du plus grand element du tableau
// à partir de l'indice k jusqu'a taille du tableau
function indice_du_max ( t : tableau; k : indice ) : indice;



Implementation


// Lecture du tableau
procedure lireTableau ( out t : tableau ) ;
var i : cardinal;
begin
for i := low(t) to high(t) do begin
readln(t[i]);
end;
end;


// Affichage des elements du tableau
procedure afficherTableau ( const t : tableau ) ;
var i : cardinal ;
begin
for i := low(t) to high(t) do begin
write(t[i],' ') ;
end;
writeln;
end;


// Retourne l'indice du plus grand element du tableau
// à partir de l'indice k jusqu'a taille du tableau
function indice_du_max ( t : tableau; k : indice ) : indice;
var ind,i : cardinal;
begin
ind := k;
for i := succ(k) to high(t) do begin
if t[i] > t[ind] then begin
ind := i;
end;
end;
indice_du_max := ind;
end;



End.



et si tu veux tester l'unité, utilise ce bout de code.....
il fait aussi le rangement dans l'ordre decroissant.


program teste_U_Tableau;

uses crt,U_Tableau;


// Procedure qui echange les valeurs de 2 elements
procedure echanger ( var x,y : cardinal );
var z : cardinal;
begin
z := x;
x := y;
y := z;
end;



var tab : tableau;
var i,k,a,b : cardinal;

begin
clrscr;


lireTableau(tab);
writeln('******************');
afficherTableau(tab);
writeln('*************************************');
// Je met juste a partir de l'indice 7 du tableau pour tester
// tu peux changer l'indice, à condition de ne pas depasser ton indice
// max de ton tableau.
writeln('Indice du Max du Tableau = ',indice_du_max(tab,7));


a := low(tab);
b := high(tab);
for k := a to (b-1) do
begin
i := indice_du_max(tab,k);
echanger(tab[k],tab[i]);
end;

writeln('*************************************');
afficherTableau(tab);


end.


en esperant ke ca puisse t'aider....
bon courage.
Ajouter un commentaire
Réponse
+0
moins plus
la solution d'un programme qui cherche les points selles d'une matrice
Ajouter un commentaire
Ce document intitulé « [Turbo Pascal] Solution d'un exercice » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.
Dossier à la une
Passage au tout numérique : quel coût pour les particuliers ?