Legacy tiagomadeira.net

Archive for the ‘Lógica’ Category

Menção Honrosa na ORM

Thursday, November 24th, 2005

Vi ontem no site da Olimpíada Regional de Matemática o resultado deste ano. Fiquei só com uma menção “horrorosa”, no nível 3. Até que tá bom… Eu já não esperava muito, porque em nenhuma das duas fases eu fui bem. Então aproveito pra pensar as coisas pelo lado bom: quem ganha menção honrosa é premiado primeiro na cerimônia de premiação da UFSC! :)

Meu irmão (Bruno) e o Ivo pegaram bronze na mesma categoria… Nas outras categorias, não sei como o pessoal do Colégio foi porque não sei o nome completo das criaturas que fizeram a prova.

Meu fórum, SOSPHP, voltou ao ar depois de uns problemas com o servidor; agora tá de servidor novo! (que chique…) Participem, pô!


O que eu andei lendo por aí…

Expressões Regulares no C

Sunday, October 9th, 2005

Sem querer, visitando a página do cara que desenvolve as Funções ZZ com o Aurélio, o Thobias, acabei descobrindo que o C possue uma biblioteca para expressões regulares! Não sei porquê, mas sempre pensei que o C não tivesse esse suporte e nunca parei pra investigar…

Agora descobri que o C tem uma biblioteca chamada regex.h com quatro funções simples para ERs:

int regcomp(regex_t *preg, const char *regex, int cflags);
int regexec(const regex_t *preg, const char *string, size_t nmatch, regmatch_t pmatch[], int eflags);
size_t regerror(int errcode, const regex_t *preg, char *errbuf, size_t errbuf_size);
void regfree(regex_t *preg)

Não vou aumentar muito esse assunto, mas deixar aqui o link do artigo do Thobias: thobias.org/doc/er_c.html.

A propósito… A página dele é muito legal! Você se sente usando Linux modo-texto… :lol:

E já que falei sobre ERs e Funções ZZ, vou por último falar de um patch que eu fiz pra função ZZCalcula dar as respostas em notação científica e com precisão maior, o que é extremamente importante para eu não precisar ficar contando zeros no novo grupo de estudo de física (que fiz com o prof. Valdir, o Ivo e o John) onde estamos estudando principaplmente astronomia e ter respostas precisas. O patch está disponível aqui e serve para a última versão das ZZ (5.9): Patch para Funções ZZ 5.9, para ZZCalcula resolver as operações com notações científicas e precisão mais alta. Para quem já modificou muito seu arquivo das funções, ou não gosta de patches, publiquei também no meu servidor somente o código inteiro da nova função ZZCalcula com esse recurso: zzcalcula.txt

Hmmm… Eu resolvi começar a floodar mais aqui no blog, isso é, usar a idéia de assuntos diferentes em posts diferentes… Espero que ninguém que recebe e-mails sempre que eu publico uma coisa nova se estresse muito; mas se tiver chato eu dou um jeito de fazer um cron (meu novo servidor tem suporte a cronjobs! E já que eu nunca usei, seria muito legal aprender…) ;)

Programação Orientada a Objetos

Saturday, September 24th, 2005

Estou finalmente começando a aprender orientação a objetos. É claro que o conceito eu já conhecia e até como usar “cin” e “cout” no C++, mas agora resolvi estudar a fundo a Programação Orientada a Objetos, porque vejo que ela está cada vez mais comum entre os programadores. Estou aproveitando pra aprender C++, o que pode ser bastante útil em olimpíadas, para ter strings com o tipo string, poder declarar variáveis no meio, além de programar orientado a objetos.

Hmmm… Eu estava lendo uns tutoriais de introdução a POO e agora vou tentar fazer algumas coisas em C++ e em PHP também (porque é uma linguagem que eu domino mais, fica mais fácil entender POO). Se alguém quiser estudar comigo, entre em contato (e a mesma coisa se alguém tiver uma apostila legal e está afim de ajudar).

XUL

Durante as aulas, estou estudando XUL. É uma linguagem de interface gráfica, tipo um HTML, mas que tem umas coisas bem interessantes. O único problema é que só roda em Mozilla… E também estou aumentando bastante meu conhecimento de JavaScript utilizando XUL e iniciando uma fase nova de tableless com DOM. :)

Meetweb, tableless

Semana passada eu peguei dois serviços da Meetweb. São serviços de converter um site para tableless e programá-lo em PHP usando banco de dados MySql (ou seja, minha especialidade). Por isso também, estou entrando nessa nova fase de tableless que citei no parágrafo acima.

Desvendando os segredos do C

É incrível que quando eu estudei C no início eu passei por alguns conceitos que na época eu achava complicados. Além dos operadores binários que o Paulo Matias me ensinou semana passada, ontem é que eu finalmente aprendi as funções de alocação dinâmica do C… E é tão simples! :D

Olimpíada Regional de Matemática

Ontem fiz a prova da segunda fase (final) da Olimpíada Regional (catarinense) de Matemática. Dos cinco problemas, resolvi quatro e acho que acertei três e meio. Um deles eu pensei certo, mas dei a resposta errada… Mas já que a prova era discursiva, acredito que eles dêem no mínimo metade dos 20 pontos do problema. Não sei se dá pra ganhar medalha, porque a prova tava bem fácil então mais gente deve ter ido bem.

Problemas Lógicos

Estou meio parado quanto a solução de problemas lógicos, mas estou estudando bastante para resolvê-los de forma melhor. Por enquanto, nenhum código novo. Tenho uma lista de problemas da UVa para resolver e ainda falta o último problema do capítulo 1 do USACO Training Gateway (Checkers Challenge).

De volta à resolução de problemas

Friday, September 16th, 2005



Resultado do Superprime Rib

Hoje, depois de umas férias de dois meses, resolvi um problema lógico do USACO Training Gateway: o Superprime Rib é um problema bem simples em que precisa-se determinar os primos de N dígitos (com N máximo = 8 ) que, tirando o último dígito, continuam sendo primos. A solução é trivial, uma função recursiva bastante simples que se auto-explica no meu código, que está disponível aqui. O problema passou de segunda porque na primeira, por falta de hábito, eu tinha colocado scanf e printf ao invés de usar o sistema da USACO onde deve-se usar arquivos de entrada e saída.

Agora para eu ir para a seção 2 do USACO Training Gateway falta só o programa Checker Challenge, que parece ser complicado.

Instalei os pacotes do Slackware 10.2, que saiu essa semana, no laptop. Não tem nenhuma grande mudança, mas é sempre bom estar com os programas atualizados…

O Paulo Matias (Thotypous) me convidou para fazer parte da equipe de desenvolvimento da distro Guaranix, consertando alguns bugs do XDirectFB (que eu citei aqui). Acho que irei pegar um trabalho com a Meetweb também (o Hugo Dias, para quem eu fiz o serviço da Coalizão Antituberculose me convidou) e estou acabando o site do Colégio Salesiano, que é totalmente administrável em PHP e usa um banco de dados MySql. Ele deve sair semana que vem…

Dia 24 é a segunda fase da Olimpíada Regional de Matemática. Essa semana fiz a folhinha de treinamento e dos seis problemas, consegui fazer cinco (na verdade, alguns problemas – ou todos – eram repetidos do ano anterior e por isso fica mais fácil, porque eu já lembrava o caminho).

Only variables can be passed by reference

Friday, September 16th, 2005

Instalei o PHP 5.0.5 no servidor do Colégio Salesiano na semana passada. E descobri que criaram um novo erro agora (do tipo fatal) para quando eu passo uma função como argumento de outra. “Fatal Error: Only variables can be passed by reference”. Bom… Uma função nada mais é que uma variável, afinal é pra isso que serve o seu retorno. Mas agora o PHP nos força, por exemplo, a fazer:

$variavel2=str_replace("a", "b", $variavel);
$variavel3=funcao($variavel2);
?>

… ao invés de fazer como eu sempre fiz para economizar linhas:

$variavel3=funcao(str_replace("a", "b", $variavel));
?>

Realmente não entendi o porquê da mudança. Pra mim tava muito bom do jeito anterior… E não sou só eu que faço isso. Os caras que fizeram o phpBB também passaram várias vezes funções como argumentos de outras e isso fez com que eu perdesse algum tempo hoje trocando todos as funções dessa maneira que mostrei acima no fórum do Colégio…

Alguém entende esses caras?