sexta-feira, 26 de agosto de 2011

Teste para entrevista de emprego - Linguagem C

Bom dia Pessoal,


Ontem, eu fiz uma entrevista de emprego e pensei: porque não colocar aqui no blog? se é pra ajudar né ;-)

Bom, vamos a elas (eram 3 questões).

Primeira questão - Famosa função para calcular fatorial
Lembrando que uma função recursiva deve sempre ter três preocupações.
1. Condição de parada
2. Formula do cálculo (Na pressa eu cometi um erro aqui :-s esqueci uma multiplicação, mas que inutiliza todo o código, espero que vocês não cometam o mesmo erro que eu).
3. Retorno da função

Vamos ao código
int Fatoria(int f){
  if (f <= 0)
    return (1);
 else
    return (f * Fatorial(f - 1));
}

Segunda questão - Criar uma lista duplamente linkada (Estou pensando em escrever um post só sobre isso, o charme da linguagem C são os ponteiro e as listas linkadas são muito funcional, quando BEM estruturadas).

typedef struct palavra{
 int posicao;
 char[100] palavra_portugues;
 char[100] palavra_ingles;
 Palavra *proximo;
 Palavra *anterior;
}Palavra;

typedef struct dicionario{
 int tamanho;
 Palavra *primeiro;
 Palavra *ultimo;
} Dicionario;


Terceira questão - Usando a estrutura definida na questão 2, criar uma função que faz uma consulta.

char[100] Busca(char[100] palavra_busca){
 char[100] palavra_retorno;
 Palavra *tmp;

 tmp = Dicionario->primeiro;
 while (tmp->palavra_portugues != palavra_busca && tmp != NULL){
   tmp = tmp->proximo;
 }

 if (tmp == NULL)
   palavra_retorno = "";
 else
   palavra_retorno = tmp->palavra_ingles;

 return(palavra_retorno);
}


É isso ai! Pessoal abraços

Nenhum comentário:

Postar um comentário