Mudanças entre as edições de "PRG122804 2018 2 AULA10"
(Criou página com '=Objetivos= *Definindo matrizes no C. *Operações com matrizes e passagem de parâmetros tipo matriz. *Matrizes com caracteres. =Como definir e operar com matrizes no C= De f...') |
|||
Linha 34: | Linha 34: | ||
;Exercícios | ;Exercícios | ||
− | + | :1. Modificar este exercício para que a função receba um parâmetro adicional do tipo inteiro. A função deve retornar a média de todos os valores da matriz soma que estão acima do valor passado como parâmetro. | |
− | + | :2. Implementar um programa para calcular a média de todos elementos da matriz C do exemplo acima. | |
+ | {{collapse top|Resposta}} | ||
+ | <syntaxhighlight lang=c> | ||
#include <stdio.h> | #include <stdio.h> | ||
Linha 57: | Linha 59: | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
− | + | {{collapse bottom}} | |
+ | :3.Implementar um programa para ler uma matriz quadrada NxN pelo teclado e armazená-la em uma matriz matA. Defina matA com um tamanho máximo ''matA''[N_MAX][N_MAX]. | ||
+ | {{collapse top|Resposta}} | ||
+ | <syntaxhighlight lang=c> | ||
#include <stdio.h> | #include <stdio.h> | ||
Linha 87: | Linha 92: | ||
} | } | ||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | {{colapse bottom}} | ||
=Passando matrizes como parâmetro= | =Passando matrizes como parâmetro= |
Edição das 15h02min de 3 de outubro de 2018
Objetivos
- Definindo matrizes no C.
- Operações com matrizes e passagem de parâmetros tipo matriz.
- Matrizes com caracteres.
Como definir e operar com matrizes no C
De forma similar ao vetor, basta definir a matriz usando colchetes para indicar a dimensão da variável.
Exemplo: Definir duas matrizes 2x3 já inicializadas e computar a soma das mesmas:
#include <stdio.h>
void main()
{
int mA[2][3]={ 11,12,13,
21,22,23},
mB[2][3]={1,2,3,
1,2,3},
mC[2][3];
int i,j;
for(i=0;i<2;i++){
for(j=0;j<3;j++) {
mC[i][j] = mA[i][j] + mB[i][j];
}
}
}
- Exercícios
- 1. Modificar este exercício para que a função receba um parâmetro adicional do tipo inteiro. A função deve retornar a média de todos os valores da matriz soma que estão acima do valor passado como parâmetro.
- 2. Implementar um programa para calcular a média de todos elementos da matriz C do exemplo acima.
Resposta |
---|
#include <stdio.h>
void main()
{
int mA[2][3]={ 11,12,13,
21,22,23},
mB[2][3]={1,2,3,
1,2,3},
mC[2][3];
int i,j, soma_ac=0;
float media;
for(i=0;i<2;i++){
for(j=0;j<3;j++) {
mC[i][j] = mA[i][j] + mB[i][j];
soma_ac = soma_ac + mC[i][j];
}
}
media = soma_ac/6.0;
}
|
- 3.Implementar um programa para ler uma matriz quadrada NxN pelo teclado e armazená-la em uma matriz matA. Defina matA com um tamanho máximo matA[N_MAX][N_MAX].
Resposta | ||||||||
---|---|---|---|---|---|---|---|---|
#include <stdio.h>
#define N_MAX 50
void main()
{
int mA[N_MAX][N_MAX];
int i,j,dimN;
/* Entrada da dimensão */
printf("Entre com a dimensao\n");
scanf ("%d",&dimN);
/* Entrada de dados */
for (i=0;i<dimN;i++) {
for (j=0;j<dimN;j++) {
printf("Entre com mA[%d][%d]\n",i,j);
scanf("%d",&mA[i][j]);
}
}
/* impressao dos dados lidos */
for (i=0;i<dimN;i++) {
for (j=0;j<dimN;j++) {
printf("=> mA[%d][%d] => %d\n",i,j,mA[i][j]);
}
}
}
Passando matrizes como parâmetroComo matrizes também são vetores, a mesma característica da passagem de parâmetros é considerada. Observe o exemplo a seguir: #include <stdio.h>
void somar_mat(int aA[][3],int aB[][3], int cC[][3])
{
int i,j;
for(i=0;i<2;i++){
for(j=0;j<3;j++) {
cC[i][j] = aA[i][j] + aB[i][j];
}
}
}
void main()
{
int mA[2][3]={ 11,12,13,
21,22,23},
mB[2][3]={1,2,3,
1,2,3},
mC[2][3];
somar_mat(mA,mB,mC);
}
OBSERVE que matrizes são sempre passadas como referência.
1. Fazer uma função que recebe duas matrizes 2x3 como parâmetros e retorna a média entre todos elementos da matriz soma destas matrizes.
2. Implementar uma programa para calcular o determinante de uma matriz 3x3 (de reais) a ser fornecida pelo teclado.
Matrizes de caracteres e vetores de stringsUm vetor de strings pode ser construído usando matrizes de char. Cada string será armazenada em uma linha do vetor.
#include <stdio.h>
main()
{
char TabelaUsuarios[4][10] = {
"joao",
"maria",
"jose",
"lara",
};
int i;
for (i=0;i<4;i++)
printf("%s\n",&TabelaUsuarios[i][0]);
}
Note a forma como é realizada a inicialização da matriz.
1. Implementar um programa para "abrir uma porta" para um usuário que se encontra na tabela acima.
2. Implementar uma tabela adicional com senhas dos usuários. O acesso deve ser concedido somente se o usuário for validado e a senha. Defina as tabelas como variáveis globais.
|