/*
* Esta rotina realiza a exibicao de caracteres. Nela e calculado um numero
* pseudo-randomico entre 1 e 3 para determinar o numero de caracteres a exibir.
* Se a protecao esta estabelecida, a rotina entao consegue o recurso. Em
* seguida, PrintAlphabet() acessa o indice com seu valor corrente a partir da
* memoria compartilhada. A rotina entra em loop, exibindo o numero aleatorio de
* caracteres. Finalmente, a rotina incrementa o indice, conforme o necessario,
* e libera o recurso, se for o caso.
*/
void PrintAlphabet( void )
{
struct timeval tv;
int number;
int tmp_index;
int i;
/*
* Este tempo permite que todos os filhos sejam inciados
*/
usleep(200);
/*
* Entrando no loop principal
*/
while(1) {
/*
* Conseguindo o tempo corrente, os microsegundos desse tempo
* sao usados como um numero pseudo-randomico. Em seguida,
* calcula o numero randomico atraves de um algoritmo simples
*/
if( gettimeofday( &tv, NULL ) == -1 ) {
fprintf(stderr,"Impossivel conseguir o tempo atual, terminando.\n");
exit(1);
}
number = ((tv.tv_usec / 47) % 3) + 1;
//Boa tarde galera ,eu nao entendo essa formula que ele usa no number para calcular um numero randomico ... eu sei que ela retorna 1 , 2 ou 3 mais nao entendo por que... Se alguem por gentileza poder me ajudar desde ja agradeço.
Projetinho Sistemas Operacionais (Faculdade)
D
/
7 Respostas
Use a tag [code] para ficar mais fácil a visualização.
:thumbup:
D
perdao , ja arrumei obrigado.
Olá 
Também não sei o problema
disse para arrumar o código para as outras pessoas te ajudarem :idea:
:thumbup:
% é o operador de resto.
O resto de da divisão por um número N pode ser qualquer número entre 0 e (n-1).
Por exemplo, o resto da divisão por 5 pode ser qualquer número entre 0 e 4.
D
entao mais no number eu estou pegando os microsegundos … tipo pq dividir por 47… a unica coisa que eu tenho certeza eh que retorna 1 , 2 , 3 rs
Pouco importa o que seja o número, o que importa é que o resto da divisão de QUALQUER número por 3 é um número entre 0 e 2. Isso inclui seus milissegundos / 47.
D
Entendi cara! Obrigado
Criado 19 de maio de 2012
Ultima resposta 21 de mai. de 2012
Respostas 7
Participantes 3
Alura O que é Python? — um guia completo para iniciar nessa linguagem de programação Acesse agora o guia sobre Python e inicie sua jornada nessa linguagem de programação: o que é e para que serve, sua sintaxe e como iniciar nela!
Casa do Codigo Engenharia de Prompt para Devs: Um guia para aprender a... Por Ricardo Pupo Larguesa — Casa do Codigo