Posts de Maio, 2009

h1

Não morri

Maio 31, 2009

Relaxa coração!

Me perguntaram se é verdade que eu morri (??), mas é mentira! É que…

Eu comecei a trabalhar *.* mó legal aê, sô!

Não me deixam programar nada (por enquanto), mas beleza, minha hora vai chegar. Por enquanto eu só faço coisinhas pequenas XD

Bem, prometo que amanhã, ou melhor, hoje a tarde, eu posto a primeira parte do tutorial de XNA.

Beijos

h1

Torre de Hánoi

Maio 26, 2009

Muito bem, vamos treinar você!

Você conhece a Torre de Hanói?

Esta torre:

torre

Bem, As regras são as seguintes: Você deve mudra todos os anéis para outro pino, porém um anel grande não pode ficar em cima do maior. Você sempre deve deixar o menor em cima. E só pode mover um anel por vez.

Sua tarefa é fazer o algoritmo para resolve-lo. Lembra o que é algoritmo? http://amethistyreport.wordpress.com/2009/05/15/comecando-finalmente-em-logica/

Bom, vou começar pra vocês verem:

inicio;

tirar o anel a da torre 1;

por o anel a na torre 2;

tirar o anel b da torre 1;

por o anel b na torre 3;

fim;

Vamos lá, é simples, são só 3 anéis. Resposta virá logo.

h1

laço de repetição WHILE

Maio 26, 2009

Me dei conta que eu tava indo com muita sede ao pote! Preciso explicar outras coisinhas. Relaxem, o joguinho que vamos fazer em XNA já tem um teco pronto, mas eu quero fazer com vocês. Mas antes preciso passar uma última coisinha. Sobre as bibliotecas do DKP? Eu ainda tô tentando. Relaxa.

O que eu preciso passar antes do jogo? Laços de Repetição. Depois disso dá pra dar os primeiros passos para um jogo. Coisa simples, mas já dá pra começar. Enfim, o que são laços de repetição, Mayogax?

Bem, imaginemos a vida de uma pessoa sem vida (??):

enquanto estiver vivo:

acordar todo dia cedo;

ir para o trabalho;

sair do trabalho;

ir para a faculdade;

sair da faculdade;

chegar em casa;

dormir;

fim

Isso todo dia enquanto o cara estiver vivo. Chato, né? Todo dia!! Bem, para isso acontecer todo dia agente têm duas escolhas: copiar estas linhas e ir colando toda hora até o fim de seus dias, ou, fazer um laço para ele se repetir sozinho.

Olhe, digamos que precisamos fazer uma pergunta muitas vezes, é melhor escreve-la muitas vezes ou só mandar ela repetir?

É para isso que usamos os laços de repetição. Vamos aprender 3: WHILE, DO WHILE e FOR.

LAÇO WHILE:

O laço while repete um bloco de códigos enquanto uma condição for atendida. Sua estrutura é:

while(condição)

{

bloco;

}

Simples, né?

Ex:

int a,b;

a=0;

while(a<5)

{

cout<<”Ola, digite um numero”<<endl;

cin>>b;

cout<<”voce digitou “<<b;

a=a+1;

}

Bem, vejamos, o que o programinha faz?

O programa cria duas variáveis int, atribui 0 a a e depois chega no while e o while pergunta: a é menos que 5? A resposta é sim, então o programa entra no while. Entrando no while ele pede para a pessoa digitar um número, lê o número, diz qual número a pessoa digitou e por último temos a linha a=a+1;

O que significa a=a+1?

Significa: o valor que tinha antes em a será trocado pelo valor antigo mais um. Ou seja, se era 0 agora vai ser 1.

E ai chegamos nas chaves. Ao chegar nas chaves o programa volta a linha while e vê se a condição ainda é atendida. A variável a ainda é menor que 5? É. Então o programa roda de novo dentro do while.

Legal né?

E eu insisto, qualquer dúvida do que estamos vendo podem perguntar. A seguir veremos outros laços.

h1

Por que existem tantas linguagens?

Maio 25, 2009

“Uma pergunta bastante relevante que surge na cabeça de quase todos os programadores certa hora da vida é: por que existem tantas linguagens de programação? Outra bastante comum é: qual delas é melhor? Alguém poderia responder: existem tantas porque uma vem para corrigir as falhas das outras, e a melhor é a que tem menos falhas. Certo? Errado.”

É assim que começa o post do VidaGeek. O post original você encontra em: http://vidageek.net/2008/08/11/linguagens-de-programacao/#more-356

Eu achei o texto muito bom. Concordo na parte sobre começar com C(eu acrescento o C++ no meio). Uma boa leitura para quem já se fez esta pergunta titulo-do-post.

Aliais, feliz dia do orgulho nerd!!!

h1

Blocos condicionais: If e Else

Maio 24, 2009

Olá!!! Eu não morri. Pô, um dia e meio de descaço, quase dois, ué XD

Bem, esta semana agente começa com o nosso jogo em XNA. Eu tava desistindo de brigar com as bibliotecas do Palib (no DeviKitPro), até que li que ajudaria eu não instalar ela, e só descompaquitar tudo lá dentro. Ainda não funcionou. ò.ó

Bem, eu queria brincar com vocês sobre com uns programinhas mais legais, mas pra isso ainda tem alguns passos. Bem, hoje vou falar sobre blocos condicionais.

O que é um bloco condicional?

Bloco condicional é um bloco de instruções que só é feito se for atendida uma certa condição. Vou explicar com um exemplo normal:

SE o despertador tocar:

Eu vou levantar;

SE NÂO

Eu vou enrolar na cama até ele tocar;

Bem, é simples né? Se a condição do despertador tocar for atendida (se for verdadeira) vai acontecer algo (levantar), se o despertador não tocar acontece outra (não levanto!!).

Não precisa ter o SE NÂO. As vezes não precisamos de uma contra-condição, digo, se a primeira não for verdadeira não precisamos fazer nada.

E como falar isso em programação? Bem, SE em inglês é IF, certo? Em programação é ele que vamos usar. E o SE NÃO é o ELSE. Tudo com letra minuscula. Exemplo:

int numero;

cout<<”Digite um numero”<<endl;

cin>>numero;

if(numero==1)

{

cout<<”Voce acertou”<<endl;

}

else

{

cout<<”Voce errou”<<endl;

}

Seguinte: a condição que deve ser atendida deve estar entre parênteses. Os dois sinais de igual é uma comparação. Se (o numero for igual 1)… entenderam?

DUAS NOTAS:

1-Quando usamos um só sinal de igual é por que estamos atribuindo uma valor a algo.

int numero;

numero=5;

(cria a variável numérica chamada numero; a variável numero terá o valor de 5)

Quando usamos dois sinais de igual é por que estamos comparando;

int numero;

cin>>numero;

if(numero==0)

2-Quando começamos um bloco de condições usamos as chaves. Elas indicam quando começa o bloco que pertence ao if e quando acaba o bloco do if. É obrigatório, a não ser que se tenha só uma linha de condição. Se tiver mais de uma precisa ter as chaves. Mas para ajudar a enxergarmos melhor o programa iremos usar sempre, okay?

int numero;

cin>>numero;

if(numero==0)

{

cout<<”Voce acertou”<<endl;

}

Bem, vamos lá!! Treine agora!!

h1

Diretivas

Maio 22, 2009

OI. Bem, resolvi falar sobre diretivas. Não se iluda, eu não sei mais do que o que é necessário para mim. Então peguei um reforço no livro “Treinamento em linguagem C++, módulo 1, segunda edição, de Victorine Viviane Mizrahi” Editora Pearson, e desta vez mais recente: ano de 2006.

Eu vou dar uma resumida e uma ajeitada para os newbies. XD De newbie para newbie. Assim vocês vão entender melhor o código que estamos usando nas nossas aplicações. Caso não se lembre vá à nossa primeira aplicação: http://amethistyreport.wordpress.com/2009/05/17/nossa-primeira-aplicacao/

Diretivas do pré-processador

A primeira linha de nosso programa não é uma instrução de linguagem C++. É uma diretiva do pré-processador.

O pré-processador é um programa que examina o programa-fonte e execulta certas modificações com base em instruções chamadas diretivas. Toda diretiva deve ser escrita em uma única linha e começando com #. Elas auxiliam o desenvolvimento do código-fonte.

A diretiva #include provoca a inclusão de outro arquivo no código-fonte. Na verdade ele troca a linha #include<iostream> por todo o conteúdo do arquivo iostream. Isso acontece antes do programa ser compilado. Ou seja, quando compilado o programa já terá no lugar da linha de inclusão todo o conteúdo de iostream.

O arquivo iostream contém as definições e declarações necessárias para o uso de objetos stream em nosso programa.O cout só é possível graças ao iostream. A iostream contem definições de declarações-padrão de leitura e gravação.

Se você estiver usando um compilador mais antigo, que não é o nosso caso aqui na Amethisty Report, você pode chamar a iostream com #include<iostream.h> . Os arquivos com extensão .h não usam namespace. Por tanto não precisariam da diretiva using.

O namespace é uma região que agrega um identificador a todos os nomes declarados dentro dela. Poderíamos dizer que namespace é o sobrenome. O objeto cout está declarado no namespace std. Toda vez que usarmos o cout precisamos usá-lo assim: std::cout<<”Hello World”; .Vários componentes de I/O estão declarados no namespace std, e para não escrever toda hora usamos o using.  A diretiva using permite que os nomes dentro de um namespace possam ser usados sem explicar o qualificador.

Por isso a linha: using namespace std;

Muito bem, agora já sabemos algumas diretivas. Qual a próxima lição, MayogaX? Eu não sei.

Lembrando que eu praticamente copiei o texto da Victorine Viviane Mizrahi. Mas é melhor ver o que uma profissional diz do que uma novata. Quero saber como eu iria explicar isso assim de cabeça. Ia dar merd@. Aliais, até agora, tirando este texto que foi “praticamente” copiado, eu to explicando bem?

h1

SPOJ!

Maio 22, 2009

SPOJ!! Sphere Online Judge

Nani? O que é isso? Bem, é uma brincadeira geek. Você entra, se cadastra, escolhe um problema, pensa, programa e vê se tá certo. Há um rank e sistemas de pontuação. Quanto mais difícil for o problema que você resolveu mais pontos você ganha. Eu e meus amigos estamos numa colocação baixa. Apesar de serem programas simples há toda uma lógica matemática por trás.

Sei que a maioria dos meus leitores imaginários não está apto para isso, mas não custa dá uma olhada. http://br.spoj.pl/

Quem sabe não te vejo na Olimpíada de Programação?

h1

Wolfram Alpha

Maio 21, 2009

Oi gente!! Parando a programação normal (o piada ruim) eu vim mostrar algo legal. Um jovem site muito loco, feito por um dos homens mais inteligentes da atualidade. O site é o Wolfram Alpha http://www84.wolframalpha.com/ e é muito legal.

Se você queria saber quantos acessos diários o Google tem pesquise dentro dele www.google.com , se você faz um curso ferrado de engenharia e não sabe como calcular uma derivada peça que o Wolfram Alpha faz para você. Ele faz muitos cálculos, alguns você nunca viu, e mostra o gráfico e como fazer para por esta expressão em um programa.

Ele mostra muitas coisas. Você quer saber a diferença entre dois países? Ele mostra. O ranking do seu site? Ele mostra, como sair com aquela garota linda? Isso ele não mostra.

Porém é perfeito para nerds curiosos. Vale a pena.

h1

Baixando o Visual C# e o XNA

Maio 21, 2009

Bem vindos, meus leitores imaginários, bem vindos!

Enfim, lá estava eu matutando quando pensei em fazer o Projeto NDSN e o Projeto XNAF ao mesmo tempo. Entre aspas por que ainda estou brigando com o DevKitPro, mais precisamente com as bibliotecas dele. Eu prenso em fazer o mesmo joguinho em ds e em xna. Primeiro exemplo, bem simples.

Começando com o XNA: primeiro baixe as ferramentas. O Xna é um framework que nos possibilita fazer jogos que rodem em Windows e XBOX360. Nós vamos começar com Windows. É mais simples e tem gente que não tem um xbox para testar os jogos. Eu por exemplo.

Bom, primeiro baixe um teco do Visual Studio, digo, baixe o Visual C# 2008: http://www.microsoft.com/express/download/default.aspx esta é a versão express. Não é recomendada para profissionais, mas como você não é profissional, ou não tem dinheiro para pagar a licença, pode usar esta mesmo. Lembre-se de baixar o C#, e não o Vb ou o C++ ou o J++, por exemplo. Fique esperto no link!

Bem, baixe e instale.

Depois baixe o XNA 2.0: http://www.microsoft.com/downloads/details.aspx?familyid=DF80D533-BA87-40B4-ABE2-1EF12EA506B7&displaylang=en

Não precisamos do 3.0.. ele te dá a possibilidade para criar coisas para o Zune. Ah… não é nosso interesse neste tutorial.

Instale o XNA.

Bem, por hoje é só que eu tô com sono. Se alguém teve dificuldade me avisa. Provavelmente você só vai terminar de baixar eles amanhã. É pesado ><

Bom, amanhã eu falo do joguinho que vamos começar a fazer.

Torçam para que eu consiga arrumar as bibliotecas do DevKitPro para conseguirmos começar o NDSN ao mesmo tempo.

Um abraço

h1

Comando CIN: entrando valores no programa

Maio 20, 2009

Bem, agora mais uma lição. Quem ta treinando programação levanta a mão!! \o/

Enfim, até agora aprendemos: a criar uma aplicação, a escrever mensagens na tela, a criar variáveis do tipo int e float. Muito bem, e agora?

Agora vamos incrementar os nossos programinhas.

Lembram-se como abrir um novo projeto? Se não lembram leiam aqui: http://amethistyreport.wordpress.com/2009/05/17/nossa-primeira-aplicacao/

Bom, abra um projeto novo e o código a seguir que estiver em negrito escreva no lugar correspondente:

#include <cstdlib>

#include <iostream>

using namespace std;

int main(int argc, char *argv[])

{

int numero1, numero2, resultado;

cout<<”Digite dois numeros”<<endl;

cin>>numero1;

cin>>numero2;

resultado=numero1+numero2;

cout<<”A soma eh: “<<resultado<<endl;

system(“PAUSE”);

return EXIT_SUCCESS;

}

Rode o programa. Você lembra como se roda o programa, certo? Se não olhe de novo naquele artigo, o http://amethistyreport.wordpress.com/2009/05/17/nossa-primeira-aplicacao/

Muito bem, vai aparecer uma telinha preta da morte, vai pedir dois números. Digite um número, dê enter, digite outro número e dê enter e você verá o resultado da soma dos dois números.

UIA!!! Como fizemos isso?

Seguinte, lembra do papo de variáveis? http://amethistyreport.wordpress.com/2009/05/20/aprendendo-sobre-uma-variavel/

Bom, você criou três variáveis: uma para receber um número, outra recebe outro número e a final é o resultado da soma das duas primeiras variáveis. Legal, NE?

Mas como o valor que nós digitamos virou à variável numero1 e depois o segundo número virou à variável numero2? Você viu duas linhas escritas cin>>numero? Então, este comando faz com que o que o usuário (a pessoa)  digita entre na variável correspondente.

Depois que uma variável recebe um valor ela pode ser usada depois como fizemos na linha:

Resultado=numero1+numero2;

Legal né?

Agora faça suas calculadorinhas! Mostre-me depois como ficou!