Meu nome é Aléx, sou estudante de sistemas, e esse tutorial me ajudou esclarecer muitas dúvidas, fico muito grato a todos os responsáveis por esse projeto. Sucesso.
17 de maio de 2013 às 04:21
Alexandre_AAP disse...
Excelente tutorial!!!!
Eu tinha certas duvidas quanto a como fazer a matriz aparecer ao usuario......... vlw!!!!
Olá, gostei do tutorial e queria Parabenizar pela iniciativa. Só que a gente esta aprendendo a fazer exercícios com matriz sem usar constante ou define... Entao na hora de declarar a matriz a gente tem que colocar int matriz[3][3] por exemplo, e pra mostrar uma matriz preenchida desse modo, o que colocar no lugar do elemento "%3d" que foi colocado nesse exemplo?
Fiquei com uma dúvida, e se na matriz ao invés de números, eu quisesse que fossem inseridas palavras? o que deveria mudar no código?
27 de julho de 2014 às 17:20
Anônimo disse...
ola meu nome é salim e sou muito grato ao pessoal k desemvolveu esse site , assim como eu muitos apaixonados pela informatica tem tirado um bom proveito desse site, tudo que ja aprende foi graças ao C PRGSSV.
Dessa forma deixo o meu contributo publicando um dos exercicios ja feitos mas com alguns detales acrescentado ....
Boa noite a todos, em primeiro lugar gostaria de parabenizar pelo excelente site e pelas maravilhosas aulas, tenho aprendido muito no site. Tenho uma pergunta que me deixou confuso no código, quando entramos nos laços for() e efetuamos a soma da variável int traco, notei que ela estava efetuando a mesma somas três vezes na mesma posição da matriz, queria saber se ficaria correto efetuarmos um novo laço for() para com a variavel linha para que a variável int traco possa ser preenchida corretamente com a soma apenas uma vez de cada posição da matriz. Ex.:
Não entendi o que faz o operador "+=" no calculo da soma da linha diagonal principal. Em "traco += matriz[linha][coluna];". Nunca vi dessa forma... Alguém pode me explicar?
20 de setembro de 2016 às 07:30
Anônimo disse...
Me ajudem por favor: Criar um programa para apresentar em tela uma tabela trigonométrica contendo o seno, cosseno e tangente dos ângulos: 30º, 45º e 60º
Tem um erro na nota... Esta [1] [3], e seria [1] [4].
18 de novembro de 2016 às 09:02
Anônimo disse...
Cara, toda essa apostila está me ajudando muito! Sou estudando de Eng. Elétrica e programação estava sendo muito difícil pra mim, mas depois que comecei a estudar pelo site, melhorou muito. Parabéns pelo trabalho excelente!
//Exemplo 2: Como calcular o traço de uma matriz em C //Use o programa feito no exemplo anterior para calcular o traço de uma matriz. //Lembrando que o traço de uma matriz é a soma dos elementos da diagonal principal.
#include #include
int main() { setlocale(LC_ALL, "Portuguese"); int row = 1, width = 1, counter_row, counter_width, traco = 0, matrix[row][width];
printf("\t Entre com as dimensoes da matrix: [ ][ ]"); printf("\n\t Quantidade de linhas: "); scanf("%d", &row); printf("\t Quantidade de colunas: "); scanf("%d", &width);
//Exemplo 2: Como calcular o traço de uma matriz em C //Use o programa feito no exemplo anterior para calcular o traço de uma matriz. //Lembrando que o traço de uma matriz é a soma dos elementos da diagonal principal.
int main() { setlocale(LC_ALL, "Portuguese"); int row, width, counter_row, counter_width, traco = 0;
printf("\t Entre com as dimensoes da matrix: [ ][ ]"); printf("\n\t Quantidade de linhas: "); scanf("%d", &row); printf("\t Quantidade de colunas: "); scanf("%d", &width); int matrix[row][width];
podem me ajudar com esses:Desenvolva um programa em linguagem C para resolver os seguintes problemas com matrizes quadradas de dimensão “DIM” (constante): 1) Preencher os dados de uma matriz; 2) Modificar a Matriz de forma que os dados fiquem de cabeça para baixo. Exemplo (3x3). 3)4) Rotacione a Matriz para a esquerda. Exemplo (3x3)
Obrigado do fundo do meu coração pois entendi perfeitamente como funciona e abriu minha mente para diversas aplicações no qual matriz pode ser utilizada!! Excelente trabalho!
8 de maio de 2018 às 08:02
Anônimo disse...
Parabéns pela iniciativa. Seus tutoriais são muito bons, muito didáticos e diretos, muito obrigado por disponibilizar este conteúdo.
Agora que a apostila C Progressivo mostrou como declarar,inicializar e usar vetores de vários tipos de variáveis, vamos ensinar a usar
os vetores para armazenar outros vetores.
Isso mesmo, vetor com vetores dentro. No mundo real, são conhecidos por tabelas.
Baixe o conteúdo do site: Apostila de C para download
Como obter certificado de programação C
Vetores multidimensionais, ou Matrizes: o que são e para
quê servem
Vamos fazer isso!
Por exemplo, vamos supor que ele tirou as seguintes
notas em Matemática (é uma matriz 1x5):
8.0
7.5
8.5
9.0
8.0
Agora vamos representar as notas em Física, abaixo
das de Matemática. Teremos uma matriz 2x5, ou seja, uma matriz de duas linhas e
5 colunas:
8.0
7.5
8.5
9.0
8.0
8.9
9.0
8.6
8.4
8.0
Agora vamos representar as notas de Química, abaixo
das notas de Física.
Teremos uma matriz 3x5, ou seja, uma matriz de três
linhas e 5 colunas:
8.0
7.5
8.5
9.0
8.0
8.9
9.0
8.6
8.4
8.0
6.8
7.1
7.0
7.6
6.5
Ok, agora vamos partir para a programação e ver
como declarar e passar isso pra linguagem C.
Para declarar a matriz 2x5, fazemos:
float notas[2][5];
Note que temos duas linhas: notas[0][] e
notas[1][], e em cada linha dessa temos 5 elementos.
Ou seja, é uma matriz de duas linhas e cinco
colunas.
Sempre o primeiro número é a linha e o segundo é a coluna.
Para declarar matrizes e inicializar, devemos
colocar cada linha entre chaves {}, e separar elas por vírgulas, veja:
float notas[2][5]
= { {8.0, 7.5, 8.5, 9.0, 8.0 }, {8.9, 9.0, 8.6, 8.4, 8.0 } };
Uma maneira mais simples de ver essas linhas e
colunas, como tabela, é da seguinte maneira:
float notas[2][5]
= { {8.0, 7.5, 8.5, 9.0, 8.0 }, {8.9, 9.0,
8.6, 8.4, 8.0 } };
Para declarar a matriz 3x5, fazemos::
float notas[3][5];
Veja como fica nossa matriz, ou tabela, declarada e
inicializada:
float notas[3][5] = { {8.0, 7.5, 8.5, 9.0, 8.0
}, {8.9, 9.0, 8.6, 8.4, 8.0 }, {6.8, 7.1, 7.0, 7.6, 6.5 } };
De uma maneira mais fácil de entender:
float notas[3][5] = { {8.0, 7.5, 8.5, 9.0, 8.0
}, {8.9, 9.0, 8.6, 8.4, 8.0 }, {6.8, 7.1, 7.0,
7.6, 6.5 } };
Note que notas[0] se refere ao vetor de notas de
Matemática.
Note que notas[1] se refere ao vetor de notas de
Física.
Note que notas[2] se refere ao vetor de notas de
Química.
Por exemplo: qual foi a quarta nota de Física do
aluno?
Ora, o vetor de Física é notas[1], e a quarta nota
é o elemento [3] desse vetor.
Então a quarta nota de Física do aluno está armazenada
em: notas[1][3], que é 8.4
Generalizando, para declarar uma matriz de ‘linha’
linhas e de ‘coluna’ colunas, fazemos:
tipo nome[linha][coluna];
Para acessar o elemento da i-ésima linha e de
j-ésima coluna, acessamos pela variável:
nome[i][j];
É uma variável como outra qualquer em linguagem de
programação C.
Podemos somar, incrementar, zerar etc.
Bom, agora a apostila C Progressivo sai da teoria para, como de
costume, ir para a prática com exemplos resolvidos e comentados.
Exemplo de código C: Criar e exibir uma matriz 3x3Crie um aplicativo em C que peça ao usuário para preencher uma matriz
3x3 com valores inteiros e depois exiba essa matriz.
A grande novidade, e importância, nesse tipo de aplicativo são os laços
for aninhados, ou seja, um dentro do outro, e do uso do #define, para tratar da constante DIM, que representa a dimensão da matriz.
É importante, como foi explicado no artigo passado, você usar #define ou const para trabalhar com constantes em C.
Primeiro criamos um laço que vai percorrer todas as linhas da matriz.
Podemos, e devemos, ver cada linha como um vetor de 3 elementos.
Dentro de cada linha, temos que percorrer cada elemento do do vetor e
fornecer seu valor. Fazemos isso através de outro laço for, que ficará
responsável pelas 'colunas', formando nossos laços aninhados.
Para imprimir, o esquema é exatamente o mesmo. Imprimimos linha por
linha, e em cada linha, imprimimos coluna por coluna.
#include <stdio.h>
#define DIM 3
// Curso C Progressivo: www.cprogessivo.net
// O melhor curso de C! Online e gratuito!
// Artigos, apostilas, tutoriais e
// vídeo-aulas sobre a linguagem de programação C!
int main()
{
int matriz[DIM][DIM];
int linha, coluna;
//escrevendo na Matriz
for(linha = 0 ; linha < DIM ; linha++)
for(coluna = 0 ; coluna < DIM ; coluna++)
{
printf("Elemento [%d][%d]: ", linha+1, coluna+1);
scanf("%d", &matriz[linha][coluna]);
}
// imprimindo a matriz na tela
for(linha = 0 ; linha < DIM ; linha++)
{
for(coluna = 0 ; coluna < DIM ; coluna++)
printf("%3d", matriz[linha][coluna]);
printf("\n"); //após cada linha ser impressa, um salto de linha
}
}
Exemplo 2: Como calcular o traço de uma matriz em CUse o programa feito no exemplo anterior para calcular o traço de
uma matriz.Lembrando que o traço de uma matriz é a soma dos elementos da
diagonal principal.
Os elementos das diagonal principal são os que tem índice da linha igual ao índice da coluna:
matriz[0][0], matriz[1][1] e matriz[2][2].
Aproveitamos o laço for das linhas para calcular a soma desses elementos:
matriz[linha][linha]
Visto que a variável 'linha', assim como a 'coluna', vão de 0 até 2.
Logo, nosso código C fica:
#include <stdio.h>
#define DIM 3
// Curso C Progressivo: www.cprogessivo.net
// O melhor curso de C, online e gratuito
// Artigos, apostilas, tutoriais e
// vídeo-aulas sobre a linguagem de programação C
int main()
{
int matriz[DIM][DIM];
int linha, coluna, traco = 0;
//escrevendo na Matriz
for(linha = 0 ; linha < DIM ; linha++)
for(coluna = 0 ; coluna < DIM ; coluna++)
{
printf("Elemento [%d][%d]: ", linha+1, coluna+1);
scanf("%d", &matriz[linha][coluna]);
}
// imprimindo a matriz na tela
for(linha = 0 ; linha < DIM ; linha++)
{
for(coluna = 0 ; coluna < DIM ; coluna++)
printf("%3d", matriz[linha][coluna]);
traco += matriz[linha][linha];
printf("\n"); //após cada linha ser impressa, um salto de linha
}
printf("\nTraco da matriz: %d\n", traco);
}
postado por Programação Progressiva às 18:34 em 5 de mar. de 2013
24 Comentários
Fechar esta janela Ir para formulário de comentárioMeu nome é Aléx, sou estudante de sistemas, e esse tutorial me ajudou esclarecer muitas dúvidas, fico muito grato a todos os responsáveis por esse projeto.
Sucesso.
17 de maio de 2013 às 04:21
Excelente tutorial!!!!
Eu tinha certas duvidas quanto a como fazer a matriz aparecer ao usuario......... vlw!!!!
31 de julho de 2013 às 14:53
Parabéns pela iniciativa.
Obrigado.
23 de novembro de 2013 às 03:22
Olá, gostei do tutorial e queria Parabenizar pela iniciativa. Só que a gente esta aprendendo a fazer exercícios com matriz sem usar constante ou define... Entao na hora de declarar a matriz a gente tem que colocar int matriz[3][3] por exemplo, e pra mostrar uma matriz preenchida desse modo, o que colocar no lugar do elemento "%3d" que foi colocado nesse exemplo?
8 de dezembro de 2013 às 08:31
Olá Gisa,
Como assim mostrar uma matriz preenchida?
O código mostrado exibe toda a matriz.
É preciso exibir elemento por elemento da matriz.
Como ela é uma matriz de inteiros, usamos o %d pra exibir esses números.
Colocamos %3d para que cada número ocupe o espaço de 3 casas, deixando a exibição da matriz bem alinhada.
8 de dezembro de 2013 às 09:50
Muitos Parabéns pelo excelente site.
Sou estudante universitário e é uma grande ajuda
7 de janeiro de 2014 às 14:08
esta sendo optmo fazer parte desta turma
27 de maio de 2014 às 22:28
Fiquei com uma dúvida, e se na matriz ao invés de números, eu quisesse que fossem inseridas palavras? o que deveria mudar no código?
27 de julho de 2014 às 17:20
ola meu nome é salim e sou muito grato ao pessoal k desemvolveu esse site , assim como eu muitos apaixonados pela informatica tem tirado um bom proveito desse site, tudo que ja aprende foi graças ao C PRGSSV.
Dessa forma deixo o meu contributo publicando um dos exercicios ja feitos mas com alguns detales acrescentado ....
#include
#include
#define TRES 3
int main() {
int numero[TRES][TRES];
int i,j;
for(i=0;i<TRES;i++){
for(j=0;j<TRES;j++){
printf("posicoes [%d][%d]\n",i+1,j+1);
scanf("%d",&numero[i][j]);
}
}
for(i=0;i<TRES;i++){
for(j=0;j<TRES;j++)
printf("linha%d=%d\t coluna%d=%d\t",i+1,numero[i][j],j+1,numero[i][j]);
}
system("pause");
}
5 de dezembro de 2014 às 12:57
Boa noite a todos, em primeiro lugar gostaria de parabenizar pelo excelente site e pelas maravilhosas aulas, tenho aprendido muito no site.
Tenho uma pergunta que me deixou confuso no código, quando entramos nos laços for() e efetuamos a soma da variável int traco, notei que ela estava efetuando a mesma somas três vezes na mesma posição da matriz, queria saber se ficaria correto efetuarmos um novo laço for() para com a variavel linha para que a variável int traco possa ser preenchida corretamente com a soma apenas uma vez de cada posição da matriz. Ex.:
for(linha=0;linha<DIM;linha++)
{
traco+=matriz[linha][linha];
}
printf("%d",traco);
16 de agosto de 2015 às 21:13
Na Linha de adicionar a matriz , está sendo adicionado no primeiro elemento da la linha posterior o mesmo da última coluna da primeira linha
ex:
v[0][1] = 5
e v[1][0] = 5 , também , alguém poderia me dizer o por que?
5 de dezembro de 2015 às 12:24
Elabore um programa, em C, que leia uma frase e conte o número de vogais existentes,
tanto maiúsculas como minúsculas
ajudem me
9 de dezembro de 2015 às 08:21
Não entendi o que faz o operador "+=" no calculo da soma da linha diagonal principal. Em "traco += matriz[linha][coluna];". Nunca vi dessa forma... Alguém pode me explicar?
20 de setembro de 2016 às 07:30
Me ajudem por favor: Criar um programa para apresentar em tela uma tabela trigonométrica contendo o seno, cosseno e tangente dos ângulos: 30º, 45º e 60º
26 de outubro de 2016 às 06:59
Tem um erro na nota... Esta [1] [3], e seria [1] [4].
18 de novembro de 2016 às 09:02
Cara, toda essa apostila está me ajudando muito! Sou estudando de Eng. Elétrica e programação estava sendo muito difícil pra mim, mas depois que comecei a estudar pelo site, melhorou muito. Parabéns pelo trabalho excelente!
6 de janeiro de 2017 às 09:43
Olá,sou estudante de Engenharia Elétrica, e esse material estar me ajudando muito! Obrigado!!!!
26 de fevereiro de 2017 às 17:30
Muito bom!
25 de outubro de 2017 às 15:11
//Exemplo 2: Como calcular o traço de uma matriz em C
//Use o programa feito no exemplo anterior para calcular o traço de uma matriz.
//Lembrando que o traço de uma matriz é a soma dos elementos da diagonal principal.
#include
#include
int main()
{
setlocale(LC_ALL, "Portuguese");
int row = 1, width = 1, counter_row, counter_width, traco = 0,
matrix[row][width];
printf("\t Entre com as dimensoes da matrix: [ ][ ]");
printf("\n\t Quantidade de linhas: ");
scanf("%d", &row);
printf("\t Quantidade de colunas: ");
scanf("%d", &width);
for(counter_row = 0; counter_row < row; counter_row++)
{
printf("\n");
for (counter_width = 0; counter_width < width; counter_width++)
{
printf("Entre com o elemento [%d][%d]: ", counter_row + 1, counter_width + 1 );
scanf("%d", &matrix[counter_row][counter_width]);
}
}
for(counter_row = 0; counter_row < row; counter_row++)
{
printf("\n\t");
for (counter_width = 0; counter_width < width; counter_width++)
printf("%4d ", matrix[counter_row][counter_width]);
}
printf("\n");
for(counter_row = 0; counter_row < row; counter_row++)
for (counter_width = 0; counter_width < width; counter_width++)
{
if(counter_row == counter_width)
traco += matrix[counter_row][counter_width];
}
printf("\n \tO traço da Matrix é: %4d \n", traco);
}l.
29 de outubro de 2017 às 02:32
//Exemplo 2: Como calcular o traço de uma matriz em C
//Use o programa feito no exemplo anterior para calcular o traço de uma matriz.
//Lembrando que o traço de uma matriz é a soma dos elementos da diagonal principal.
//http://www.cprogressivo.net/2013/03/Vetores-multidimensionais-Matrizes-em-C--vetor-de-vetores.html
#include
#include
int main()
{
setlocale(LC_ALL, "Portuguese");
int row, width, counter_row, counter_width, traco = 0;
printf("\t Entre com as dimensoes da matrix: [ ][ ]");
printf("\n\t Quantidade de linhas: ");
scanf("%d", &row);
printf("\t Quantidade de colunas: ");
scanf("%d", &width);
int matrix[row][width];
for(counter_row = 0; counter_row < row; counter_row++)
{
printf("\n");
for (counter_width = 0; counter_width < width; counter_width++)
{
printf("Entre com o elemento [%d][%d]: ", counter_row + 1, counter_width + 1 );
scanf("%d", &matrix[counter_row][counter_width]);
}
}
for(counter_row = 0; counter_row < row; counter_row++)
{
printf("\n\t");
traco += matrix[counter_row][counter_row];
for (counter_width = 0; counter_width < width; counter_width++)
printf("%4d ", matrix[counter_row][counter_width]);
}
printf("\n");
// for(counter_row = 0; counter_row < row; counter_row++)
// for (counter_width = 0; counter_width < width; counter_width++)
// {
// if(counter_row == counter_width)
// traco += matrix[counter_row][counter_width];
//
// }
printf("\n \tO traço da Matrix é: %4d \n", traco);
}
29 de outubro de 2017 às 02:43
podem me ajudar com esses:Desenvolva um programa em linguagem C para resolver os seguintes problemas com matrizes
quadradas de dimensão “DIM” (constante):
1) Preencher os dados de uma matriz;
2) Modificar a Matriz de forma que os dados fiquem de cabeça para baixo. Exemplo (3x3).
3)4) Rotacione a Matriz para a esquerda. Exemplo (3x3)
4 de dezembro de 2017 às 12:52
Obrigado do fundo do meu coração pois entendi perfeitamente como funciona e abriu minha mente para diversas aplicações no qual matriz pode ser utilizada!! Excelente trabalho!
8 de maio de 2018 às 08:02
Parabéns pela iniciativa. Seus tutoriais são muito bons, muito didáticos e diretos, muito obrigado por disponibilizar este conteúdo.
6 de abril de 2020 às 15:34
Muito obrigado pelo tutorial!
2 de novembro de 2020 às 16:12