Estrutura de Dados Conceitos Iniciais

Documentos relacionados
Algoritmos e Programação Estruturada

MC-102 Algoritmos e Programação de Computadores IC-UNICAMP. Aula 21 - Registros. Por: Luís Augusto Angelotti Meira (Sala IC-71) 1S2005

A Pilha. Aula 02. DPEE 1038 Estrutura de Dados para Automação Curso de Engenharia de Controle e Automação Universidade Federal de Santa Maria

Introdução a POO. Introdução a Linguagem C++ e POO

INF 1005 Programação I

17 - Funções e Procedimentos em C Programação Modular

struct LISTA item quant

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA INFORMÁTICA APLICADA

Tipo de Dados em Linguagem C

INF 1007 Programação II

Fundamentos de Programação

INF 1007 Programação II

Estruturas de Dados. Alguns dados não costumam ser tão simples assim... Podem ser compostos por vários dados distintos

Resumo da Introdução de Prática de Programação com C. A Linguagem C

Algoritmos e Programação

INF 1620 P1-10/04/02 Questão 1 Nome:

INF 1005 Programação I

INTRODUÇÃO AO C++ SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO

Aula 06 - Funções. O que é uma Função - Comando return - Protótipos de Funções - Tipos de Funções - Escopo de Variáveis - Passagem de parâmetros

Estrutura, União e Enumeração em C

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br

MC102 Algoritmos e programação de computadores Aula 3: Variáveis

Curso de Linguagem C

ITENS FUNDAMENTAIS. Profª Angélica da Silva Nunes

Estruturas (registros)

Module Introduction. Programação. Cap. 10 Estruturas (Structs)

Linguagem C: agregados heterogêneos, arquivos binários, recursividade. Prof. Críston Algoritmos e Programação

Operaçõe õ s c om o Strings Intr oduç ão a o Ponte iros o e Funçõe õ s

cast poderia ser usado também para transformar um real (float) em inteiro. A sintaxe C (float)i pode ser substituída em C++ por float(i).

Estruturas (Registros)

Linguagem C. Programação Estruturada. Fundamentos da Linguagem. Prof. Luis Nícolas de Amorim Trigo

MC-102 Aula 19 Registros

Linguagem C: variáveis, operadores, entrada/saída. Prof. Críston Algoritmos e Programação

Linguagem C. TGSI Lógica de Programação / Linguagem C Prof. Marcos Roberto

Estrutura da linguagem de programação C Prof. Tiago Eugenio de Melo tiago@comunidadesol.org

Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre

Alocação dinâmica de memória

Linguagem de Programação

PROGRAMAÇÃO ESTRUTURADA. CC 2º Período

MC-102 Aula 17 Strings e Matrizes

INF PROGRAMAÇÃO II LISTA DE EXERCÍCIOS 4

Estruturas de Dados I

Introdução. Manipulação de arquivos em C. Estrutura de Dados II Prof Jairo Francisco de Souza

Listas (Parte 2) Túlio Toffolo BCC202 Aula 10 Algoritmos e Estruturas de Dados I

MC-102 Algoritmos e Programação de Computadores

2ª Lista de Exercícios

Linguagens de Programação I

LINGUAGEM C UMA INTRODUÇÃO

Programação de Computadores I. Ponteiros

Estruturas de Dados. Prof. Gustavo Willam Pereira Créditos: Profa. Juliana Pinheiro Campos

Laboratório 11 Estruturas. Departamento de Sistemas e Informática. Disciplina de Introdução à Programação Ano Lectivo 2006/2007

Manipulação de Arquivos

Pesquisa Sequencial e Binária

Introdução à Programação

Aluísio Eustáquio da Silva

INF1007: Programação 2 10 Árvores Binárias. (c) Dept. Informática - PUC-Rio 1

Técnicas de Programação I

E/S CPU. Memória (Instruções e dados) 2 PARADIGMA IMPERATIVO. Instruções e dados. Resultados das operações. Unidade lógica e aritmética

Figura 13.1: Um exemplo de árvore de diretório.

Métodos Computacionais. Tipos Estruturados

LTP-IV. Prof. Dr. Silvio do Lago Pereira. Departamento de Tecnologia da Informação Faculdade de Tecnologia de São Paulo

Resumo da Matéria de Linguagem de Programação. Linguagem C

Introdução à Ciência da Computação. Registros em C. Sumário. Registros. Agradecimentos. Parte dos slides a seguir são adaptações dos originais:

Prof. Yandre Maldonado - 1 PONTEIROS. Prof. Yandre Maldonado e Gomes da Costa

Banco de Dados Modelo Conceitual, Lógico, Físico, Entidade- Relacionamento (ER) Hélder Nunes

Estruturas de entrada e saída

Plano de Aula. if(condição) { bloco de comandos; } else { bloco de comandos2; }

Capítulo 2: Introdução à Linguagem C

Aula 3 Alocação Dinâmica

Expressões. Prof. Alberto Costa Neto Linguagens de Programação. Departamento de Computação Universidade Federal de Sergipe

Introdução ao Matlab. 1 Algumas regras e comandos do Matlab. 3 de março de Docente Responsável : Prof. Dr. Antônio C. Roque

AULA 2: INTRODUÇÃO A LINGUAGEM DE C. Curso: Ciência da Computação Profª.: Luciana Balieiro Cosme

Busca. Pesquisa sequencial

Curso de C para Engenharias

Métodos Computacionais. Árvores

struct <identificador> { tipo <nome_variável>; tipo <nome_variável>; : } <variáveis_estrutura>;

Exercício de Revisão Linguagem C

Técnicas de Programação: ESTRUTURAS, UNIÕES E TIPOS DEE UFPB

Orientação a Objetos. Conceitos Iniciais Introdução a Linguagem Java. Gil Eduardo de Andrade

DAS5102 Fundamentos da Estrutura da Informação

IFTO LÓGICA DE PROGRAMAÇÃO AULA 01

SCC122 Estruturas de Dados. Listas Generalizadas e Polinômios

Estruturas. struct são coleções de dados heterogêneos agrupados em uma mesma estrutura de dados. Ex: armazenar as coordenadas (x,y) de um ponto:

IFTO LÓGICA DE PROGRAMAÇÃO AULA 05

Linguagem C Funções definidas pelo usuário. Lógica de Programação

DESCRIÇÃO DO TRABALHO - VERSÃO DE 29/04/ :00.

Pesquisa em Memória Primária. Prof. Jonas Potros

Revisão para Prova 2. Mirella M. Moro

Apontadores/ponteiros

Estruturas compostas

Introdução à Linguagem C

LÓGICA DE PROGRAMAÇÃO. PROFª. M.Sc. JULIANA H Q BENACCHIO

Registros. Técnicas de Programação. Rafael Silva Guimarães

Transcrição:

Engenharia de CONTROLE e AUTOMAÇÃO Estrutura de Dados Conceitos Iniciais Aula 03 DPEE 1038 Estrutura de Dados para Automação Curso de Engenharia de Controle e Automação Universidade Federal de Santa Maria beltrame@mail.ufsm.br

Sumário Estruturas em C Definição Declaração em C Uniões Parâmetros de funções 2

Estruturas em C Definição Definida como um grupo de itens Cada item (membro) érepresentado por um identificador próprio Estudante Nome Nascimento Curso Disciplinas Endereço Estrutura: Estudante Membros: Nome, Nascimento, Endereço, Curso, Disciplinas 3

Declarando estruturas em C struct { char first[10]; char middle; char last[20]; } str_name; struct nametype { char first[10]; char middle; char last[20]; struct nametype str_name; typedef struct { char first[10]; char middle; char last[20]; } NAMETYPE; NAMETYPE str_name; 4

Quando uma variável édeclarada como uma estrutura Pode se acessar cada membro individualmente nome_variavel. nome_membro Exemplos // Escreve na tela o conteúdo de first printf("%s", str_name.first); // Atribui o caractere m à middle str_name.middle = m ; // Se um membro da estrutura for um vetor for (i=0; i<20; i++) { str_name.last[i] = str_name2.last[i]; } 5

Um membro de uma estrutura pode ser declarado como outra estrutura struct nametype { // Estrutura 1 char first[10]; char last[20]; struct addrtype { // Estrutura 2 char street[40]; char city[10]; struct name_addr_type { // Combinação de 1 e 2 struct nametype name; struct addrtype address; 6

name_addr_type nametype (name) char first [10] char last [20] addrtype (address) char street [40] char city [10] 7

Se declararmos duas variáveis struct name_addr_type user1, user2; Os seguintes comandos são válidos // Atribuições user2.adress.city[4] = user1.name.first[1]; for (i=0; i<10; i++) { user1.name.first[i] = user2.name.first[i]; } // Alguns compiladores aceitam, desde que as // estruturas sejam do mesmo tipo user1 = user2; 8

Estruturas em C Uniões A estrutura do tipo union permite que uma variável seja interpretada de diferentes maneiras Exemplo: Empresa de seguros Modalidades: Vida (LIFE), Automóvel (AUTO), Residencial (HOME) Todas modalidades Nome, Endereço, Valor do seguro, Pagamento do prêmio mensal Seguro de vida Data de nascimento do assegurado, Nome do beneficiário Seguro do automóvel Número da licença, Estado, Modelo, Ano do automóvel Seguro residencial Dada de construção da casa, Indicativo de sistemas de segurança 9

Declarando uniões em C #define LIFE 1 #define AUTO 2 #define HOME 3 struct addr { char street[50]; char city[10]; char zip[5]; struct date { int month; int day; int year; (Continua) // Constantes // Estr. Endereço // (dado comum) // Estr. Data // (dado comum) 10

// Estrutura Apólice struct str_policy { int pol_number; char name[30]; struct addr address; int amount; float premium; int kind; // LIFE, AUTO ou HOME union { // União... // (dados comuns) // Declaração da variável policyinfo struct str_policy policyinfo; (Continua) 11

union { struct { char beneficiary[30]; struct date birthday; } life; struct { char license[10]; char state[2]; char model[15]; int year; } auto; struct { int yearbuilt; int security; } home; // Vida // Automóvel // Residencial 12

Estruturas em C Análise da estrutura Parte fixa: todas definições até a palavra union Parte variável: definições contidas em union { Denomina se variável pois nem todos os campos serão sempre utilizados Seu uso depende da modalidade de apólice de seguro O programador é responsável por que haja coerência entre um membro e o dado salvo nele Observar que, dependendo da modalidade, alguns membros não são empregados Observação Éusual manter um membro fixo para identificar a estrutura em uso (kind) 13

if (policyinfo.kind == LIFE) // Vida printf("%s %2d/%2d/%4d", policyinfo.life.beneficiary, policyinfo.life.birthday.month, policyinfo.life.birthday.day, policyinfo.life.birthday.year); else if (policyinfo.kind == AUTO) // Automóvel printf("%d %s %s %s %d", policyinfo.auto.license, policyinfo.auto.state, policyinfo.auto.model, policyinfo.auto.year); else if (policyinfo.kind == HOME) // Residencial printf("%d %d", policyinfo.home.yearbuilt, policyinfo.home.security); 14

Estruturas em C Parâmetros de Estruturas Para passar uma estrutura para uma função, precisamos passar seu endereço e referenciá la por meio de um ponteiro (*p).x ou p -> x 15

Exemplo // Função para escrita na tela fc_write_name (name) struct nametype *name { int i; for (i=0; (i<10)&&(name->first[i]!= \0 ); i++ ){ printf("%c", name->first[i]); } printf(" "); for (i=0; (i<20)&&(name->last[i]!= \0 ); i++ ){ printf("%c", name->last[i]); } } name.first = Erico name.last = Verissimo x = fc_write_name(name) // Erico Verissimo 16

Revisão Estruturas em C Éum grupo de itens Cada item (membro) é possui um identificador próprio nome_variavel. nome_membro União (union) Permite que uma variável seja interpretada de diferentes maneiras Dependendo da modalidade, alguns membros não são empregados Parâmetros de estruturas (*p).x ou p -> x 17