Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Calculos em Matrizes: Média de Classe, Soma de Elementos e Impressão de Matrizes, Exercícios de Algoritmos e Programação

Neste documento, encontram-se várias funções em c que realizam diferentes cálculos em matrizes, como a média de uma classe, a soma de elementos de uma coluna, a soma dos elementos da diagonal principal e secundária, e a soma total de todos os elementos. Além disso, há funções para preencher e imprimir matrizes.

Tipologia: Exercícios

2023

Compartilhado em 21/12/2023

paulo-vinicius-de-lima-pereira
paulo-vinicius-de-lima-pereira 🇧🇷

3 documentos

1 / 58

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
1. Crie um programa que preencha uma matriz N x M com números inteiros, calcule e mostre:
a) a quantidade de elementos entre 12 e 20 em cada linha;
b) a média dos elementos pares da matriz. Faça o Plano de Teste para N = 3 e M = 4.
PROGRAMA-FONTE
#include <stdio.h>
// Função para preencher a matriz com números inteiros
void preencherMatriz(int matriz[][4], int linhas, int colunas) {
printf("Digite os elementos da matriz:\n");
for (int i = 0; i < linhas; i++) {
for (int j = 0; j < colunas; j++) {
printf("Matriz[%d][%d]: ", i, j);
scanf("%d", &matriz[i][j]);
}
}
}
// Função para calcular a quantidade de elementos entre 12 e 20 em cada linha
void calcularQuantidadeEntre12e20(int matriz[][4], int linhas, int colunas) {
printf("\nQuantidade de elementos entre 12 e 20 em cada linha:\n");
for (int i = 0; i < linhas; i++) {
int cont = 0;
for (int j = 0; j < colunas; j++) {
if (matriz[i][j] >= 12 && matriz[i][j] <= 20) {
cont++;
}
}
printf("Linha %d: %d elemento(s)\n", i + 1, cont);
}
}
// Função para calcular a média dos elementos pares da matriz
void calcularMediaElementosPares(int matriz[][4], int linhas, int colunas) {
int soma = 0, qtdPares = 0;
for (int i = 0; i < linhas; i++) {
for (int j = 0; j < colunas; j++) {
if (matriz[i][j] % 2 == 0) {
soma += matriz[i][j];
qtdPares++;
}
}
}
if (qtdPares > 0) {
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29
pf2a
pf2b
pf2c
pf2d
pf2e
pf2f
pf30
pf31
pf32
pf33
pf34
pf35
pf36
pf37
pf38
pf39
pf3a

Pré-visualização parcial do texto

Baixe Calculos em Matrizes: Média de Classe, Soma de Elementos e Impressão de Matrizes e outras Exercícios em PDF para Algoritmos e Programação, somente na Docsity!

  1. Crie um programa que preencha uma matriz N x M com números inteiros, calcule e mostre: a) a quantidade de elementos entre 12 e 20 em cada linha; b) a média dos elementos pares da matriz. Faça o Plano de Teste para N = 3 e M = 4. PROGRAMA-FONTE #include <stdio.h> // Função para preencher a matriz com números inteiros void preencherMatriz(int matriz[][4], int linhas, int colunas) { printf("Digite os elementos da matriz:\n"); for (int i = 0; i < linhas; i++) { for (int j = 0; j < colunas; j++) { printf("Matriz[%d][%d]: ", i, j); scanf("%d", &matriz[i][j]); } } } // Função para calcular a quantidade de elementos entre 12 e 20 em cada linha void calcularQuantidadeEntre12e20(int matriz[][4], int linhas, int colunas) { printf("\nQuantidade de elementos entre 12 e 20 em cada linha:\n"); for (int i = 0; i < linhas; i++) { int cont = 0; for (int j = 0; j < colunas; j++) { if (matriz[i][j] >= 12 && matriz[i][j] <= 20) { cont++; } } printf("Linha %d: %d elemento(s)\n", i + 1, cont); } } // Função para calcular a média dos elementos pares da matriz void calcularMediaElementosPares(int matriz[][4], int linhas, int colunas) { int soma = 0, qtdPares = 0; for (int i = 0; i < linhas; i++) { for (int j = 0; j < colunas; j++) { if (matriz[i][j] % 2 == 0) { soma += matriz[i][j]; qtdPares++; } } } if (qtdPares > 0) {

float media = (float)soma / qtdPares; printf("\nMédia dos elementos pares da matriz: %.2f\n", media); } else { printf("\nNão há elementos pares na matriz.\n"); } } int main() { // Defina o tamanho da matriz (N x M) const int N = 3; const int M = 4; // Declare a matriz int matriz[N][M]; // Preencha a matriz preencherMatriz(matriz, N, M); // Calcule e mostre a quantidade de elementos entre 12 e 20 em cada linha calcularQuantidadeEntre12e20(matriz, N, M); // Calcule e mostre a média dos elementos pares da matriz calcularMediaElementosPares(matriz, N, M); return 0; } PLANO DE TESTE

for (int j = 0; j < colunas; j++) { if (matriz[i][j] < menor) { menor = matriz[i][j]; linha_menor = i; coluna_menor = j; } } } printf("\nO menor elemento da matriz é %d e está na posição [%d][%d].\n", menor, linha_menor, coluna_menor); } int main() { // Defina o tamanho da matriz (N x M) const int N = 6; const int M = 3; // Declare a matriz int matriz[N][M]; // Preencha a matriz preencherMatriz(matriz, N, M); // Encontre e mostre o maior elemento e sua posição na matriz encontrarMaiorElemento(matriz, N, M); // Encontre e mostre o menor elemento e sua posição na matriz encontrarMenorElemento(matriz, N, M); return 0; } PLANO DE TESTE

  1. Faça um programa que receba: a) as notas de N alunos em M provas diferentes e armazene- as em uma matriz N x M; b) os nomes dos N alunos e armazene-os em um vetor de N posições. O programa deverá calcular e mostrar: a) para cada aluno, o nome, a média aritmética das cinco provas e a situação (aprovado, reprovado ou exame); b) a média da classe. Faça o Plano de Teste para N = 15 e M = 5. PROGRAMA-FONTE #include <stdio.h> #include <string.h> #define MAX_ALUNOS 15 #define MAX_PROVAS 5 #define MAX_NOME 50 // Função para preencher as notas dos alunos em M provas em uma matriz N x M void preencherNotas(float notas[][MAX_PROVAS], int alunos, int provas) { printf("Digite as notas dos alunos:\n"); for (int i = 0; i < alunos; i++) { printf("Aluno %d:\n", i + 1); for (int j = 0; j < provas; j++) { printf(" Nota da Prova %d: ", j + 1); scanf("%f", &notas[i][j]); } } } // Função para preencher os nomes dos alunos em um vetor de strings void preencherNomes(char nomes[][MAX_NOME], int alunos) { printf("\nDigite os nomes dos alunos:\n"); for (int i = 0; i < alunos; i++) { printf("Aluno %d: ", i + 1); scanf("%s", nomes[i]); } } // Função para calcular a média aritmética das notas de cada aluno float calcularMediaAluno(float notas[], int provas) { float soma = 0; for (int i = 0; i < provas; i++) { soma += notas[i]; } return soma / provas; } // Função para calcular a média da classe

return 0; } PLANO DE TESTE

  1. Elabore um programa que preencha uma matriz N x M com os valores das vendas de uma loja, em que cada linha representa um mês do ano e cada coluna representa uma semana do mês. O programa deverá calcular e mostrar: a) o total vendido em cada mês do ano, mostrando o nome do mês por extenso; b) o total vendido em cada semana durante todo o ano; c) o total vendido pela loja no ano. Faça o Plano de Teste para N = 12 e M = 4. PROGRAMA-FONTE #include <stdio.h> #include <string.h> #define MESES 12 #define SEMANAS 4 // Função para preencher a matriz com os valores das vendas void preencherVendas(float vendas[][SEMANAS], int meses, int semanas) { printf("Digite os valores de vendas para cada semana:\n"); for (int i = 0; i < meses; i++) { printf("Mês %d:\n", i + 1); for (int j = 0; j < semanas; j++) { printf(" Semana %d: R$ ", j + 1); scanf("%f", &vendas[i][j]);

// Função para calcular e mostrar o total vendido em cada mês void calcularTotalPorMes(float vendas[][SEMANAS], int meses, int semanas) { printf("\nTotal vendido em cada mês:\n"); char nomesMeses[MESES][15] = {"Janeiro", "Fevereiro", "Março", "Abril", "Maio", "Junho", "Julho", "Agosto", "Setembro", "Outubro", "Novembro", "Dezembro"}; for (int i = 0; i < meses; i++) { float totalMes = 0; for (int j = 0; j < semanas; j++) { totalMes += vendas[i][j]; } printf("%s: R$ %.2f\n", nomesMeses[i], totalMes); } } // Função para calcular e mostrar o total vendido em cada semana durante o ano void calcularTotalPorSemana(float vendas[][SEMANAS], int meses, int semanas) { printf("\nTotal vendido em cada semana durante o ano:\n"); for (int j = 0; j < semanas; j++) { float totalSemana = 0; for (int i = 0; i < meses; i++) { totalSemana += vendas[i][j]; } printf("Semana %d: R$ %.2f\n", j + 1, totalSemana); } } // Função para calcular e mostrar o total vendido pela loja no ano void calcularTotalAnual(float vendas[][SEMANAS], int meses, int semanas) { printf("\nTotal vendido pela loja no ano:\n"); float totalAno = 0; for (int i = 0; i < meses; i++) { for (int j = 0; j < semanas; j++) { totalAno += vendas[i][j]; } } printf("R$ %.2f\n", totalAno); } int main() { // Defina o número de meses e semanas const int N = 12; const int M = 4;

for (int j = 0; j < colunas; j++) { printf("Matriz[%d][%d]: ", i, j); scanf("%d", &matriz[i][j]); } } } // Função para calcular a soma de cada coluna e armazenar em um vetor void calcularSomaColunas(int matriz[][COLUNAS], int linhas, int colunas, int somaColunas[]) { for (int j = 0; j < colunas; j++) { int soma = 0; for (int i = 0; i < linhas; i++) { soma += matriz[i][j]; } somaColunas[j] = soma; } } // Função para multiplicar cada elemento da matriz pela soma da coluna void multiplicarPorSomaColunas(int matriz[][COLUNAS], int linhas, int colunas, int somaColunas[]) { printf("\nMatriz resultante após a multiplicação:\n"); for (int i = 0; i < linhas; i++) { for (int j = 0; j < colunas; j++) { matriz[i][j] *= somaColunas[j]; printf("%5d ", matriz[i][j]); } printf("\n"); } } int main() { // Defina o número de linhas e colunas const int N = 20; const int M = 10; // Declare a matriz e o vetor de soma das colunas int matriz[N][M]; int somaColunas[M]; // Preencha a matriz com números inteiros preencherMatriz(matriz, N, M); // Calcule a soma de cada coluna e armazene em um vetor calcularSomaColunas(matriz, N, M, somaColunas); // Mostre a matriz resultante após a multiplicação multiplicarPorSomaColunas(matriz, N, M, somaColunas);

return 0; } PLANO DE TESTE

  1. Elabore um programa que preencha uma matriz A de ordem N x M e uma segunda matriz B de ordem M x N, calcule e imprima a soma das linhas de A com as colunas de B. Faça o Plano de Teste para N = 6 e M = 4. PROGRAMA-FONTE #include <stdio.h> // Função para preencher a matriz com números inteiros void preencherMatriz(int matriz[][4], int linhas, int colunas) { printf("Digite os elementos da matriz:\n"); for (int i = 0; i < linhas; i++) { for (int j = 0; j < colunas; j++) { printf("Matriz[%d][%d]: ", i, j); scanf("%d", &matriz[i][j]); } } } // Função para imprimir a matriz void imprimirMatriz(int matriz[][4], int linhas, int colunas) { printf("\nMatriz:\n"); for (int i = 0; i < linhas; i++) { for (int j = 0; j < colunas; j++) { printf("%5d ", matriz[i][j]); } printf("\n"); } } // Função para calcular e imprimir a soma das linhas de A com as colunas de B void somarLinhasComColunas(int matrizA[][4], int matrizB[][6], int linhasA, int colunasA, int linhasB, int colunasB) { if (colunasA != linhasB) { printf("Não é possível calcular a soma das linhas de A com as colunas de B.\n");
  1. Crie um programa que preencha uma matriz N x N com números inteiros, calcule e mostre a soma: a) dos elementos da linha 4; b) dos elementos da coluna 2; c) dos elementos da diagonal principal; c) dos elementos da diagonal secundária; d) de todos os elementos da matriz. Faça o Plano de Teste para N = 5. PROGRAMA-FONTE #include <stdio.h> // Função para preencher a matriz com números inteiros void preencherMatriz(int matriz[][5], int tamanho) { printf("Digite os elementos da matriz:\n"); for (int i = 0; i < tamanho; i++) { for (int j = 0; j < tamanho; j++) { printf("Matriz[%d][%d]: ", i, j); scanf("%d", &matriz[i][j]); } } } // Função para calcular e mostrar a soma dos elementos da linha especificada void somaElementosLinha(int matriz[][5], int tamanho, int linha) { int soma = 0; for (int j = 0; j < tamanho; j++) { soma += matriz[linha][j]; } printf("\nSoma dos elementos da linha %d: %d\n", linha + 1, soma);

// Função para calcular e mostrar a soma dos elementos da coluna especificada void somaElementosColuna(int matriz[][5], int tamanho, int coluna) { int soma = 0; for (int i = 0; i < tamanho; i++) { soma += matriz[i][coluna]; } printf("\nSoma dos elementos da coluna %d: %d\n", coluna + 1, soma); } // Função para calcular e mostrar a soma dos elementos da diagonal principal void somaDiagonalPrincipal(int matriz[][5], int tamanho) { int soma = 0; for (int i = 0; i < tamanho; i++) { soma += matriz[i][i]; } printf("\nSoma dos elementos da diagonal principal: %d\n", soma); } // Função para calcular e mostrar a soma dos elementos da diagonal secundária void somaDiagonalSecundaria(int matriz[][5], int tamanho) { int soma = 0; for (int i = 0; i < tamanho; i++) { soma += matriz[i][tamanho - i - 1]; } printf("\nSoma dos elementos da diagonal secundária: %d\n", soma); } // Função para calcular e mostrar a soma de todos os elementos da matriz void somaTodosElementos(int matriz[][5], int tamanho) { int soma = 0; for (int i = 0; i < tamanho; i++) { for (int j = 0; j < tamanho; j++) { soma += matriz[i][j]; } } printf("\nSoma de todos os elementos da matriz: %d\n", soma); } // Função principal int main() { // Defina o tamanho da matriz (N x N) const int N = 5; // Declare a matriz int matriz[N][N];

  1. Elabore um programa que: receba a idade de N alunos e armazene-as em um vetor; armazene o código de M disciplinas em outro vetor; armazene em uma matriz a quantidade de provas que cada aluno fez em cada disciplina. O programa deverá calcular e mostrar: a) a quantidade de alunos com idade entre 18 e 25 anos que fizeram mais de duas provas em determinada disciplina cujo código é digitado pelo usuário. O usuário poderá digitar um código não cadastrado; nesse caso, o programa deverá mostrar uma mensagem de erro; b) uma listagem contendo o código dos alunos que fizeram menos que três provas em determinada disciplina, seguido do código da disciplina; c) a média de idade dos alunos que não fizeram nenhuma prova em alguma disciplina. Cuidado para não contar duas vezes o mesmo aluno. Faça o Plano de Teste para N = 8 e M = 5. PROGRAMA-FONTE #include <stdio.h> // Função para encontrar a posição de um elemento em um vetor int encontrarPosicao(int vetor[], int tamanho, int elemento) { for (int i = 0; i < tamanho; i++) { if (vetor[i] == elemento) { return i; } } return -1; // Retorna -1 se o elemento não for encontrado } // Função principal int main() { // Defina o número de alunos (N) e disciplinas (M) const int N = 8; const int M = 5; // Declare os vetores e a matriz int idades[N]; int codigosDisciplinas[M]; int matrizProvas[N][M]; // Preencha o vetor de idades printf("Digite as idades dos %d alunos:\n", N); for (int i = 0; i < N; i++) { printf("Aluno %d: ", i + 1); scanf("%d", &idades[i]); } // Preencha o vetor de códigos de disciplinas printf("\nDigite os códigos das %d disciplinas:\n", M); for (int i = 0; i < M; i++) { printf("Disciplina %d: ", i + 1);

scanf("%d", &codigosDisciplinas[i]); } // Preencha a matriz de provas printf("\nDigite a quantidade de provas feitas por cada aluno em cada disciplina:\n"); for (int i = 0; i < N; i++) { for (int j = 0; j < M; j++) { printf("Aluno %d, Disciplina %d: ", i + 1, codigosDisciplinas[j]); scanf("%d", &matrizProvas[i][j]); } } // a) Calcule e mostre a quantidade de alunos com idade entre 18 e 25 anos // que fizeram mais de duas provas em determinada disciplina int codigoDisciplina; printf("\nDigite o código da disciplina para a parte (a): "); scanf("%d", &codigoDisciplina); // Verifique se o código da disciplina é válido int posicaoDisciplina = encontrarPosicao(codigosDisciplinas, M, codigoDisciplina); if (posicaoDisciplina == -1) { printf("Código de disciplina inválido.\n"); } else { int contAlunos = 0; for (int i = 0; i < N; i++) { if (idades[i] >= 18 && idades[i] <= 25 && matrizProvas[i][posicaoDisciplina] > 2) { contAlunos++; } } printf("Quantidade de alunos com idade entre 18 e 25 anos que fizeram mais de duas provas: %d\n", contAlunos); } // b) Calcule e mostre uma listagem com o código dos alunos que fizeram menos que três provas // em determinada disciplina, seguido do código da disciplina printf("\nDigite o código da disciplina para a parte (b): "); scanf("%d", &codigoDisciplina); // Verifique se o código da disciplina é válido posicaoDisciplina = encontrarPosicao(codigosDisciplinas, M, codigoDisciplina); if (posicaoDisciplina == -1) { printf("Código de disciplina inválido.\n"); } else { printf("Alunos que fizeram menos que três provas na disciplina %d:\n", codigoDisciplina); for (int i = 0; i < N; i++) { if (matrizProvas[i][posicaoDisciplina] < 3) { printf("Aluno %d, Disciplina %d\n", i + 1, codigosDisciplinas[posicaoDisciplina]);

Digite os códigos das 5 disciplinas:

  • Aluno 7:
  • Aluno 8:
  • Disciplina 1:
  • Disciplina 2:
  • Disciplina 3:
  • Disciplina 4:
  • Disciplina 5:
  • Aluno 1, Disciplina 101: Digite a quantidade de provas feitas por cada aluno em cada disciplina:
  • Aluno 1, Disciplina 102:
  • Aluno 1, Disciplina 103:
  • Aluno 1, Disciplina 104:
  • Aluno 1, Disciplina 105:
  • Aluno 2, Disciplina 101:
  • Aluno 2, Disciplina 102:
  • Aluno 2, Disciplina 103:
  • Aluno 2, Disciplina 104:
  • Aluno 2, Disciplina 105:
  • Aluno 3, Disciplina 101:
  • Aluno 3, Disciplina 102:
  • Aluno 3, Disciplina 103:
  • Aluno 3, Disciplina 104:
  • Aluno 3, Disciplina 105:
  • Aluno 4, Disciplina 101:
  • Aluno 4, Disciplina 102:
  • Aluno 4, Disciplina 103:
  • Aluno 4, Disciplina 104:
  • Aluno 4, Disciplina 105:
  • Aluno 5, Disciplina 101:
  • Aluno 5, Disciplina 102:
  • Aluno 5, Disciplina 103:
  • Aluno 5, Disciplina 104:
  • Aluno 5, Disciplina 105:
  • Aluno 6, Disciplina 101:
  • Aluno 6, Disciplina 102:
  • Aluno 6, Disciplina 103:
  • Aluno 6, Disciplina 104:
  • Aluno 6, Disciplina 105:
  • Aluno 7, Disciplina 101:
  • Aluno 7, Disciplina 102:
  • Aluno 7, Disciplina 103:
  • Aluno 7, Disciplina 104:
  • Aluno 7, Disciplina 105:
  • Aluno 8, Disciplina 101:
  • Aluno 8, Disciplina 102:
  • Aluno 8, Disciplina 103:
  • Aluno 8, Disciplina 104:
  • Aluno 8, Disciplina 105: