Você está na página 1de 8

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 chaves
- 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 principio 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++

é ultra-rápida - é em parte por culpa dos jogos que os computadores (e principalmente as


placas gráficas) têm evoluído de uma forma estonteante. Os jogos são os programas que
exigem mais do computador e é por isso que a escolha dos profissionais recai em C++.
permite vários estilos de programação - enquanto linguagens mais modernas, como Java e
C#, só permitem programar utilizando o paradigma de Programação Orientada a Objectos, o
C++ permite construir programas usando 4 estilos de programação diferentes. Aliás, os
primeiros programas irão ser feitos utilizando o paradigma procedimental, mais à frente será
utilizado o paradigma de Programação Orientada a Objetos.
está bastante difundida - há muita informação sobre a linguagem, difundida em livros e na
Internet. Além disso, há bastantes bibliotecas conhecidas que funcionam (e encontram-se bem
documentadas) com C++, como o OpenGL, DirectX, SDL, Lua, Havoc.
é o Standard na indústria - se quiserem entrar na indústria de programação de jogos têm que
saber esta linguagem. Além disso, depois de aprenderem bem esta linguagem, são capazes de
utilizar em pouco tempo outras linguagens similares, como C# e Java.

O primeiro programa – EXPLICAÇÃO PASSO A PASSO

#include <iostream>
using namespace std;

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

return 0;
}
Primeiro Programa
O meu primeiro programa foi assim, só que em vez de estar escrito "Este é o primeiro
programa de um futuro programador" era o mítico "Hello World"

#include <iostream>
O #include faz com que o conteúdo do arquivo que está a sua frente, entre <> (neste caso o
arquivo 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 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á atuar 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 fosse um sinal a indicar a direçã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 chaves em C++.
Neste caso serve para dizer que o código que está dentro das chaves '{' '}' 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 se deve à
dúvida de quando se devem 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 exceções, como as instruções do processador (as que são precedidas por um '#',
como o #include) e a definição de funções (não colocam ';' no final das chaves 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á superá-lo.

Neste ponto só precisam 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 as outras pessoas o que uma parte/instrução do código
faz. Pode-se prescindir deles, mas é aconselhável a sua freqüente 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++
Data: 23 de Dezembro de 2014
Desc: Programa de introdução a C++

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

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.

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

Protótipo de um menu
Data: 16 de Agosto de 2006
Desc: Protótipo de um menu de um jogo,
só de leitura.

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

#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 - Créditos" << endl;

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

return 0;
}
Compile os programas abaixo:
1) //O Primeiro Programa útil: Uma Calculadora de Somar
#include <iostream>
using namespace std;

int main()
{
int a, b, c;
cout << "Introduza o primeiro numero, DIGITE ENTER e introduza o 2º:" << endl;
cin >> a >> b;
c = a + b;
cout << "A soma dos 2 números e igual a " << c << endl;
cin.get();
cin.get();
return 0;
}

2) // operador de atribuição
#include <iostream>
using namespace std;

int main () {
int a, b; // a:?, b:?
a = 10; // a:10, b:?
b = 4; // a:10, b:4
a = b; // a:4, b:4
b = 7; // a:4, b:7
cout << "a:";
cout << a;
cout << " b:";
cout << b;
return 0;
}

3) // operadores de atribuição compostos


#include <iostream>
using namespace std;
int main () {
int a, b=3;
a = b;
a+=2; // equivalente a -> a=a+2
cout << a;
return 0;
}

4) // operador condicional
#include <iostream>
using namespace std;
int main ()
{
int a,b,c;
a=2;
b=7;
c = (a>b) ? a : b;
cout << c;
return 0;
}
5) #include <iostream>
using namespace std; // para o uso de cout e endl

int main()
{
int a, b, c;
cout << "Introduza o primeiro numero, DIGITE ENTER e introduza o 2º:" << endl;
cin >> a >> b;
c = a + b;
cout << "A soma dos 2 números e igual a " << c << endl;
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.*/
cin.get();
return 0;
}

6) #include <iostream>
using namespace std;

int main()
{
int a, b;
bool varteste;

cout << "PROGRAMA DE COMPARACAO" << endl;


cout << "\nInsira dois valores (insira o primeiro, pressione ENTER e"
<< " depois insira o segundo):"; //isto foi só para mostrar que isto é possível
//ver explicação na nota abaixo
cin >> a >> b;

varteste = a == b; //varteste vai assumir o valor de 1 se a for igual a b


cout << "Igualdade entre " << a << " e " << b << " e igual a " << varteste << endl;

varteste = a > b;
cout << "Teste de superioridade de " << a << " para " << b << " e igual a " << varteste
<< endl;

varteste = a < b;
cout << "Teste de inferioridade de " << a << " para " << b << " e igual a " << varteste
<< endl;

cout << "\n\nCodigo: \n\n0 -> Falso\n1 -> Verdadeiro" << endl;

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

return 0;
}

7) Adivinhe o número
#include <iostream>
using namespace std;

int main()
{
int numero = 8; //escolham um número qualquer
int tentativa; //a tentativa do utilizador
cout << "ADIVINHE O NUMERO " << endl;
cout << "\n\nInsira a sua tentativa (1-10): ";
cin >> tentativa;

cout << "\nEscolheu o numero \'" << tentativa << "\'." << endl;
cout << "O numero escolhido pelo programador e \'" << numero << "\'." << endl;

cout << "\nSe acertou a primeira, parabéns!" << endl;


cout << "Se não acertou algo me diz que vai acertar a seguir :)" << endl;

cin.get();
cin.get();
return 0;
}

8) //Menu de jogos
#include <iostream>
using namespace std;

int main()
{
int escolha;

cout << "MENU DE UM JOGO" << endl;


cout << "\n\n1 - Novo Jogo" << endl;
cout << "2 - Carregar Jogo" << endl;
cout << "3 - Opções" << endl;
cout << "4 - Sair" << endl;

cin >> escolha;

if (escolha == 1)
cout << "Escolheu começar um novo jogo" << endl;

else if (escolha == 2)
cout << "Escolheu carregar um jogo antigo" << endl;

else if (escolha == 3)
cout << "Opcoes:" << endl;

else if (escolha == 4)
cout << "Deseja mesmo sair?" << endl;

else // Caso contrário...


cout << "Escolha errada" << endl;

cin.get();
cin.get();
return 0;
}

9) //Dias do mês

#include <iostream>
using namespace std;

int main()
{
int escolha;
cout << "Quer saber o numero de dias de que mês? 1 - 12" << endl;

cin >> escolha;

switch (escolha)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12: //caso seja 1 ou 3 ou 5 ou 7 ou...
cout << "Esse mês tem 31 dias" << endl;
break;

case 4:
case 6:
case 9:
case 11: //caso seja 4 ou 6 ou 9 ou 11...
cout << "Esse mês tem 30 dias" << endl;
break;

case 2: //caso seja 2 (Fevereiro)


cout << "Esse mês tem 28 ou 29 dias" << endl;
break;

default: // caso não seja nenhuma das escolhas


cout << "Numero errado" << endl;
break;
}

cin.get();
cin.get();

return 0;

Você também pode gostar