sexta-feira, 29 de julho de 2011

Dicas de Programação: Enum em Objective C

Estou fazendo um curso de Objective C e me surpreendi que a maioria das estruturas em C podem ser utilizadas nesta linguagem.

Portanto, você pode criar um tipo struct do mesmo jeito em C:

typedef struct Usuario {
char* nome;
char* senha;
} Usuario;

E também um tipo enumerado:

typedef enum Estado {
AC,
AM,
AP,
SP
} Estado;

Utilizando estas, do mesmo jeito que você utiliza em C:

+(NSString*) obtemNomeEstado: (Estado) estado {
switch (estado) {
case AC: return @"Acre"; break;
case AM: return @"Amazonas"; break;
}
return nil;
}

Legal, não? :)

Até mais!

Dicas de Programação: Argumentos variaveis em C/C++

Primeiramente, precisamos saber o que são argumentos variaveis...
Argumentos variaveis são instruções que podem receber 1 ou mais parâmetros, não contendo um número definido destes.
Um exemplo clássico é o método printf do stdio.h:

int a = 10;
char* b = "dez";
printf("%d %s", a, b);

Para criar uma função assim, primeiramente é necessário incluir a biblioteca stdarg.h:

#include <stdarg.h>

Depois, podemos criar a função com o último parâmetro definido com 3 pontos (...):

void printNumber(int a, ...) {
}

Para percorrer os parâmetros passados (onde a quantidade não esta definida), devemos usar o tipo va_list e as funções va_start, va_arg e va_end:

void printNumber(int a, ...) {
va_list args;
int i = a;
va_start(args, a);
while (i) {
printf("%d ", i);
i = va_arg(args, int);
}
va_end(args);
}

Agora, é só chamar assim:

int main(int num_args, char** args) {
printNumber(1,2,3,4,5,6,7,8,9,10, NULL);
return 0;
}

Obs.: Como se utiliza a função printf é necessário incluir a biblioteca stdio.h

Até mais!

quinta-feira, 28 de julho de 2011

Dicas de Programação: Como executar um programa Java dentro de seu programa Java?

Pergunta estranha não?

É que eu não tinha mais nada para inventar... :P

É possivel executar um programa Java dentro de outro de várias maneiras... Vou citar duas delas:

1) Rodando via a classe/objeto Runtime:
Runtime.getRuntime().exec("java HelloWorld");

2) Chamando diretamente o método estático main da outra classe:
public static void main(String[] args) throws Exception {
...
HelloWorld.main(args);
...
}

É isso aí... Será que isso é interessante para alguém? :P

Até mais!

Alguém já jogou Cilada?

Lembrando o passado (de novo...). :P

Cilada (não a série do Multishow, mas o brinquedo) é um jogo de quebra-cabeça que não tinha uma figura definida, no caso, constituia em um jogo de encaixe de peças, essas tinham figuras geométricas vazadas e se encaixavam no "tabuleiro".


Eu tinha um... Era um jogo meio solitário (para um jogador), mas muito divertido.

Sei lá, deu saudades de falar da infância...
Logo, logo vou falar de Aquaplay, Cara a cara, Pula-pirata... :P

Até mais!

quarta-feira, 27 de julho de 2011

Dicas de Programação: Como criar um captcha em PHP?

Para criar um simples Captcha em PHP, basta usar a biblioteca GD. Veja como instalar e configurar no site do PHP:
http://www.php.net/manual/pt_BR/book.image.php

Depois de instalado e configurado, basta usar as funções imagecreate (cria um objeto "imagem"), imagecolorallocate (seta a cor do desenho), imagechar (desenha um caracter na imagem), imageline (desenha uma linha na imagem) e imagepng (cria a imagem do tipo png):

<?php
class Captcha {
var $img;
var $characters;
//Construtor da classe
function __construct() {
//Cria o "objeto" imagem
$this->img = imagecreate(80,20);
//Obtem 4 caracteres randomicos
for ($i = 0; $i < 4; $i++) {
$this->characters .= chr(rand(ord("A"), ord("Z")));
}
}

function draw() {
//Seta o content no header da "página" para imagem do tipo png
header('Content-type: image/png');
//Seta a cor de fundo da imagem em "branco"
$bg = imagecolorallocate($this->img, 255, 255, 255);
//Para cada caracter (um dos 4 caracteres)
for ($i = 0; $i < strlen($this->characters); $i++) {
//Seleciono uma cor randomica...
$color = imagecolorallocate($this->img, rand(0,255), rand(0,255), rand(0,255));
//Obtenho o caracter
$character = substr($this->characters, $i, 1);
//Desenho o caracter
imagechar($this->img, 5, (20 * $i), 0, $character, $color);
//Desenho uma linha em posicao randomica
imageline($this->img, rand(0,80),rand(0,20),rand(0,80),rand(0,20),$color);
}
//Crio a imagem
imagepng($this->img);
}
}
//Crio o objeto Captcha
$captcha = new Captcha();
//Crio a imagem
$captcha->draw();
?>

Acho que é isso... Não é o melhor captcha do mundo, mas funciona. :P

Até mais!

Dev C++ - IDE livre de C++ para MS-Windows

Pessoal, desculpe por não postar nada nestes últimos dias... É que estava ocupado com alguns problemas de saúde, nada para se preocupar, mas precisava realmente me cuidar...

Agora, voltamos a programação normal. :)

Muita gente reclama das IDEs disponiveis para C/C++... O Visual Studio custa caro e é pesado, o Eclipse C/C++ é pesado e precisa da JVM para rodar... Procurando o aí, encontrei uma IDE free e leve chamada Dev C++.


Ele já vem com o compilador GCC/G++ e o depurador GDB integrados.

Não é uma maravilha, mas quebra um galho para quem não tem dinheiro para comprar outras ferramentas (o que é o meu caso...). :)

Para saber mais e baixa-lo, utilize o link abaixo:
http://www.bloodshed.net/devcpp.html

Até o próximo post. ;)

sexta-feira, 1 de julho de 2011

JQuery - Framework para Javascript

Acho que este framework, todo programador conhece, mas não custa falar dele... :P

O JQuery é uma biblioteca de javascript que facilita (e muito) em colocar "efeitos" nas páginas HTML. O legal, é que esta biblioteca é compatível com a maioria dos "grandes" navegadores (entende-se MS-Internet Explorer, Mozilla Firefox, Google Chrome e Apple Safari :P), ou seja, não é necessário fazer os "grandes ifs" para detecção da versão do navegador.

Colocando em poucas palavras: Este framework é muito bom!

Para mais informações, entre no site do produto:
http://jquery.com/

Até mais!