Traduction

Signaler
Messages postés
5
Date d'inscription
mercredi 11 novembre 2009
Statut
Membre
Dernière intervention
1 décembre 2009
-
Messages postés
3839
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
15 avril 2021
-
salut mes amis
j'ais un code écrit en pascal je veut le traduire en c ou c++
si il y a une solution voulez vous m'aider a résoudre et merci
voici le code
uses wincrt;
type tab=array[1..27] of string;
var t:tab;
ch4,ch1,ch2,ch3:string[3];
j,i:integer;
function min(t:tab;i:integer):integer;
var m,j:integer;
begin
m:=i;
for j:=i+1 to 26 do
if(t[j]<t[m]) then m:=j;
min:=m;
end;
procedure permut(var t:tab;i,p:integer);
var c:string;
begin
c:=t[i];
t[i]:=t[p];
t[p]:=c;
end;
procedure tri(var t:tab);
var i,p:integer;
begin
for i:=1 to 26 do
begin
p:=min(t,i);
if(i<>p) then permut(t,i,p);
end;
end;
function verif(t:tab;cc:string;k:integer):boolean;
var i:integer;
tr:boolean;
begin
i:=1;
tr:=false;
while(i<=k) and (tr=false) do
if(t[i]=cc) then tr:=true
else i:=i+1;
if(i>k)then verif:=false
else verif:=true;
end;
begin
randomize;
str(random(3)+1,ch1);
str(random(3)+1,ch2);
str(random(3)+1,ch3);
ch4:=ch1+ch2+ch3;
t[1]:=ch4;
j:=1;
randomize;
while(j<=26) do
begin
str(random(3)+1,ch1);
str(random(3)+1,ch2);
str(random(3)+1,ch3);
ch4:=ch1+ch2+ch3;
if(verif(t,ch4,j)=false) then
begin
j:=j+1;
t[j]:=ch4;
end;
end;
tri(t);
for i:=1 to 26 do
writeln(t[i]);
end.



merci bcp mes amis
A voir également:

2 réponses

Messages postés
131
Date d'inscription
samedi 6 janvier 2007
Statut
Membre
Dernière intervention
4 janvier 2011
2
Bonsoir,

Je parle uniquement à mon nom :
<<Quel est ton problème exactement ? ... réponse aucun, tu veux juste que l'on bosse pour toi. Sachant ça, le gentil développeur qui consacre un peu de son précieux temps pour AIDER des personnes bloquants sur un problème technique précis n'a probablement pas envie de faire un boulot ingrat juste pour tes beaux yeux...>>

Voila, après ce petit coup de gueule pour tout les mecs de ton genre, quelques explications pour que tu puisses faire ce que tu nous demandes.
Réécrit ce code en pseudo-code (algorithmique pur), puis traduit ton pseudo-code en C si tu n'arrives pas à tout traduire d'un coup.
Je ne penses pas qu'il y ait de formules magiques à ton problème, mais ton code fait tout juste une 30aine de lignes, alors tu en as pour 30 minutes maximum (débug compris).

Exemple :
function min(t:tab;i:integer):integer;
var m,j:integer;
begin
m:=i;
for j:=i+1 to 26 do
if(t[j]<t[m]) then m:=j;
min:=m;
end;

pseudo-code :
fonction min(t:tableau d'entier, i:entier)
{
m<-i;
pour j de i+1 à 26 par pas de 1
si (t[j]<t[m]
alors m<-j
retourner m
}

c++ :
int min(int* t, int i)
{
int min=i;
for(int j=i+1; j<26; j++)
if(t[j]<t[min])
min=j;
return min;
}

[[ ni testé ni compilé ]]
Messages postés
3839
Date d'inscription
dimanche 12 décembre 2004
Statut
Modérateur
Dernière intervention
15 avril 2021
120
<<Quel est ton problème exactement ? ... réponse aucun, tu veux juste que l'on bosse pour toi. Sachant ça, le gentil développeur qui consacre un peu de son précieux temps pour AIDER des personnes bloquants sur un problème technique précis n'a probablement pas envie de faire un boulot ingrat juste pour tes beaux yeux...>>

Je n'aurais pas dit mieux :)

Une bonne grosse lecture de ceci est nécessaire:
http://www.gnurou.org/writing/smartquestionsfr