PCI- Matrizes
Profa. Mercedes Gonzales Márquez
Algoritmos e Estruturas de Dados I
Aula 6 - Matrizes
Conceito
• Uma matriz é um conjunto de variáveis de mesmo tipo
que possui duas dimensões.
• Declaração:
<tipo> nome da matriz [<linhas>] [<colunas>]
Uma matriz possui linhas x colunas variáveis do tipo
<tipo>.
As linhas são numeradas de 0 a linhas - 1.
As colunas são numeradas de 0 a colunas -1.
Algoritmos e Estruturas de Dados I
Aula 6 - Matrizes
Exemplo
Lendo uma matriz n x n do teclado:
/*Leitura*/
for (i = 0; i < n; i++)
for (j = 0; j < n; j++) {
printf ("Matriz[%d][%d]: ", i, j);
scanf ("%d", &matriz[i][j]);
}
Algoritmos e Estruturas de Dados I
Aula 6 - Matrizes
Exemplo
Escrevendo uma matriz n x n na tela:
/*Escrita*/
for (i = 0; i < n; i++) {
for (j = 0; j < n; j++)
printf ("%d ", matriz[i][j]);
printf ("\n");
}
Implemente os exemplos 1 ao 13 dos slides de
matrizes da disciplina AEDI:
http://www.comp.uems.br/~mercedes/disciplinas
/2015/AEDI/
Algoritmos e Estruturas de Dados I
Aula 6 - Matrizes
Exercício
Fazer um algoritmo que:
a) leia uma matriz inteira A de M X N. onde os elementos de cada
linha e os valores de M são fornecidos (M <=20, N<=10);
b) imprima a matriz lida;
c) calcule e imprima uma matriz modificada B (M x N + I). sendo
que os elementos da (N+1-é sima coluna são formados com o
produto dos elementos da mesma linha (exercício 2.5.2.7 Farrer)
#include<stdio.h>
int main(){
int A[20][10], i, j, B[20][11],m,n;
do {
printf ("Informe o numero de linhas de A: ");
scanf("%d", &m);
}while (m<1 && m>20);
do {
printf ("Informe o numero de colunas de A: ");
scanf("%d", &n);
Algoritmos e Estruturas de Dados I
Aula 6 - Matrizes
for (i=0; i<m; i++){
B[i][n]=1;
for(j=0; j<n; j++){
printf(" Informe A[%d][%d] =", i, j);
scanf("%d", &A[i][j]);
B[i][j]=A[i][j];
B[i][n]*=B[i][j];
}
}
printf ("Matriz A");
for (i=0; i<m; i++){
printf ("\n");
for(j=0; j<n; j++){
printf(" %d",A[i][j]);
}
}
printf ("\n Matriz B");
for (i=0; i<m; i++){
printf ("\n");
for(j=0; j<=n; j++){
printf(" %d", B[i][j]);
}
}
}
Algoritmos e Estruturas de Dados I
Aula 6 - Matrizes
Exercício
Um grupo de pessoas respondeu a um questionário composto de 10 perguntas.
Cada pergunta contém cinco opções ou respostas possíveis codificadas de I a 5
Cada pergunta é respondida com a escolha de apenas uma opção dentre as
cinco opções possíveis.
São fornecidos os nomes das pessoas e suas respectivas respostas. A última
informação utilizada, como flag, contém o nome da pessoa igual a "VAZIO".
Fazer um algoritmo para ler e imprimir os dados lidos e calcular e imprimir o
número de pessoas que responderam a cada uma das cinco opções de cada
pergunta.(exercício 2.5.2.9 Farrer)
#include<stdio.h>
#include <string.h>
int main(){
int R[10], i, j, O[5], c=0;
char N[20];
for(j=0;j<5; j++)
O[j]=0;
printf("Digite o nome da pessoa 1: ");
scanf ("%s",N);
Algoritmos e Estruturas de Dados I
Aula 6 - Matrizes
while (strcmp(N,"vazio")){
for(j=0;j<10; j++){
printf("Digite a resposta da pergunta %d: ", j+1);
scanf("%d", &R[j]);
O[R[j]-1]++;
}
c++;
printf ("\nRespostas da pessoa %d ===>", c);
for(j=0;j<10; j++)
printf("%d", R[j]);
printf("\n\nDigite o nome da pessoa numero %d:", c+1);
scanf ("%s", N);
}
printf ("\nFim dos dados\n");
for(j=0;j<5; j++)
printf ("\n O numero de pessoas que responderam a opcao %d foi:
%d", j+1, O[j]);
}
Download

Document