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 printf(“\nResultado: %d\n”,valor);
Mapeamento paraa linguagem de programação
C++ Cout<< endl<<“Resultado: “ <<valor<<endl;
PHP echo(“\nResultado: “.$valor.”\n”);
PASCAL write(“Resultado: “);Writeln(valor);
ASSEMBLYvalor dw 00mens db 13,10,“Resultado:”res db 0000 db “$”.......;conversão de valor/ASCII........mov ah,9mov dx, offset mensInt 21h
Pythonprint “\nResultado:”print valor
{
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 valoresRepetir
Ler o valor da notaSomar valor lido a valor total
média = valor total / número de valoresExibir 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 Editor de texto
Gera arquivo fonte(.cpp)
Compilador
Lê arquivo fonte (.cpp)Gera arquivo objeto
Editor de ligação (linker)
Lê arquivo objeto, Lê arquivos de bibliotecasGera arquivo executável
No Visual C++:
-File New-File Save-Build compile-Build build .exe
Introdução
Implementação de programas
disco Editor de texto
Gera arquivo fonte(.cpp)
Compilador
Lê arquivo fonte (.cpp)Gera arquivo objeto
Editor de ligação (linker)
Lê arquivo objeto, Lê arquivos de bibliotecasGera arquivo executável
No Visual C++:
-File New-File Save-Build compile-Build build .exe
Introdução
Implementação de programas
disco Editor de texto
Gera arquivo fonte(.cpp)
Compilador
Lê arquivo fonte (.cpp)Gera arquivo objeto
Editor de ligação (linker)
Lê arquivo objeto, Lê arquivos de bibliotecasGera arquivo executável
No Visual C++:
-File New-File Save-Build compile-Build build .exe
// teste in C++#include <iostream>
int main(){ std::cout << "Bem vindo C++!\n";
return 0; }
LZ ø+A2L k .drectve b $ .debug$S „ † H B.CRT$XCU – ¢ @ 0À.text = À ý % P`.rdata = @[email protected]$S N N œ HB.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 va_list@ + D + X \ k o ƒ P ‡ P œ ¯ § ³ § á å F š U‹ìƒì@SVW}À¹ ¸ÌÌÌÌó«h h è ƒÄ3À_^[ƒÄ@;ìè ‹å]à # 1 5 ! * , � Bem vindo
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
#include <stdio.h>
/* impressão de uma mensagem simples */
int main()
{
printf(“\n Mensagem inicial em c! \n”);
return 0;
}
Biblioteca utilizada
linha de comentário
Bloco principal
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 utilizadasint 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âmetrosIní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;
Memória:Endereço| Conteúdo------------------------------100 | a 101 | a 102 | b103 | b104 | c105 | d106 | d107 | d108 | d109 | d110 | e111 | e112 |113 |114 |
Inteiro (int): 2 bytesCaractere (char): 1 bytePonto flutuante (float): 4 bytes
Estrutura de programas em C++
Variáveis
//declaração:int a, b;char c;float d;int e;
Memória:Endereço| Conteúdo------------------------------100 | 00 101 | 00102 | 00103 | 01104 | 33 (“!”)105 | d106 | d107 | d108 | d109 | d110 | 00111 | 02112 |113 |114 |
Inteiro (int): 2 bytesCaractere (char): 1 bytePonto flutuante (float): 4 bytes
Exemplo de uso:
a = 0;b = 1;c = “!”;e = 2;
}
}
}
}
CaractereCó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];
Memória:Endereço| Conteúdo------------------------------100 | 00 101 | 01102 | 00103 | 02104 | 00105 | 10106 | 79 (“O”)107 | 105 (“i”)108 | 33 (“!”)109 | 63 (“?”)Inteiro (int): 2 bytes
Caractere (char): 1 byte
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];
}
}
}
Oi!??0012FF781
Estrutura de programas em C++
Variáveis Tamanhos de alguns tipos de dadosTipo Tamanho Valores possíveisunsigned char1 byte 0 - 255char 1 byte -128 - 127unsigned int 2 bytes 0 – 65535int 2 bytes -35768 – 32767float 4 bytes 3.4E-38 – 3.4e+38double 8 bytes 1.7E-308 – 1.7E+308
Estrutura de programas em C++
VariáveisTipo Tamanho Valores possíveis
unsigned char1 byte 0 - 255
Programador
Uso de memória
Forma de representação
Exemplo:Binário Decimal 00 0
01 1 10 2 11 3100 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>){
<comandos>
}
if (<condição>){ <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
igualdadeEstrutura 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
igualdadeEstrutura de seleção: if - else
Exemplo:
if (nota >= 70){
cout << “Aprovado!”;
} else{
cout << “Reprovado!”;
}
Estrutura de programas em C++
ComandosEstrutura 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++
ComandosEstrutura de seleção: if - else
Exemplo:
if (nota >= 70){
cout << “Aprovado!”;
} else if (nota >=60){
cout << “Em recuperação!”;
} else {
cout << “Reprovado!”;
}
Nota >=70
“Aprovado”
Sim
Não
...
Nota >=60
“Recuperação”
fim
Sim
Não
“Reprovado”
Estrutura de programas em C++
Comandos Estrutura de repetição: whileFormato 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++
Comandos Estrutura de repetição: whileFormato 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úmero < máximo
Incrementa número
Incrementa contador
fim Sim
Não
Leitura de número
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
char letras[30], c; int i=0;while (i<30){
cout<<“digite uma letra:”;cin>>c;letras[i] = c;i = i + 1;
}
Inicializa contador
Contador < 30
Obtém letra
Incrementa contador
fim Sim
Não
Exercícios
Mapa conceitual Variáveis Expressões Algoritmos (cálculo de médias)
Top Related