Aspire 5050-3205 é pop!

Palavras mais buscadas para entrar nesse site segundo o Slimstat desde 15 de dezembro de 2006:

  • tiago – 44 IPs
  • acer 5050-3205 – 36 IPs
  • acer aspire 5050 – 22 IPs
  • acer 5050 – 22 IPs
  • tiago madeira – 11 IPs
  • windows live menseger – 10 IPs
  • LAN HOUSE – 10 IPs
  • 5050-3205 – 9 IPs
  • ACER ASPIRE 5050-3205 – 8 IPs
  • acer 5050 3205 – 8 IPs
  • como entrar no youtube – 8 IPs
  • aspire 5050 – 8 IPs
  • hackear orkut – 8 IPs
  • roubar senha de msn – 6 IPs
  • roubar msn – 6 IPs
  • senhas do msn – 6 IPs
  • “hackear orkut” – 5 IPs
  • ATI Radeon Xpress 1100 – 5 IPs
  • descobrir senha do msn – 5 IPs

Aqueles posts pra conseguir paraquedistas estão rendendo e os ganhos do Adsense desse mês estão melhores que o do mês passado e muito melhores do que do mês retrasado. Mesmo assim ainda estão baixos. Nessa semana eu estou com uma média de um dólar por dia.

Além dessas palavras-chave, também buscaram hotchick, sexygirl, entre outras besteiras assim que eu escrevi no post sobre MSN.

Bom… Pelo menos eu devo estar dando um retorno real pra quem procura sobre o Acer Aspire 5050-3205 no Google. :) O hardware dele está sendo cada vez melhor reconhecido aqui… Não consegui fazer o wireless funcionar, mas agora o som hda-intel e a placa de vídeo estão perfeitas (a Radeon tá fazendo 1600 frames por segundo!) O AltGr+W = ponto de interrogação ainda não funcionou! Modifiquei na pasta symbols do XKB como vários locais na internet dizem, mas não funciona. Novidades a qualquer momento… ;-)

for (d=hoje; d<=17/03; d++) { Estude – OBI }

IMPORTANTE: Esse post não é recomendado pra quem nunca programou. Escrevi sem pensar neles… :-)

Bom… Existem pessoas que sabem programar e não programam. O difícil na arte de programar é pensar, porque o resto é escrever em inglês e se acostumar com uma sintaxe rigorosa.

Comecei ontem a ensinar um amigo a programar em C para participar da OBI 2007, que foi anunciada nessa semana. Eu poderia ensinar Pascal, que é mais que suficiente para olimpíadas (quem conhece o André Linhares entende o que eu quero dizer…), mas resolvi ensinar C porque eu me embabacaria no Pascal e no C eu vejo os blocos mais “definidos” com as chaves; aqueles begins e _ends “sujam” o código. E como diz o lema do sistema desse blog, \code is poetry_.

O reverendo e meus leitores mais novos devem estar se perguntando: como o Tiago é capaz de fazer essas loucuras? É verdade que fiquei um bom tempo sem escrever sobre programação, mas adoro isso! É lazer pra mim e essa também é a minha profissão, já que eu não consigo viver desse blog (por culpa sua que não clica nos meus anúncios…). Só quando começo a brincar é que lembro como é divertido e acho que é porque eu me sinto “no poder”. :-)

Mas voltando ao assunto… Esse meu colega é campeão regional de matemática e tem uma facilidade incrível para matérias exatas (e pras humanas mais ainda, eu acho). Eu estava sem nada pra escrever aqui no blog e resolvi escrever sobre o que eu vou ensinar pra ele amanhã: arrays e for.

Meu aluno está resolvendo a prova da Programação Nível 1 da OBI2005. Ele já resolveu a Frota de Táxi e agora precisa resolver o problema Campos de Minhoca.

O problema é que, pela primeira vez, ele se depara com uma situação em que tem que receber como entrada uma tabela completa! Sugeri que ele usasse dois while, um dentro do outro. Ele pensou um pouco e conseguiu fazer o seguinte código:

scanf("%d %d", &n, &m);

natual=1;
while (natual<=n) {
	matual=1;
	while (matual<=m) {
		scanf("%d", &valor);
		matual=matual+1;
	}
	natual=natual+1;
}

Perfeito. Era o que eu queria que ele fizesse. Mas agora entenda sua situação: como armazenar todos esses números pra depois trabalhar com eles?

Dessa maneira, cada vez que recebemos um novo elemento da tabela, colocamos numa variável valor e ao final do recebimento da entrada ficaremos apenas com o último elemento da tabela.

E então entram os arrays…

Arrays são matrizes de matemática ou, numa língua muito mais fácil, tabelas. Vamos supôr que eu receba 1000 valores e queira saber qual é o maior deles. Imaginem como seria para declarar suas variáveis, recebê-los e tratá-los:

int var1, var2, var3, var4, ..., var1000;

scanf("%d", &var1);
scanf("%d", &var2);
scanf("%d", &var3);
scanf("%d", &var4);
...
scanf("%d", &var1000);

if (var1>maior) {
	maior=var1;
}

if (var2>maior) {
	maior=var2;
}

if (var3>maior) {
	maior=var3;
}

...

Impossível! Totalmente inviável. Então alguém teve a brilhante idéia de criar um elemento que guarda várias variáveis de uma vez. Então surgiram os arrays. Você cria uma só variável e na sua declaração coloca o número de elementos que ele tem dentro de chaves.

int var[1001];

Depois para receber os valores você pode então simplesmente usar o while como usou no exemplo do Campos de Minhoca:

int var[1001], indice;

indice=1;
while (indice<=1000) {
	scanf("%d", &var[indice]);
	indice=indice+1;
}

E para ver qual é o maior deles basta usar mais um while:

indice=1;
while (indice<=1000) {
	if (var[indice]>maior) {
		maior=var[indice];
	}
}

Mas peraí… Então como faríamos no Campos de Minhoca? Lá não temos só uma lista de N números, mas uma tabela mesmo, com altura e largura. É simples, basta fazer com que cada índice dessa lista seja outra lista.

int tabela[1001][1001];

Assim, podemos acessar todos os elementos e pra saber o elemento da coordenada 5, 23 basta usar a variável tabela[5][23].

Aí aquele primeiro código do Campos de Minhoca torna-se:

scanf("%d %d", &n, &m);

natual=1;
while (natual<=n) {
	matual=1;
	while (matual<=m) {
		scanf("%d", &valor[natual][matual]);
		matual=matual+1;
	}
	natual=natual+1;
}

As variáveis [n,m]atual vão crescendo e preenchendo a tabela. :)

Só que acontece que se programássemos dessa maneira gastaríamos uma porção de códigos e ficaríamos confusos pra trabalhar com arrays, tendo que sempre verificar os índices e acabaríamos errando bastante. Então criou-se o for. O for é uma simplificação desse tipo de while. Você diz que:

para todo natual de 1 a n, faça:
	alguma coisa
fim-para

Escrever for em Pascal é super divertido, porque você se sente falando com o computador:

for i:=1 to 100, do begin
	código aqui
end;

No C existe uma sintaxe mais versátil, mas que pode ser um pouquinho mais difícil de entender no início:

for (atribuição; condição; incremento)

A atribuição é onde você coloca o primeiro valor do índice. A condição é a condição para que o enquanto continue funcionando. O incremento é o que ele deve fazer ao final de cada loop (geralmente é aumentar um).

Então, ao invés de fazer esse while:

indice=1;
while (indice<=1000) {
	scanf("%d", &var[indice]);
	indice=indice+1;
}

Você pode escrever:

for (indice=1; indice<=1000; indice=indice+1) {
	scanf("%d", &var[indice]);
}

E como resolver a parte da entrada do Campos de Minhoca sabendo disso?

Simples… Basta colocar um for dentro do outro:

scanf("%d %d", &n, &m);

for (i=1; i<=n; i++) {
	for (j=1; j<=m; j++) {
		scanf("%d", &matriz[i][j]);
	}
}

Observação 1: Escrever variavel++ é a mesma coisa que escrever variavel=variavel+1.

Observação 2: Geralmente utiliza-se i para o primeiro for, depois j, k, l e eu nunca tive que passar do l. :)

Observação 3: Se eu queria um vetor de 1000 posições lá em cima, por que eu declarei 1001? Bom… O C conta a partir de 0. Quando eu peço 1000, ele vai me dar um vetor de 0 a 999. Já que eu queria ter o var[1000] eu precisei declarar de 1000+1=1001.

Ficou claro ou muito confuso? Se deu pra entender isso aí, agora é só mandar a ver no resto do problema! :)

Alguém não sabe quem manda nos morros?

“Aquilo é terrorismo, aquilo não é bandido comum. Pegar um ônibus, tocar fogo e ver pessoas morrendo, tem que ser tratado como terrorismo de Estado, porque é uma provocação ao Estado brasileiro. Não tem meio termo nisso. Não é um bandido comum, é uma ação preparada de desacato ao Estado brasileiro e, portanto, nós temos que tratar assim e enfrentar.”

Força Nacional

Palmas ao governador Sérgio Cabral e ao presidente Lula! Eles mostraram que possuem uma vontade que eu achei que os políticos brasileiros não tivessem: acabar com o crime organizado. É claro que essa minha frase é utópica, porque não vamos conseguir acabar com tudo de uma vez. Porém, as ações da Força Nacional no Rio de Janeiro neste início de ano são uma luz no fim do túnel.

Os nossos amigos sociais democratas, contraditórios até no nome, mais uma vez aproveitam pra criticar o nosso presidente. Depois de perder a eleição se expondo daquele jeito fazendo aquele papel ridículo que fizeram na campanha, os homens de direita estão bravos: Agora dizem que a Força Nacional não precisa atuar no Rio, porque a polícia de lá é super competente e conseguiria cuidar de tudo. É engraçado que eu tenho impressão de que o governador Alckmin não deixou a Força Nacional atuar em São Paulo quando o estado vivia uma guerra civil no ano passado, e os tucanos também cutucaram Lula, dizendo que ele deveria ter feito alguma coisa.

Todo mundo sabe que Comando Vermelho existe há mais de 30 anos. Todo mundo sabe que quem manda nos morros são os traficantes. Todo mundo sabe que morros são esses. Todo mundo fala que o crime organizado precisa acabar. Nesses 30 anos os governantes não fizeram nada.

Minha mente esperançosa torce pra que esse plano dê certo. E que assim o Rio de Janeiro continue sendo como deveria ser…

Minha alma canta
Vejo o Rio de Janeiro
Estou morrendo de saudade
Rio, teu mar, praias sem fim
Rio, você foi feito pra mim.
Cristo Redentor
Braços abertos sobre a Guanabara
Este samba é só porque
Rio, eu gosto de você
A morena vai sambar
Seu corpo todo balançar
Rio de sol, de céu, de mar
Dentro de mais um minuto estaremos no Galeão
Rio de Janeiro, Rio de Janeiro…

(Tom Jobim, Samba do Avião)

E o Rio de Janeiro continua lindo…

A Viagem de Théo

A partir de hoje publicaremos sugestões de livros com temática parecida com a do nosso site, junto com os habituais artigos do Mal Vicioso. Queremos compartilhar com você algumas das fontes de nossas idéias e também queremos que você compartilhe conosco livros que você leu e gostou.

O primeiro que vamos sugerir é A Viagem de Théo.

  • Autora: Catherine Clément (francesa)
  • Editora (no Brasil): Cia. das Letras
  • Páginas: 614
  • Sinopse: Por que tantas pessoas se aproximam de uma religião ou sentem vontade de ter uma vivência espiritual qualquer? Por que não somos todos ateus? Foram perguntas assim que levaram Catherine Clément a escrever A viagem de Théo, um romance sobre os fundamentos das religiões mais praticadas no mundo: catolicismo, judaísmo, budismo, protestantismo, islamismo, etc. Com um conhecimento profundo do tema e um admirável equilíbio intelectual, ela nos faz viajar na companhia de Théo e Marthe – ele, um adolescente que vive enfiado nos livros e sofre de uma doença grave; ela, uma mulher cosmopolita que esbanja vitalidade. Juntos eles vão aos principais centros sagrados do mundo e, enquanto visitam os templos e participam das festas rituais, oferecem-nos a certeza de que as religiões são uma das maiores aventuras que a humanidade já pôde sonhar.

Capa do livro

Gosto de livros que induzem a filosofar de uma maneira simples, por meio de uma história, tais quais O Mundo de Sofia, Bíblia, Al Corão, Tudo depende de como você vê as coisas, Efeito Borboleta (filme) e Alice no País das Maravilhas.

A Viagem de Théo é um ótimo romance que desmistifica o mundo das religiões e entrete o leitor nos mistérios que envolvem o próximo destino do protagonista. Em alguns momentos, o enredo cansa de tão óbvio (a autora faz questão de dizer que sit down significa sente-se).

Algo notório é o fato de que o universo religioso apresentado a Theo não é constituído apenas por cristãos, judeus e islâmicos. Aqui onde vivemos não se fala de religiões asiáticas como o budismo e o hinduísmo. No máximo seus deuses são retratados em cangas de praia ou camisetas, mas nada sabemos sobre eles. Esses credos e muitos mais são muito bem abordados no livro, de forma clara até a um leitor leigo. Enquanto viaja, a autora descreve os fiéis, a fé, os locais onde seus ritos são praticados e o principal: em que acreditam

Ainda não terminei a leitura, (eu e a Carol estamos na página 234), mas vale a pena tanto pelo romance como pela didática! ;-)

A primeira pessoa do texto é o Tiago, mas foi a Carol que editou as palavras pro texto ficar legível…

© 2005–2020 Tiago Madeira