Página 1 de 1

resolução problema linguagem clipper

Enviado: 18 Jan 2014 16:40
por btf0208
ALguem poderia resolver em linguagem clipper porfavor, obrigado.

INICIO DO ALGORITIMO
1) Pegue a primeira temperatura registrada
2) Anote esta temperatura como a menor de todas as temperaturas
3) Enquanto ainda houver registros de temperatura, execute rapidamente e em ordem todas as instruções numeradas abaixo:
3.1) Pegue a próxima temperatura
3.2) Se essa temperatura for menor que aquela registrada no momento como a menor, então
3.2.1) Jogue fora a temperatura anterior registrada e anote a nova temperatura como sendo a menor de todas.
4) Exiba a temperatura que esta anotada como a menor. Esta é a temperatura que etavamos procurando.
FIM DO ALGORITIMO

resolução problema linguagem clipper

Enviado: 18 Jan 2014 21:02
por Eolo
Vc não explicou como é esse "pegar a próxima temperatura", se as temperaturas lidas vão estar acumuladas em algum lugar (DBF?) ou se o leitor (de temperatura) vai passar uma a uma pro seu algoritmo.

Se for uma por uma, aqui vai uma solução (faltando a parte de onde surge a temperatura lida):

Código: Selecionar todos

priv menor:=1000000, nova, parou:=.f.
* Define MENOR como uma temperatura absurda, bem alta.
* No primeiro MIN(), ela vai ser substituida pela temperatura real lida, que vai ser menor
do whil .t.
  pega_nova_temp()   
  if parou=.t.
     exit
  endi
  menor:=min(menor,nova)
endd
if menor=1000000
  ? "Não foram lidas temperaturas"
else
  ? menor // menor temperatura dentre todas as lidas
endi


function pega_nova_temp
if ... // sistema externo parou de informar temperatura
  parou:=.t.
  retu 
endi
nova:= ?? // nova temperatura informada pelo sistema externo

resolução problema linguagem clipper

Enviado: 19 Jan 2014 12:33
por JoséQuintas
Tá parecendo lição de escola, e muito mal descrita.

Código: Selecionar todos

// 1.pegue a primeira temperatura registrada
// 2.anote esta temperatura como sendo a menor de todas as temperaturas
nMenor := base->Temperatura 

// 3. Enquanto ainda houver registros de temperatura, execute rapidamente
// e em ordem todas as instruções numeradas abaixo
// ----------> "execute rapidamente" é esquisito
DO WHILE .NOT. Eof() 
// 3.1 pegue a próxima temperatura
// 3.2 se essa temperatura for menor que aquela registrada no momento como a menor, então
// 3.2.1 jogue fora a temperatura anterior registrada
// e anote a nova temperatura como sendo a menor de todas
   nMenor := Min( nMenor, base->Temperatura )
// continuação do item 3
   SKIP
ENDDO
// 4. Exiba a temperatura que está anotada como a menor
// Esta é a temperatura que estavamos procurando
? nMenor 

resolução problema linguagem clipper

Enviado: 19 Jan 2014 13:46
por Eolo
Quintas,
Toda lição de escola é capenga, a gente tá aprendendo e não dando aula. Normal. E o BTF0208, pelo jeito, tá tentando aprender... Bão, vc assumiu que as temperaturas estão em um DBF, que esse DBF existe e tem registros, e que esse DBF já tem o que tinha que ter, não está mais sofrendo alterações. Você tá focado no DBF, estático, sem se preocupar que as temperaturas estão vindo de algum lugar desconhecido e em uma frequencia desconhecida...


BTF0208,
Nos dê mais informações sobre o seu problema, mais especificamente como as temperaturas estão sendo obtidas e onde (e se) elas estão sendo armazenadas. Aí podemos tentar ajudar de alguma forma.

resolução problema linguagem clipper

Enviado: 19 Jan 2014 14:39
por JoséQuintas
3) Enquanto ainda houver registros de temperatura
Esta parte dá a impressão de estar em um banco de dados, já que considera várias temperaturas pré-existentes.