Programação II Estruturas de Dados

Slides:



Advertisements
Apresentações semelhantes
C/C++ para Sistemas Operacionais Professor: André Luis Meneses Silva /msn: Página:
Advertisements

Denise Guliato Faculdade de Computação – UFU
Marco Antonio Montebello Júnior
Linguagem de Programação VI Tipos de Dados Compostos - structs
Funções em C.
03/08/2011 Professor Leomir J. Borba- –
Désiré NGuessan Programação II Estruturas de Dados
Programação II Estruturas de Dados
Programação II Estruturas de Dados Aula 01
Programação II Estruturas de Dados
Programação II Estruturas de Dados
Vamos abordar o exemplo
TADS – Tipos Abstratos de Dados
Alocação Dinâmica de Memória
Programação II Estruturas, uniões e enumerações
Linguagem C LPG-I – Variáveis Estruturadas – Vetores
LPG - I: Alocação Dinâmica de Memória - Ponteiros
Linguagem de Programação 1
LPG - I: Ponteiros e Vetores/Matrizes UDESC - SBS
LPG-I: Tipos Complexos - Estruturas
Estruturas de Dados I Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Estruturas de Dados I Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Estruturas de Dados II Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Estruturas de Dados II Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Universidade Federal do Espírito Santo Programação II Estruturas Professora: Norminda Luiza.
Universidade de Brasília
Ponteiros em Linguagem C
Slides Prof. Jean SIMÃO Revisão: Prof. João FABRO
Estruturas de Dados Homogêneas Multidimensionais – Matrizes
Matrizes e Funções - Continuação
Slides: Prof. João Fabro UTFPR - Curitiba
Fundamentos de Programação 1
Ponteiros.
Escola Secundária c/ 3º CEB da Batalha
Vamos agora aprender a utilizar estruturas.
APRESENTAÇÃO: GIANCARLO DE GUSMÃO GONÇALVES CURSO DE C AULA 08: Tipos Estruturados.
exercícios listas encadeadas
PROGRAMAÇÃO ESTRUTURADA II
PROGRAMAÇÃO ESTRUTURADA II
Definição de Tipos Estruturas e Ponteiros
Estrutura de dados II Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Programação II Estruturas de Dados Aula 02 - continuação
Estrutura de Dados Avançada
UNIDADE 5 ESTRUTURAS DE DADOS HOMOGÊNEAS
Estruturas de Dados Aula 2: Estruturas Estáticas 07/04/2014.
Estruturas de Dados Aula 11: TAD Pilha
Educação Profissional Técnica de Nível Médio Curso Técnico de Informática
Aula P.02 – BCC202 Revisão sobre Ponteiros Túlio Toffolo
Uso de parâmetros na linha de comando. Parâmetros da função main:
Estruturas de Dados Aula 17: Estruturas Genéricas
Estruturas de Dados Aula 7: Tipos Estruturados 23/04/2014.
Regras de escopo Escopo: trecho de codificação no qual o identificador possui significado Escopo de função: identificador válido dentro do trecho de uma.
Joaquim José Hangalo  Podemos entender a memória do computador como um conjunto de células que armazenam informações.  Cada célula.
Estruturas de Dados Aulas 3 e 4: Uso da memória e Vetores
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação Versão: _01.
Prof. Alessandro Gonçalves
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação Versão: _01.
PCI- Registros Profa. Mercedes Gonzales Márquez. Conceito Variáveis compostas heterogêneas (não homogêneas) Estruturas: variáveis que podem conter uma.
Algoritmos e Programação MC102 Prof. Paulo Miranda IC-UNICAMP Aula 15 Ponteiros.
Programação de Computadores I – Ponteiros Profa. Mercedes Gonzales Márquez.
Ponteiros em C Prof. Kariston Pereira
Linguagem de Programação II
Estrutura de Dados Revisão Professor Luiz José Hoffmann Filho
Linguagem de Programação
Fundamentos de Programação 1
Aula Prática 6 Ponteiros Monitoria  Quando declaramos uma matriz:  tipo meuArray[tam];  O compilador aloca a matriz em uma região de memória.
Alocação Dinâmica de Memória e Tipo Abstrato de Dados Cristiano Arbex Valle Vinicius Fernandes dos Santos
Estrutura de Dados STRUCTS Dilvan Moreira. Objetivos  Entender o que são e como usar:  Estrutura de Dados para a Linguagem C  Structs (Registros)
Fundamentos de Programação 1
Transcrição da apresentação:

Programação II Estruturas de Dados NGUESSAN.DESIRE@POLI.USP.BR Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan

Tipos de Dados Alem dos tipos primitivos podemos agrupar sob um único nome um conjunto de tipos de dados não similares Este agrupamento significa definir uma nova estrutura conhecida também como registro (prog antiga). Definir um tipo de dados significa informar ao compilador seu: Nome Tamanho e Forma como deve ser armazenado e recuperado da memória Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan

Tipos de Dados A definição de uma estrutura não cria nenhuma variável, somente informa ao computador as características de um novo tipo de dados Não há nenhuma reserva de memória struct indica que um novo tipo de dados está sendo definido O nome do novo tipo é struct <etiqueta> Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan

Tipos de Dados Sintaxe struct <etiqueta> { // membros }; Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan

Tipos de Dados Exemplo struct aluno { // membros int mat; float nota[3]; float media; }; Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 5

Tipos de Dados Declarando uma variável do tipo Definido: struct aluno A ; Declara uma variável do nome A do tipo struct aluno Esta declaração reserva espaço de memória suficiente para armazenar todos os membros da estrutura Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 6

Tipos de Dados Combinando declarações struct aluno { int mat; float nota[3] float media; } jose; // cria uma variavel jose do tipo aluno Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 7

Tipos de Dados Novo nome para os tipos existentes: typedef O comando typedef não produz um novo tipo, cria apenas novo nome ou sinônimo para o tipo existente Sintaxe: typedef <tipo Existente> Sinônimo; Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 8

Tipos de Dados Exemplos typedef char BYTE; // cria o sinônimo BYTE typedef int INTEIRO;// cria o sinônimo INTEIRO typedef struct aluno ALUNO;// cria sinônimo ALUNO Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 9

Tipos de Dados Acessando os Membros da estrutura: Uma vez criada a variável estrutura, seus membros podem ser acessados por meio do operador ponto Exemplo: ALUNO A; A.mat = 456; Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 10

Tipos de Dados Ponteiro para estruturas: Da mesma forma que podemos declarar variável do tipo estrutura struct aluno A; Podemos também declarar variável do tipo ponteiro para estrutura struct aluno *A; Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 11

Tipos de Dados Acessando os Membros da estrutura do tipo ponteiro: Podemos acessar os membros da estrutura indiretamente por meio do seu ponteiro: Exemplo: (*A).mat = 456; ou A->mat = 456; Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 12

Tipos de Dados Criar uma estrutura para armazenar dados de um aluno ? Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 13

Tipos de Dados #include <stdio.h> #include <stdlib.h> /* Cria uma estrutura para armazenar dados de um aluno */ struct aluno { int nmat; float nota[3]; float media; }; Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 14

Tipos de Dados int main(int argc, char *argv[]) { struct aluno A; // declara uma variavel de tipo struct Aluno A.nmat = 456; A.nota[0] = 7.6; A.nota[1] = 5.2; A.nota[2] = 8.3; A.media = (A.nota[0] +A.nota[1]+A.nota[2])/3; printf("Matricula: %d Media: %.2f\n", A.nmat, A.media); system("PAUSE"); return 0; } Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 15

Tipos de Dados Usando typedef com struct struct aluno { int nmat; float nota[3]; float media; }; typedef struct aluno Aluno; Aluno Jose; // declara uma variavel do tipo aluno Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 16

Tipos de Dados Usando typedef com struct typedef struct // não é informada a etiqueta { int nmat; float nota[3]; float media; } aluno ; aluno Jose; // declara uma variavel do tipo aluno Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 17

Tipos de Dados Passagem de Estruturas para Funções void imprime (struct aluno A) { printf(“media = %.2f”, A.media); } void imprime (struct aluno *A) printf(“media = %.2f”, A->media); Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 18

Tipos de Dados Passagem de Estruturas para Funções int main (void) { struct aluno *A; imprime(&A); } Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 19

Tipos de Dados Alocação dinâmica de estruturas int main (void) { struct Aluno *A; A= (struct Aluno*) malloc (sizeof(struct Aluno )) ; } Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 20

Tipos de Dados Inicializando Estruturas struct Data { int dia; char mes[10]; int ano; } natal = {25, “dezembro”,2009} , aniversario = {29, “março”, 1996}; Quando se vai gerenciar um projeto, um grande desafio é definir claramente os produtos e/ou serviços relacionados aos seus objetivos, os quais serão entregues ao patrocinador/cliente, estabelecendo o escopo do trabalho que de ser realizado pela equipe do projeto Désiré NGuessan 21