resolução problema linguagem clipper

Fórum sobre a linguagem CA-Clipper.

Moderador: Moderadores

btf0208
Usuário Nível 1
Usuário Nível 1
Mensagens: 1
Registrado em: 18 Jan 2014 16:25
Localização: governador valadares

resolução problema linguagem clipper

Mensagem 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
Avatar do usuário
Eolo
Colaborador
Colaborador
Mensagens: 1134
Registrado em: 08 Dez 2005 18:24
Localização: São Paulo - SP

resolução problema linguagem clipper

Mensagem 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
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

resolução problema linguagem clipper

Mensagem 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 
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
Eolo
Colaborador
Colaborador
Mensagens: 1134
Registrado em: 08 Dez 2005 18:24
Localização: São Paulo - SP

resolução problema linguagem clipper

Mensagem 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.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

resolução problema linguagem clipper

Mensagem 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.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder