A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Algoritmos Escher. Agenda Estruturas Heterogêneas; Exercícios.

Apresentações semelhantes


Apresentação em tema: "Algoritmos Escher. Agenda Estruturas Heterogêneas; Exercícios."— Transcrição da apresentação:

1 Algoritmos Escher

2 Agenda Estruturas Heterogêneas; Exercícios.

3 Conceitos Iniciais Motivação: nTipos básicos: Tipos de Dados Inteiros Tipos de Dados Reais Tipos de Dados Caracteres (String) Variáveis guardam um só valor. nTipos de Dados Homogêneos Vetores e Matrizes Variáveis guardam coleções de objetos de mesmo tipo. nComo guardar coleções de tipos diversos?

4 Conceitos Iniciais Estruturas Heterogêneas – Estrutura (Struct): nPara armazenar, ou agrupar, informações relacionadas que têm tipos diferentes deve-se utilizar variáveis do tipo registro, ou estrutura (struct). n structs armazenam diversos itens de uma só vez; nIsto significa, que numa mesma estrutura de dados, é possível ter diversas variáveis de tipos de dados básicos agrupadas.

5 Conceitos Iniciais Estruturas Heterogêneas – Estrutura (Struct): nContém um número fixo de elementos chamados de campos, ou membros; nOs campos podem ser de tipos diferentes (estrutura heterogênea); nCada campo tem um nome próprio chamado deidentificador de campo, onde campo = unidade de registro.

6 Estruturas - struct Campos x Registros: nRegistros - informações do cadastro. nCampos - informações do registro. Os clientes de uma empresa nome, endereço, , cpf,... Os assinantes da lista telefônica nome, telefone, endereço Os alunos da disciplina de Matemática matrícula, nome, faltas, notas bimestrais, situação

7 Estruturas - struct Contextualizando: nConsidere que seja informado o nome de um aluno e suas quatro notas bimestrais que deverão ser agrupadas. n Esquema de um registro (struct) de aluno formado pelos campos : Nome, Primeira Nota, Segunda Nota, Terceira Nota e Quarta Nota. Cadastro de Notas Escolares Nome :_______________________ Primeira Nota.: ________ Segunda Nota..: ________ Terceira Nota.: ________ Quarta Nota...: ________

8 Estruturas - struct Sintaxe: n Na linguagem C, os registros (ou structs) devem ser definidos antes das declarações das variáveis, pois é muito comum ocorrer a necessidade de se declarar uma ou mais variáveis com o tipo de registro definido, conforme a seguinte sintaxe:

9 Estruturas - struct Sintaxe: // declaração da variável do tipo registro definido, struct ; IdentificadorDoRegistro: nome do tipo registro definido lista dos tipos e seus campos: relação de tipos e campos do registro. NomeDaVariável: nome da variável declarada a partir do tipo registro definido anteriormente. // definição do tipo registro, ou seja, definição da struct struct { ; };

10 Estruturas - struct Campos (ou membros): struct { ;... ; }; onde: campo1, campo2,..., campoN: representam os nomes associados a cada campo do registro; tipo1, tipo2,..., tipoN: representam qualquer um dos tipos básicos ou tipo anteriormente definido.

11 Estruturas - struct Definindo uma struct - Exemplo: nConsidere : nLing. C: Cadastro de Notas Escolares Nome :_______________________ Primeira Nota.: ________ Segunda Nota..: ________ Terceira Nota.: ________ Quarta Nota...: ________ // definição do tipo registro CNotasEscolar struct CNotasEscolar { char nome[35]; float nota1, nota2; float nota3, nota4; };

12 Estruturas - struct Campos (ou membros): // declaração da variável Aluno declarada a partir do tipo registro CNotasEscolar struct CNotasEscolar Aluno; Este exemplo corresponde à definição de um modelo de um registro (CNotasEscolar) e à criação de uma área de memória chamada Aluno, capaz de conter cinco subdivisões, ou campos: nome, nota1, nota2, nota3 e nota4.

13 Estruturas - struct Como acessar os Campos (ou membros): nPara utilizar um campo específico do registro, deve-se diferenciar esse campo. Para tal, utiliza-se o caractere. (ponto) para estabelecer a separação do nome da variável registro do nome do campo. n struct CNotasEscolar { char nome[35]; float nota1, nota2; float nota3, nota4; }; struct CNotasEscolar Aluno; // para acessar nota1 faremos: Aluno.nota1 = 10.0; Para denotar tipos estruturados registro (struct) ponto

14 Estruturas - struct Operações Básicas com Struct: nDo mesmo modo que acontece com variáveis simples, também é possível realizar operações de atribuição (=), leitura (cin) e escrita (cout) com variáveis tipo struct. struct RgAluno { char nome[35]; float nota1; float nota2; }; struct RgAluno Aluno, NewAluno; NewAluno = Aluno; Neste caso o acesso ao registro é feito genericamente, ou seja, todos os campos do registro são envolvidos na operação de atribuição.

15 Estruturas - struct Lendo e Escrevendo valor da struct: #include using namespace std; //tipo struct (Global) struct RgAluno { char nome[35]; float nota1; float nota2; }; struct RgAluno Aluno; main () { //Valores Digitados // } cout << "Nota 1o. Bimestre: "; cin >> Aluno.nota1; cout << "Nota 2o. Bimestre: "; cin >> Aluno.nota2; cout << "\n\n\nNome do Aluno: " << Aluno.nome; cout << "\nNota 1o. Bimestre: " << Aluno.nota1; cout << "\nNota 2o. Bimestre: " << Aluno.nota2; cout << "Nome do Aluno: "; cin >> Aluno.nome;

16 Estruturas – Exercícios n 1. Crie uma estrutura com os campos: –Nome –Endereco –Idade n Leia a estrutura acima definida; n Escreva a mensagem maior de idade se idade > 18; n Escreva os dados da estrutura. n 2. Reescreva o programa acima para 5 pessoas;

17 Estruturas - struct Campos do registro declarados como vetor: nPara manipular um campo do registro do tipo vetor deve- se obedecer às manipulações próprias de cada estrutura de dados, ou seja: Aluno.nota[1] = 7.5; cin << Aluno.nota[3]; struct RgAluno { char nome[35]; float nota [4]; }; struct RgAluno Aluno; Cadastro de Notas Escolares Nome.: _____________________ Nota.:

18 Estruturas – Exercícios n 3. Crie uma estrutura conforme RgAluno no slide anterior: n Leia a estrutura; n Calcule a média; n Escreva os dados da estrutura e mostre a média;. n 4. Reescreva o programa acima para 5 pessoas;

19 Estruturas - struct Vetor de Registros: nPara controlar as notas de 30 alunos, numerados de 0 até 29 seqüencialmente, basta criar um vetor no qual cada posição é um elemento do tipo registro RgAluno. cin << Aluno[1].nome; cin << Aluno[i].nota[1]; struct RgAluno { char nome[35]; float nota [4]; }; struct RgAluno Aluno [30]; Cadastro de Notas Escolares Nome.: _____________________ Nota.: ALUNO [ ? ]

20 Estruturas – Exercícios n 5. Reescreva o programa do exercício 04 armazenando os dados das para 5 pessoas em um vetor. –Leia os dados da pessoa, calcule e armazene a media e ao final imprima os dados das 5 pessoas.

21 Estruturas - struct Utilizando struct dentro struct : nPara cada nível da estrutura utiliza-se o caracter. (ponto). struct RgData { int dia; int mes; int ano; }; struct RgPessoa { char nome[35]; char sexo; struct RgData DtNascto; }; struct RgPessoa Pessoa; strcpy (Pessoa.nome, Flavio Marcello"); Pessoa.sexo = M; Pessoa.DtNascto.dia = 30; Pessoa.DtNascto.mes = 11; Pessoa.DtNascto.ano = 1965;

22 Estruturas – Exercícios n 6. Reescreva o programa do exercício 05 acrescentado a data de nascimento conforme exemplo do slide anterior. –Leia os dados da pessoa, calcule e armazene a media e ao final imprima os dados das 5 pessoas.

23 Referências nLopes, A. & Garcia, G. – Introdução a Programação. nSchildt – C Completo e Total.

24 Obrigado

25 E Agora??? Exercícios!!!

26 Exercícios Propostos 1.Seja a estrutura para descrever uma agenda de endereços, contendo os seguintes campos: nome: string de tamanho 30 idade: inteiro telefone: string de tamanho 10 Escrever a definição da estrutura agenda globalmente. Ler UM registro, e logo após escrever os dados lidos. 2.Alterar o programa do exercício anterior para ler 10 registros, imprimir os mesmos. 3.Alterar o o programa do exercício anterior passando para função a struct e quantidade de registro a ser lida. Faça também a impressão utilizando uma função para tal.

27 FIM

28 Solução Ex. 01 #include using namespace std; struct agenda { char nome[30]; int idade; char telefone[10]; }; int main() { struct agenda Dagenda; cout << "\n Digite Nome : "; cin >> Dagenda.nome; cout << "\n Digite Idade : "; cin >> Dagenda.idade; cout << "\n Digite Telefone : "; cin >> Dagenda.telefone; // A impressão dos dados cout << "\n Nome : " << Dagenda.nome; cout << "\n Endereco : " << Dagenda.idade; cout << "\n Telefone : " << Dagenda.telefone; cout << "\n\n"; //Parada na tela. cout << "\n\nPrograma executado com sucesso. "; getchar(); getchar(); //Sinaliza execucao do program sem problemas return (0); }


Carregar ppt "Algoritmos Escher. Agenda Estruturas Heterogêneas; Exercícios."

Apresentações semelhantes


Anúncios Google