Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

<p>Conteudista: Prof. Me. Amilton Sousa Martha</p><p>Revisão Textual: Prof.ª M.ª Rosemary Toffolli</p><p>APRESENTAÇÃO DO TEMA</p><p>ENCERRAMENTO DA DISCIPLINA</p><p>Apresentação</p><p>Material Teórico</p><p>Material Complementar</p><p>Referências</p><p>Introdução e Listas Lineares.</p><p>Imagine que precisamos implementar um jogo de nave espacial. E queremos que ao movimentar</p><p>a nave, nuvens de fumaça saiam de trás da nave.</p><p>As nuvens são objetos que têm tamanhos, cores e sombras diferentes, porém possuem a</p><p>mesma característica.</p><p>Reflita</p><p>Que tipo de dados podemos usar para representar a nuvem?</p><p>Podemos usar uma lista linear para criar as nuvens? Que tipos de instruções podemos usar para</p><p>simular as nuvens?</p><p>Objetivo</p><p>Página 1 de 4</p><p>Apresentação</p><p>Compreender como estruturar os dados dentro de nossos programas (ou</p><p>jogos) para sempre maximizar o seu desempenho, tanto em termos de</p><p>tempo de execução como tempo de programação.</p><p>Sobre o Prof. Responsável:</p><p>Prof. Me. Amilton Souza Martha</p><p>Possui graduação em Tecnologia Elétrica Mod Eletrônica pela Universidade Presbiteriana</p><p>Mackenzie (1994); graduação em Ciência da Computação pela Universidade Cruzeiro do Sul</p><p>(1999) e mestrado em Informática em Saúde pela Universidade Federal de São Paulo (2005).</p><p>Atualmente é contratado da Universidade Cruzeiro do Sul e Diretor de Projetos da KATU –</p><p>Sistemas Inteligentes para a Saúde. Tem experiência na área de Ciência da Computação, com</p><p>ênfase em Webdeveloper. Atuando principalmente nos seguintes temas: recuperação de</p><p>informação, texto livre, semelhança semântica, semelhança ortográfica.</p><p>Clique no botão a seguir para acessar a página profissional de seu professor, e saber um pouco mais</p><p>sobre sua trajetória.</p><p>LINKEDIN</p><p>http://lattes.cnpq.br/5455047756459479</p><p>Introdução</p><p>O que é um jogo digital? Um jogo não passa de um programa. E o que é um programa? Entrando</p><p>em um nível mais baixo, um programa está dividido em dados e nas instruções que manipulam</p><p>esses dados.</p><p>Para organizar os dados temos a Estrutura de Dados e para a manipulação deles, temos os</p><p>Algoritmos.</p><p>Entender Estrutura de Dados é parte fundamental para um programador de jogos, pois é</p><p>necessário conhecer o modo com que os dados são manipulados e organizados para melhorar o</p><p>desempenho dos jogos digitais.</p><p>Todo programa que você escreve trabalha com dados de alguma forma.  A unidade básica de</p><p>informação dentro da memória do computador é o bit (binary digit), que são representados por 0</p><p>ou 1. Obviamente que com um único bit não poderíamos representar muita informação, porém,</p><p>agrupados podem representar uma enorme quantidade e variedade de informações. Surge o</p><p>conceito de byte, que é o conjunto de 8 bits.</p><p>Como regra geral, são necessários n bits para representar 2^n estados. Os dígitos 0 e 1 são</p><p>utilizados para cada estado possível de um bit. Assim, vários bits são indicados por uma</p><p>sequência de 0s e 1s. No entanto, nenhum elemento da sequência indica que esta representa um</p><p>Página 2 de 4</p><p>Material Teórico</p><p>dado em particular. Por exemplo, pode-se representar um inteiro ou um caractere com um</p><p>conjunto de bits, mas a interpretação depende do criador do conjunto e não dos seus elementos.</p><p>Tipos de Dados</p><p>É um conjunto de valores que uma constante, variável ou expressão podem assumir, ou então, a</p><p>um conjunto de valores que possam ser gerados por uma função. Um tipo de dados pode ser</p><p>entendido também como um método para interpretar os padrões de bits em memória. No entanto,</p><p>pode ser visto de uma perspectiva totalmente diferente, não mais em relação às funções</p><p>implementadas eletronicamente no computador, mas em relação ao ponto de vista do usuário e</p><p>das suas expectativas</p><p>Tipos de Tipos Primitivos</p><p>São os tipos de dados que além de depender das características do sistema, dependem do</p><p>processador. Os tipos de dados primitivos ou básicos são aqueles a partir dos quais podemos</p><p>definir os demais tipos ou organizações de informações, quase sempre mais complexas. Estes</p><p>tipos de dados primitivos ou básicos são implementados e manipulados pelos compiladores: o</p><p>compilador é o responsável do armazenamento e processamento (operações) destes tipos de</p><p>dados. Os tipos de dados primitivos mais frequentes e suas operações são:</p><p>Tabela 01</p><p>Tipo de</p><p>Dado</p><p>Algumas Operações</p><p>Possíveis</p><p>Exemplo de</p><p>Utilização</p><p>Inteiro Soma, subtração,</p><p>multiplicação, divisão,</p><p>igualdade, etc. Usado para</p><p>representar valores que</p><p>Idade, ano, dia,</p><p>número de filhos</p><p>Tipo de</p><p>Dado</p><p>Algumas Operações</p><p>Possíveis</p><p>Exemplo de</p><p>Utilização</p><p>não podem ter casas</p><p>decimais.</p><p>Real</p><p>Soma, subtração,</p><p>multiplicação, divisão,</p><p>igualdade, etc. Usado para</p><p>representar valores que</p><p>podem ser fracionados</p><p>(com casas decimais).</p><p>Peso, estatura,</p><p>salário</p><p>Caracteres</p><p>Igualdade, concatenação,</p><p>etc. Usado para</p><p>informações armazenadas</p><p>como uma sequência de</p><p>caracteres contáveis de</p><p>objetos</p><p>Nome, endereço,</p><p>cargo</p><p>ocupacional.</p><p>Lógico</p><p>E, OU, NÃO Valores</p><p>verdadeiro</p><p>ou falso.</p><p>Formado,</p><p>solteiro.</p><p>Ponteiro</p><p>Igualdade, soma,</p><p>subtração, etc.</p><p>Armazenam um endereço</p><p>da memória do</p><p>computador.</p><p>FrenteFila,</p><p>primeiro,</p><p>próximo.</p><p>Tipos de Dados Estruturados</p><p>Os tipos de dados estruturados são organizações de dados que são obtidas a partir dos tipos de</p><p>dados primitivos. A maioria das linguagens de programação prove alguns tipos estruturados para</p><p>facilitar a organização de dados. Os mais frequentes são os seguintes:</p><p>Um exemplo de vetor (unidimensional), pode ser escrito em C, BASIC ou Pascal sobre a base dos</p><p>tipos de dados primitivos (Ex. tipos primitivos: integer em Pascal ou BASIC, int na linguagem C):</p><p>Abstração</p><p>Um computador é uma máquina fantástica. Com sua ajuda foi possível ao homem pousar na lua,</p><p>iniciar expedições exploratórias interplanetárias, mapear o genoma humano, etc. Entretanto, o</p><p>computador por si só não é onipotente. Ele ainda tem sérias limitações físicas para a</p><p>complexidade do mundo real. De fato, nosso mundo está cheio de sutilezas e de ricos detalhes</p><p>que não podem ser inseridos ou representados em computador.</p><p>Devido a essas limitações é necessário que utilizemos a abstração. É abstraindo nossa realidade</p><p>que podemos capturar o que existe de mais relevante em uma situação real, tornando possível a</p><p>construção de modelos que podem ser implementados nos computadores por meio de uma</p><p>linguagem de programação.</p><p>Arranjos (arrays) Array em Pascal, C e BASIC;</p><p>Registros Record em Pascal, struct em C, Type em Visual Basic;</p><p>Conjuntos Set em Pascal.</p><p>Em Pascal: var X: array [0..50] of integer;</p><p>Em VB: dim X(50) as integer;</p><p>Em C, C++: int X[51].</p><p>Tipo Abstrato de Dados (TAD)</p><p>Pode ser definido como um conjunto de valores e por uma série de operações que atuam sobre</p><p>esses valores. As operações devem ser consistentes com os tipos de valores. Funções e valores</p><p>constituem um modelo matemático que pode ser empregado para implementar um tipo de dados</p><p>abstrato. Em programação Orientada a Objetos, as classes representam um TAD com os valores</p><p>sendo os atributos de uma classe e as operações os métodos.</p><p>Para a implementação de um TAD, devemos usar os tipos de dados existentes e implementar as</p><p>operações possíveis sobre esses dados.</p><p>Utilizamos os tipos de dados quando precisamos declarar variáveis ou objetos para os nossos</p><p>programas. Variáveis podem ser tanto tipos primitivos, tipos estruturados ou abstratos. Variáveis</p><p>são sempre declaradas dentro de classes, mas o seu escopo pode estar associado com toda a</p><p>classe ou apenas com um método ou com um bloco de instruções.</p><p>Para identificar uma variável utilizamos identificadores. Na verdade um identificador é qualquer</p><p>nome escolhido pelo programador para representar variáveis, objetos, constantes, classes,</p><p>métodos ou rótulos. Depois que um identificador é criado ele representa o mesmo objeto em</p><p>qualquer lugar onde ele for usado no mesmo bloco de código.</p><p>Existem algumas regras a serem seguidas ao se criar um</p><p>identificador:</p><p>O primeiro caractere de um identificar deve ser uma letra, um</p><p>underscore (_) ou um símbolo monetário (como $). Os caracteres</p><p>seguintes podem ser quaisquer desses ou numerais;</p><p>Os</p><p>caracteres preferencialmente devem ser letras, números e</p><p>underscore (_), porém não pode haver espaços em branco entre elas;</p><p>Listas Lineares</p><p>Uma lista linear é um tipo abstrato de dado que representa uma coleção L: [a1, a2, ..., an], n>=0,</p><p>cuja propriedade estrutural baseia-se apenas na posição relativa dos elementos, que são</p><p>dispostos linearmente. Se n = 0, dizemos que a lista L é vazia; caso contrário, são válidas as</p><p>seguintes propriedades:</p><p>Ou seja, a característica fundamental de uma lista linear é o sentido de ordem unidimensional dos</p><p>elementos que a compõem. Uma ordem que nos permite dizer com precisão onde a coleção</p><p>inicia-se e onde termina, sem possibilidade de dúvida. Temos alguns casos especiais de Listas</p><p>Lineares que são frequentemente utilizadas na modelagem de problemas a serem resolvidos</p><p>computacionalmente, que são: pilha, fila e lista.</p><p>Em Java, assim como em C/C++ e muitas outras linguagens modernas,</p><p>identificadores são sensíveis ao caso e sensíveis a linguagem. (Nota: a</p><p>sensibilidade à linguagem do Java significa que identificadores</p><p>diferenciam linguagens. Identificadores são únicos entre linguagens</p><p>mesmo se os caracteres parecerem o mesmo visualmente);</p><p>Um identificador não pode ser o mesmo de uma das palavras-reservadas</p><p>da linguagem;</p><p>Não se usa caracteres especiais como !, @, #, %, *, +, - , (,  etc.</p><p>a1 é o primeiro elemento da lista L;</p><p>an é o último elemento da lista L;</p><p>ak, 1</p>

Mais conteúdos dessa disciplina