Pascal vers c
Fermé
cc
-
26 mai 2009 à 15:28
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 28 mai 2009 à 00:15
Char Snipeur Messages postés 9813 Date d'inscription vendredi 23 avril 2004 Statut Contributeur Dernière intervention 3 octobre 2023 - 28 mai 2009 à 00:15
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 download - Télécharger - Édition & Programmation
- My pascal - Télécharger - Édition & Programmation
- Windows 7 vers windows 10 - Accueil - Mise à jour
- Clavier qwerty vers azerty - Guide
- Dev-pascal - Télécharger - Édition & Programmation
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.
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
26 mai 2009 à 16:23
26 mai 2009 à 16:23
Je peut t'aider, mais pas envie de tout faire à ta place.
Mets là ou tu bloques.
Mets là ou tu bloques.
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.
Réponse de théoricien : il suffit de coder en c une machine de Turing universelle et lui faire exécuter un compilateur Pascal :D
(pardon pour ce post inutile)
(pardon pour ce post inutile)
Char Snipeur
Messages postés
9813
Date d'inscription
vendredi 23 avril 2004
Statut
Contributeur
Dernière intervention
3 octobre 2023
1 298
28 mai 2009 à 00:15
28 mai 2009 à 00:15
Heu... Tu as fait quoi au juste ? je voi mal la différence entre tes truc, et en plus c'est vachement long !
26 mai 2009 à 15:58
26 mai 2009 à 16:17
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.