LIQUIDAMBAR
Messages postés5Date d'inscriptionjeudi 2 février 2006StatutMembreDernière intervention12 mai 2006
-
11 mai 2006 à 14:20
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024
-
12 mai 2006 à 08:46
J'essaye de transformer le programme ci-dessous et n'y parviens pas. Pourrais-je avoir un peu d'aide?
Ce code Delphi se trouve sur chambily.com avec l'exemple "121".
Merci d'avance.
procedure TForm1.Button1Click(Sender: TObject);
var nb1,rac1 : integer ;
exacte1 : boolean ;
t : array[0..50] of integer ;
s : string ;
function racine_majoree(carre : integer) : integer ;
var a : integer ;
begin
a:=round(sqrt(carre)) ;
if a*a<carre then inc(a) ;
racine_majoree:=a ;
end ;
procedure cherche(a_trouver,nb,niveau : integer; exacte : boolean) ;
var bool : boolean ;
rac,diff,carre,i,j : integer ;
begin
if not exacte then dec(nb) ;
if nb>=1 then
for i:=nb downto 1 do
begin
carre:=i*i ;
diff:=a_trouver-carre ;
if (diff=0) and (i<t[niveau-1]) then
begin
s:='' ;
for j:=1 to niveau-1 do s:=s+inttostr(t[j]*t[j])+'+' ;
s:=s+inttostr(carre)+'='+inttostr(nb1*nb1) ;
memo1.lines.add(s) ;
end
else
begin
rac:=racine_majoree(diff) ;
t[niveau]:=i ;
bool:=(rac*rac=diff) ;
if (i<t[niveau-1]) then //--- on s'assure que les nombres sont distincts
cherche(diff,rac,niveau+1,bool) ;
end ;
end ;
end ;
begin
memo1.lines.clear ;
t[0]:=1000000 ;
nb1:=strtoint(edit1.text) ;
rac1:=racine_majoree(nb1*nb1) ;exacte1:=(rac1*rac1=nb1) ;
cherche(nb1*nb1,rac1,1,exacte1) ;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
close ;
end;
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024159 11 mai 2006 à 14:58
Bonjour
Pour une form, utilise le conceptuer de VB.
var a : integer ;
Dim a as integer
t : array[0..50] of integer
Dim T(0 to 50) as integer
function racine_majoree(carre : integer) : integer ;
Public/private function racine_majoree(byval carre as integer) as integer
for i:=nb downto 1 do
For i=nb to 1 step -1
diff:=a_trouver-carre ;
diff=a_trouver-carre
if (i<t[niveau-1]) then
if i<t(niveau-1) then
nb1:=strtoint(edit1.text) ;
nb1=cint(edit1.text)
procedure cherche(a_trouver,nb,niveau : integer; exacte : boolean) ;
public/private sub cherche(byval a_trouver as Variant, byval nb as variant, byval niveau as integer,byval exacte as boolean)
close ;
unload me
ou
end
Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)
Une question se pose sur le forum, pas en privé
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)
LIQUIDAMBAR
Messages postés5Date d'inscriptionjeudi 2 février 2006StatutMembreDernière intervention12 mai 2006 12 mai 2006 à 01:25
Merci pour cette réponse mais que veut dire plus facile de batiser kk1 que de la convertir et utiliser le concepteur de VB. Excuse-moi mais je ne possède pas toutes les notions de VB 5.
D'avance, je te remercie,
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024159 12 mai 2006 à 08:46
Bonjour
En vert, c'est ma signature
Pour le concepteur :
tu créé un nouveau projet dans VB5 (je ne programme que à partir de VB6, mais ça doit être pareil), Executable Windows.
Ensuite tu peux modifier, ajouter, supprimer une form (explorateur de projet).
Tu peux ajouter, déplacer, modifier, supprimer des controles en utilisant la barre d'outile (controles).
ps : je n'ai pas accès au web le weekend.
Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)
Une question se pose sur le forum, pas en privé
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)