Fórum Duvidas com logica de estrutura de repetição #524104

25/06/2015

0

ola gente precisaria de uma ajuda, estou fazendo questionário do meu técnico mas não consegui por mim ter a logica.

1- Em delphi mostrar na tela os números ímpares entre 100 e 1000 em ordem inversa (999, 997, ..., 101).
2 - leia 100 números digitados pelo usuário e, no final, apresente o maior e o menor valor fornecido, sem utilizar vetores ou arrays

So poderia usar estrutura de repetição, tentei fazer mas no final dava errado, e precisaria de uma ajuda quem pudesse ajudar, estou tendo dificuldade, se pudessem me dar uma luz eu agradeço muito
Lucas Ascencio

Lucas Ascencio

Responder

Post mais votado

26/06/2015


2 - leia 100 números digitados pelo usuário e, no final, apresente o maior e o menor valor fornecido, sem utilizar vetores ou arrays


Uma variável para guardar o maior valor digitado ( inicializada com zero )
Uma variável para guardar o menor valor digitado ( inicializada com zero )

Um loop para suportar a entrada dos 100 números digitados ( 100 !!! )
Em cada iteração do loop faça
 Se o numero digitado é maior que a variavel com o maior numero digitado
 Então, atualiza a variavel do maior valor digitado com o valor corrente

 Se o numero digitado é menor que a variavel com o menor numero digitado
 Então, atualiza a variavel do menor valor digitado com o valor corrente


Na saída do loop você terá, nas duas variáveis de controle, o maior e o menor valor digitado.

Marcos P

Marcos P
Responder

Gostei + 1

Mais Posts

26/06/2015

Lucas Ascencio

A 1 eu consegui resolver, mas a segunda nao consigo ver uma forma que nao utilize vetor ou arrays.
PS: aprendi somente com vetor e array, utilizando loop nao consigui de forma alguma chegar perto.
Responder

Gostei + 0

26/06/2015

Lucas Ascencio

blz, vlw, vo tentar aqui
Responder

Gostei + 0

26/06/2015

Rafael Mota

Acho que ficaria +ou - assim:
var
  lcvMenor,
  lcvMaior,
  lcvContador: Integer;
  lcvNumero  : string;
begin
  lcvContador := 1;
  if( InputQuery('NÚMERO','Informe um número',lcvNumero) ) then
  begin
    lcvMaior := StrToInt(lcvNumero);
    lcvMenor := StrToInt(lcvNumero);
    lcvNumero := '';
  end;
  while lcvContador < 100 do
  begin
    if( InputQuery('NÚMERO','Informe um número',lcvNumero) ) then
    begin
      if( StrToInt(lcvNumero) > lcvMaior ) then
        lcvMaior := StrToInt(lcvNumero);
      if( StrToInt(lcvNumero) < lcvMenor  ) then
        lcvMenor := StrToInt(lcvNumero);
      lcvNumero := '';
      inc(lcvContador);
    end;
  end;
  ShowMessage('Maior = ' + IntToStr(lcvMaior));
  ShowMessage('Menor = ' + IntToStr(lcvMenor));
end;
Responder

Gostei + 1

26/06/2015

Lucas Ascencio

Marcos obrigado pela ajuda, sua logica me ajudou a ter uma visao melhor, tentei fazer aqui mas deu tudo errado, ao analisar o seu codigo mota me ajudou a esclarecer que eu estava me esquecendo de utilizar o Inc.... :/
Agradeço os dois, apesar de ser uma logica básica, se agente nao exercita a logica agente esquece, como aconteceu comigo hahaha
Responder

Gostei + 0

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

Aceitar