Baixe em PDF
Baixe em PDF
Você provavelmente já tentou ou precisou fazer um programa em C pausar por alguns instantes. As aplicações para isso são diversas, desde a página de boas-vindas de um jogo até uma caixa de alerta em um programa. Saiba que, de fato, existem algumas técnicas para implementar um timer em C. Quer aprender? Siga adiante.
Passos
-
Crie um loop for normal seguido de um ponto e vírgula.
-
Escreva, por exemplo, algo do tipo:
- for (i=1 ; i<100 ; i++) ;
- Repare que essa linha não implementa nenhum código após o "for", portanto trata-se apenas de um loop vazio que roda cem vezes mas não gera nenhum resultado, apenas cria um delay.
Publicidade
-
Use a função sleep(). Ela pertence à biblioteca TIME.H e, conforme a sintaxe, faz com que o programa pause pela quantidade em milissegundos determinada pelo parâmetro – sleep(int ms).
-
Inclua a biblioteca antes da linha “int main()” do código.
- #include <TIME.H>
-
Insira a função onde for necessário dentro do código.
- sleep(1000);
- Mude o “1000” pelo número de milissegundos que você deseja pausar o programa. Por exemplo, se quiser uma pausa de dois segundos, troque “1000” por “2000”.
- Dica: em alguns sistemas, o parâmetro pode se referir a segundos. Nesse caso, mil equivaleria a mil segundos em vez de mil milissegundos.
Publicidade
Analisando um código pronto
Este é um programa que pausará por uma determinada quantidade de segundos:
#include
<stdio.h>
#include
<dos.h>
int
main
()
{
int
del
;
// O tempo do delay
printf
(
"Digite o tempo do delay em segundos: "
);
scanf
(
"%i"
,
&
del
);
del
*=
1000
;
// Multiplica por 1000 para converter em milissegundos
delay
(
del
);
// Função delay
printf
(
"Pronto!"
);
return
0
;
}
Um contador decrescente de 10 a 0:
#include
<stdio.h>
#include
<time.h>
int
main
()
{
int
i
;
for
(
i
=
10
;
i
>=
0
;
i
--
)
{
printf
(
"%i
\n
"
,
i
);
// Exibe a atual contagem do contador
delay
(
1000
);
// Espera um segundo
}
return
0
;
}
Dicas
- A técnica do loop vazio com o for também vale para qualquer outro tipo de loop, tais quais o do-while e o while, basta acrescentar um “;” depois do loop.
- Um milissegundo equivale 1/1000 de um segundo.
Publicidade
Avisos
- A técnica do loop vazio só deve ser usada em programas simples, com a finalidade de estudo, já que o programa fica travado durante o delay. Em casos mais complexos, use programação orientada a eventos e funções de timer. Em resumo, o maior problema do loop vazio é impedir o usuário de interagir com o programa durante o loop – até mesmo a tecla “Sair” fica inativa. Em compiladores modernos (com otimizadores de código), o loop vazio é rapidamente removido do código.
- Quanto maior o tempo de delay desejado, maior deve ser a diferença entre o primeiro e o segundo números do loop for, afinal um loop vazio é processado rapidamente.
- Ao contrário do loop for, as funções de delay não são removidas pelos otimizadores de códigos.
Publicidade
Sobre este guia wikiHow
Esta página foi acessada 67 553 vezes.
Publicidade