Pascal vers c
cc
-
Char Snipeur Messages postés 9813 Date d'inscription Statut Contributeur Dernière intervention -
Char Snipeur Messages postés 9813 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
j'ai un programme en pascal et j'aimerais pouvoir le convertir en C.
Est-ce possible déjà ?
Si oui y'a t'il des logiciels permettant de faire ca ou alors il faut le faire manuellement ?
merci
j'ai un programme en pascal et j'aimerais pouvoir le convertir en C.
Est-ce possible déjà ?
Si oui y'a t'il des logiciels permettant de faire ca ou alors il faut le faire manuellement ?
merci
A voir également:
- Pascal vers c
- Turbo pascal - Télécharger - Édition & Programmation
- My pascal - Télécharger - Édition & Programmation
- Dev pascal - Télécharger - Édition & Programmation
- Windows 7 vers windows 10 - Accueil - Mise à jour
- Clavier qwerty vers azerty - Guide
8 réponses
C'est possible oui. Mais en ma connaissance, tu devras le faire manuellement, le Pascal et le C étant assez différents.
PROGRAM walid;
uses wincrt;
type pointeur=^ processus;
processus=record
nom:string;
priorite:integer;
dur_ex:integer;
date_arr:integer;
ta,tr:integer;
svt:pointer
end;
var
v:array[1..100]of string;
trouve:boolean;
f:text;
d,rep:string;
p,q,tete:pointeur;
compt,i,j,c,nb:integer;
(**************saisir********************************)
procedure saisir;
begin
tete:=nil;
i:=1;
writeln (' **********************"donner le nbre de processus" *********');
readln(nb);
for i:=1 to nb do
begin
writeln('***************************** "donner le nom du ',i,' processus" *******************');
new(p);
readln (p^.nom);
writeln('donner la priorité du processus');
readln (p^.priorite);
writeln('donner la d arrivéé du processus');
readln (p^.date_arr);
writeln('donner le temps d execution du processus');
readln (p^.dur_ex);
p^.svt:=tete;
tete:=p;
end;
writeln('=*************************** "otre saisie: oui / non :" ******************');
readln(rep);
if rep='oui' then
begin
repeat
writeln('***************************** "donner le nom du ',i,' processus" *******************');
readln (p^.nom);
writeln('donner la priorité du processus');
readln (p^.priorite);
writeln('donner la d arrivéé du processus');
readln (p^.date_arr);
writeln('donner le temps d execution du processus');
readln (p^.dur_ex);
p^.svt:=tete;
tete:=p;
writeln(' ************************"otre saisie: oui / non :" **************************' );
readln(rep);
until rep='non';
end;
end;
(*************************************procedure :tri de la liste*********************************)
procedure compter;
begin
p:=tete;
q:=p^.svt;
i:=1;
while q<>nil do
begin
i:=i+1;
compt:=i;
q:=q^.svt;
end;
end;
procedure tri;
begin
compter;
p:=tete;
q:=p^.svt;
j:=0;
trouve:=true;
for i:=1 to compt-1 do
begin
while (q<>nil) and (trouve=true) do
begin
if p^.priorite>q^.priorite then
begin
d:=p^.nom;
p^.nom:=q^.nom;
q^.nom:=d;
c:=p^.priorite;
p^.priorite:=q^.priorite;
q^.priorite:=c;
c:=p^.date_arr;
p^.date_arr:=q^.date_arr;
q^.date_arr:=c;
c:=p^.dur_ex;
p^.dur_ex:=q^.dur_ex;
q^.dur_ex:=c;
end
else if p^.priorite=q^.priorite then begin
if p^.date_arr>q^.date_arr then
begin
d:=p^.nom;
p^.nom:=q^.nom;
q^.nom:=d;
c:=p^.priorite;
p^.priorite:=q^.priorite;
q^.priorite:=c;
c:=p^.date_arr;
p^.date_arr:=q^.date_arr;
q^.date_arr:=c;
c:=p^.dur_ex;
p^.dur_ex:=q^.dur_ex;
q^.dur_ex:=c;
end;
end;
q:=q^.svt;
end;
begin
j:=j+1;
v[j]:=p^.nom;
p:=p^.svt;
q:=p^.svt;
if (q=nil) then begin
trouve:=false;
v[j+1]:=p^.nom;
end;
end;
end;
end;
(*******affichage du diagramme de gantt**********)
procedure gantt;
begin
for j:=1 to compt do
begin
write('| ',v[j],' |');
end;
writeln('|');
end;
(***********temp d attente**********)
procedure attente;
begin
p:=tete;
p^.ta:=0;
writeln('le temp d attente de ',p^.nom,' = ',p^.ta);
q:=p^.svt;
while (q<>nil) do
begin
q^.ta:=(p^.ta+p^.dur_ex);
writeln('le temp d attente de ',q^.nom,' = ',q^.ta);
p:=p^.svt;
q:=q^.svt;
end;
end;
(*************temps de restitution******)
procedure tps;
begin
p:=tete;
q:=p^.svt;
while (q<>nil) do
begin
p^.tr:=q^.ta;
writeln('le temps de restitution de ',p^.nom,' = ',p^.tr);
p:=p^.svt;
q:=q^.svt;
end;
p^.tr:=(p^.ta+p^.dur_ex);
writeln('le temps de restitution de ',p^.nom,'est ',p^.tr);
end;
(*********************principale*****************)
begin
saisir;
p:=tete;
while p<>nil do begin writeln(p^.nom);p:=p^.svt;end;
tri;
writeln('rrrr');
gantt;
attente;
tps;
end.
uses wincrt;
type pointeur=^ processus;
processus=record
nom:string;
priorite:integer;
dur_ex:integer;
date_arr:integer;
ta,tr:integer;
svt:pointer
end;
var
v:array[1..100]of string;
trouve:boolean;
f:text;
d,rep:string;
p,q,tete:pointeur;
compt,i,j,c,nb:integer;
(**************saisir********************************)
procedure saisir;
begin
tete:=nil;
i:=1;
writeln (' **********************"donner le nbre de processus" *********');
readln(nb);
for i:=1 to nb do
begin
writeln('***************************** "donner le nom du ',i,' processus" *******************');
new(p);
readln (p^.nom);
writeln('donner la priorité du processus');
readln (p^.priorite);
writeln('donner la d arrivéé du processus');
readln (p^.date_arr);
writeln('donner le temps d execution du processus');
readln (p^.dur_ex);
p^.svt:=tete;
tete:=p;
end;
writeln('=*************************** "otre saisie: oui / non :" ******************');
readln(rep);
if rep='oui' then
begin
repeat
writeln('***************************** "donner le nom du ',i,' processus" *******************');
readln (p^.nom);
writeln('donner la priorité du processus');
readln (p^.priorite);
writeln('donner la d arrivéé du processus');
readln (p^.date_arr);
writeln('donner le temps d execution du processus');
readln (p^.dur_ex);
p^.svt:=tete;
tete:=p;
writeln(' ************************"otre saisie: oui / non :" **************************' );
readln(rep);
until rep='non';
end;
end;
(*************************************procedure :tri de la liste*********************************)
procedure compter;
begin
p:=tete;
q:=p^.svt;
i:=1;
while q<>nil do
begin
i:=i+1;
compt:=i;
q:=q^.svt;
end;
end;
procedure tri;
begin
compter;
p:=tete;
q:=p^.svt;
j:=0;
trouve:=true;
for i:=1 to compt-1 do
begin
while (q<>nil) and (trouve=true) do
begin
if p^.priorite>q^.priorite then
begin
d:=p^.nom;
p^.nom:=q^.nom;
q^.nom:=d;
c:=p^.priorite;
p^.priorite:=q^.priorite;
q^.priorite:=c;
c:=p^.date_arr;
p^.date_arr:=q^.date_arr;
q^.date_arr:=c;
c:=p^.dur_ex;
p^.dur_ex:=q^.dur_ex;
q^.dur_ex:=c;
end
else if p^.priorite=q^.priorite then begin
if p^.date_arr>q^.date_arr then
begin
d:=p^.nom;
p^.nom:=q^.nom;
q^.nom:=d;
c:=p^.priorite;
p^.priorite:=q^.priorite;
q^.priorite:=c;
c:=p^.date_arr;
p^.date_arr:=q^.date_arr;
q^.date_arr:=c;
c:=p^.dur_ex;
p^.dur_ex:=q^.dur_ex;
q^.dur_ex:=c;
end;
end;
q:=q^.svt;
end;
begin
j:=j+1;
v[j]:=p^.nom;
p:=p^.svt;
q:=p^.svt;
if (q=nil) then begin
trouve:=false;
v[j+1]:=p^.nom;
end;
end;
end;
end;
(*******affichage du diagramme de gantt**********)
procedure gantt;
begin
for j:=1 to compt do
begin
write('| ',v[j],' |');
end;
writeln('|');
end;
(***********temp d attente**********)
procedure attente;
begin
p:=tete;
p^.ta:=0;
writeln('le temp d attente de ',p^.nom,' = ',p^.ta);
q:=p^.svt;
while (q<>nil) do
begin
q^.ta:=(p^.ta+p^.dur_ex);
writeln('le temp d attente de ',q^.nom,' = ',q^.ta);
p:=p^.svt;
q:=q^.svt;
end;
end;
(*************temps de restitution******)
procedure tps;
begin
p:=tete;
q:=p^.svt;
while (q<>nil) do
begin
p^.tr:=q^.ta;
writeln('le temps de restitution de ',p^.nom,' = ',p^.tr);
p:=p^.svt;
q:=q^.svt;
end;
p^.tr:=(p^.ta+p^.dur_ex);
writeln('le temps de restitution de ',p^.nom,'est ',p^.tr);
end;
(*********************principale*****************)
begin
saisir;
p:=tete;
while p<>nil do begin writeln(p^.nom);p:=p^.svt;end;
tri;
writeln('rrrr');
gantt;
attente;
tps;
end.
remarque : j ai corrigé le programme principale
(*********************principale*****************)
begin
saisir;
tri;
gantt;
attente;
tps;
end.
(*********************principale*****************)
begin
saisir;
tri;
gantt;
attente;
tps;
end.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
PROGRAM walid;
uses wincrt;
type pointeur=^ processus;
processus=record
nom:string;
priorite:integer;
dur_ex:integer;
date_arr:integer;
ta,tr:integer;
svt:pointer
end;
var
v:array[1..100]of string;
trouve:boolean;
f:text;
d,rep:string;
p,q,tete:pointeur;
compt,i,j,c,nb:integer;
(**************saisir********************************)
procedure saisir;
begin
tete:=nil;
i:=1;
writeln (' **********************"donner le nbre de processus" *********');
readln(nb);
for i:=1 to nb do
begin
writeln('***************************** "donner le nom du ',i,' processus" *******************');
new(p);
readln (p^.nom);
writeln('donner la priorité du processus');
readln (p^.priorite);
writeln('donner la d arrivéé du processus');
readln (p^.date_arr);
writeln('donner le temps d execution du processus');
readln (p^.dur_ex);
p^.svt:=tete;
tete:=p;
end;
writeln('=*************************** "otre saisie: oui / non :" ******************');
readln(rep);
if rep='oui' then
begin
repeat
writeln('***************************** "donner le nom du ',i,' processus" *******************');
readln (p^.nom);
writeln('donner la priorité du processus');
readln (p^.priorite);
writeln('donner la d arrivéé du processus');
readln (p^.date_arr);
writeln('donner le temps d execution du processus');
readln (p^.dur_ex);
p^.svt:=tete;
tete:=p;
writeln(' ************************"otre saisie: oui / non :" **************************' );
readln(rep);
until rep='non';
end;
end;
(*************************************procedure :tri de la liste*********************************)
procedure compter;
begin
p:=tete;
q:=p^.svt;
i:=1;
while q<>nil do
begin
i:=i+1;
compt:=i;
q:=q^.svt;
end;
end;
procedure tri;
begin
compter;
p:=tete;
q:=p^.svt;
j:=0;
trouve:=true;
for i:=1 to compt-1 do
begin
while (q<>nil) and (trouve=true) do
begin
if p^.priorite>q^.priorite then
begin
d:=p^.nom;
p^.nom:=q^.nom;
q^.nom:=d;
c:=p^.priorite;
p^.priorite:=q^.priorite;
q^.priorite:=c;
c:=p^.date_arr;
p^.date_arr:=q^.date_arr;
q^.date_arr:=c;
c:=p^.dur_ex;
p^.dur_ex:=q^.dur_ex;
q^.dur_ex:=c;
end
else if p^.priorite=q^.priorite then begin
if p^.date_arr>q^.date_arr then
begin
d:=p^.nom;
p^.nom:=q^.nom;
q^.nom:=d;
c:=p^.priorite;
p^.priorite:=q^.priorite;
q^.priorite:=c;
c:=p^.date_arr;
p^.date_arr:=q^.date_arr;
q^.date_arr:=c;
c:=p^.dur_ex;
p^.dur_ex:=q^.dur_ex;
q^.dur_ex:=c;
end;
end;
q:=q^.svt;
end;
begin
j:=j+1;
v[j]:=p^.nom;
p:=p^.svt;
q:=p^.svt;
if (q=nil) then begin
trouve:=false;
v[j+1]:=p^.nom;
end;
end;
end;
end;
(*******affichage du diagramme de gantt**********)
procedure gantt;
begin
for j:=1 to compt do
begin
write('| ',v[j],' |');
end;
writeln('|');
end;
(***********temp d attente**********)
procedure attente;
begin
p:=tete;
p^.ta:=0;
writeln('le temp d attente de ',p^.nom,' = ',p^.ta);
q:=p^.svt;
while (q<>nil) do
begin
q^.ta:=(p^.ta+p^.dur_ex);
writeln('le temp d attente de ',q^.nom,' = ',q^.ta);
p:=p^.svt;
q:=q^.svt;
end;
end;
(*************temps de restitution******)
procedure tps;
begin
p:=tete;
q:=p^.svt;
while (q<>nil) do
begin
p^.tr:=q^.ta;
writeln('le temps de restitution de ',p^.nom,' = ',p^.tr);
p:=p^.svt;
q:=q^.svt;
end;
p^.tr:=(p^.ta+p^.dur_ex);
writeln('le temps de restitution de ',p^.nom,'est ',p^.tr);
end;
(*********************principale*****************)
begin
saisir;
p:=tete;
while p<>nil do begin writeln(p^.nom);p:=p^.svt;end;
tri;
writeln('rrrr');
gantt;
attente;
tps;
end.
uses wincrt;
type pointeur=^ processus;
processus=record
nom:string;
priorite:integer;
dur_ex:integer;
date_arr:integer;
ta,tr:integer;
svt:pointer
end;
var
v:array[1..100]of string;
trouve:boolean;
f:text;
d,rep:string;
p,q,tete:pointeur;
compt,i,j,c,nb:integer;
(**************saisir********************************)
procedure saisir;
begin
tete:=nil;
i:=1;
writeln (' **********************"donner le nbre de processus" *********');
readln(nb);
for i:=1 to nb do
begin
writeln('***************************** "donner le nom du ',i,' processus" *******************');
new(p);
readln (p^.nom);
writeln('donner la priorité du processus');
readln (p^.priorite);
writeln('donner la d arrivéé du processus');
readln (p^.date_arr);
writeln('donner le temps d execution du processus');
readln (p^.dur_ex);
p^.svt:=tete;
tete:=p;
end;
writeln('=*************************** "otre saisie: oui / non :" ******************');
readln(rep);
if rep='oui' then
begin
repeat
writeln('***************************** "donner le nom du ',i,' processus" *******************');
readln (p^.nom);
writeln('donner la priorité du processus');
readln (p^.priorite);
writeln('donner la d arrivéé du processus');
readln (p^.date_arr);
writeln('donner le temps d execution du processus');
readln (p^.dur_ex);
p^.svt:=tete;
tete:=p;
writeln(' ************************"otre saisie: oui / non :" **************************' );
readln(rep);
until rep='non';
end;
end;
(*************************************procedure :tri de la liste*********************************)
procedure compter;
begin
p:=tete;
q:=p^.svt;
i:=1;
while q<>nil do
begin
i:=i+1;
compt:=i;
q:=q^.svt;
end;
end;
procedure tri;
begin
compter;
p:=tete;
q:=p^.svt;
j:=0;
trouve:=true;
for i:=1 to compt-1 do
begin
while (q<>nil) and (trouve=true) do
begin
if p^.priorite>q^.priorite then
begin
d:=p^.nom;
p^.nom:=q^.nom;
q^.nom:=d;
c:=p^.priorite;
p^.priorite:=q^.priorite;
q^.priorite:=c;
c:=p^.date_arr;
p^.date_arr:=q^.date_arr;
q^.date_arr:=c;
c:=p^.dur_ex;
p^.dur_ex:=q^.dur_ex;
q^.dur_ex:=c;
end
else if p^.priorite=q^.priorite then begin
if p^.date_arr>q^.date_arr then
begin
d:=p^.nom;
p^.nom:=q^.nom;
q^.nom:=d;
c:=p^.priorite;
p^.priorite:=q^.priorite;
q^.priorite:=c;
c:=p^.date_arr;
p^.date_arr:=q^.date_arr;
q^.date_arr:=c;
c:=p^.dur_ex;
p^.dur_ex:=q^.dur_ex;
q^.dur_ex:=c;
end;
end;
q:=q^.svt;
end;
begin
j:=j+1;
v[j]:=p^.nom;
p:=p^.svt;
q:=p^.svt;
if (q=nil) then begin
trouve:=false;
v[j+1]:=p^.nom;
end;
end;
end;
end;
(*******affichage du diagramme de gantt**********)
procedure gantt;
begin
for j:=1 to compt do
begin
write('| ',v[j],' |');
end;
writeln('|');
end;
(***********temp d attente**********)
procedure attente;
begin
p:=tete;
p^.ta:=0;
writeln('le temp d attente de ',p^.nom,' = ',p^.ta);
q:=p^.svt;
while (q<>nil) do
begin
q^.ta:=(p^.ta+p^.dur_ex);
writeln('le temp d attente de ',q^.nom,' = ',q^.ta);
p:=p^.svt;
q:=q^.svt;
end;
end;
(*************temps de restitution******)
procedure tps;
begin
p:=tete;
q:=p^.svt;
while (q<>nil) do
begin
p^.tr:=q^.ta;
writeln('le temps de restitution de ',p^.nom,' = ',p^.tr);
p:=p^.svt;
q:=q^.svt;
end;
p^.tr:=(p^.ta+p^.dur_ex);
writeln('le temps de restitution de ',p^.nom,'est ',p^.tr);
end;
(*********************principale*****************)
begin
saisir;
p:=tete;
while p<>nil do begin writeln(p^.nom);p:=p^.svt;end;
tri;
writeln('rrrr');
gantt;
attente;
tps;
end.
voila le finale
PROGRAM walid;
uses wincrt;
type pointeur=^ processus;
processus=record
nom:string;
priorite:integer;
dur_ex:integer;
date_arr:integer;
ta,tr:integer;
svt:pointer
end;
var
v:array[1..100]of string;
trouve:boolean;
f:text;
d,rep:string;
p,q,tete:pointeur;
compt,i,j,c,nb:integer;
(**************saisir********************************)
procedure saisir;
begin
tete:=nil;
i:=1;
writeln (' **********************"donner le nbre de processus" *********');
readln(nb);
for i:=1 to nb do
begin
writeln('***************************** "donner le nom du ',i,' processus" *******************');
new(p);
readln (p^.nom);
writeln('donner la priorité du processus');
readln (p^.priorite);
writeln('donner la d arrivéé du processus');
readln (p^.date_arr);
writeln('donner le temps d execution du processus');
readln (p^.dur_ex);
p^.svt:=tete;
tete:=p;
end;
writeln('=*************************** "otre saisie: oui / non :" ******************');
readln(rep);
if rep='oui' then
begin
repeat
writeln('***************************** "donner le nom du ',i,' processus" *******************');
readln (p^.nom);
writeln('donner la priorité du processus');
readln (p^.priorite);
writeln('donner la d arrivéé du processus');
readln (p^.date_arr);
writeln('donner le temps d execution du processus');
readln (p^.dur_ex);
p^.svt:=tete;
tete:=p;
writeln(' ************************"otre saisie: oui / non :" **************************' );
readln(rep);
until rep='non';
end;
end;
(*************************************procedure :tri de la liste*********************************)
procedure compter;
begin
p:=tete;
q:=p^.svt;
i:=1;
while q<>nil do
begin
i:=i+1;
compt:=i;
q:=q^.svt;
end;
end;
procedure tri;
begin
compter;
p:=tete;
q:=p^.svt;
j:=0;
trouve:=true;
for i:=1 to compt-1 do
begin
while (q<>nil) and (trouve=true) do
begin
if p^.priorite<q^.priorite then
begin
d:=p^.nom;
p^.nom:=q^.nom;
q^.nom:=d;
c:=p^.priorite;
p^.priorite:=q^.priorite;
q^.priorite:=c;
c:=p^.date_arr;
p^.date_arr:=q^.date_arr;
q^.date_arr:=c;
c:=p^.dur_ex;
p^.dur_ex:=q^.dur_ex;
q^.dur_ex:=c;
end
else if p^.priorite=q^.priorite then begin
if p^.date_arr>q^.date_arr then
begin
d:=p^.nom;
p^.nom:=q^.nom;
q^.nom:=d;
c:=p^.priorite;
p^.priorite:=q^.priorite;
q^.priorite:=c;
c:=p^.date_arr;
p^.date_arr:=q^.date_arr;
q^.date_arr:=c;
c:=p^.dur_ex;
p^.dur_ex:=q^.dur_ex;
q^.dur_ex:=c;
end;
end;
q:=q^.svt;
end;
begin
j:=j+1;
v[j]:=p^.nom;
p:=p^.svt;
q:=p^.svt;
if (q=nil) then begin
trouve:=false;
v[j+1]:=p^.nom;
end;
end;
end;
end;
(*******affichage du diagramme de gantt**********)
procedure gantt;
begin
writeln ('*** le diagramme de gantt ***');
for j:=1 to compt do
begin
write('| ',v[j],' |');
end;
writeln('|');
end;
(***********temp d attente**********)
procedure attente;
begin
p:=tete;
p^.ta:=0;
writeln('le temp d attente de ',p^.nom,' = ',p^.ta);
q:=p^.svt;
while (q<>nil) do
begin
q^.ta:=(p^.ta+p^.dur_ex);
writeln('le temp d attente de ',q^.nom,' = ',q^.ta);
p:=p^.svt;
q:=q^.svt;
end;
end;
(*************temps de restitution******)
procedure tps;
begin
p:=tete;
q:=p^.svt;
while (q<>nil) do
begin
p^.tr:=q^.ta;
writeln('le temps de restitution de ',p^.nom,' = ',p^.tr);
p:=p^.svt;
q:=q^.svt;
end;
p^.tr:=(p^.ta+p^.dur_ex);
writeln('le temps de restitution de ',p^.nom,'est ',p^.tr);
end;
(*********************principale*****************)
begin
saisir;
gantt;
attente;
tps;
end.
PROGRAM walid;
uses wincrt;
type pointeur=^ processus;
processus=record
nom:string;
priorite:integer;
dur_ex:integer;
date_arr:integer;
ta,tr:integer;
svt:pointer
end;
var
v:array[1..100]of string;
trouve:boolean;
f:text;
d,rep:string;
p,q,tete:pointeur;
compt,i,j,c,nb:integer;
(**************saisir********************************)
procedure saisir;
begin
tete:=nil;
i:=1;
writeln (' **********************"donner le nbre de processus" *********');
readln(nb);
for i:=1 to nb do
begin
writeln('***************************** "donner le nom du ',i,' processus" *******************');
new(p);
readln (p^.nom);
writeln('donner la priorité du processus');
readln (p^.priorite);
writeln('donner la d arrivéé du processus');
readln (p^.date_arr);
writeln('donner le temps d execution du processus');
readln (p^.dur_ex);
p^.svt:=tete;
tete:=p;
end;
writeln('=*************************** "otre saisie: oui / non :" ******************');
readln(rep);
if rep='oui' then
begin
repeat
writeln('***************************** "donner le nom du ',i,' processus" *******************');
readln (p^.nom);
writeln('donner la priorité du processus');
readln (p^.priorite);
writeln('donner la d arrivéé du processus');
readln (p^.date_arr);
writeln('donner le temps d execution du processus');
readln (p^.dur_ex);
p^.svt:=tete;
tete:=p;
writeln(' ************************"otre saisie: oui / non :" **************************' );
readln(rep);
until rep='non';
end;
end;
(*************************************procedure :tri de la liste*********************************)
procedure compter;
begin
p:=tete;
q:=p^.svt;
i:=1;
while q<>nil do
begin
i:=i+1;
compt:=i;
q:=q^.svt;
end;
end;
procedure tri;
begin
compter;
p:=tete;
q:=p^.svt;
j:=0;
trouve:=true;
for i:=1 to compt-1 do
begin
while (q<>nil) and (trouve=true) do
begin
if p^.priorite<q^.priorite then
begin
d:=p^.nom;
p^.nom:=q^.nom;
q^.nom:=d;
c:=p^.priorite;
p^.priorite:=q^.priorite;
q^.priorite:=c;
c:=p^.date_arr;
p^.date_arr:=q^.date_arr;
q^.date_arr:=c;
c:=p^.dur_ex;
p^.dur_ex:=q^.dur_ex;
q^.dur_ex:=c;
end
else if p^.priorite=q^.priorite then begin
if p^.date_arr>q^.date_arr then
begin
d:=p^.nom;
p^.nom:=q^.nom;
q^.nom:=d;
c:=p^.priorite;
p^.priorite:=q^.priorite;
q^.priorite:=c;
c:=p^.date_arr;
p^.date_arr:=q^.date_arr;
q^.date_arr:=c;
c:=p^.dur_ex;
p^.dur_ex:=q^.dur_ex;
q^.dur_ex:=c;
end;
end;
q:=q^.svt;
end;
begin
j:=j+1;
v[j]:=p^.nom;
p:=p^.svt;
q:=p^.svt;
if (q=nil) then begin
trouve:=false;
v[j+1]:=p^.nom;
end;
end;
end;
end;
(*******affichage du diagramme de gantt**********)
procedure gantt;
begin
writeln ('*** le diagramme de gantt ***');
for j:=1 to compt do
begin
write('| ',v[j],' |');
end;
writeln('|');
end;
(***********temp d attente**********)
procedure attente;
begin
p:=tete;
p^.ta:=0;
writeln('le temp d attente de ',p^.nom,' = ',p^.ta);
q:=p^.svt;
while (q<>nil) do
begin
q^.ta:=(p^.ta+p^.dur_ex);
writeln('le temp d attente de ',q^.nom,' = ',q^.ta);
p:=p^.svt;
q:=q^.svt;
end;
end;
(*************temps de restitution******)
procedure tps;
begin
p:=tete;
q:=p^.svt;
while (q<>nil) do
begin
p^.tr:=q^.ta;
writeln('le temps de restitution de ',p^.nom,' = ',p^.tr);
p:=p^.svt;
q:=q^.svt;
end;
p^.tr:=(p^.ta+p^.dur_ex);
writeln('le temps de restitution de ',p^.nom,'est ',p^.tr);
end;
(*********************principale*****************)
begin
saisir;
gantt;
attente;
tps;
end.
Avant, j'étais un champion, mais ça fait au moins 7 anc ke j'ai pas ouvert le moindre code C ou Pascal. Je ne programme d'ailleurs même plus. Je ne serai surement pas plus efficace que toi actu.
Je te suggère d'essayer toi même et si tu as des blocages particuliers, tu les poses pr kon cherche la solution.