Tiago Madeira Inferências aleatórias de um cérebro em versão alpha

"Só se dedicará a um assunto com toda a seriedade alguém que esteja envolvido de modo imediato e que se ocupe dele com amor. É sempre de tais pessoas, e não dos assalariados, que vêm as grandes descobertas."
(Arthur Schopenhauer)

Arquivo do mês: May, 2005

22/05/2005

Estatísticas, Programação Dinâmica, OBI Programação Nível 2

Em primeiro lugar, quero dar a notícia de que as visitas do site só tem crescido. Nesse mês, o site tem recebido 100 ips únicos por dia e uns 500 hits. Para um pequeno blog, são estatísticas boas. As palavras-chave mais procuradas e a posição do meu site na procura por ela no Google (somente em português) são:

  • tableless - sétima posição
  • qemu - décima-primeira posição
  • problemas lógicos - quarta posição
  • dobradura - décima-sexta posição
  • gráfico de setores - décima-oitava posição
  • permutação - sexta posição
  • obi2005 - nona posição E "obi 2005" - terceira posição
  • biografia de linus torvalds - sexta posição emoticon

Ainda tem outras procuras interessantes e outras nada a ver, mas essas são as mais procuradas. É incrível como as pessoas clicam na minha biografia quando procuram pela biografia do criador do Linux! :blink: Acho legal as pessoas acharem meu site procurando por tableless, problemas lógicos, algoritmos, OBI2005 e nomes de problemas lógicos que eu fiz (também tem muita gente que procura por mmc.c, mdc.c e outras coisas .c).

Quanto a navegadores, o IE6 ainda tá dominando tudo. É uma pena que o pessoal use esse navegador pra entrar no meu site cujo um dos principais objetivos é apresentar os padrões web, tableless e faço de tudo pra acabar com o monopólio desse péssimo navegador e incentivar o software livre.

Por causa dos trabalhos, tenho programado muito em PHP, feito muitos designs no Fireworks (tô tendo que rebootar direto, porque desenho lá e depois venho pro Linux programar) e escrito XHTML/CSS. Alterei um pouco o programa ouvir (agora versão 1.1!). Ele já tá bem mais legalzinho do que aquela primeira versão que eu tinha postado e depois eu posto ele aqui.

Hmmm... Estive procurando umas coisas no livro vermelho (Algoritmos: Teoria e Prática) e descobri duas coisas desse livro.

  1. Ele tem tudo. É um livro completo, procura qualquer coisa de algoritmos ali que se acha tudo.
  2. É ilegível. :blink:

É muito complicado entender as coisas contidas nele, então tenho estudado um pouco por materiais na internet mais simples e só depois que peguei mesmo a coisa que leio no livro. Mas mesmo assim, bóio um pouco quanto a custos.

Por causa do problema Mochila (Pedido de Desculpas da OBI2005), acabei tentando aprender alguma coisa sobre programação dinâmica, mas não tô entendendo NADA! Só entendi o conceito e pra que serve, mas como fazer não sei. Não entendo como fazer as recorrências (e daí de repente, abro o índice do livro vermelho e acho lá um capítulo só sobre como fazer recorrências! - mas não entendo nada... :( )

Mas os outros problemas da OBI2005 Programação Nível 2 estão todos resolvidos! São bem fáceis. O único problema difícil do nível 2 da programação era esse de programação dinâmica mesmo... Publiquei eles na seção de scripts e vou fazer um pequeno comentário sobre cada um deles. Ah... E já que eu não peguei a prova de verdade (o Paulo Victor me passou um resumo dos problemas), não coloquei limites e saídas corretos.

Bafo

Um programa ridículo, igual o Cofrinhos da Vó Vitória (que foi o primeiro programa da OBI que eu fiz, quando tava começando a aprender C).

Solução: bafo.c

Transmissão de Energia

Um programa de grafos que busca ver se o grafo é conexo ou não. Uma simples busca de profundidade resolve.

Solução: transmissao.c

Vivo ou Morto

Um jogo de Vivo ou Morto bem fácil de fazer mas difícil de explicar.

Solução: vivo.c

Mini-poker

Um jogo chato... :lol: Uma baita falta de criatividade. Um programa não-lógico onde são dadas cinco cartas e eu devo determinar a pontuação do cara...

Solução: poker.c

Saiu o gabarito da iniciação... Meu irmão, Lucas, acertou 14 no nível de quintas e sextas séries (ele tá na quinta) e ganhou Menção Honrosa. E o nosso, não vai sair não?

Compare Preços de: notebooks, acer aspire, hp pavilion, computadores, pentium 4, nintendo wii, ps3, celulares, câmeras digitais

2 comentários

20/05/2005

Projetos do Salesiano, SED/Bash, Programação Nível 2

Em primeiro lugar, publiquei dois projetos do colégio (dentro dos padrões web, um que não funciona direito no IE) sexta-feira. O pessoal tava reclamando que a página tava desatualizada e tinha gente procurando por "ginsal 2005" no Google e chegando aqui, então estou postando os links para o projeto Ginsal 2005 e Páginas Literárias aqui mesmo:

Eles não foram publicados antes porque tô com bastante coisa pra fazer lá no colégio, entre essas um site totalmente novo.

E mesmo que você não seja do colégio, dá uma olhada nos códigos totalmente dentro dos padrões nos dois sites. O Páginas Literárias usa até tags q e cite na página inicial! Legal também o rodapé que eu coloquei nos dois projetos, sugerindo "qualquer navegador", sem ser IE.

Em segundo lugar, obrigado ao Paulo Victor Eufrásio, de Fortaleza, que me mandou uma síntese dos problemas da OBI2005 Programação Nível 2! Já fiz alguns e depois publicarei tudo junto. O nível não tá muito alto, mas achei difícil aquele problema Mochila (o povo que foi na Programação pra UNICAMP ano passado já sabia a solução, mas eu não!).

E finalizando, hoje dei meus primeiros passos no sed. Eu tava achando uma vergonha ter que passar pelo aplicativo php e usar ereg_replace nos meus programas Bash e adorei o sed! Criei um programinha bem legal para ouvir músicas. Postei os screenshots no Flickr e o código aqui embaixo.

#!/bin/bash
toca() {
       echo "^[[31m^[[1m$1"'a. ocorrência^[[0m'
       musica="`head -$1 ~/.tmp-musica | tail -1`"
       nome="`echo $musica | sed -e 's/\(.*\)\/\(.*\)\/\([0-9]*\) \(.*\)\.mp3/\4/'`"
       autor="`echo $musica | sed -e 's/\(.*\)\/\(.*\)\/\([0-9]*\) \(.*\)\.mp3/\1/'`"
       album="`echo $musica | sed -e 's/\(.*\)\/\(.*\)\/\([0-9]*\) \(.*\)\.mp3/\2/'`"
       echo "Nome:    ^[[33m^[[1m$nome^[[0m"
       echo "Autor:   ^[[33m^[[1m$autor^[[0m"
       echo "Álbum:   ^[[33m^[[1m$album^[[0m"
       echo "Caminho: ^[[33m^[[1m$musica^[[0m"
       play "$path/$musica"
       echo ""
}
path="/mnt/ntfs/Documents and Settings/Tiago Madeira/My Documents/My Music"
echo "^[[36m^[[1mouvir 1.0 (c)^[[0m"
echo "^[[1mpor Tiago Madeira (contato em tiagomadeira.net^[[0m"
echo ""
echo "^[[1mEntrando no diretório das músicas...^[[0m"
cd "$path"
echo "^[[1mProcurando palavras-chave...^[[0m"
tree -f * | grep -i "$1.*\.mp3" > ~/.tmp-musica
 
echo "^[[1mFormatando a(s) palavra(s)-chave...^[[0m"
sed -e 's/^[| \-]*//' ~/.tmp-musica > ~/.tmp-music
 
mv ~/.tmp-music ~/.tmp-musica
echo "^[[1mContando número de ocorrências encontradas...^[[0m"
wc -l ~/.tmp-musica > ~/.wc-tmp-musica
echo "^[[1mFormatando número de ocorrências encontradas...^[[0m"
num=`sed -e 's/\([0-9]*\) \(.*\)/\1/' ~/.wc-tmp-musica`
 
echo ""
 
echo "^[[34m^[[1mFoi(ram) encontrada(s) $num ocorrência(s):^[[0m"
cat -n ~/.tmp-musica | sed -e 's/^[[:blank:]]*\([0-9]*\)[[:blank:]]*\(.*\)/\1: \2/'
 
echo ""
 
echo "^[[31m^[[1mDigite o número da música que você deseja ouvir,"
echo "ou 't' para tocar todas ou 's' para sair.^[[0m"
echo ""
 
while :; do
 printf "^[[31m^[[1m#: ^[[0m"
 read d
 case $d in
  's'|'S')
   break
   ;;
  't'|'T')
   i=1
   while [ "$i" -le "$num" ]; do
    toca $i
    i=`funcoeszz zzcalcula $i+1`
   done
   ;;
  *)
   toca $d
   ;;
 esac
done

rm ~/.tmp-nome > /dev/null
rm ~/.tmp-musica 2> /dev/null
 
echo "^[[1mAté a próxima!^[[0m"

Agora já modifiquei bastante esse programa e ele tá na minha seção Portifólio, mas essa aí foi a primeira versão.

Eu nunca tinha feito nada tão evoluído no Bash e agora tô até começando a me achar um programador bash. Incrível como é legal desenvolver nele! :)

No mais, não aconteceu nada de novo. Só tô decepcionado por ter errado um problema da OBI, cheio de trabalhos de escola mas desenvolvendo bastante coisa legal aqui agora que meus sistemas estão ficando estáveis.

Compare Preços de: notebooks, acer aspire, hp pavilion, computadores, pentium 4, nintendo wii, ps3, celulares, câmeras digitais

Escreva um comentário!

18/05/2005

Solução dos Problemas da OBI2005

Agora que eu acho que todas as escolas já submeteram as soluções dos problemas da Programação Nível 1 da OBI desse ano, publiquei na seção de solução de problemas lógicos as minhas quatro soluções, em C.

O último deles (Trilhas) tá meio problemático. Tá fazendo um monte de coisa que não precisava... :S É que deu uns problemas lá na hora e eu tava cansado por causa do Duende e daí tive lag pra interpretar o enunciado e já que o tempo tava acabando por causa de problemas com o computador onde tava fazendo a prova eu fiz de uma maneira bem precária! Acho que ele tá com erros...

O do Duende é o mais interessante. Os outros dois não tiveram muita graça. O Trilhas também era bem fácil, mas inesperadamente o meu cérebro deu um Segmentation Fault quando fui fazer ele.

Gostaria que se alguém achasse algum erro em algum dos scripts me avisasse. O pessoal da OBI ainda não divulgou um gabarito pra testar os programas e nem o resultado. Acredito que semana que vem deve sair alguma coisa...

[update] A solução dos problemas da Programação Nïvel 2 também já estão resolvidos agora. É só procurar pelo nome na seção de scripts.[/update]

Compare Preços de: notebooks, acer aspire, hp pavilion, computadores, pentium 4, nintendo wii, ps3, celulares, câmeras digitais

2 comentários

Assine via RSS

Assine gratuitamente o meu blog e receba todas as atualizações na hora, em seu agregador de feeds favorito.

Seja o 231º assinante

Busca no blog

Escreva palavras-chave para buscar e clique em Pesquisar.

Busca Google

Blogs de minha autoria

Publicidade

Dreamhost

Creative Commons - Some rights reserved tiagomadeira.net © Todo o conteúdo deste blog, exceto quando especificado o contrário, está licenciado sob uma Licença Creative Commons por Tiago Madeira. Os comentários são de responsabilidade de seus respectivos autores.