Valor
Esta atividade não compõe a nota bimestral.
Quantidade de alunos
A lista deve preferencialmente ser desenvolvida individualmente.
Data de entrega e defesa
Não é necessário a entrega da lista.
Exercícios
- Desenvolva um programa que calcule a soma de duas matrizes M x N de números reais (double). A implementação deste programa deve considerar as dimensões fornecida pelo usuário.
- Construa um programa (main) que aloque em tempo de execução (dinamicamente) uma matriz de ordem m x n (linha por coluna), usando 1+m chamadas a função malloc. Agora, aproveite este programa para construir uma função que recebendo os parametros m e n aloque uma matriz de ordem m x n e retorne um ponteiro para esta matriz alocada. Crie ainda uma função para liberar a área de memória alocada pela matriz. Finalmente, crie um novo programa (main) que teste/use as duas funções criadas acima.
- Construa um programa (main) que aloque em tempo de execução (dinamicamente) uma matriz de ordem m x n (linha por coluna), usando 2 chamadas a função malloc. Agora, aproveite este programa para construir uma função que recebendo os parametros m e n aloque uma matriz de ordem m x n e retorne um ponteiro para esta matriz alocada. Crie ainda uma função para liberar a área de memória alocada pela matriz. Finalmente, crie um novo programa (main) que teste/use as duas funções criadas acima.
- Criar um tipo abstrato de dados que represente uma pessoa, contendo nome, data de nascimento e CPF. Crie uma variável que é um ponteiro para este TAD (no programa principal). Depois crie uma função que receba este ponteiro e preencha os dados da estrutura e também uma uma função que receba este ponteiro e imprima os dados da estrutura. Finalmente, faça a chamada a esta função na função principal.
- Crie um programa que declare uma estrutura (registro) para o cadastro de alunos.
- Deverão ser armazenados, para cada aluno:
- matrıcula;
- sobrenome (apenas um);
- ano de nascimento;
- Ao inıcio do programa, o usuário devera informar o numero de alunos que serão armazenados;
- O programa devera alocar dinamicamente a quantidade necessária de memoria para armazenar os registros dos alunos;
- O programa devera pedir ao usuário que entre com as informações dos alunos;
- Ao final, mostrar os dados armazenados e liberar a memoria alocada;
- 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 numero inteiro;
- Preço de venda: representado por um valor real;
- Defina uma estrutura, denominada produto, que tenha os campos apropriados para guardar as informações de um produto;
- Crie um conjunto de N produtos (N e um valor fornecido pelo usuário) e peca ao usuário para entrar com as informações de cada produto;
- Encontre o produto com o maior preço de venda;
- Encontre o produto com a maior quantidade disponível no estoque;
- Escreva um programa que aloque dinamicamente uma matriz (de inteiros) de dimensões definidas pelo usuário e a leia. 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.
- Construa um programa que leia o numero de linhas e de colunas de uma matriz de números reais, aloque espaço dinamicamente para esta e a inicialize com valores fornecidos pelo usuário. Ao final, o programa deverá retornar a matriz na saída padrão com layout apropriado.
- Faça um programa que leia dois números N e M e:
- Crie e leia uma matriz de inteiros N x M;
- Localize os três maiores números de uma matriz e mostre a linha e a coluna onde estão;
- Faça um programa que leia números do teclado e os armazene em um vetor alocado dinamicamente. O usuário irá digitar uma sequência de números, sem limite de quantidade. Os números serão digitados um a um e, sendo que caso ele deseje encerrar a entrada de dados, ele ira digitar o numero ZERO. Os dados devem ser armazenados na memoria deste modo:
- Inicie com um vetor de tamanho 10 alocado dinamicamente;
- Após, caso o vetor alocado esteja cheio, aloque um novo vetor do tamanho do vetor anterior adicionado espaço para mais 10 valores (tamanho N+10, onde N inicia com 10);
- Copie os valores já digitados da área inicial para esta área maior e libere a memória da área inicial;
- Repita este procedimento de expandir dinamicamente com mais 10 valores o vetor alocado cada vez que o mesmo estiver cheio. Assim o vetor ira ser expandido de 10 em 10 valores;
- Escreva um programa para fazer a alocação dinâmica dos blocos de dados conforme solicitado abaixo:
- Vetor de 1024 Bytes (1 Kbyte).
- Matriz de inteiros de dimensão 10 x 10;
- Vetor para armazenar 50 registros contendo: nome do produto (30 caracteres), código do produto (inteiro) e preço em reais.
- Texto de ate 100 linhas com até 80 caracteres em cada linha.
- Faça um programa para associar nomes as linhas de uma matriz de caracteres. O usuário irá informar o número máximo de nomes que poderão ser armazenados. Cada nome poderá ter até 30 caracteres com o ‘\0’. O usuário poderá usar 5 opções diferentes para manipular a matriz:
- Gravar um nome em uma linha da matriz;
- Apagar o nome contido em uma linha da matriz;
- Informar um nome, procurar a linha onde ele se encontra e substituir por outro nome;
- Informar um nome, procurar a linha onde ele se encontra e apagar;
- Pedir para recuperar o nome contido em uma linha da matriz;
- Faça um programa que:
- Peça para o usuário entrar com o nome e a posição (coordenadas X e Y) de N cidades e as armazene em um vetor de estruturas (N e informado pelo usuário);
- Crie uma matriz de distancias entre cidades de tamanho N x N;
- Calcule as distancia entre cada duas cidades e armazene na matriz;
- Exiba na tela a matriz de distancias obtida;
- Quando o usuário digitar o numero de duas cidades o programa deverá retornar a distancia entre elas;