Desenvolvimento de Jogos e Entretenimento Digital Oficina temtica

  • Slides: 28
Download presentation
Desenvolvimento de Jogos e Entretenimento Digital Oficina temática: Algoritmos e Programação Aula 1: Revisão

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

Roteiro l l Apresentação Conceitos básicos (revisão) l l l Discussão: Algoritmo Linguagem de

Roteiro l l Apresentação Conceitos básicos (revisão) l l l Discussão: Algoritmo Linguagem de programação l l Arquitetura de Von Neuman variáveis, expressões Exercícios

Apresentação l Objetivo: l l l Apresentação e revisão de conceitos básicos Discussão da

Apresentação l Objetivo: l l l 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

Conceitos básicos l Arquitetura de Von Neumann: l l Entrada l Teclado, mouse, joystick,

Conceitos básicos l Arquitetura de Von Neumann: l l Entrada l Teclado, mouse, joystick, . . Processamento l UCP/CPU (Unidade Central de Processamento) l (Placas específicas de entrada e saída) Memória l Secundária (discos), Principal (RAM) Saída l Vídeo, impressora, . . .

Conceitos básicos l Arquitetura de Von Neumann: ou arquitetura de fluxo de controle l

Conceitos básicos l Arquitetura de Von Neumann: ou arquitetura de fluxo de controle l l l 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 l Busca de instruções na memória l Decodificação de instruções l Execução de instruções Uso de “registradores internos” para manter o estado l Local de memória a ler l Valores temporários gerados

Conceitos básicos l Outras arquiteturas : arquitetura de fluxo de dados l A Memória

Conceitos básicos l Outras arquiteturas : arquitetura de fluxo de dados l A Memória armazena um conjunto de instruções no formato conhecido como “tokens” l l l 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

Conceitos básicos l Outros recursos: placas de entrada e saída l l Componentes específicos

Conceitos básicos l Outros recursos: placas de entrada e saída l l 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

Conceitos básicos l Outros recursos: l l l Multiprocessamento Eletrônica embarcada Componentes de entrada

Conceitos básicos l Outros recursos: l l l Multiprocessamento Eletrônica embarcada Componentes de entrada de dados

Conceitos básicos Memória CPU . . Interface de entrada e saída HD

Conceitos básicos Memória CPU . . Interface de entrada e saída HD

Conceitos básicos l Algoritmo l l l l Usado para a solução de problemas

Conceitos básicos l Algoritmo l l l l 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

Algoritmo l l Algoritmo Exemplo: leitura do livro “X” l l l l Ir

Algoritmo l l Algoritmo Exemplo: leitura do livro “X” l l l l 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

Algoritmo l l Algoritmo Exemplo: receita de pão l l l Obter os ingredientes

Algoritmo l l Algoritmo Exemplo: receita de pão l l l Obter os ingredientes Misturar os ingredientes e fazer a massa Aguardar o crescimento da massa Colocar no forno por 35 minutos Retirar do forno

Algoritmo l l Algoritmo Exemplo: receita de pão l l l l Obter farinha

Algoritmo l l Algoritmo Exemplo: receita de pão l l l l 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

Algoritmo l l Algoritmo Diversidade: ordenação l l l l Ordenação por inserção direta

Algoritmo l l Algoritmo Diversidade: ordenação l l l l 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. . .

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

Algoritmo l l l Algoritmo Diversidade: ordenação, busca, . . Performance: comparação entre resultados obtidos Requisitos: mais memória, mais processamento Etapas, ou pré-processamento (dividir para conquistar)

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

Linguagem de programação l l l Implementação de algoritmos Tradução em código executável (fonte => objeto => executável) Processo de tradução: dependente de máquina Java l Padrões (C ANSI) l l l Compartilhamento de “módulos” ou procedimentos Adequação: velocidade, sintaxe, requisitos

Linguagem de programação l Comandos l l Variáveis l l Palavras-chave de uma linguagem

Linguagem de programação l Comandos l l Variáveis l l Palavras-chave de uma linguagem associadas a implementações específicas Recursos de armazenamento de valores que podem ser modificados durante a execução de programas Constantes l Recursos para armazenamento de valores estáticos durante a execução de programas

Linguagem de programação l Programas Seqüência de comandos de uma linguagem, em formato padronizado,

Linguagem de programação l Programas Seqüência de comandos de uma linguagem, em formato padronizado, que permite a implementação de algoritmos l Fonte: descrição original, em formato texto, pelo programador l Executável: descrição na linguagem de máquina do processador em que deve ser executado l Objeto: formato intermediário, usadopara composição de código com diversos módulos l

Linguagem de programação l Programas Exemplo: #include <stdio. h> /* impressão de uma mensagem

Linguagem de programação l Programas Exemplo: #include <stdio. h> /* impressão de uma mensagem simples */ main() { printf(“n Mensagem inicial em c! n”); return 0; } l

Linguagem de programação l Tipos de dados l Numéricos l Lógicos l Texto l

Linguagem de programação l Tipos de dados l Numéricos l Lógicos l Texto l Expressões l Conjunto de operadores e valores ou variáveis, utilizado para a implementação de cálculos

Linguagem de programação l Expressões l Exemplo: média § § l Variável 1 ->

Linguagem de programação l Expressões l Exemplo: média § § l Variável 1 -> valor da primeira prova (v 1) Variável 2 -> valor da segunda prova (v 2) Variável média -> média aritmética das duas (v 1 e v 2) Operadores: atribuição soma e divisão media = (v 1 + v 2) / 2;

Linguagem de programação l Expressões l Operadores § § § Aritméticos Lógicos Atribuição

Linguagem de programação l Expressões l Operadores § § § Aritméticos Lógicos Atribuição

Introdução l Algoritmo => linguagem de programação { Exibir o resultado C++ Cout<< endl<<“Resultado:

Introdução l Algoritmo => linguagem de programação { Exibir o resultado C++ Cout<< endl<<“Resultado: “ <<valor<<endl; C printf(“n. Resultado: %dn”, valor); Mapeamento para a linguagem de programação PHP echo(“n. Resultado: “. $valor. ”n”); PASCAL write(“Resultado: “); Writeln(valor); Python print “n. Resultado: ” 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 21 h

Introdução l Implementação de programas disco Gera arquivo fonte (. cpp) Editor de texto

Introdução l 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 l Implementação de programas No Visual C++: -File New -File Save -Build compile

Introdução l Implementação de programas No Visual C++: -File New -File Save -Build compile -Build build. exe

L�Z ø+� A 2 L k� drectve. b $� debug$S �. „� †� CRT$XCU

L�Z ø+� A 2 L k� drectve. b $� debug$S �. „� †� CRT$XCU � � H �B. � –� ¢� text � @ 0À. = À� ý� % � � �P`. rdata � = debug$S @� 0@. N N œ � H��B. text Ö� ° †# ¨$ � � �P`. text$x � ` u% Õ% � @�@@. debug$S � �& '( � H��B. text N Ÿ( í( ) ��P`. debug$S � ± �) È)text � H��B. * Ü) debug$S �* � �P`. Ž �* š* text � H��B. 5 ®* ã* ÷* debug$S � � �P`. w H � B-defaultlib: libcpd -defaultlib: LIBCD -defaultlib: OLDNAMES -editandcontinue -include: ___pfn. Bk. Check � J ptrdiff_t�__ex. String� ���� exception ��u size_t� � ��y� s__Catchable. Type� �_ wchar_t� ��! ��� 6� Type. Descriptor �_ ��J� �FILE� va_list@� ��f� �_PMFN� +� ��p� � D� +� X� � � � k� � o� � ƒ� P� ‡� P� œ� � ¯� §� ³� §� á� � å� � � }À¹�F� � ÌÌÌÌó «h ¸ � �h š� è �ƒÄ� 3À_^[ƒÄ@; ìè U‹ìƒì@SVW ‹å]Ã� � � Bem # 1 vindo� 5 ! � � D% 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; }

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

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

Material e recursos l Bibliografia l l l Terada, Routo. Desenvolvimento de Algoritmos e

Material e recursos l Bibliografia l l l Terada, Routo. Desenvolvimento de Algoritmos e Estruturas de Dados. São Paulo: Mc. Graw-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.