Referência ao Ficheiro util.c


Descrição Detalhada

Implementação de funções auxiliares básicas.

Autor:
Rui Carlos A. Gonçalves <rcgoncalves.pt@gmail.com>
Versão:
2.1.1
Data:
02/2009

Definido no ficheiro util.c.

Ir para o código fonte deste ficheiro.

Macros

#define BUFSIZE   32
 Tamanho do buffer inicial usado nas funções rgets e rgetsEOF.

Funções

int rgets (char **str)
 Lê uma frase do stdin.
int rgetsEOF (char **str)
 Lê uma frase do stdin.
int rngets (char *str, int dim)
 Lê uma frase do stdin.
int getRandom (int min, int max)
 Gera um número aleatório entre dois valores.
static int merge (void *vals[], int begin, int midle, int end, int(*comp)(void *, void *))
 Efectua a junção de duas partes (ordenadas) de um array.
int mergeSort (void *vals[], int begin, int end, int(*comp)(void *, void *))
 Ordena um array.

Variáveis

long seed = 0
 Semente da função getRandom.


Documentação das Funções

int getRandom ( int  min,
int  max 
)

Gera um número aleatório entre dois valores.

Atenção:
o valor de min deve ser menor do que max.
Parâmetros:
min valor mínimo que pode ser gerado.
max valor máximo que pode ser gerado.
Retorna:
valor gerado.

Definido na linha 136 do ficheiro util.c.

static int merge ( void *  vals[],
int  begin,
int  midle,
int  end,
int(*)(void *, void *)  comp 
) [static]

Efectua a junção de duas partes (ordenadas) de um array.

Parâmetros:
vals array com os valores.
begin início da primeira parte do array.
midle início da segunda parte do array.
end fim da segunda parte do array.
comp função que compara os elementos do array.
Retorna:
1 se ocorrer algum erro;
0 caso contrário.

Definido na linha 165 do ficheiro util.c.

int mergeSort ( void *  vals[],
int  begin,
int  end,
int(*)(void *, void *)  comp 
)

Ordena um array.

Utiliza o algoritmo Mergesort.
Ordena os elementos do array no intervalo [begin,end], usando como função de comparação comp.
A função comp tem que ser do tipo: int comp(void*,void*).

Parâmetros:
vals array de apontadores para os elementos a ordenar.
begin posição onde começamos a ordenação.
end posição onde termina a ordenação.
comp função de comparação.
Retorna:
número de erros detectados.

Definido na linha 201 do ficheiro util.c.

int rgets ( char **  str  ) 

Lê uma frase do stdin.

Lê todos o caracteres inseridos até encontrar o carácter \n. Esta função, ao contrário da rngets, recebe como argumento o endereço para uma variável do tipo char*, e não a própria variável. Se ocorrer algum erro é colocado o valor NULL em str.

Atenção:
o espaço para a string onde será colocado o resultado é reservado pela função rgets, como tal não deve ser previamente alocado, pois se isso acontecer será perdido.
Parâmetros:
str endereço da string onde será colocado o resultado.
Retorna:
-2 se o endereço do resultado não for válido;
-1 se ocorrer algum erro;
tamanho da string caso contrário.

Definido na linha 26 do ficheiro util.c.

int rgetsEOF ( char **  str  ) 

Lê uma frase do stdin.

Lê todos o caracteres inseridos até encontrar um EndOfFile. Esta função, ao contrário da rngets, recebe como argumento o endereço para uma variável do tipo char*, e não a própria variável. Se ocorrer algum erro é colocado o valor NULL em str.

Atenção:
o espaço para a string onde será colocado o resultado é reservado pela função rgetsEOF, como tal não deve ser previamente alocado, pois se isso acontecer será perdido.
Parâmetros:
str endereço da string onde será colocado o resultado.
Retorna:
-2 se o endereço do resultado não for válido;
-1 se ocorrer algum erro;
tamanho da string caso contrário.

Definido na linha 70 do ficheiro util.c.

int rngets ( char *  str,
int  dim 
)

Lê uma frase do stdin.

Verifica se a frase introduzida não excede a tamanho máximo (dim-2):

  • caso isto aconteça a frase é perdida;
  • caso contrário a frase é colocada na variável str (as frases lidas nunca têm o carácter \n no fim).
Atenção:
o espaço referenciado por str tem que ser previamente alocado.
Parâmetros:
str local onde é guardada a frase lida.
dim tamanho máximo da expressão é dim-2.
Retorna:
tamanho da frase lida (ou -1 caso não seja lida nenhuma frase).

Definido na linha 114 do ficheiro util.c.


LibRCG © 2004-2009   Rui Carlos A. Gonçalves