Baixe o app para aproveitar ainda mais
Prévia do material em texto
Estrutura de Estrutura de Dados IDados IDados IDados I Prof. Alex Salgado Curso: Sistemas de Informação 1 Agenda Agenda –– semana4semana4 Parte 2 • Tipo Abstrado de Dados…continuação • Alocação Dinâmica vs Estática • Ponteiros para TAD • Struct e typedef • Exercícios 2 1.31.3--ExercícioExercício • Crie um programa para alocar um vetor de 10 posições dinamicamente. • Se não existir memória suficiente, sair do programa e mandar uma mensagem para o usuário “memória insuficiente”; • Preencher os elementos do vetor com valores de 1 a 10; • Imprimir o valor do vetor de posição 8; • Liberar a memória alocada. 3 Declaração de TiposDeclaração de Tipos 4 Ponteiros para Tipos Ponteiros para Tipos EstruturadosEstruturados 5 2.12.1--ExercícioExercício • Criar um tipo “TPessoa” (typedef struct) que represente uma pessoa, contento int matricula, float valorHora. • Criar uma função que crie e retorne uma instância de TPessoa(alocação dinâmica). • Protótipo: TPessoa *criaNovoReg() • Dentro do programa principal:• Dentro do programa principal: o Criar uma variável que seja um ponteiro para este novo tipo; o Chame a função que retorna uma instância de Tpessoa e atribua a este ponteiro; o Preencha os dados dessa pessoa através do teclado no programa principal; o Imprima os 2 valores lidos; o Libere a memória deste ponteiro. 6 #include <stdio.h> #include <stdlib.h> typedef struct { int matricula; float valorHora; } TPessoa; TPessoa *criaNovoReg() { TPessoa *t = (TPessoa *)malloc(sizeof(TPessoa)); t->matricula = 0; t->valorHora = 0.0; return t;return t; } int main() { TPessoa *func; func = criaNovoReg(); scanf("%d",&func->matricula); scanf("%f",&func->valorHora); printf("aluno matricula = %d\n", func->matricula); printf("aluno valorHora = %f\n", func->valorHora); free(func); return 0; } 8/20/2014 7 2.22.2--ExercícioExercício • Criar um tipo “TPessoa” (typedef struct) que represente uma pessoa, contento int matricula, float valorHora. • Criar uma função que crie e retorne uma instância de TPessoa(alocação dinâmica). • Protótipo: TPessoa *criaNovoReg() • Dentro do programa principal:• Dentro do programa principal: o Criar uma variável que seja um ponteiro para este novo tipo; o Chame a função que retorna uma instância de Tpessoa e atribua a este ponteiro; o Preencha os dados dessa pessoa através do teclado no programa principal; o Calcule o salário referente a 160 horas de trabalho; o Imprima o salário calculado; o Libere a memória deste ponteiro. 8
Compartilhar