Buscar

Matrizes em C

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 10 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 10 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 10 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1 
LINGUAGEM E TÉCNICA DE PROGRAMAÇÃO I 
 
Profa. Gisele Busichia Baioco 
gisele@ft.unicamp.br 
 
 
Algoritmos Estruturados e 
Linguagem de Programação Estruturada 
 
Matrizes em C 
1 Variáveis Compostas Homogêneas Multidimensionais 
Em C, o conceito de Variáveis Compostas Homogêneas Unidimensionais ou 
Vetores, pode ser estendido para N dimensões, cujas posições individuais são acessadas por 
N índices, originando as Variáveis Compostas Homogêneas Multidimensionais. 
A sintaxe geral de declaração em C é a seguinte: 
 
tipo-de-dado nome[dimensão1][dimensão2]... [dimensãoN]; 
 
onde: 
nome: é o nome da variável composta homogênea multidimensional; 
dimensão1, dimensão2, ..., dimensãoN: é a quantidade máxima de posições (índices) de cada 
dimensão; 
tipo-de-dado: é um tipo de dado válido em C. 
 
As Variáveis Compostas Homogêneas Multidimensionais de 2 dimensões são as 
mais utilizadas, sendo denominadas Variáveis Compostas Homogêneas Bidimensionais ou 
Matrizes. Em C, uma matriz pode ser vista como um vetor de vetores unidimensionais. 
2 Variáveis Compostas Homogêneas Bidimensionais – Matrizes em C 
As Variáveis Compostas Homogêneas Bidimensionais ou Matrizes correspondem a 
posições de memória (variáveis) identificadas por um mesmo nome, onde uma posição 
individual é acessada por dois índices, um para indicar a linha e outro para indicar a coluna, e 
cujo conteúdo é do mesmo tipo de dado. Em outras palavras, uma matriz tem a estrutura de 
uma tabela com M linhas e N colunas. 
Sintaxe de declaração em C: 
 
tipo-de-dado nome[linhas][colunas]; 
 
onde: 
nome: é o nome da matriz; 
linhas: é a quantidade máxima de linhas da matriz; 
colunas: é a quantidade máxima de colunas da matriz; 
tipo-de-dado: é um tipo de dado válido em C. 
 
 A referência ao conteúdo do elemento da linha m e coluna n de uma matriz tem a 
sintaxe: 
 2 
 
nome[m][n] 
 
onde: 
nome: é o nome da matriz; 
m é o índice da linha, que corresponde a um número inteiro ou uma variável do tipo inteiro. 
n é o índice da coluna, que corresponde a um número inteiro ou uma variável do tipo inteiro. 
 
Em C, o primeiro elemento tem o índice da linha e da coluna iguais a 0. 
 
 Exemplo de matriz: 
 
/* Declaração de uma matriz de nome mat com 2 linhas e 10 colunas que 
armazena elementos do tipo real */ 
float mat[2][10]; 
 
Esquematicamente tem-se: 
 
 colunas 
 0 1 2 3 4 5 6 7 8 9 
0 1.5 9.0 5.0 4.0 8.0 6.5 3.5 2.0 5.0 1.0 
mat 
linhas 
1 5.5 6.0 9.0 2.5 4.5 9.5 7.0 8.5 7.5 3.0 
 
 
 
 
Para atribuir um valor à linha m e coluna n de uma matriz, usa-se a seguinte sintaxe: 
 
 nome[m][n] = valor; 
 
onde: 
nome: é o nome da matriz; 
m é o índice da linha, que corresponde a um número inteiro ou uma variável do tipo inteiro. 
n é o índice da coluna, que corresponde a um número inteiro ou uma variável do tipo inteiro. 
valor é uma variável ou um valor do mesmo tipo de dado da matriz. 
 
 Considerando a matriz do exemplo anterior, para atribuir o valor 9.5 para a posição 
correspondente a linha 1 e coluna 5, faz-se: 
 
mat[1][5] = 9.5; 
3 Usando Matrizes 
Assim como um vetor, uma matriz é usada para manter uma grande quantidade de 
elementos de dados na memória e para referenciar todos os elementos de maneira uniforme. A 
diferença é que para referenciar um elemento em um vetor basta um índice e em uma matriz 
são necessários dois índices. 
Supor a necessidade de ler 50 notas, para cada um dos 5 cursos de uma universidade. 
Para cada curso deve-se calcular a média aritmética das 50 notas e determinar o quanto cada 
nota se desvia dessa média. Nesse caso é necessário que, para cada um dos 5 cursos as 50 
notas lidas sejam armazenadas em variáveis para que o desvio seja calculado após o cálculo 
da média aritmética dos 5 cursos. Utilizar 250 variáveis para armazenar o total de 250 notas 
seria uma solução, mas o código do programa ficaria um tanto extenso, pois além de declarar 
mat[1][5] 
 3 
250 variáveis, seria necessário escrever código para 250 leituras de variáveis e 250 cálculos 
de desvios. Então, a solução é agrupar as 250 notas em uma matriz onde as linhas referenciam 
os cursos e as colunas as notas (ou vice-versa). 
Algoritmo 
 início 
 declare soma, media, desvio, 
 nota[5][50] /* matriz de notas */: numérico real; 
 i, j /* índices da matriz */: numérico inteiro; 
 /* Obtendo as notas para cada curso */ 
para i ← 0 até 4 passo 1 faça /* para cada curso */ 
início 
 escreva(“Notas do curso ”,i); 
 para j ← 0 até 49 passo 1 faça /* lê as notas */ 
 início 
 escreva(“Digite uma nota”); 
 leia(nota[i][j]); 
 fim 
 fim 
 /* Cálculo das médias e desvios para cada curso */ 
para i ← 0 até 4 passo 1 faça /* para cada curso */ 
início 
 /* Cálculo da média */ 
 soma ← 0; /* para a sumarização das notas do curso i */ 
 para j ← 0 até 49 passo 1 faça 
 soma ← soma + nota[i][j]; 
 media ← soma/50; /* média das notas do curso i */ 
 escreva(“Media = ”, media); 
 /* Cálculo do desvio */ 
 para j ← 0 até 49 passo 1 faça 
 início 
desvio ← nota[i][j] – media; 
escreva(“Desvio da nota ”, nota[i][j], desvio); 
 fim 
 fim 
fim 
 
Em C fica: 
#include <stdio.h> 
 
 main() 
{ 
 float soma, media, desvio, nota[5][50] /* matriz de notas */; 
 int i, j /* índices da matriz */; 
 /* Obtendo as notas para cada curso */ 
for(i = 0; i <= 4; i++) /* para cada curso */ 
{ 
 printf(“Notas do curso %d:\n”, i); 
 for(j = 0; j <= 49; j++) /* lê as notas */ 
 { 
 printf(“Digite uma nota: ”); 
 scanf(“%f”, &nota[i][j]); 
 } 
 } 
 /* Cálculo das médias e desvios para cada curso */ 
for(i = 0; i <= 4; i++) /* para cada curso */ 
{ 
 /* Cálculo da média */ 
 soma = 0; /* para a sumarização das notas do curso i */ 
 4 
 for(j = 0; j <= 49; j++) 
 soma = soma + nota[i][j]; 
 media = soma/50; /* média das notas do curso i */ 
 printf(“\nMedia = %f”, media); 
 /* Cálculo do desvio */ 
 for(j = 0; j <= 49; j++) 
 { 
desvio = nota[i][j] – media; 
printf(“\nDesvio da nota %f = %f”, nota[i][j], desvio); 
 } 
 } 
} 
 
É possível escrever o algoritmo anterior, solicitando do usuário a quantidade de cursos 
e de notas ao invés de fixar em 5 e 50, respectivamente. O problema é que uma matriz tem 
que ter um número máximo de linhas e colunas e, nesse caso, é necessário garantir que o 
usuário entre com a quantidade de cursos e de notas menor ou igual ao número máximo de 
linhas e colunas, respectivamente. Ou seja, não há necessidade de utilizar todas as posições de 
uma matriz, mas nunca se deve utilizar posições além do número máximo de linhas e colunas. 
O número mínimo de linhas e colunas também deve ser garantido – maior que 0. 
 
Algoritmo 
 início 
 declare soma, media, desvio, 
 nota[5][50] /* matriz de notas */: numérico real; 
 l, c, i, j /* índices da matriz */: numérico inteiro; 
 /* Entrada da quantidade de cursos e de notas e verificação dos 
 limites da matriz */ 
 repita 
 escreva(“Digite o número de cursos (entre 1 e 5) e o número 
de notas (entre 1 e 50): ”); 
 leia(l); 
 leia(c); 
 se (l > 5 ou l ≤ 0 ou c > 50 ou c ≤ 0) 
 então escreva(“Quantidade inválida”); 
 até (l > 0 e l ≤ 5 e c > 0 e c ≤ 50); 
 /* Obtendo as notas para cada curso */ 
para i ← 0 até l-1 passo 1 faça /* para cada curso */ 
início 
 escreva(“Notas do curso ”,i); 
 para j ← 0 até c-1 passo 1 faça /* lê as notas */ 
 início 
 escreva(“Digite uma nota”); 
 leia(“%f”, &nota[i][j]); 
 fim 
 fim 
 /* Cálculo das médias e desvios para cada curso */ 
para i ← 0 até l-1 passo 1 faça /* para cada curso */ 
início 
 /* Cálculo da média */ 
 soma ← 0; /* para a sumarização das notas do curso i */ 
 para j ← 0 até c-1 passo 1 faça 
 soma ← soma + nota[i][j]; 
 media← soma/c; /* média das notas do curso i */ 
 escreva(“Media = ”, media); 
 /* Cálculo do desvio */ 
 para j ← 0 até c-1 passo 1 faça 
 início 
 5 
desvio ← nota[i][j] – media; 
escreva(“Desvio da nota ”, nota[i][j], desvio); 
 fim 
 fim 
fim 
 
Em C ainda é possível dar um nome ao número máximo de linhas e de colunas da 
matriz por meio de #define, sendo que se for necessário modificar o número máximo de 
linhas e de colunas da matriz, basta alterar o valor que estiver definido no #define. 
#include <stdio.h> 
 
 #define MAXL 5 /* define o número máximo de linhas como MAXL */ 
#define MAXC 50 /* define o número máximo de colunas como MAXC */ 
 
main() 
{ 
 float soma, media, desvio, nota[MAXL][MAXC] /* matriz de notas */; 
 int l, c, i, j /* índices da matriz */; 
 /* Entrada da quantidade de cursos e de notas e verificação dos 
 limites da matriz */ 
 do { 
printf(“\nDigite o número de cursos (entre 1 e %d) e o número 
de notas (entre 1 e %d): ”, MAXL, MAXC); 
 scanf(“%d”, &l); 
 scanf(“%d”, &c); 
 if(l > MAXL || l <= 0 || c > MAXC || c <= 0) 
 printf(“Quantidade inválida”); 
 } while(l > MAXL || l <= 0 || c > MAXC || c <= 0); 
 /* Obtendo as notas para cada curso */ 
 for(i = 0; i < l; i++) /* para cada curso */ 
 { 
 printf(“Notas do curso %d:\n”, i); 
 for(j = 0; j < c; j++) /* lê as notas */ 
 { 
 printf(“Digite uma nota: ”); 
 scanf(“%f”, &nota[i][j]); 
 } 
 } 
 /* Cálculo das médias e desvios para cada curso */ 
 for(i = 0; i < l; i++) /* para cada curso */ 
 { 
/* Cálculo da média */ 
 soma = 0; /* para a sumarização das notas do curso i */ 
for(j = 0; j < c; j++) 
 soma = soma + nota[i][j]; 
 media = soma/c; /* média das notas do curso i */ 
 printf(“\nMedia = %f”, media); 
 /* Cálculo do desvio */ 
 for(j = 0; j < c; j++) 
 { 
 desvio = nota[i][j] – media; 
 printf(“\nDesvio da nota %f = %f”, nota[i][j], desvio); 
 } 
 } 
} 
 6 
4 Exemplos de Programas 
1) Faça um algoritmo e programa C que calcula o produto de duas matrizes A e B, se 
possível. A multiplicação de duas matrizes A e B só é possível se o número de colunas 
da matriz A for igual ao número de linhas da matriz B. Assim, se A é uma matriz m x 
n e B uma matriz n x p, a multiplicação será possível e o produto será uma matriz C, 
m x p. 
Solução: 
Entrada: matriz A, 2 x 3 e a matriz B, 3 x 2; 
Processo: 
 
A = 
a00 a01 ... a0n-1 
a10 a11 ... a1n-1 
... 
am-10 am-11 ... am-1n-1 m x n 
B = 
n x p 
C = 
m x p 
A matriz produto C é dada por: 
Onde: 
c00 = a00 * b00 + a01 * b10 + ... + a0n-1* bn-10 
c01 = a00 * b01 + a01 * b11 + ... + a0n-1* bn-11 
... 
c0p-1 = a00 * b0p-1+ a01 * b1p-1 + ... + a0n-1* bn-1p-1 
 
c10 = a10 * b00 + a11 * b10 + ... + a1n-1* bn-10 
c11 = a10 * b01 + a11 * b11 + ... + a1n-1* bn-11 
... 
c1p-1 = a10 * b0p-1+ a11 * b1p-1 + ... + a1n-1* bn-1p-1 
 
cm-10 = am-10 * b00 + am-11 * b10 + ... + am-1n-1* bn-10 
cm-11 = am-10 * b01 + am-11 * b11 + ... + am-1n-1* bn-11 
... 
cm-1p-1 = am-10 * b1p+ am-11 * b1p-1 + ... + am-1n-1* bn-1p-1 
 
Portanto, 
cij = ∑∑∑∑k = 0,...,n-1 aik * bkj 
b00 b01 ... b0p-1 
b10 b11 ... b1p-1 
... 
bn-10 bn-11 ... bn-1p-1 
c00 c01 ... c0p-1 
c10 c11 ... c1p-1 
... 
cm-10 cm-11 ... cm-1p-1 
Exemplo: 
1 2 3 
4 5 6 A = 2 x 3 
1 4 
2 5 
3 6 
B = 
3 x 2 
14 32 
32 77 C = produto:
2 x 2 
 
Saída: matriz C, 2 x 2 
 
Algoritmo 
início 
/* Declaração de variáveis */ 
 declare A[2][3], B[3][2], C[2][2], i, j, k: numérico inteiro; 
 /* Entrada de dados */ 
escreva(“Carregando a matriz A:”); 
para i ← 0 até 1 passo 1 faça /* linhas de A */ 
 7 
 para j ← 0 até 2 passo 1 faça /* colunas de A */ 
 início 
 escreva(“A[”, i, “,”, j, “]=”); 
 leia(A[i][j]); 
 fim 
escreva(“Carregando a matriz B:“); 
para i ← 0 até 2 passo 1 faça /* linhas de B */ 
 para j ← 0 até 1 passo 1 faça /* colunas de B */ 
 início 
 escreva(“B[”, i, “,”, j, “]=”); 
 leia(B[i][j]); 
 fim 
/* Cálculo da matriz produto C */ 
para i ← 0 até 1 passo 1 faça /* linhas de C = linhas de A */ 
 para j ← 0 até 1 passo 1 faça /* colunas de C = colunas de B */ 
 início 
 C[i][j] ← 0; 
 para k ← 0 até 2 passo 1 faça /* colunas de A = linhas de B */ 
 C[i][j] ← C[i][j] + A[i][ k] * B[k][j]; 
 fim 
/* Saída */ 
escreva(“Matriz produto C:”); 
para i ← 0 até 1 passo 1 faça /* linhas de C */ 
início 
 escreva(“linha = ”, i); 
 para j ← 0 até 1 passo 1 faça /* colunas de C */ 
 escreva(C[i][j]); 
fim 
fim 
 
#include <stdio.h> 
 
#define M 2 /* linhas de A e linhas de C*/ 
#define N 3 /* colunas de A e linhas de B */ 
#define P 2 /* colunas de B e colunas de C*/ 
 
main() 
{ 
/* Declaração de variáveis */ 
 int A[M][N], B[N][P], C[M][P], i, j, k; 
 /* Entrada de dados */ 
printf(“Carregando a matriz A:\n”); 
for(i = 0; i < M; i++) /* linhas de A */ 
 for(j = 0; j < N; j++) /* colunas de A */ 
 { 
 printf(“A[%d,%d] = “, i, j); 
 scanf(“%d”, &A[i][j]); 
 } 
printf(“Carregando a matriz B:\n“); 
for(i = 0; i < N; i++) /* linhas de B */ 
 for(j = 0; j < P; j++) /* colunas de B */ 
 { 
 printf(“B[%d,%d] = “, i, j); 
 scanf(“%d”, &B[i][j]); 
 } 
/* Cálculo da matriz produto C */ 
for(i = 0; i < M; i++) /* linhas de C = linhas de A */ 
 for(j = 0; j < P; j++) /* colunas de C = colunas de B */ 
 { 
 C[i][j] = 0; 
 8 
 for(k = 0; k < N; k++) /* colunas de A = linhas de B */ 
 C[i][j] = C[i][j] + A[i][ k] * B[k][j]; 
 } 
/* Saída */ 
printf(“Matriz produto C:”); 
for (i = 0; i < M; i++) /* linhas de C */ 
{ 
 printf(“\n”); 
 for(j = 0; j < P; j++) /* colunas de C */ 
 printf(“%d ”, C[i][j]); 
} 
} 
 
2) Uma matriz X de N (N ≤ 150) linhas por 2 colunas contém, na primeira coluna, o 
número de matrícula de N alunos e, na segunda coluna, a nota dos N alunos. Faça um 
algoritmo e programa C que: 
• leia a quantidade N de alunos; 
• leia as informações dos N alunos carregando a matriz X; 
• leia um determinado número de matrícula e determine a nota do aluno correspondente, 
repetindo o processo até que o usuário deseje parar. 
Solução: 
Entrada: número N de alunos e informações sobre os alunos a serem carregadas na 
matriz X; 
Processo e Saída: consulta a notas de alunos a partir do número da matrícula. 
Algoritmo 
início 
 /* Declaração de variáveis */ 
 declare N, i, achou: numérico inteiro; 
 X[150][2], mat: numérico real; 
 resp: caractere; 
 /* Entrada de dados */ 
repita 
escreva(“Digite a quantidade de alunos (entre 1 e 150): ”); 
 leia(N); 
 se (N > 150 ou N ≤ 0) 
 então escreva(“Quantidade de alunos inválida”); 
 até (N > 0 e N ≤ 150); 
para i ← 0 até N-1 passo 1 faça 
início 
 escreva(“Digite o número da matrícula do aluno: ”); 
 leia(X[i][0]); 
 escreva(“Digite a nota do aluno: ”); 
 leia(X[i][1]); 
 fim 
 /* Processo e Saída */ 
 repita 
 /* Lê a matrícula do aluno para consulta */ 
 escreva(“Entre com a matrícula do aluno para consulta: ”); 
 leia(mat); 
 /* Percorre as linhas da matriz X, procurando pela matrícula na 
primeira coluna e obtendo a nota na segunda coluna */ 
 achou ← 0; /* não achou */ 
 i ← 0; 
 enquanto (i < N e achou = 0) faça 
 início 
 se (X[i][0] = mat) 
 então início 
 9 
 achou ← 1; /* achou */ 
 escreva(“Nota = ”, X[i][1]); 
fim 
 i ← i + 1; 
 fim 
 /* Verifica se a matrícula não foi encontrada */ 
 se (achou = 0) /* não achou */ 
 então escreva(“Matricula não encontrada”); 
 /* Permite que o usuário faça mais uma consulta se desejar */ 
 escreva(“Deseja consultar mais um aluno? (S/N)”); 
 leia(resp); 
 até (resp = ‘N’); 
fim 
 
#include <stdio.h> 
#include <ctype.h> 
#include <conio.h>#define MAXL 150 
 
main() 
{ 
 /* Declaração de variáveis */ 
 int N, i, achou; 
 float X[MAXL][2], mat; 
 char resp; 
 /* Entrada de dados */ 
do { 
printf(“Digite a quantidade de alunos (entre 1 e %d): ”, MAXL); 
 scanf(“%d”, &N); 
 if(N > MAXL || N <= 0) 
 printf(“Quantidade de alunos inválida\n”); 
 } while (N > MAXL || N <= 0); 
for(i = 0; i < N; i++) 
{ 
 printf(“Digite o número da matrícula do aluno: ”); 
 scanf(“%f”, &X[i][0]); 
 printf(“Digite a nota do aluno: ”); 
 scanf(“%f”, &X[i][1]); 
 } 
 /* Processo e Saída */ 
 do { 
 /* Lê a matrícula do aluno para consulta */ 
 printf(“\nEntre com a matrícula do aluno para consulta: ”); 
 scanf(“%f”, &mat); 
 /* Percorre as linhas da matriz X, procurando pela matrícula na 
primeira coluna e obtendo a nota na segunda coluna */ 
 achou = 0; /* não achou */ 
 i = 0; 
 while (i < N && achou == 0) 
 { 
 if (X[i][0] == mat) 
 { 
achou = 1; /* achou */ 
printf(“Nota = %f”, X[i][1]); 
 } 
 i = i + 1; 
 } 
 /* Verifica se a matrícula não foi encontrada */ 
 if (achou == 0) /* não achou */ 
 printf(“\nMatricula não encontrada”); 
 10 
 /* Permite que o usuário faça mais uma consulta se desejar */ 
 printf(“\nDeseja consultar mais um aluno? (S/N)”); 
 resp = getche(); 
} while (toupper(resp) == ‘S’); 
} 
5 Exercícios de Fixação 
1) A matriz X de N linhas (N ≤ 100) por 4 colunas, contém informações sobre alunos de 
uma Universidade. Os elementos da primeira, segunda, terceira e quarta colunas são, 
respectivamente, o número de matrícula, sexo (0 ou 1), número do curso e a média 
geral no curso. Fazer um algoritmo e programa C que: 
• leia o número N de alunos; 
• leia as informações sobre os alunos; 
• leia um determinado sexo e número de curso e determine o número da matrícula do 
aluno do sexo e curso lidos, que obteve a melhor (maior) média. 
 
2) Escrever um algoritmo e programa C que leia uma matriz 7x7 de números inteiros, 
calcule e escreva: 
• o somatório dos elementos da diagonal principal dessa matriz; 
• o produto dos elementos da diagonal principal dessa matriz; 
• a matriz após multiplicar os elementos de sua diagonal principal por uma constante K. 
 
Exemplo: 
 
 
 
 
 
 
 
 
 
3) Dada uma matriz M x N (M ≤ 20, N ≤ 50) de números reais, fazer um algoritmo e 
programa C para calcular e imprimir a soma de cada linha e a soma de todos os seus 
elementos. 
 
4) Fazer um algoritmo e programa C que leia uma matriz de números inteiros A, M x N 
(M ≤ 20, N ≤ 50), e determine a matriz transposta de A. 
Exemplo: 
 
A 0 1 2 Transposta 
de A 
0 1 
0 9 16 34 0 9 32 
1 32 11 17 1 16 11 
 2 34 17 
 
5) Dadas duas matrizes A e B, M x N (M ≤ 10, N ≤ 20) de números reais, escrever um 
algoritmo e programa C que calcule e imprima a matriz C, sendo que C = A + B. 
Elementos da diagonal 
principal da matriz.

Continue navegando