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

sexta-feira, 19 de agosto de 2011

Testando IDE NetBeans para desenvolvimento em Java.

Fazendo uns estudos, navegando, vendo as novidades sobre Desenvolvimento.
Li uma reportagem sobre o novo (não tão novo, apenas pra mim :-) ) IDE para desenvolvimento em Java, o NetBeans 7.0: http://www.infoq.com/br/news/2011/05/netbeans7

O que me chamou atenção foi o editor visual (GridBagLayout) e o GlassFish Server. Já sabia que o NetBeans da suporte a desenvolvimento em C/C++, PHP e HTML, mas para essas linguagens eu utilizo o NotePad++ e acho muito bom, só que o NotePad++ não tem edição gráfica para JavaForms (Swing).

Assim baixei o programa (www.netbeans.org), instalei e fiz uma calculadora para ver todo o potencial.

Vamos a ele:

Passo 1) Baixar o NetBeans e instala-lo - lembrando que deve ter um JDK compatível já instalado.

Passo 2) Abrir o NetBeans e aqui uma coisa me desagradou, demorou bastante para carrega-lo, deve ter sido por causa da procura de atualizações e etc. Deviam deixar para o usuário fazer manualmente.

Passo 3) Criar um projeto - funciona parecido com o Eclipse ou VisualStudio, tudo gira em torno de projetos.
Para isso use CTRL + SHIFT + N.
Na janela que se abre, escolha a Categoria: Java e Projeto: Aplicativo Java. Clique no botão Próximo.
Na próxima tela defina o nome do projeto como Calculadora e clique em finalizar.

Passo 4) Criando o frontend.
Para isso, no projeto Calculadora, clique com o botão direito do mouse e escolha Novo -> Outro.
Na janela que se abre, escolha a Categoria: Formulários GUI Swing e Tipos de arquivos: Formulário JFrame. Clique no botão Próximo.
Na próxima tela defina o nome como CalculadoraUI, pacote como my.calculadora.org e clique em finalizar.

Passo 5) Na parte central do programa, vai aparecer o Frame e no canto direito os componentes (swing) que podemos trabalhar.
Adicione 3 jLabels, 3 jTextFields e 3 jButtons - não sera uma calculadora completa, apenas a operação de soma.
As disposições deles dentro do frame, fica a critério de vocês.

Passo 6) Altere o texto dos jLabels.
Para isso, clique no primeiro jLabel (provavelmente nomeado como jLabel1) com o botão direito do mouse e escolha "Editar Texto". Modifique para "Primeiro numero" e pressione  Enter.
Faça o mesmo processo no segundo label e mude para "Segundo numero".
Faça o mesmo processo para o ultimo label e mude para "Resultado".

Passo 7) Limpar o texto dos jTextFields.
Para isso, clique com o botão direito do mouse sobre o jTextFields e remova o texto deles.

Passo 8) Modificar o texto dos botões.
Para isso, clique com o botão direito do mouse sobre os jButtons e modifique para "Somar", "Limpar" e "Sair".

Passo 9) Adicionar funcionalidade aos botões.
Para isso, clique no jButton-Sair com o botão direito e escolha a opção: Eventos->Action->ActionPerformed.
Coloque o seguinte código na função criada pela IDE: System.exit(0);

Clique no jButton-Limpar com o botão direito e escolha a opção:  Eventos->Action->ActionPerformed.
Coloque o seguinte código na função criada pela IDE:
jTextField1.setText("");
jTextField2.setText("");
jTextField3.setText("");

Clique no jButton-Somar com o botão direito e escolha a opção:  Eventos->Action->ActionPerformed.
Coloque o seguinte código na função criada pela IDE:

float num1, num2, result;
num1 = Float.parseFloat(jTextField1.getText());
num2 = Float.parseFloat(jTextField2.getText());
result = num1 + num2;
jTextField3.setText(String.valueOf(result));

Passo 10) A nossa calculadora simples esta pronta, só falta rodar e testa-lo ;-)
Para isso, Pressione F6 ou menu Executar->Executar projeto principal...


Conclusões: Me agradou muito o GridBagLayout, sendo que escrever o código para posicionamento dos componentes swing e os eventos, toma um tempo razoável do programador, disperdicio de tempo pra mim. Agora não mais ;-)
Quanto ao GlassFish eu não testei, principalmente porque uso o TomCat. Mas me disseram que você pode ter e gerenciar os dois servers no NetBeans, isso é muito bom! Verei mais depois.
A interface do NetBeans é muito boa, limpa... acesso aos comandos é intuitivo, fácil.
Primeira impressão, dou uma nota 8,5 e começarei a utiliza-lo para programas em Java ;-)


Bom! é isso ai gente! um abração!