UNIVALI-LITE / Portugol-Studio

Ambiente de Programação didático para a linguagem Portugol 2.0
http://univali-lite.github.io/Portugol-Studio/
GNU Lesser General Public License v3.0
692 stars 218 forks source link

Função leia com timeout #842

Open noschang opened 4 years ago

noschang commented 4 years ago

@AdsonEsteves e @elieserdejesus, segue abaixo a transcrição de um email que recebi de um dos usuários do Portugol Studio. A sugestão dele é criar uma função de leitura que tenha timeout:

Bom dia, Luiz.

Sou aluno do curso de desenvolvimento de sistemas do SENAI, e estou fazendo um projeto no portugol, em que um parque tem determinados tipos de ingressos e a assistente virtual (Que eu criei no portugol) auxilia na compra desses ingressos, tudo via telefone. Ao decorrer do programa, vi um problema, que estou em dúvida se eu usei sua biblioteca de forma errada, ou se realmente a função não existe e pode ser implementada. Eu precisava de uma função que durante determinado tempo (5000 milissegundos, por exemplo) aguardaria a entrada de dados do usúario através do "leia()", caso o usuário não digitasse nada, o programa continuaria normalmente, caso digitasse aconteceria a condição que foi escrita para leitura daquele dado. Tentei usar a função util.aguarde() mas ela apenas pausa o programa, não permitindo o "leia()" enquanto ela está em funcionamento. Caso eu esteja usando sua biblioteca de forma errada, queria pedir sua ajuda nessa função, caso realmente seja impossível fazer o que eu desejo, deixo a sugestão para a linguagem de vocês.

Agradeço desde já

Achei a sugestão interessante, e acho que pode ser muito útil. O que vocês acham?

elieserdejesus commented 4 years ago

Acho uma boa ideia, só não sei qual o melhor nome pra essa nova função. Poderíamos usar sobrecarga mas acho que pode confundir os iniciantes.

Em sex, 7 de ago de 2020 15:21, Luiz Fernando Noschang < notifications@github.com> escreveu:

@AdsonEsteves https://github.com/AdsonEsteves e @elieserdejesus https://github.com/elieserdejesus, segue abaixo a transcrição de um email que recebi de um dos usuários do Portugol Studio. A sugestão dele é criar uma função de leitura que tenha timeout:

Bom dia, Luiz.

Sou aluno do curso de desenvolvimento de sistemas do SENAI, e estou fazendo um projeto no portugol, em que um parque tem determinados tipos de ingressos e a assistente virtual (Que eu criei no portugol) auxilia na compra desses ingressos, tudo via telefone. Ao decorrer do programa, vi um problema, que estou em dúvida se eu usei sua biblioteca de forma errada, ou se realmente a função não existe e pode ser implementada. Eu precisava de uma função que durante determinado tempo (5000 milissegundos, por exemplo) aguardaria a entrada de dados do usúario através do "leia()", caso o usuário não digitasse nada, o programa continuaria normalmente, caso digitasse aconteceria a condição que foi escrita para leitura daquele dado. Tentei usar a função util.aguarde() mas ela apenas pausa o programa, não permitindo o "leia()" enquanto ela está em funcionamento. Caso eu esteja usando sua biblioteca de forma errada, queria pedir sua ajuda nessa função, caso realmente seja impossível fazer o que eu desejo, deixo a sugestão para a linguagem de vocês.

Agradeço desde já

Achei a sugestão interessante, e acho que pode ser muito útil. O que vocês acham?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/UNIVALI-LITE/Portugol-Studio/issues/842, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAHXIBINLJYTTRJFXVOWEPTR7RAZFANCNFSM4PX4IFAA .

noschang commented 4 years ago

@elieserdejesus concordo, sobrecarga fica ruim. O que acha dessa sugestão:

logico aguarde_leitura(inteiro intervalo, * var1, * var2, * var3, ...)

O número de variáveis seria arbitrário, como já é na função leia atual. E o intervalo seria aplicado pra cada variável a ser lida. Retornaria um Boolean indicando se a leitura ocorreu dentro do intervalo ou não

logico leu = aguarde_leitura(5000, var1, var2, var3)

O código acima, por exemplo, esperaria 5 segundos pra ler a primeira variável, depois mais 5 pra ler a segunda e assim por diante. Se não ocorrer o timeout em nenhuma das leituras retorna true senão false

elieserdejesus commented 4 years ago

Gostei dessa ideia Noschang 👍👍👍

Em sáb, 8 de ago de 2020 15:31, Luiz Fernando Noschang < notifications@github.com> escreveu:

@elieserdejesus https://github.com/elieserdejesus concordo, sobrecarga fica ruim. O que acha dessa sugestão:

logico aguarde_leitura(inteiro intervalo, var1, var2, * var3, ...)

O número de variáveis seria arbitrário, como já é na função leia atual. E o intervalo seria aplicado pra cada variável a ser lida. Retornaria um Boolean indicando se a leitura ocorreu dentro do intervalo ou não

logico leu = aguarde_leitura(5000, var1, var2, var3)

O código acima, por exemplo, esperaria 5 segundos pra ler a primeira variável, depois mais 5 pra ler a segunda e assim por diante. Se não ocorrer o timeout em nenhuma das leituras retorna true senão false

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/UNIVALI-LITE/Portugol-Studio/issues/842#issuecomment-670959640, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAHXIBL3DBSVJE5KPE6ELULR7WKXXANCNFSM4PX4IFAA .