Ussama
Messages postés5Date d'inscriptionmercredi 11 novembre 2009StatutMembreDernière intervention 1 décembre 2009
-
1 déc. 2009 à 01:09
cptpingu
Messages postés3837Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention28 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.
lural
Messages postés131Date d'inscriptionsamedi 6 janvier 2007StatutMembreDernière intervention 4 janvier 20112 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;
}
cptpingu
Messages postés3837Date d'inscriptiondimanche 12 décembre 2004StatutModérateurDernière intervention28 mars 2023123 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...>>