Engenharia de CONTROLE e AUTOMAÇÃO Estrutura de Dados Conceitos Iniciais Aula 01 DPEE 1038 – Estrutura de Dados para Automação Curso de Engenharia de Controle e Automação Universidade Federal de Santa Maria Prof. Rafael Concatto Beltrame [email protected] 1/5 Sumário • • • Introdução Estrutura de dados Tipos primitivos de dados – – – – – • char int float double void Exemplos – Relação entre binários e decimais – Números reais – String de caracteres Prof. Rafael Concatto Beltrame 2 1/5 Introdução Algoritmo – Processo sistemático para a resolução de um problema Dados de Saída Dados de Entrada (Solução) Unidade de Processamento – Computa uma saída (solução) a partir de informações de entrada – Manipula os dados de entrada para obter a solução – Composto de um modelo matemático e um conjunto de operações Prof. Rafael Concatto Beltrame 3 1/5 Introdução • Aspectos básicos no estudo dos algoritmos – Correção • Verificar a exatidão do método empregado, realizada através de uma prova matemática – Análise • Obtenção dos parâmetros que para avaliar a eficiência do algoritmo (ocupação e memória) – Quando os dados são dispostos e manipulados de forma homogênea, constituem um tipo de dado abstrato • Forma de representação em uma linguagem específica • Empregar operações suportadas pelo computador Prof. Rafael Concatto Beltrame 4 1/5 Estrutura de Dados • Um tipo estruturado é um exemplo de estrutura de dados – Tipos estruturados são estruturas de dados já pré‐definidas na linguagem de programação – O programador pode definir outras estruturas de dados para armazenar as informações que seu programa precisa manipular – Exemplos • Vetores, registros, listas encadeadas, pilhas, filas, árvores, grafos, etc., são estruturas utilizadas para armazenar informação na memória principal Prof. Rafael Concatto Beltrame 5 1/5 Tipos Primitivos de Dados • Tipos básicos de dados – – – – – • char: É um caractere. Geralmente armazenado em código (ASCII) int: Número inteiro. É o tipo padrão de dado em C float: Número em ponto flutuante de precisão simples. Números reais double: Número em ponto flutuante de precisão dupla void: Indica que não há um tipo definido Modificadores dos tipos básicos – São expressões que alteram o tamanho do conjunto de valores que o tipo pode representar – signed | unsigned – short | long Prof. Rafael Concatto Beltrame 6 1/5 Tipos Primitivos de Dados Tipo Bits Forma de Leitura Limite Mínimo Limite Máximo char 8 %c –128 127 unsigned char 8 %c 0 255 signed char 8 %c –128 127 int 16 %i –32.768 32.767 unsigned int 16 %u 0 65.535 signed int 16 %i –32.768 32.767 short int 16 %hi –32.768 32.767 unsigned short int 16 %hu 0 65.535 signed short int 16 %hi –32.768 32.767 long int 32 %li –2.147.483.648 2.147.483.647 signed long int 32 %li –2.147.483.648 2.147.483.647 unsigned long int 32 %lu 0 4.294.967.295 float 32 %f ±3,4E‐38 ±3,4E+38 double 64 %lf ±1,7E‐308 ±1,7E+308 long double 80 %Lf ±3,4E‐4932 ±3,4E+4932 Prof. Rafael Concatto Beltrame 7 1/5 Tipos Primitivos de Dados Relação entre Binários e Decimais • Sistema de numeração binário – Método para interpretar definições de bits como inteiros não‐ negativos – Um inteiro é representado por uma soma de potências de 2 • “0” significa: não incluir na soma • “1” significa: incluir na soma 2n‐1 23 ... + Prof. Rafael Concatto Beltrame + 22 + 21 + 20 + 0 ou 1 8 1/5 Tipos Primitivos de Dados • Representação de números binários negativos – Notação de complemento de um • Cada bit é mudado para seu oposto • Faixa de bits: –2(n – 1) + 1 a 2(n – 1) – 1 • O “zero” pode ser representado de duas formas 0 0 1 0 0 1 1 0 = +38 1 1 0 1 1 0 0 1 = –38 Prof. Rafael Concatto Beltrame 9 1/5 Tipos Primitivos de Dados • Representação de números binários negativos – Notação de complemento de dois • Cada bit é mudado para seu oposto e soma‐se 1 +1 • Faixa de bits: –2(n – 1) a 2(n – 1) – 1 • Agora, existe apena uma notação para o “zero” 0 0 1 0 0 1 1 0 = +38 1 1 1 1 0 0 1 1 1 1 0 0 0 1 1 0 = –38 Prof. Rafael Concatto Beltrame 10 1/5 Tipos Primitivos de Dados • Decimal codificado em binário – Uma string de 4 bits é usada para representar um dígito decimal – Exemplo: 00100110 = 26 0 0 1 2 0 0 1 1 0 6 – Na notação de decimal codificado em binário • Existem 4 combinações de bits inválidas! • Exemplo: 1010b = 10d a 1111b = 15d Prof. Rafael Concatto Beltrame 11 1/5 Tipos Primitivos de Dados Números Reais • Notação de ponto flutuante – Conceito geral: (Mantissa) x (Base) Expoente • Base: número inteiro fixo • Mantissa: número inteiro variável • Expoente: número inteiro variável – Características • Pode ser usada para representar números com valores muito grandes ou muito pequenos • O fator limite para a exatidão é o número de dígitos binários significativos da mantissa Prof. Rafael Concatto Beltrame 12 1/5 Tipos Primitivos de Dados String de Caracteres • Nem sempre a informação é interpretada de modo numérico – Ex.: nomes, títulos, endereços, etc. – Representação: string de caracteres (str) • Cada caractere precisa ser representado por um conjunto de bits dentro do computador – Nº de bits para representar um caractere: tamanho de byte – A esse grupo de bits, denomina‐se: byte • A atribuição de strings de bits a caracteres pode ser aleatória – Código ASCII: usa 7 bits para representação (128 caracteres) Prof. Rafael Concatto Beltrame 13 1/5 Tipos Primitivos de Dados • Código ASCII – American Standard Code for Information Interchange – 7 bits para representação + 1 bit para teste de paridade – Baseada no alfabeto inglês Código Caractere Código Caractere 0011 0000 0 0010 0110 & 0011 0001 1 0100 0001 A 0011 0010 2 0100 0010 B ... ... ... ... Prof. Rafael Concatto Beltrame 14 1/5 Tipos Primitivos de Dados • Qualquer significado pode ser atribuído a um padrão de bits – A interpretação do padrão de bits que dá significado à informação – Por exemplo, sejam as strings • 00100110 = 38 (binário) • 00100110 = 26 (decimal codificado em binário) • 00100110 = & (ASCII) Prof. Rafael Concatto Beltrame 15 1/5 Revisão • Algoritmo – Processo sistemático para a resolução de um problema – Composto de um modelo matemático e um conjunto de operações – Manipula os dados de entrada para obter a solução • Tipos elementares de dados – char, int, float, double, void • Modificadores – signed, undigned – short, long Prof. Rafael Concatto Beltrame 16