Traduction

Ussama Messages postés 5 Date d'inscription mercredi 11 novembre 2009 Statut Membre Dernière intervention 1 décembre 2009 - 1 déc. 2009 à 01:09
cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 - 1 déc. 2009 à 12:09
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

2 réponses

lural Messages postés 131 Date d'inscription samedi 6 janvier 2007 Statut Membre Dernière intervention 4 janvier 2011 2
1 déc. 2009 à 01:21
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é ]]
0
cptpingu Messages postés 3837 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 28 mars 2023 123
1 déc. 2009 à 12:09
<<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
0
Rejoignez-nous