Fórum delphi7 estrutura if #416645
12/05/2012
0
var
v1,v2:real;
begin
v1:=strtofloat(edit1.text);
v2:=strtofloat(edit2.text);
if(v1>v2)then;
edit3.text:=floattostr(v1);
if(v2>v1)then;
edit3.text:=floattostr(v2);
if(v1=v2)then;
edit3.text:=valores iguai;
ele roda sem erros mas quando vou testar e coloco os valores na edit3. só aparece a msg valores iguais mesmo quando os números ñ são iguais ñ sei mas o q fazer por favor me ajudem!
Susana Matos
Curtir tópico
+ 0Posts
12/05/2012
Joel Rodrigues
var v1,v2:real; begin v1:=StrToFloat(Edit1.Text); v2:=StrToFloat(Edit2.Text); if(v1>v2)then Edit3.Text := FloatToStr(v1) else if(v2>v1)then Edit3.Text:=FloatToStr(v2) else Edit3.Text:= ´valores iguais´;
Repare que depois do THEN não pode haver ponto-e-vírgula, pois você estaria encerrando a expressão alí mesmo.
Veja também que não é preciso o último IF, pois, se V1 não é maior que V2 e V2 não é maior que V1, então os dois são iguais.
Isso deve resolver. Qualquer dúvida, é só falar.
Gostei + 0
12/05/2012
Susana Matos
Gostei + 0
12/05/2012
Joel Rodrigues
Precisando, estamos aqui.
Gostei + 0
14/05/2012
Susana Matos
i1,i2,i3:integer;
begin
i1:=strtoint(edit1.text);
i2:=strtoint(edit2.text);
i3:=strtoint(edit3.text);
if(i1<i2)and(i1<i3)then
edit1.text:=inttostr(i1);
eu fiz um pouco mas do que tá ai em cima,o programa rodou mas as idades ñ ficam em ordem crescente, preciso de ajuda!
Gostei + 0
14/05/2012
Joel Rodrigues
var
nums : array[1..3] of Integer;
aux : Integer;
i, j : Integer;
begin
nums[1] := StrToInt(Edit1.Text);
nums[2] := StrToInt(Edit2.Text);
nums[3] := StrToInt(Edit3.Text);
for i := 1 to 3 do
begin
aux := nums[i];
for j := i to 3 do
begin
if nums[j] < nums[i] then
begin
nums[i] := nums[j];
nums[j] := aux;
aux := nums[i];
end;
end;
end;
Edit1.Text := IntToStr(nums[1]);
Edit2.Text := IntToStr(nums[2]);
Edit3.Text := IntToStr(nums[3]);
Caso você queira somente os três valores, dê uma olhada nesse link: https://sites.google.com/a/liesenberg.biz/cjogos/home/materiais-de-apoio/topicos-relativos-a-c/estruturas-basicas-de-controle/ordenar-tres-valores-inteiros
Boa sorte.
Gostei + 0
02/06/2012
Susana Matos
Obrigado por me ajudar,valeu mesmo!
Gostei + 0
02/06/2012
Marco Salles
procedure TForm1.Button1Click(Sender: TObject);
procedure TrocarValores(var IdadeA, IdadeB: integer);
var
IdadeAux: integer;
begin
IdadeAux := IdadeA;
IdadeA := IdadeB;
IdadeB := IdadeAux;
end;
var
Idade1, Idade2, Idade3: integer;
begin
Idade1 := StrToInt(edtIdade1.text);
Idade2 := StrToInt(edtIdade2.text);
Idade3 := StrToInt(edtIdade3.text);
if Idade1 > Idade2 then
TrocarValores(Idade1, Idade2);
if Idade2 > Idade3 then
TrocarValores(Idade2, Idade3);
if Idade1 > Idade2 then
TrocarValores(Idade1, Idade2);
edtIdade1.Text := IntToStr(Idade1);
edtIdade2.Text := IntToStr(Idade2);
edtIdade3.Text := IntToStr(Idade3);
end;
Gostei + 0
02/06/2012
Marco Salles
classe TARRAY . O Exemplo postado pelo nobre amigo e Moderador Joel Rodrigues pode ser simplificado por
uses
Generics.Collections;
procedure TForm14.Button2Click(Sender: TObject);
var
nums:array[1..3] of Integer;
begin
nums[1] := StrToInt(edtIdade1.Text);
nums[2] := StrToInt(edtIdade2.Text);
nums[3] := StrToInt(edtIdade3.Text);
TArray.Sort<Integer>(Nums);
edtIdade1.Text := IntToStr(nums[1]);
edtIdade2.Text := IntToStr(nums[2]);
edtIdade3.Text := IntToStr(nums[3]);
end;
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)