Estruturas (Registros)



Documentos relacionados
Programação Estruturada I

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

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

INF 1007 Programação II

Algoritmos e Programação

INTRODUÇÃO À LINGUAGEM C++

Computação I - C Prova /10/ Profs. Adriano Cruz e Valeria Bastos

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

Exercício 1. Tabela 1: Cadastro de usuários, senhas e privilégios (exemplo). Login Senha Privilégio Armamento

Estruturas (registros)

Estruturas II UFOP 1/1

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

Programando em C++ Histórico da Linguagem C

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática

Apresentar os conceitos básicos e as estruturas de linguagem relacionadas à tomada de decisão ofertadas pela linguagem C, tais como:

MC-102 Aula 19 Registros

Tipo de Dados em Linguagem C

Linguagens de Programação I

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

PROVA P2 INF /10/2014 Programação II

Computação 2. Aula 7. Profª. Fabiany Ponteiros

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

Tipo Abstrato de Dados

Métodos Computacionais. Tipos Estruturados

1ª versão. #include <stdio.h> #include <string.h> #include <stdlib.h> #define maxdiscos 1000

PIP/CA - Programa Interdisciplinar de Pós-Graduação em Computação Aplicada da UNISINOS ALGORITMOS & ESTRUTURAS DE DADOS

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

Computação 2. Aula Profª. Fabiany Listas Duplamente Encadeadas

2ª Lista de Exercícios

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

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

Algoritmos e Estruturas de dados

Bacharelado em Ciência e Tecnologia Processamento da Informação. Equivalência Portugol Java. Linguagem Java

struct LISTA item quant

Edwar Saliba Júnior. Dicas, Comandos e Exemplos Comparativos entre Linguagem Algorítmica e Linguagem C

Unidade IV: Ponteiros, Referências e Arrays

Conceitos Básicos de C

Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO

Introdução a Programação. Ponteiros para Estruturas, Outros Tipos de Estruturas

INF 1005 Programação I

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

Linguagem C Tipos de Dados. void; escalares; sizeof Vectores; strings em C Estruturas Introdução ao pré-processador

Introdução a Programação. Tipos Estruturados de Dados

Técnicas de Programação I

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

Curso C: Controle de Fluxo

Métodos Computacionais. Árvores

Analise o código abaixo:

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

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

PROGRAMA DE DISCIPLINA

Manipulação de Arquivos

PROGRAMA DE DISCIPLINA

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

Sintaxe Geral Tipos de Dados. Prof. Angelo Augusto Frozza, M.Sc.

Algoritmos e Programação Estruturada

Algoritmo e Técnica de Programação - Linguagem C

INF 1620 P2-01/11/03 Questão 1 Nome:

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

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

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

Introdução à Linguagem C

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

INF 1007 Programação II

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

insfcanceof new public switch transient while byte continue extends for int null

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

Programação e Sistemas de Informação

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

10. - ESTRUTURAS Características Básicas

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

O COMPUTADOR. Introdução à Computação

INF 1005 Programação I

Programação científica C++

Edwar Saliba Júnior. Dicas, Comandos e Exemplos Comparativos entre Linguagem Algorítmica e Linguagem C / C++

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

9. Estruturas em C Registros

Tipos de Dados Avançados Vetores e Matrizes

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

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

48 { printf("ocorreu um erro o arquivo nao pode ser aberto\n");

ponteiros INF Programação I Prof. Roberto Azevedo

Métodos Computacionais. Fila

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.

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

Aula 24 Ponteiros, vetores e structs

Variáveis e Comandos de Atribuição

Programação de Computadores I. Ponteiros

Aluno: Valor Nota Q1 3.0 Q2 2.5 Q3 2.5 Q4 2.0 Total 10.0

DAS5102 Fundamentos da Estrutura da Informação

Linguagens de Programação I

Conversão de Tipos e Arrays

C++ - Matrizes. Observ.: C++ não avisa quando o limite de uma matriz foi excedido. Providenciar a verificação é responsabilidade do programador.

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

Fundamentos de Programação

Transcrição:

Estruturas (Registros) Agrupa conjunto de tipos de dados distintos sob um único nome string string inteiro inteiro inteiro float float Cadastro Pessoal Nome Endereço Telefone Idade Data de Nascimento Peso Altura struct cadastro_pessoal char *nome; char *endereço; int telefone; int idade; int nascimento; float peso; float altura;

Estruturas (Registros) Um pequeno exemplo main( ) struct facil int num; char ch; struct facil var; /*declara variável var do tipo facil */ var.num = 2; var.ch = Z ; printf( var.num = %d, var.ch = %c\n,var.num, var.ch );

Estruturas (Registros) Exercício Crie um programa para cadastrar as notas dos alunos de uma turma. Cada registro do cadastro deve conter: Nome do aluno, 1 a nota, 2 a nota e média final.

Inicializando Estruturas struct livro char titulo[40]; int regnum; struct livro livro1 = Treinamento em Linguagem C - I, 124 struct livro livro2 = Treinamento em Linguagem C - II, 125

Atribuições entre estruturas Na versão original do C, definida por Kernighan e Ritchie, era impossível atribuir o valor de uma variável estrutura a outra do mesmo tipo usando uma simples expressão de atribuição. Nas versões modernas de C, esta forma de atribuição já é possível struct livro char titulo[40]; int regnum; struct livro livro1 = Treinamento em Linguagem C - I, 124 struct livro livro2 = Treinamento em Linguagem C - II, 125 livro1 = livro2;

Estruturas Aninhadas Exatamente como é possível ter matrizes de matrizes, pode-se criar estruturas que contém outras estruturas. struct professor char nome[50]; char disciplina[20]; int carga_horaria; struct aluno char nome[50]; int matricula; struct cadastro_escolar struct professor docentes[100]; struct aluno discente[10000];

Passando estruturas para funções struct livro char titulo[40]; int regnum; main( ) struct livro livro1; struct livro livro2; struct livro novonome( ); livro1 = novonome( ); livro2 = novonome( ); list(livro1); struct livro novonome( ) char numstr[81]; struct livro livr; printf( \ndigite título: ); gets(livr.titulo); printf( Digite registro: ); gets(numstr); livr.regnum=atoi(numstr); return(livr); void list(struct livro livr) printf( \nlivro:\n ); printf( Título: %s\n, livr.titulo); printf( No do registro: %3d\n,livr.regnum);

struct lista char titulo[30]; char autor[30]; int regnum; double preco; Ponteiros para Estruturas main( ) static struct lista livro[2] = C, Edvadno, 102, 70.5, C++, Cláudio, 321, 63.25 struct lista *ptrl; /* ponteiro para estrutura */ Endereço 1: 404 2: 474 Ponteiro 1: 404 2: 474 ptrl->preço: R$ 70.5 (*ptrl).preço: R$ 70.5 ptrl->título: C++ ptrl->autor: Cláudio printf( Endereço 1: %u 2: %u\n, &livro[0], &livro[1]); ptrl = &livro[0]; printf( Ponteiro 1: %u 2: %u\n, ptrl, ptrl+1); printf( ptrl->preço: R$.%2f (*ptrl).preço: R$.%2f\n, ptrl->preço, (*ptrl).preço); ptrl++; /* aponta para a próxima estrutura */ printf( ptrl->título: %s ptrl->autor: %s\n, ptrl->título, ptrl->autor);

Criando Listas Encadeadas 1 o Elemento 2 o Elemento 3 o Elemento valores do valores do valores do registro registro registro Elemento Nulo NULL

Criando uma Lista de Livros struct prs char título[30]; char autor[30]; int regnum; double preço; struct prs * próximo; /* ponteiro para próxima estrutura */ struct prs *ptr_início, *ptr_atual, *ptr_novo; main( ) char ch; ptr_início = (struct prs *) NULL /* sem dados ainda */ while (1) printf( \n Digite n para novos livros e l para listar o acervo ); ch = getche( ); switch(ch) case n : novo( ); break; case l : lista( ); break; default: puts( \n Opção inválida!!! \n Tente novamente. );

novo ( ) char numstr[81]; ptr_novo = (struct prs*) malloc ( sizeof (struct prs) ); if (ptr_início == (struct prs*) NULL ) ptr_início = ptr_atual = ptr_novo; else ptr_atual = ptr_início; while( ptr_atual->próximo!= (struct prs*) NULL) ptr_atual = ptr_autal->próximo; ptr_atual->próximo = ptr_novo; ptr_atual = ptr_novo; printf( Digite Título\n ); gets(ptr_atual->título); printf( Digite autor\n); gets(ptr_atual->autor); printf( Digite número do registro\n ); gets(numstr); ptr_atual->regnum = atoi(numstr); printf( Digite preço\n ); gets(numstr); ptr_atual->preço = atof(numstr); ptr_atual->próximo = (struct prs*) NULL;

lista ( ) if (ptr_início == (struct prs*) NULL) printf(\nlista vazia ); return; ptr_atual = ptr_início; do printf( Título: %s\n,ptr_atual->título); printf( Autor: %s\n,ptr_atual->autor); printf( Registro: %03d\n,ptr_atual->regnum); printf( Preço: %4.2f\n,ptr_atual->preço); ptr_atual = ptr_atual->próximo; while(ptr_atual!= (struct prs*) NULL);