Agnor's HQ

Aula 01 - Primeiro Programa

Conceitos-Chave:

- main(), como função principal
- cout, como comando de escrita na consola
- endl, como comando de mudança de linha
- cin.get(), como comando de espera pelo ENTER
- Bloco, o que está entre chavetas
- Instrução, que necessita sempre de um ';' no final
- Comentário, como ferramenta para ajudar a documentar o código

C++ - breve introdução

C++ é uma linguagem de programação, criada em 1983 por Bjarne Stroustrup. É, até agora, a linguagem mais usada nos videojogos: C++ foi utilizado em "bombas" como Far Cry, Half-Life 2, Unreal Tournament 2004, e muitos outros. Acho que poderia arriscar que 99% dos melhores jogos dos últimos 10 anos terão usado ou C (C++ é uma evolução da linguagem C) ou C++.
Esta linguagem que vão aprender fornecerá as bases para os jogos que poderão fazer, sejam eles uma aventura em modo de texto, ou um jogo em 3D que vai revolucionar o Mundo. No entanto não direi que seja fácil de aprender. A impaciência poderá levar muitos a desistir, pois no príncipio verão que os programas que farão não serão muito atraentes. Mas acreditem, vale a pena!

4 razões para aprender C++

Exemplo 1.1 - O primeiro programa

#include <iostream>
using namespace std;

int main()
{
    cout << "Este e o primeiro programa de um futuro programador de jogos" << endl;
    cin.get(); // Pára o programa até o utilizador premir uma tecla

    return 0;
}

Exemplo 1.1 - Primeiro Programa

O meu primeiro programa foi assim, só que em vez de estar escrito "Este é o primeiro programa de um futuro programador de jogos" era o mítico "Hello World"
Vou explicar linha por linha o que acontece.

#include <iostream>

O #include faz com que o conteúdo do ficheiro que está a sua frente, entre <> (neste caso o ficheiro iostream) seja inserido no programa. Sem ele não poderíamos utilizar o comando cout, nem o endl. Estes comandos não existem em C++ puro, mas graças à biblioteca iostream, eles passam a existir. Esta biblioteca disponibiliza ferramentas para o programador tratar do input e do output, tornando a vida do programador muito mais fácil.
Não se preocupem se ainda não perceberam, vamos aprender em lições mais avançadas.

using namespace std;

Esta instrução também é necessária para se poder utilizar os comandos cout e endl. Resumidamente, todos os comandos que fazem parte da biblioteca std (standard) do C++ estão dentro de uma namespace. Deste modo é necessário mostrar ao compilador que pretendemos usar (using) a namespace std para termos acesso aos comandos cout e endl.
Esta instrução também vai ser explicada em lições futuras.

int main()

Qualquer programa de C++ tem de ter uma função main, que é a primeira função a ser chamada pelo programa. Uma função em C++ declara-se da seguinte forma:

tipo_de_retorno nome_da_funcao (argumentos)
{ instruções }

O tipo_de_retorno é o tipo da variável de retorno. No caso da função main, é o int (do inglês integer), que significa que a função irá actuar até encontrar uma instrução (return) a devolver um valor inteiro.
O nome_da_funcao é o identificador (nome com que chamamos a função) e, como esta é a função principal, é main.
Os argumentos são facultativos (neste exemplo não são usados, logo os '()' apresentam-se vazios) e serão explicados mais à frente

Não se preocupem se não perceberam os termos. A matéria de funções será explicada na lição 6.

cout

O cout representa o console output, que neste caso é a janela que é aberta pelo programa. Como se trata do output, nós queremos "mandar" para lá texto, e fizemos isso utilizando o operador de output (<<). Pensem nestes símbolos como se fossem um sinal a indicar a direcção: nós queremos mandar a expressão "Este e o primeiro programa de um futuro programador de jogos" e o comando endl para o console output. Tem bastante lógica :P .

"Este e o primeiro programa de um futuro programador de jogos"

Isto é uma string em C++. As strings são um conjunto de caracteres e são definidos entre aspas "".

endl

O endl (end line) faz com que se mude de linha (é o mesmo que usar o ENTER num editor de texto)

cin.get()

O cin.get é uma função que fica à espera que o utilizador carregue numa tecla, impedindo que o programa abrisse e desligasse logo.

return 0;

O return faz com que a função termine e devolve (ou "retorna") um valor à função. Neste caso (na função main) serve para dizer à função main para parar e devolve-lhe o valor 0, significando que tudo ocorreu como previsto. Mais sobre isto na lição 6.

Conceito de bloco

Também convém falar no conceito de bloco. Um bloco é o que está dentro de chavetas em C++. Neste caso serve para dizer que o código que está dentro das chavetas '{' '}' pertence à função main.

Conceito de instrução

A maior parte dos erros cometidos pelos aspirantes a programadores em C++ (e é um erro comum em programadores mais experientes :) é o esquecimento de colocar os ';' no final de cada instrução. A maior parte das vezes (no programador menos experiente) isto deve-se à dúvida de quando se deve colocar os ';'.

Cada ';' deve ser colocado no fim de cada instrução em C++. Uma instrução pode ser definida como um passo. Cada vez que definimos algo para o programa fazer, temos que colocar um ';' no final.

Há algumas excepções, como as instruções do preprocessador (as que são precedidas por um '#', como o #include) e a definição de funções (não colocam ';' no final das chavetas das funções). Felizmente o erro não é muito grave, uma vez que o compilador acusa-o logo e só com prática é que irão superá-lo.

..............

Neste ponto só precisam de saber que a estrutura mais básica de um programa em C++ é esta. Podem alterar à vontade o que está depois de "int main() {" e antes de "cin.get();" (adicionando outros cout, com outros textos). Podem também retirar o cin.get() a ver o efeito (o programa abre e fecha logo).

Comentários

Os comentários servem para explicar a outras pessoas o que uma parte/instrução do código faz. Pode-se prescindir deles, mas é aconselhável a sua frequente utilização de modo a perceber-se melhor o código.

Há 2 tipos de comentários:

// Comentário de uma linha - Faz com que tudo o que esteja nessa linha seja um comentário.

/* Comentário que pode ser de várias linhas */ - Faz com que tudo a seguir ao /* seja um comentário, até encontrar o */.

Dica:

Normalmente no início de cada programa há uma breve descrição do programa. Por exemplo:

/**********************************

Programa de C++
Autor: João Portela aka Agnor
Data: 23 de Dezembro de 2004
Desc: Programa de introdução a C++

**********************************/

Exemplo 1.2 - Protótipo de um Menu de um jogo

Este é apenas um protótipo de um menu. Nenhum dos comandos funciona (obviamente), serve apenas como um exemplo final.

/**********************************

Exemplo 1.2 - Protótipo de um menu
Autor: João Portela aka Agnor
Data: 16 de Agosto de 2006
Desc: Protótipo de um menu de um jogo,
      só de leitura.
http://agnor.gamedev-pt.net/

**********************************/

#include <iostream>
using namespace std;

int main()
{
    cout << "Menu de Jogo" << endl;
    cout << endl;    //cria uma linha vazia
    cout << "1 - Novo Jogo" << endl;
    cout << "2 - Continuar Jogo" << endl;
    cout << "3 - Opcoes" << endl;
    cout << "4 - Ajuda" << endl;
    cout << "5 - Creditos" << endl;

    cin.get(); // Pára o programa até o utilizador premir uma tecla

    return 0;
}

Exemplo 1.2 - Protótipo de um Menu de Jogo

Final da aula 01 de C++:

Próxima aula -> C++ 02 - Variáveis

Fazer o download do código fonte dos exemplos da aula WinZip
Fazer o download da aula em PDF (versão experimental) WinZip Acrobat Reader

Ir para o topo da página

Aulas de C++

Anúncios