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

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. Crie um programa que declare uma estrutura (registro) para o cadastro de alunos.
    1. Deverão ser armazenados, para cada aluno:
      1. matrıcula;
      2. sobrenome (apenas um);
      3. ano de nascimento;
    2. Ao inıcio do programa, o usuário devera informar o numero de alunos que serão armazenados;
    3. O programa devera alocar dinamicamente a quantidade necessária de memoria para armazenar os registros dos alunos;
    4. O programa devera pedir ao usuário que entre com as informações dos alunos;
    5. Ao final, mostrar os dados armazenados e liberar a memoria alocada;
  6. Considere um cadastro de produtos de um estoque, com as seguintes informações para cada produto:
    1. Código de identificação do produto: representado por um valor inteiro;
    2. Nome do produto: com ate 50 caracteres;
    3. Quantidade disponível no estoque: representado por um numero inteiro;
    4. Preço de venda: representado por um valor real;
      1. Defina uma estrutura, denominada produto, que tenha os campos apropriados para guardar as informações de um produto;
      2. 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;
      3. Encontre o produto com o maior preço de venda;
      4. Encontre o produto com a maior quantidade disponível no estoque;
  7. 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.
  8. 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.
  9. Faça um programa que leia dois números N e M e:
    1. Crie e leia uma matriz de inteiros N x M;
    2. Localize os três maiores números de uma matriz e mostre a linha e a coluna onde estão;
  10. 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:
    1. Inicie com um vetor de tamanho 10 alocado dinamicamente;
    2. 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);
    3. Copie os valores já digitados da área inicial para esta área maior e libere a memória da área inicial;
    4. 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;
  11. Escreva um programa para fazer a alocação dinâmica dos blocos de dados conforme solicitado abaixo:
    1. Vetor de 1024 Bytes (1 Kbyte).
    2. Matriz de inteiros de dimensão 10 x 10;
    3. Vetor para armazenar 50 registros contendo: nome do produto (30 caracteres), código do produto (inteiro) e preço em reais.
    4. Texto de ate 100 linhas com até 80 caracteres em cada linha.
  12. 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:
    1. Gravar um nome em uma linha da matriz;
    2. Apagar o nome contido em uma linha da matriz;
    3. Informar um nome, procurar a linha onde ele se encontra e substituir por outro nome;
    4. Informar um nome, procurar a linha onde ele se encontra e apagar;
    5. Pedir para recuperar o nome contido em uma linha da matriz;
  13. Faça um programa que:
    1. 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);
    2. Crie uma matriz de distancias entre cidades de tamanho N x N;
    3. Calcule as distancia entre cada duas cidades e armazene na matriz;
    4. Exiba na tela a matriz de distancias obtida;
    5. Quando o usuário digitar o numero de duas cidades o programa deverá retornar a distancia entre elas;