Últimos Posts

[Programação em C] Tamanho de uma string

On: segunda-feira, 19 de março de 2012

Olá pessoal, hoje vamos ver um código que contém uma função que nos dá a quantidade de caracteres de uma string. Sabe-se que existe a função strlen do cabeçalho string.h para fazer tal tarefa, mas sempre é bom entender realmente como ela funciona, nada melhor do que implementá-la.

Código:
 

O código acima é bem simples, eu tenho uma função chamada strlen que recebe uma string (cadeia de caracteres) e dentro dela existe um comando de repetição (while) para contar a quantidade de caracteres que essa string possui. O '\0' marca o final da string.

JAVA - Exemplo simples de Interface

On: terça-feira, 6 de março de 2012

Olá pessoal, hoje vamos falar um pouco sobre interfaces em Java. Interfaces são de extrema importância na orientação a objetos.

A interface não implementa métodos, ela contém apenas as assinaturas dos métodos. A implementação dos métodos da interface é feita pelas classes que implementam a interface.

O interessante de se utilizar interfaces é que elas são bem mais flexíveis quanto a mudanças de implementação. É importante ter em mente também que as interfaces não possuem atributos, mas só constantes.

O código abaixo exemplifica a declaração de uma interface:


Na linha 5 temos no lugar da palavra "class", temos a palavra "interface" para indicar que ali é uma interface. Na linha 7 temos a assinatura do método chamado calcularArea.

Vamos agora ver o código de duas classes que implementam a interface mostrada anteriormente. Primeiro iremos ver o código da classe Quadrado:

 

A classe Quadrado implementa a interface CalculaArea. Veja que eu utilizei a palavra reservada "implements" para implementar a interface.

Linha 7: declaração da variável "lado" referente ao lado do quadrado.

Linha 9: construtor da classe Quadrado, ele recebe uma variável do tipo double que representa o lado do quadrado.

Linha 13: implementação do método calcularArea, esse método foi definido na interface CalculaArea. A classe Quadrado implementa a interface CalculaArea, logo, ela é obrigada a implementar todos os métodos dessa interface. Na linha 14 é retornada a área do quadrado (lado * lado).

Vejamos o código da classe Circulo que também implementa a interface CalculaArea:


Utilizei implements porque a classe Circulo também implementa a interface CalculaArea. Na linha 7 temos a declaração da variável "raio" referente ao raio do círculo.

Linha 9: construtor da classe Circulo. Esse construtor recebe o raio.

Linha 13: temos novamente a implementação do método calcularArea, só que a implementação desse método na classe Circulo é diferente da implementação na classe Quadrado, já que o modo de calcular a área de um quadrado difere do modo de calcular a área de um círculo.

Percebeu a importância de se utilizar interface? Eu tenho duas classes que representam duas figuras geométricas, eu preciso saber a área dessas figuras, então eu tenho uma interface que contém uma assinatura de um método que será implementado nas classes que implementam a interface. 

Se eu tivesse uma classe chamada Losango eu poderia implementar também a interface CalculaArea, já que essa interface contém um único método chamado calcularArea e, portanto, seria interessante ter esse método implementado na classe Losango.

É através da interface que podemos especificar quais métodos as classes terão que implementar. Lembrando que uma interface não pode ser instanciada e que a classe que implementa a interface deve implementar todos os métodos da interface.


Segue o código da classe que contém o método principal:


Linha 9: Quadrado é um objeto do tipo CalculaArea porque implementa a interface CalculaArea. O que eu estou fazendo é utilizando o tipo CalculaArea para referenciar o objeto do tipo Quadrado.

Linha 10: semelhante a explicação da linha 9.

Linhas 12 e 13: mostro a área do quadrado e do círculo respectivamente.

[Programação] Carregando um som com SDL_mixer

On: segunda-feira, 5 de março de 2012

Olá pessoal, aqui estamos com mais um post sobre a biblioteca SDL. Dessa vez iremos carregar um som com a biblioteca SDL_mixer.

Caso você não tenha a SDL_Mixer, poderá baixá-la clicando aqui.

O código está todo comentado, segue o link para você fazer o download:

Clique aqui para fazer o download do código

[Programação] Desenhando texto com SDL_ttf

Olá pessoal, nesse post iremos aprender como desenhar um texto na tela utilizando a biblioteca SDL_ttf. Trata-se de mais uma biblioteca auxiliar que foi criada para a SDL.

Caso você não tenha a biblioteca SDL_ttf, poderá baixá-la clicando aqui.

O código está todo comentado, segue o link para download:

Clique aqui para fazer o download do código 

Para baixar fontes é só ir em sites como o NetFontes (http://www.netfontes.com.br).

Execução do programa:

Carregando uma imagem com SDL_image

Olá pessoal, hoje iremos aprender a carregar uma imagem utilizando a biblioteca SDL_image.

A biblioteca SDL tem uma função para carregar imagens BMP (clique aqui para ver o post que eu explico como carregar uma imagem BMP com SDL), mas sabemos que esse formato possui várias limitações. Por isso iremos utilizar a bibilioteca SDL_image, essa biblioteca tem uma função que carrega arquivos nos mais diversos formatos tais como BMP, PNG, JPG, TIF etc.

Caso você não tenha a SDL_image, você poderá baixar a versão para o seu sistema no link: http://www.libsdl.org/projects/SDL_image/.

Clique aqui para fazer o download do código

JAVA - Inverter String com reverse

On: terça-feira, 28 de fevereiro de 2012

Olá pessoal, hoje irei mostrar um método muito fácil em JAVA para você inverter uma string. Iremos utilizar a classe StringBuffer que contém o método reverse. Veja o código abaixo:

 

Linha 6: inicializo uma string com o conteúdo "www.GeeksBR.com".

Linha 7: crio um novo objeto da classe StringBuffer e passo a string criada anteriormente para o construtor de StringBuffer.

Linha 9: mostro a string invertida (de trás para frente) utilizando o método reverse da classe StringBuffer.

Quaisquer dúvidas, deixem nos comentários, até a próxima!

JAVA - Copiando um vetor utilizando a função clone

On: quarta-feira, 22 de fevereiro de 2012

Olá pessoal, nesse post iremos ver como é fácil copiar todo um vetor para outro vetor utilizando a linguagem JAVA. Iremos utilizar a função clone. Veja o código abaixo:

 

No código acima eu tenho um vetor de inteiros chamado vetA que possui quatro elementos (1, 2, 3, 4). Depois eu faço "vetB = vetA.clone()", isso irá copiar todos os elementos de vetA para vetB. Logo após eu mostro todos os elementos de vetB para comprovar que eles foram realmente copiados.

[Programação] Ordenação com Quick Sort em C

On: terça-feira, 21 de fevereiro de 2012

Olá pessoal, nesse post vamos ver a implementação em C do algoritmo de ordenação quick sort (ordenação rápida).

Código:


Na linha 12 eu tenho um typedef para não ter que colocar const void* nos parâmetros da função comp_nomes.

Linhas 23 à 26 é dado um nome para cada um dos quatro jogadores utilizando a função strcpy da biblioteca string.h, a strcpy copia uma string para outra.

Linha 29: chamo a função qsort da biblioteca stdlib.h para ordenar o vetor vet pelo nome dos jogadores. O primeiro parâmetro da qsort é o vetor (vet), o segundo é a quantidade de elementos, o terceiro é o tamanho do tipo (tjogador) e o último é um ponteiro para a função de comparação.

A função de comparação deve retornar -1, 0 ou 1, se o primeiro elemento for menor, igual, ou maior que o segundo, respectivamente, de acordo com o critério de ordenação adotado. O critério de ordenação adotado nesse código é a ordenação dos nomes dos jogadores. Para isso eu utilizo a função strcmp (linha 15) que é uma função que compara strings, ela retorna 0 se os nomes forem iguais, retorna -1 se o primeiro nome preceder o segundo e 1 se o segundo nome preceder o primeiro.

Então é isso pessoal, quaisquer dúvidas, deixem nos comentários. Até a próxima!

[Programação] Ordenação Bolha Recursiva em C

Olá pessoal! Eu já tinha postado sobre o a ordenação bolha (bubble sort) (clique aqui para conferir), mas agora irei postar a implementação recursiva desse método de ordenação.

Veja o vídeo da animação abaixo para você entender melhor como funciona o método bolha:



Código:


Na linha 33 é onde está a recursão, se flag for diferente de 0 é porque houve troca de posição, então eu chamo a função bolha_recursiva passando a quantidade de elementos menos 1.

[Programação] Mostrar string invertida em C utilizando a função strrev

Olá pessoal, hoje iremos ver um código que inverte (mostra de trás para frente) uma string. Vamos utilizar a função strrev da biblioteca string.h. Veja o código abaixo e perceba a simplicidade para inverter uma string utilizando a função strrev:

 

O código é muito simples, basta você passar a string que você quer inverter para a função strrev, ela retorna a string invertida.

Quaisquer dúvidas, deixem nos comentários, até a próxima!