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:



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

Estruturas (registros)

IFTO LÓGICA DE PROGRAMAÇÃO AULA 05

Fundamentos de Programação

1. Fazer um programa em C que pergunta um valor em metros e imprime o correspondente em decímetros, centímetros e milímetros.

Neste artigo estudaremos os conceitos relacionados às matrizes unidimensionais (vetores) e multidimensionais.

MC-102 Aula 19 Registros

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

Estrutura de Dados Básica

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

Técnicas de Programação I

Programação 1. Rafael Vargas Mesquita. ftp://ftp.ci.ifes.edu.br/informatica/rafael/

Programação de Computadores

Estruturas II UFOP 1/1

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

14.1 Vetor - Problemas

Convertendo Algoritmos para a Linguagem C

Algoritmos e Estruturas de Dados I

1- Acessando o sistema

ESTRUTURA DE DADOS -VARIÁVEIS COMPOSTAS. Prof. Angelo Augusto Frozza, M.Sc.

Algoritmos e Programação

Introdução a Programação. Ponteiros e Strings, Alocação Dinâmica

Variáveis e Comandos de Atribuição

Trabalho Computacional 2. Aplicativo para Gestão Financeira. Grupos: Os trabalhos devem ser feitos individualmente ou em duplas.

Espaço do Coordenador

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

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

GFM015 Introdução à Computação Linguagem C / Introdução à Modularização de Programas (uso de subprogramas)

Sistema Integrado CAPES - Programa de Apoio a Eventos no País

ALGORITMO I VARIÁVEIS INDEXADAS

Programação científica C++

Trabalho Prático 1 Tipos Abstratos de Dados

5 - Vetores e Matrizes Linguagem C CAPÍTULO 5 VETORES E MATRIZES

ESTRUTURAS COMPOSTAS. REGISTROS (Struct) Introdução à Ciência da Computação I Simone Senger Souza

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

Núcleo de Estudos de Nivelamento e Formação Complementar Grupo Colaborativo de Estudos Contínuos

Algoritmos e Programação. Curso de Engenharia de Produção Prof. Ms. Rogério Cardoso rogerio.cardoso@aedu.com professor@rogeriocardoso.com.

VERO. De Adquirência. Especificação de Interface. Retorno Adquirência por Conveniado

INSTRUÇÕES PARA HOMOLOGAR DRONES

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

SISTEMA DE BIBLIOTECAS DO IFRS

Tipos de Dados Avançados Vetores e Matrizes

Programação Estruturada I

Computação II Orientação a Objetos

Sefinnet Versão Arquivo de Importação SefinNet

ESTRUTURAS COMPOSTAS REGISTRO. Slides de autoria de Rosely Sanches e Simone Senger de Souza

MC-102 Aula 17 Strings e Matrizes

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

Tipo Abstrato de Dados

Dicionário de dados do sis_consulta

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).

Simulado Banco de Dados I Bimestre 1 Capítulo 1 Projeto Lógico de Banco de Dados

Tanto neste nosso jogo de ler e escrever, leitor amigo, como em qualquer outro jogo, o melhor é sempre obedecer às regras.

Semântica de Referência e Vetores / Matrizes

Manual MQS. Logo após colocar essas informações abrirá a página inicial do sistema:

Programação de Computadores I Registros na Linguagem C PROFESSORA CINTIA CAETANO

Passo a Passo do Cadastro Funcionários no SIGLA Digital

SISTEMA PLANO DE ENSINO - DOCENTES

SISTEMA DE BIBLIOTECAS DO IFRS. Manual do Usuário

UNIVERSIDADE REGIONAL DE BLUMENAU DIVISÃO DE TECNOLOGIA DA INFORMAÇÃO

Aula Teórica 16: Estruturas de Dados Heterogêneas

Estruturas de entrada e saída

Curso de C para Engenharias

MANUAL DO USUÁRIO PERFIL GESTOR CADASTRADOR - Externo MPS

Você prestou atenção?

Introdução à Programação. Armazenamento de Grande Quantidade de Informação Usando Vetores

Programação de Computadores I. Linguagem C Vetores

Abaixo será listado passo a passo o processo de cadastro, login e compra de produtos anunciados em nosso portal.

Introdução a Computação

Treinamento do Sistema RH1000

Processo: Produtos. Motivação. Acesso. Parâmetros. Entradas. Nome do Processo: Ajuste na Estrutura de Produtos

COINF. Roteiro de Treinamento 0800Net. Versões e Revisões deste Documento. Índice. 1. Nome do Projeto. 2. Roteiro. Roteiro Treinamento Solicitante

Tutorial para geração de boletos

Manual do Usuário - Cliente Externo

IFTO LÓGICA DE PROGRAMAÇÃO AULA 01

Manual de solicitação para envio de equipamento em garantia. Bosch Sistemas de Segurança

Manual M001_01. Módulo de Estágios. Visão Aluno(Web) M_001_01 Versão 01 Fevereiro 2012 Documento Interno Depto. de T.I. - UNISA

Programação: Tipos, Variáveis e Expressões

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

Roteiro de Treinamento SGCS CORP 5 1ª Etapa

5 Apresentando a linguagem C

15 a Aula Subprogramação /Subalgoritmos Função e Procedimento

ESTRUTURAS COMPOSTAS. REGISTROS (Struct) Introdução à Ciência da Computação I Simone Senger Souza

SECRETARIA DE ESTADO DE PLANEJAMENTO E GESTÃO. Órgão/Setor. Brasil

ILP - Introdução à Linguagem de Programação. Plano de estudo: - Constantes e variáveis. - Atribuindo valores às variáveis.

Algoritmos e Estruturas de Dados I

A estrutura de repetição em um algoritmo consiste na execução de um trecho do mesmo levando em consideração certas condições imposta pelo algoritmo.

MANUAL DA SECRETARIA

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

compreender a importância de cada estrutura de controle disponível na Linguagem C;

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

VIA NOVA BENEFÍCIOS RH FÁCIL LAYOUT DO ARQUIVO MAGNÉTICO EPV PARA PEDIDOS

Universidade Federal do Vale do São Francisco. Estruturas de Dados. Professor: Marcelo Santos Linder

LINGUAGEM C. Estrutura básica de um programa

Filas: conceitos e implementações

O conteúdo deste documento é de propriedade intelectual exclusiva da GVDASA Sistemas e está sujeito a alterações sem aviso prévio.

NOTA FISCAL DE SERVIÇO ELETRÔNICA (NFS-e)

TRIBUNAL DE CONTAS DO ESTADO DO RIO DE JANEIRO SISTEMA INTEGRADO DE GESTÃO FISCAL MÓDULO DELIBERAÇÃO 260/13 MANUAL DE UTILIZAÇÃO

- Aulas 57, 58, 59 e 60 - Técnicas de programação. Funções

Transcrição:

Agradecimentos Introdução à Ciência da Computação Registros em C Parte dos slides a seguir são adaptações dos originais: de A. L. V. Forbellone e H. F. Eberspächer do Prof. Rudinei Goularte Prof. Ricardo J. G. B. Campello Sumário Conceito de Registro Implementação em C (structs) Arranjos de Registros Registros Definição: Um registro é uma variável composta heterogênea É um conjunto de dados estruturados, os quais podem ser de tipos diferentes Os dados em um registro são representados através de variáveis ou constantes, normalmente chamadas de campos 4

Registros Razão da denominação (variável composta heterogênea): Podem ser compostos de variáveis (campos) de tipos diferentes Caso mais trivial: apenas tipos simples (primitivos) Porém, veremos que um campo pode também ser um arranjo ou até outro registro! Exemplo 1: Passagem de ônibus Número: Origem: Destino: Data: / / Horário: : Poltrona: Preço: Registros Exemplo 2: Registro de Pagamento Dados:,,, salário, horas trabalhadas, etc Dados Estruturados (Estrutura de Dados): Uma variável (campo) para cada dado, mas Um identificador comum para o conjunto (registro) 6 Registros Exemplo 2: Registro de Pagamento Cadeia de Caracteres Vetor de Inteiros Real note que um dos campos é um vetor horas trabalhadas no bimestre combinação de variáveis compostas heterogênea e homogênea Declaração de Registro Único: struct { tipo_1 campo(s); tipo_2 campo(s); tipo_n campo(s); }; identificador; 7 8

struct { char [12]; char [10]; }; Reg_Pag1; Declaração de Múltiplos Registros (Forma 1): struct tipo_registro { tipo_1 campo(s); tipo_2 campo(s); tipo_n campo(s); }; identificadores; 9 10 struct Registro_Pagamento { char [12]; char [10]; }; Reg_Pag1, Reg_Pag2, Reg_Pag3; 11 Declaração de Múltiplos Registros (Forma 2): struct tipo_registro { tipo_1 campo(s); tipo_2 campo(s); tipo_n campo(s); }; struct tipo_registro identificadores; 12

struct Registro_Pagamento { char [12]; char [10]; }; struct Registro_Pagamento Reg_Pag1, Reg_Pag2, Reg_Pag3; 13 Declaração de Múltiplos Registros (Forma 3): tipo_1 campo(s); tipo_2 campo(s); tipo_n campo(s); } tipo_registro; tipo_registro identificadores; 14 Registros como Campos char [12]; char [10]; } Registro_Pagamento; Registro_Pagamento Reg_Pag1, Reg_Pag2, Reg_Pag3; 15 Um registro pode conter campos que são registros Use typedef para declarar um tipo de registro address com os campos Rua, No, Cidade, UF, CEP Use o novo tipo declarado para incrementar o tipo de registro Registro_Pagamento declarado nos exemplos anteriores, de forma que este contenha um campo do tipo address para o endereço do empregado 16

Registros como Campos Solução: char Rua[20], Cidade[15], UF[3]; int No, CEP; } address; char NOME[30], [12], [10]; address ENDERECO; } Registro_Pagamento; Exercícios Declare variáveis do tipo Registro_Pagamento definido no exemplo anterior Declare um tipo registro para o exemplo da passagem de ônibus visto anteriormente, definindo os campos data (dia, mês e ano) e horário (hora e minuto) como outros registros 17 18 Manipulação de Registros Como acessar os campos de um registro? nome_do_registro. nome_do_campo Exemplos de Atribuição: Reg_Pag1.HT[0] = 163; Reg_Pag1.SALARIO = 852.7; Vetor de Inteiros Real Manipulação de Registros Exemplo de Manipulação: printf( Entre o nome do empregado: ); scanf( %s, Reg_Pag1.NOME); printf( Entre as horas trabalhadas no bimestre: ); for (i=0; i<=5; i++) scanf( %d, &Reg_Pag1.HT[i]); printf( Entre o salario: ); scanf( %f, &Reg_Pag1.SALARIO); Nota: C ANSI admite a atribuição direta entre estruturas de um mesmo tipo. Por exemplo, Reg_Pag2 = Reg_Pag1 19 20

Manipulação de Registros Quando um dos campos é outro registro: Manipulação de Registros struct { char NOME[30], [12], [10]; struct { char Rua[20], Cidade[15], UF[3]; int No, CEP; } ENDERECO; } Reg_Pag1; Atribuições Reg_Pag1.SALARIO = 1200; Reg_Pag1.ENDERECO.No = 230; Reg_Pag1.ENDERECO.CEP = 15980; E se tenho 500 empregados? Declaro 500 variáveis do tipo registro??? 21 22 1 2 3 4 Arranjos de Registros Combinação de estruturas homogêneas com heterogêneas vetores ou matrizes cujas células são registros Exemplo 1: ônibus composto por passagens Número: : : Origem: Destino: Data: / / Horário: : Arranjos de Registros Exemplo 2: Registro de Pagamento HT 1 HT 2 HT 3 HT 4 HT 5 HT 6 HT 1 HT 2 HT 3 HT 4 HT 5 HT 6 FGTS 1.1 2 500 1 44 Poltrona: Preço: 24

Arranjos de Registros Declaração [0] [1] char [12]; char [10]; [2] 25 } Registro_Pagamento; Registro_Pagamento Ficha_SP[500], Ficha_RJ[300], Ficha_MG[100]; 26 [0] [1] Arranjos de Registros FICHA_SP Como referenciar este campo? FICHA_SP[0].NOME Como referenciar este campo? FICHA_SP[1].HT[5] Arranjos de Registros Exemplos de Atribuição: FICHA_SP[2].SALARIO = 243.45; FICHA_SP[6].HT[3] = 228; [2] Como referenciar este campo? scanf( %s, FICHA_SP[1].NOME); FICHA_SP[2].SALARIO 27 28

Exercício 1 Exercício 2 Fazer um programa, em C, que contenha a declaração de um registro PESSOA, contendo: (nome): até 30 caracteres; Sexo (sexo): 'M' ou 'F'; Data de nascimento (data_nas): dd/mm/aa; Generalize o programa do Exercício 1 de tal forma que ele permita registrar 300 funcionários Não necessariamente o programa deve registrar todos os 300 funcionários. Logo, permita ao usuário uma opção de interromper o cadastro Número de dependentes (n_dep). O programa deve pedir ao usuário que digite as informações de modo a preencher o registro. As informações do registro devem ser escritas na tela Exercício 3 Uma determinada biblioteca possui obras de ciências exatas, ciências humanas e ciências biomédicas, totalizando 1500 volumes, 500 de cada área. O proprietário resolveu informatizá-la e, para tal, agrupou as informações sobre cada livro do seguinte modo: Exercício 4 Uma determinada biblioteca possui obras de ciências exatas, ciências humanas e ciências biomédicas, totalizando 1500 volumes, 500 de cada área. O proprietário resolveu informatizá-la e, para tal, agrupou as informações sobre cada livro do seguinte modo: Código de Catalogação (4 dígitos): Ano: Doado: ( ) Sim ( ) Não No. de Páginas: da Obra: do Autor: Editora: Código de Catalogação (4 dígitos): Doado: ( ) Sim ( ) Não No. de Páginas: da Obra: do Autor: Editora: 1. Construa um programa que declare tal estrutura de forma que as informações das obras possam ser organizadas em três colunas de uma matriz, uma para cada área 2. Complemente o programa do exercício anterior para realizar uma consulta: O usuário deve fornecer o código da obra e sua área. Escreve-se então os campos do registro correspondente, ou que a obra não existe. Código 1 encerra o algoritmo

Bibliografia Schildt, H. "C Completo e Total", 3a. Edição, Pearson, 1997. Damas, L. Linguagem C, 10a. Edição, LTC, 2007