Baixe o app para aproveitar ainda mais
Prévia do material em texto
UEZO - Centro Universitário Estadual da Zona Oeste Disciplina: Estruturas de Dados EXERCÍCIOS SOBRE ALOCAÇÃO DINÂMICA 1. Escreva um programa que aloque dinamicamente uma matriz (de inteiros) de dimensões definidas pelo usuário e preencha a matriz com números aleatórios (rand). Em seguida, implemente uma função que receba um valor, retorne 1 caso o valor esteja na matriz ou retorne 0 caso não esteja na matriz. 2. Faça um programa que leia dois números n e m e, usando ponteiros duplos (ponteiro para ponteiro): a. Crie e leia uma matriz n x m de inteiros; b. Crie e construa uma matriz transposta (trocando linhas por colunas) m x n de inteiros. Na sua função main(), mostre as duas matrizes. Dica: lembre-se de que uma matriz é um ’vetor de vetores’. 3. Faça um programa para armazenar em memória um vetor de dados contendo 1500 valores do tipo int, usando a função de alocação dinâmica de memória CALLOC: a. Faça um loop e verifique se o vetor contém realmente os 1500 valores inicializados com zero (conte os 1500 zeros do vetor). b. Atribua para cada elemento do vetor o valor do seu índice junto a este vetor. c. Exibir na tela os endereços dos 10 primeiros e dos 10 últimos elementos do vetor. 4. Faça um programa que pergunte ao usuário quantos valores ele deseja armazenar em um vetor de doubles, depois use a função MALLOC para reservar (alocar) o espaço de memória de acordo com o especificado pelo usuário. Use este vetor dinâmico como um vetor comum, atribuindo aos 10 primeiros elementos do vetor valores aleatórios (rand) entre 0 e 100. Exiba na tela os valores armazenados nos 10 primeiros elementos do vetor (O vetor deve ter pelo menos um tamanho igual a 10 doubles, ou mais). 5. Faça um programa que simule ’virtualmente’ a memória de um computador: o usuário começa especificando o tamanho da memória (define quantos bytes tem a memória), e depois ele irá ter 2 opções: inserir um dado em um determinado endereço, ou consultar o dado contido em um determinado endereço. A memória deve iniciar com todos os dados zerados. 6. Baseado no programa anterior, implemente um mecanismo para associar nomes as posições de memória (um nome de uma posição de memória tem até 10 caracteres, com o '\0'). O usuário irá poder usar 5 opções diferentes para manipular a memória: 1) Associar um nome com uma posição de memória; 2) Informar um endereço e um valor para armazenar neste endereço; 3) Informar um nome de uma posição de memória e armazenar um valor nesta posição; 4) Pedir para recuperar o dado contido em uma posição de memória; 5) Pedir para recuperar o dado, indicando o nome da posição de memória onde ele se encontra. 7. Faça um laço de entrada de dados, onde o usuário deve digitar uma sequência de números, sem limite de quantidade de dados a ser fornecida. O usuário irá digitar os números um a um, sendo que caso ele deseje encerrar a entrada de dados, ele irá digitar o número Zero. No final, todos os dados digitados deverão ser apresentados na tela. Atenção, os dados devem ser armazenados na memória deste modo: faça com que o programa inicie criando um ponteiro para um bloco (vetor) de 10 valores inteiros, e alocando dinamicamente espaço em memória para este bloco; depois, caso o vetor alocado fique cheio, aloque um novo vetor do tamanho do vetor anterior adicionado com espaço para mais 10 valores (tamanho N+10, onde N inicia com 10); repita este procedimento de expandir dinamicamente com mais 10 valores o vetor alocado cada vez que o mesmo estiver cheio. Assim o vetor irá ser ’expandido’ de 10 em 10 valores. 8. Considere um cadastro de produtos de um estoque, com as seguintes informações para cada produto: Código de identificação do produto: representado por um valor inteiro Nome do produto: com ate 50 caracteres Quantidade disponível no estoque: representado por um número inteiro Preço de venda: representado por um valor real a. Defina uma estrutura em C, denominada produto, que tenha os campos apropriados para guardar as informações de um produto b. Crie um conjunto de n produtos (n é um valor fornecido pelo usuário) e peça ao usuário para entrar com as informações de cada produto c. Encontre o produto com o maior preço de venda d. Encontre o produto com a maior quantidade disponível no estoque
Compartilhar