Desenvolvimento de
Jogos e Entretenimento
Digital
Oficina temática:
Algoritmos e Programação
Aula 2: Introdução ao C++
Professor: Sandro Rigo
Roteiro


Introdução
Estrutura de programas em C++





Variáveis e tipos de dados
Comandos
Estruturas de controle e seleção
Uso de vetores
Exercícios
Introdução

Algoritmo

Sintaxe (livre) para a descrição de soluções
Introdução

Algoritmo


Sintaxe (livre) para a descrição de soluções
Definição de variáveis e estruturas de dados
Introdução

Algoritmo



Sintaxe (livre) para a descrição de soluções
Definição de variáveis e estruturas de dados
Organização em blocos de operações
Introdução

Algoritmo




Sintaxe (livre) para a descrição de soluções
Definição de variáveis e estruturas de dados
Organização em blocos de operações
Mapeamento para linguagem de programação
Introdução

Algoritmo





Sintaxe (livre) para a descrição de soluções
Definição de variáveis e estruturas de dados
Organização em blocos de operações
Mapeamento para linguagem de programação
Validade: planejamento, teste, comunicação
Introdução

Linguagem de programação

Possui sintaxe própria e rígida
 Conjunto de palavras reservadas
 Bibliotecas padrão de funções
 Ambiente de desenvolvimento
Introdução

Linguagem de programação

Possui sintaxe própria e rígida
 Conjunto de palavras reservadas
 Bibliotecas padrão de funções
 Ambiente de desenvolvimento

Permite declaração de variáveis
Introdução

Linguagem de programação

Possui sintaxe própria e rígida
 Conjunto de palavras reservadas
 Bibliotecas padrão de funções
 Ambiente de desenvolvimento

Permite declaração de variáveis
Permite definições de blocos de comandos

Introdução

Linguagem de programação

Possui sintaxe própria e rígida
 Conjunto de palavras reservadas
 Bibliotecas padrão de funções
 Ambiente de desenvolvimento

Permite declaração de variáveis
Permite definições de blocos de comandos
Permite organização de funções e módulos


Introdução

Linguagem de programação

Possui sintaxe própria e rígida
 Conjunto de palavras reservadas
 Bibliotecas padrão de funções
 Ambiente de desenvolvimento

Permite declaração de variáveis
Permite definições de blocos de comandos
Permite organização de funções e módulos
Utilizada para a implementação de algoritmos



Introdução

Algoritmo => linguagem de programação
Exibir o resultado
C++
Cout<< endl<<“Resultado: “ <<valor<<endl;
C
printf(“\nResultado: %d\n”,valor);
Mapeamento
para
a linguagem
de
programação
PHP
echo(“\nResultado: “.$valor.”\n”);
PASCAL
write(“Resultado: “);
Writeln(valor);
Python
print “\nResultado:”
print valor
ASSEMBLY
valor dw 00
mens db 13,10,“Resultado:”
res db 0000
db “$”
.......
;conversão de valor/ASCII
........
mov ah,9
mov dx, offset mens
Int 21h
Introdução

Alguns conceitos compartilhados




Variáveis
Tipos de dados (e estruturas de dados)
(inteiro, caractere, ponto flutuante, lógico, ....)
Comandos ( e blocos de comandos )
Rotinas (e módulos)
Introdução

Alguns conceitos compartilhados
Definir o número de valores
Repetir
Ler o valor da nota
Somar valor lido a valor total
média = valor total / número de valores
Exibir média
....
cout << “Número de alunos: “;
cin >> nro_alunos;
...
while (contador < nro_alunos){
cout << “Nota: “;
cin >> valor;
total=total + valor;
contador ++;
}
.....
media = total / nro_alunos;
...
cout << “Média : ” << media;
...
Introdução

Implementação de programas
disco
Gera arquivo fonte
(.cpp)
Editor de texto
Lê arquivo fonte (.cpp)
Gera arquivo objeto
Compilador
Lê arquivo objeto,
Lê arquivos de bibliotecas
Gera arquivo executável
Editor de ligação
(linker)
No Visual C++:
-File New
-File Save
-Build compile
-Build build .exe
Introdução

Implementação de programas
No Visual C++:
disco
Gera arquivo fonte
(.cpp)
Editor de texto
Lê arquivo fonte (.cpp)
Gera arquivo objeto
Compilador
Lê arquivo objeto,
Lê arquivos de bibliotecas
Gera arquivo executável
Editor de ligação
(linker)
-File New
-File Save
-Build compile
-Build build .exe
L Z ø+A2L k .drectve
b $
.debug$S
„ † H B.CRT$XCU
– ¢ @ 0À.text
= À ý % P`.rdata
=
@[email protected]$S
N N œ
H B.text
Ö ° †#
¨$
P`.text$x
D% W%
P`.xdata$x
` u% Õ%
@ @@.debug$S
& '(
HB.text
N Ÿ( í(
)
P`.debug$S
± ) È)
HB.text
* Ü)
* P`.debug$S
Ž
* š*
HB.text
5 ®* ã* ÷*
P`.debug$S
w
H B-defaultlib:libcpd -defaultlib:LIBCD -defaultlib:OLDNAMES -editandcontinue -include:___pfnBkCheck
J
ptrdiff_t
__exString
exception
u size_t
y
_s__CatchableType
! wchar_t
6
_TypeDescriptor
J
FILE
f
_PMFN
p [email protected] +
D + X
\
k
o ƒ P
‡ P œ ¯ §
³ §
á
å F š U‹ìƒì@SVW
}À¹ ¸ÌÌÌÌó«h h è ƒÄ3À_^[ƒÄ@;ìè ‹å]Ã
# 1 5 ! *
,
Bem vindo
Introdução

Implementação de
programas
disco
Gera arquivo fonte
(.cpp)
Lê arquivo fonte (.cpp)
Gera arquivo objeto
Lê arquivo objeto,
Lê arquivos de bibliotecas
Gera arquivo executável
No Visual C++:
Editor de texto
-File New
-File Save
-Build compile
-Build build .exe
// teste in C++
#include <iostream>
Compilador
int main()
{
std::cout << "Bem vindo C++!\n";
Editor de ligação
return 0;
(linker)
}
Estrutura de programas em C++

Conceitos básicos




Código fonte
Bibliotecas de recursos
Compilação e ligação
Estrutura geral



Cabeçalho: comentários, bibliotecas e definições
Bloco principal (em geral: int main() )
Blocos auxiliares (classes, rotinas ou funções)
Estrutura de programas em C++

Exemplo de estrutura geral
#include <stdio.h>
/* impressão de uma mensagem simples */
int main()
{
printf(“\n Mensagem inicial em c! \n”);
return 0;
}
Estrutura de programas em C++

Exemplo de estrutura geral
Biblioteca utilizada
#include <stdio.h>
linha de comentário
/* impressão de uma mensagem simples */
int main()
Bloco principal
{
printf(“\n Mensagem inicial em c! \n”);
return 0;
}
Estrutura de programas em C++

Outro exemplo de estrutura geral
/* Nome: imprime.cpp
/* Autor: Sandro Rigo
/* Data de criação: 18/09/2004
/* Descrição: teste simples de impressão...
// bibliotecas básicas : entrada e saída
#include <stdio.h>
// protótipos de rotinas ou classes utilizadas
// estruturas de dados e variáveis
// definições utilizadas
int main()
{
// trecho do programa principal
//.......
return 0;
}
//definições de rotinas auxiliares
*/
*/
*/
*/
Estrutura de programas em C++

Inclusão de bibliotecas



Indicação de módulos a serem utilizados
Uso da diretiva “#include”
(para o pré-processador)
Formato geral:
#include <nome>
(busca arquivo ”nome” no diretório padrão)
 #include “nome”
(busca arquivo ”nome” no diretório atual)

Estrutura de programas em C++

Inclusão de bibliotecas

Exemplos
//para suporte em operações de e/s de “streams”
#include <iostream>
// para inclusão de biblioteca particular
#include “minha_biblioteca.h”
Estrutura de programas em C++

Inclusão de bibliotecas
 Lista completa (Standard C++ Library Reference)
(a ser vista durante o curso)
<algorithm> · <bitset> · <complex> · <deque> · <exception> ·
<fstream> · <functional> · <iomanip> · <ios> · <iosfwd> ·
<iostream> · <istream> · <iterator> · <limits> · <list> · <locale> ·
<map> · <memory> · <numeric> · <ostream> · <queue> · <set> ·
<sstream> · <stack> · <stdexcept> · <streambuf> · <string> ·
<strstream> · <utility> · <valarray> · <vector>
<cassert> · <cctype> · <cerrno>· <cfloat> · <ciso646> · <climits> ·
<clocale> · <cmath> · <csetjmp> · <csignal> · <cstdarg> ·
<cstddef> · <cstdio> · <cstdlib> · <cstring> · <ctime> ·
<cwchar>
· <iso646.h> · <wchar.h>
Estrutura de programas em C++

Bloco de código

Bloco principal
Indica um nome (main, _tmain)
 Indica um tipo de dado de retorno (int)
 Pode receber parâmetros
 Início e fim delimitados por chaves ( “{“ e “}” )

Estrutura de programas em C++

Variáveis





Posições de memória referenciadas no programa
Declaradas com nome e tipo de dados
Opcionalmente recebem valor inicial
Exemplos:
 int valor; // variável do tipo inteiro com nome “valor”
 Int total = 0; // variável “total”, inicializada com “0”
Formato geral:
 <tipo> <nome>;
 <tipo> <nome> = <valor inicial>;
 <tipo> <nome>, <nome2>, ... <nome_n>;
 <tipo> <nome> =<valorinicial>, <nome2> =<valorinicial2>;
Estrutura de programas em C++

Variáveis
//declaração:
int a, b;
char c;
float d;
int e;
Inteiro (int): 2 bytes
Caractere (char): 1 byte
Ponto flutuante (float): 4 bytes
Memória:
Endereço| Conteúdo
-----------------------------100
| a
101
| a
102
| b
103
| b
104
| c
105
| d
106
| d
107
| d
108
| d
109
| d
110
| e
111
| e
112
|
113
|
114
|
Estrutura de programas em C++

Variáveis
//declaração:
int a, b;
char c;
float d;
int e;
Inteiro (int): 2 bytes
Caractere (char): 1 byte
Ponto flutuante (float): 4 bytes
Memória:
Endereço| Conteúdo
-----------------------------100
| 00 }
101
| 00
102
| 00
}
103
| 01
104
| 33 (“!”) }
105
| d
106
| d
107
| d
108
| d
109
| d
110
| 00
111
| 02 }
112
|
113
|
114
|
Exemplo de uso:
a = 0;
b = 1;
c = “!”;
e = 2;
Caractere
Código ASCII
Estrutura de programas em C++

Variáveis
 Vetores: estrutura unidimensional
 Declaradas com nome e tipo de dados
 Opcionalmente recebem valor inicial
 Adicionalmente recebem número de elementos
 Exemplos:



int valor[10]; // vetor (tipo inteiro) com nome “valor” e 10 elementos
Int total[3] = {0, 1, 2}; // vetor (tipo inteiro) com nome “total” e
inicializado com os valores “0”, “1”, “2”
Formato geral:


<tipo> <nome> [ <tamanho> ];
<tipo> <nome> [ <tamanho> ] = { <valor>, <valor1>, ...<valorN>};
Estrutura de programas em C++

Variáveis
//declaração:
int a[2], b;
char c[4];
Inteiro (int): 2 bytes
Caractere (char): 1 byte
Memória:
Endereço| Conteúdo
-----------------------------100
| 00 }
101
| 01
102
| 00 }
103
| 02
104
| 00 }
105
| 10
106
| 79 (“O”)
107
| 105 (“i”)
108
| 33 (“!”)
109
| 63 (“?”)
Oi!??
0012FF78
1
Exemplo de uso:
a[0] = 1;
a[1] = 2;
b = 10;
c[0] = ‘O’;
c[1] = ‘i’;
c[2] = ‘!’;
c[3] = ‘?’;
cout<< c;
cout<< c[3];
cout <<endl;
cout<< a;
cout <<endl;
cout<< a[0];
Estrutura de programas em C++

Variáveis
Tamanhos de alguns tipos de dados
Tipo
Tamanho Valores possíveis
unsigned char 1 byte
0 - 255
char
1 byte
-128 - 127
unsigned int
2 bytes
0 – 65535
int
2 bytes
-35768 – 32767
float
4 bytes
3.4E-38 – 3.4e+38
double
8 bytes
1.7E-308 – 1.7E+308

Estrutura de programas em C++

Variáveis
Tipo
Tamanho
unsigned char 1 byte
Valores possíveis
0 - 255
Forma de representação
Programador
Uso de memória
Exemplo:Binário
00
01
10
11
100
Decimal
0
1
2
3
4 (3bits) ou 0 (2bits)
Estrutura de programas em C++

Comandos



Sempre terminam com ponto e vírgula (“;”)
Podem ser colocados na mesma linha
Exemplos:
cout << “mensagem!”;
 count << “mensagem !”; cin >> valor;


Agrupados em blocos com chaves (“{“ e “}”)
Estrutura de programas em C++

Comandos

Expressões: atribuição
Permite armazenar em uma variável um resultado de
uma expressão
 Formato geral:
<variável> = <expressão>;
 Exemplo:

a = 10; b = 5;
b = a + (5 * b);
Estrutura de programas em C++

Comandos

Expressões: operadores aritméticos
 Resumo:
Adição +
Subtração
Multiplicação *
Divisão /
Módulo %

Exemplos:
a = 10; b = a % 5;
b = a + (5 * b);
m = (a + b + c) / 3;
Y = m * x + b;
Precedência:
()
mais interno, esq. para dir.
*/% da esquerda para direita
+- do esquerda para direita
Estrutura de programas em C++

Comandos

Expressões: operadores relacionais e de igualdade
 Resumo:
Igualdade
>, <, >=, <= (maior, menor, maior ou igual, menor ou igual)
Relacionais
==, != (igual, diferente)

Exemplos:
(a > b) (a maior que b)
(b != a) (b diferente de a)
(a <= b) (a menor ou igual a b)
Estrutura de programas em C++

Comandos

Expressões: operadores relacionais e de igualdade
Estrutura de seleção: if - else
Formato geral:
if (<condição>){
if (<condição>){
<comandos>
<comandos>
} else{
}
<comandos>
}

if (<condição>){
<comandos>
} else
if (condição){
<comandos>
} else
if (condição){
<comandos>
}
Estrutura de programas em C++

Comandos

Expressões: operadores relacionais e de
igualdade
Estrutura de seleção: if - else
Exemplo:
if (valor == 15){
cout <, “valor igual a quinze!”;
}

Estrutura de programas em C++

Comandos

Expressões: operadores relacionais e de
igualdade
Estrutura de seleção: if - else
Exemplo:
if (nota >= 70){
cout << “Aprovado!”;
} else{
cout << “Reprovado!”;
}

Estrutura de programas em C++

Comandos
Estrutura de seleção: if - else
Exemplo:
if (nota >= 70){
cout << “Aprovado!”;
} else if (nota >=60){
cout << “Em recuperação!”;
} else {
cout << “Reprovado!”;
}

Estrutura de programas em C++

Comandos
...
Não
Estrutura de seleção: if - else
Exemplo:
if (nota >= 70){
cout << “Aprovado!”;
} else if (nota >=60){
Não
cout << “Em recuperação!”;
} else {
cout << “Reprovado!”;
“Reprovado”
}
Nota >=70

Sim
“Aprovado”
Nota >=60
Sim
“Recuperação”
fim
Estrutura de programas em C++

Comandos
Estrutura de repetição: while
Formato geral:

while ( <condição> ){
<comandos>
}
Exemplo:
cin >> nro; contador = 0;
while ( nro < valor_maximo){
nro = nro + 1;
contador = contador + 1;
}
Estrutura de programas em C++

Leitura
de número
Comandos
Estrutura de repetição: while
Formato geral:

while ( <condição> ){
<comandos>
}
Exemplo:
cin >> nro; contador = 0;
while ( nro < valor_maximo){
nro = nro + 1;
contador = contador + 1;
}
Inicialização
de contador
Não
número < máximo
fim
Sim
Incrementa
número
Incrementa
contador
Uso de vetores

Declaração




Definição de tipo, nome e tamanho
Opcional: inicialização de valores
Indexação: início sempre em zero
Exemplos
char letras[30], c;
int i=0;
while (i<30){
cout<<“digite uma letra:”;
cin>>c;
letras[i] = c;
i = i + 1;
}
Uso de vetores

Declaração




Definição de tipo, nome e tamanho
Opcional: inicialização de valores
Indexação: início sempre em zero
Exemplos
Não
char letras[30], c;
int i=0;
while (i<30){
fim
cout<<“digite uma letra:”;
cin>>c;
letras[i] = c;
i = i + 1;
}
Inicializa
contador
Contador < 30
Sim
Obtém
letra
Incrementa
contador
Exercícios




Mapa conceitual
Variáveis
Expressões
Algoritmos (cálculo de médias)
Download

aula2 - Unisinos