Desenvolvimento de Jogos e Entretenimento Digital Oficina temática: Algoritmos e Programação...

28
Desenvolvimento de Jogos e Entretenimento Digital Oficina temática: Algoritmos e Programação Aula1: Revisão de conceitos básicos Professor: Sandro Rigo

Transcript of Desenvolvimento de Jogos e Entretenimento Digital Oficina temática: Algoritmos e Programação...

Page 1: Desenvolvimento de Jogos e Entretenimento Digital Oficina temática: Algoritmos e Programação Aula1: Revisão de conceitos básicos Professor: Sandro Rigo.

Desenvolvimento de Jogos e Entretenimento

Digital

Oficina temática:

Algoritmos e Programação

Aula1: Revisão de conceitos básicos

Professor: Sandro Rigo

Page 2: Desenvolvimento de Jogos e Entretenimento Digital Oficina temática: Algoritmos e Programação Aula1: Revisão de conceitos básicos Professor: Sandro Rigo.

Roteiro

Apresentação Conceitos básicos (revisão)

Arquitetura de Von Neuman Discussão: Algoritmo Linguagem de programação

variáveis, expressões Exercícios

Page 3: Desenvolvimento de Jogos e Entretenimento Digital Oficina temática: Algoritmos e Programação Aula1: Revisão de conceitos básicos Professor: Sandro Rigo.

Apresentação

Objetivo: Apresentação e revisão de conceitos básicos Discussão da noção de algoritmo Escopo da linguagem de programação Exercício com mapa conceitual Exercícios com variáveis e expressões

Page 4: Desenvolvimento de Jogos e Entretenimento Digital Oficina temática: Algoritmos e Programação Aula1: Revisão de conceitos básicos Professor: Sandro Rigo.

Conceitos básicos

Arquitetura de Von Neumann:

Entrada Teclado, mouse, joystick, ....

Processamento UCP/CPU (Unidade Central de Processamento) (Placas específicas de entrada e saída)

Memória Secundária (discos), Principal (RAM)

Saída Vídeo, impressora, ...

Page 5: Desenvolvimento de Jogos e Entretenimento Digital Oficina temática: Algoritmos e Programação Aula1: Revisão de conceitos básicos Professor: Sandro Rigo.

Conceitos básicos

Arquitetura de Von Neumann: ou arquitetura de fluxo de controle

A Memória armazena sempre um conjunto de instruções no formato conhecido como “linguagem de máquina”

A CPU realiza ininterruptamente seu ciclo de operação Busca de instruções na memória Decodificação de instruções Execução de instruções

Uso de “registradores internos” para manter o estado Local de memória a ler Valores temporários gerados

Page 6: Desenvolvimento de Jogos e Entretenimento Digital Oficina temática: Algoritmos e Programação Aula1: Revisão de conceitos básicos Professor: Sandro Rigo.

Conceitos básicos

Outras arquiteturas : arquitetura de fluxo de dados

A Memória armazena um conjunto de instruções no formato conhecido como “tokens”

Operação, operandos, destino Não existe controle da memória a ser lida A execução das instruções (tokens) ocorre

quando os operandos estiverem disponíveis

Page 7: Desenvolvimento de Jogos e Entretenimento Digital Oficina temática: Algoritmos e Programação Aula1: Revisão de conceitos básicos Professor: Sandro Rigo.

Conceitos básicos

Outros recursos: placas de entrada e saída

Componentes específicos para a solução de problemas em determinadas áreas

Computação gráfica: “renderização” Implementação mais eficiente Liberação do processador para outras tarefas

Page 8: Desenvolvimento de Jogos e Entretenimento Digital Oficina temática: Algoritmos e Programação Aula1: Revisão de conceitos básicos Professor: Sandro Rigo.

Conceitos básicos

Outros recursos:

Multiprocessamento Eletrônica embarcada Componentes de entrada de dados

Page 9: Desenvolvimento de Jogos e Entretenimento Digital Oficina temática: Algoritmos e Programação Aula1: Revisão de conceitos básicos Professor: Sandro Rigo.

Conceitos básicos

HD

CPU

Memória

.........

.........

.........

.........

Interface de entrada e saídaInterface de entrada e saída

Page 10: Desenvolvimento de Jogos e Entretenimento Digital Oficina temática: Algoritmos e Programação Aula1: Revisão de conceitos básicos Professor: Sandro Rigo.

Conceitos básicos

Algoritmo

Usado para a solução de problemas Descrito em diversos formalismos Seqüência de processos encadeados Formas de mapeamento dos dados envolvidos Cooperação, comparação, melhorias Independente de linguagem Dependente de recursos

Page 11: Desenvolvimento de Jogos e Entretenimento Digital Oficina temática: Algoritmos e Programação Aula1: Revisão de conceitos básicos Professor: Sandro Rigo.

Algoritmo

Algoritmo Exemplo: leitura do livro “X”

Ir até a biblioteca Acessar a lista de localização de títulos Procurar o título “X” Anotar o número da estante Caminhar até a estante Retirar o livro da estante Caminhar até o espaço de leitura Ler o livro

Page 12: Desenvolvimento de Jogos e Entretenimento Digital Oficina temática: Algoritmos e Programação Aula1: Revisão de conceitos básicos Professor: Sandro Rigo.

Algoritmo

Algoritmo Exemplo: receita de pão

Obter os ingredientes Misturar os ingredientes e fazer a massa Aguardar o crescimento da massa Colocar no forno por 35 minutos Retirar do forno

Page 13: Desenvolvimento de Jogos e Entretenimento Digital Oficina temática: Algoritmos e Programação Aula1: Revisão de conceitos básicos Professor: Sandro Rigo.

Algoritmo

Algoritmo Exemplo: receita de pão

Obter farinha (2 xícaras) Obter ovos (2 ovos) Obter leite (1 xícara) Obter fermento (1 colher de sopa) Misturar os ingredientes e fazer a massa Aguardar o crescimento da massa Colocar no forno por 35 minutos Retirar do forno

Page 14: Desenvolvimento de Jogos e Entretenimento Digital Oficina temática: Algoritmos e Programação Aula1: Revisão de conceitos básicos Professor: Sandro Rigo.

Algoritmo Algoritmo Diversidade: ordenação

Ordenação por inserção direta Ordenação por seleção direta Ordenação por inserção através de incrementos decrescentes Ordenação por árvores Ordenação por particionamento Ordenação polifásica Bubble sort Shellsort Quicksort Mergesort Radix sort Algoritmos de ordenação paralela .............

Page 15: Desenvolvimento de Jogos e Entretenimento Digital Oficina temática: Algoritmos e Programação Aula1: Revisão de conceitos básicos Professor: Sandro Rigo.

Algoritmo

Algoritmo Diversidade: ordenação, busca, .... Performance: comparação entre resultados

obtidos Requisitos: mais memória, mais

processamento Etapas, ou pré-processamento (dividir para

conquistar)

Page 16: Desenvolvimento de Jogos e Entretenimento Digital Oficina temática: Algoritmos e Programação Aula1: Revisão de conceitos básicos Professor: Sandro Rigo.

Linguagem de programação

Linguagem de programação Implementação de algoritmos Tradução em código executável

(fonte => objeto => executável) Processo de tradução: dependente de máquina

JavaPadrões (C ANSI)

Compartilhamento de “módulos” ou procedimentos

Adequação: velocidade, sintaxe, requisitos

Page 17: Desenvolvimento de Jogos e Entretenimento Digital Oficina temática: Algoritmos e Programação Aula1: Revisão de conceitos básicos Professor: Sandro Rigo.

Linguagem de programação

Linguagem de programação Comandos

Palavras-chave de uma linguagem associadas a implementações específicas

VariáveisRecursos de armazenamento de valores que podem

ser modificados durante a execução de programas Constantes

Recursos para armazenamento de valores estáticos durante a execução de programas

Page 18: Desenvolvimento de Jogos e Entretenimento Digital Oficina temática: Algoritmos e Programação Aula1: Revisão de conceitos básicos Professor: Sandro Rigo.

Linguagem de programação

Linguagem de programação Programas

Seqüência de comandos de uma linguagem, em formato padronizado, que permite a implementação de algoritmos

Fonte: descrição original, em formato texto, pelo programador

Executável: descrição na linguagem de máquina do processador em que deve ser executado

Objeto: formato intermediário, usadopara composição de código com diversos módulos

Page 19: Desenvolvimento de Jogos e Entretenimento Digital Oficina temática: Algoritmos e Programação Aula1: Revisão de conceitos básicos Professor: Sandro Rigo.

Linguagem de programação

Linguagem de programação Programas

Exemplo: #include <stdio.h>/* impressão de uma mensagem simples */main(){

printf(“\n Mensagem inicial em c! \n”);return 0;

}

Page 20: Desenvolvimento de Jogos e Entretenimento Digital Oficina temática: Algoritmos e Programação Aula1: Revisão de conceitos básicos Professor: Sandro Rigo.

Linguagem de programação

Linguagem de programação Tipos de dados

NuméricosLógicosTexto

ExpressõesConjunto de operadores e valores ou variáveis,

utilizado para a implementação de cálculos

Page 21: Desenvolvimento de Jogos e Entretenimento Digital Oficina temática: Algoritmos e Programação Aula1: Revisão de conceitos básicos Professor: Sandro Rigo.

Linguagem de programação

Linguagem de programação

ExpressõesExemplo: média

Variável 1 -> valor da primeira prova (v1) Variável 2 -> valor da segunda prova (v2) Variável média -> média aritmética das duas (v1 e v2) Operadores: atribuição soma e divisão

media = (v1 + v2) / 2;

Page 22: Desenvolvimento de Jogos e Entretenimento Digital Oficina temática: Algoritmos e Programação Aula1: Revisão de conceitos básicos Professor: Sandro Rigo.

Linguagem de programação

Linguagem de programação

ExpressõesOperadores

Aritméticos Lógicos Atribuição

Page 23: Desenvolvimento de Jogos e Entretenimento Digital Oficina temática: Algoritmos e Programação Aula1: Revisão de conceitos básicos Professor: Sandro Rigo.

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

{

Page 24: Desenvolvimento de Jogos e Entretenimento Digital Oficina temática: Algoritmos e Programação Aula1: Revisão de conceitos básicos Professor: Sandro Rigo.

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

Page 25: Desenvolvimento de Jogos e Entretenimento Digital Oficina temática: Algoritmos e Programação Aula1: Revisão de conceitos básicos Professor: Sandro Rigo.

Introdução

Implementação de programasNo Visual C++:

-File New-File Save-Build compile-Build build .exe

Page 26: Desenvolvimento de Jogos e Entretenimento Digital Oficina temática: Algoritmos e Programação Aula1: Revisão de conceitos básicos Professor: Sandro Rigo.

Introdução

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

Page 27: Desenvolvimento de Jogos e Entretenimento Digital Oficina temática: Algoritmos e Programação Aula1: Revisão de conceitos básicos Professor: Sandro Rigo.

Exercícios

Exercícios Mapa conceitual Variáveis Expressões Algoritmos

Page 28: Desenvolvimento de Jogos e Entretenimento Digital Oficina temática: Algoritmos e Programação Aula1: Revisão de conceitos básicos Professor: Sandro Rigo.

Material e recursos Bibliografia

Terada, Routo. Desenvolvimento de Algoritmos e Estruturas de Dados. São Paulo: McGraw-Hill, 1991.

Lee, Richard C.. Tepfenhart, William M.. Paschoa, Celso Roberto (trad.). UML e C++: Guia Prático de Desenvolvimento Orientado a Objeto. São Paulo: Makron, 2001.

Wirth, Niklaus. Lee, Cheng Mei (trad.). Algoritmos e Estruturas de Dados. Rio de Janeiro: LTC, 1989-1999.

Szwarcfiter, Jayme Luiz. Markenzon, Lilian. Estruturas de Dados e seus Algoritmos. 2. ed. Rio de Janeiro: Livros Técnicos e Científicos, 1994.

Preiss, Bruno R.. Gouvêa, Elizabeth Ferreira (trad.). Estruturas de Dados e Algoritmos: Padrões de Projetos Orientados a Objetos com Java. Rio de Janeiro: Campus, 2000.