GARANTIR DESCONTO

Fórum delphi7 estrutura if #416645

12/05/2012

0

oi,estou com problemas nos programinhas da estrutura if, eles rodam mas ñ funcionam corretamente.
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

Susana Matos

Responder

Posts

12/05/2012

Joel Rodrigues

Bom, você usou a estrutura de forma QUASE totalmente correta, faltou só um toque de Lógica de Programação. Mas vamos lá, use o seguinte:
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.
Responder

Gostei + 0

12/05/2012

Susana Matos

Obrigado querido,vc salvou a minha vida,realmente era só tirar o ponto e vírgula do then, céus como eu não enxerguei isso!
Responder

Gostei + 0

12/05/2012

Joel Rodrigues

Que bom que funcionou, fico feliz por ter ajudado.
Precisando, estamos aqui.
Responder

Gostei + 0

14/05/2012

Susana Matos

olá, estou com dificuldades nesse exercício de delphi, o programinha tem que ler 3 idades e colocar na ordem crescente.
var
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!
Responder

Gostei + 0

14/05/2012

Joel Rodrigues

Veja esse exemplo usando vetor, é interessante pois serve para qualquer número de variáveis.
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.
Responder

Gostei + 0

02/06/2012

Susana Matos

Bom, eu ainda não aprendi dessa maneira,usando vetor, mas precisava entregar o programinha rodando,e o seu funcionou perfeitamente já o meu não, ele pediu pra turma entregar só o executável, ele nem viu a programação e também não explicou e eu continuo aqui sem entender.
Obrigado por me ajudar,valeu mesmo!
Responder

Gostei + 0

02/06/2012

Marco Salles

exercicio identico tirado da net

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;
Responder

Gostei + 0

02/06/2012

Marco Salles

So a título de curiosidade , não vale como exercício didático. Mas o Delphi ja incorporou o método sort para dentro da
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;
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar