Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Guilherme Cesila

C matriz com alocação dinamica

Recommended Posts

Olá gente então tenho que resolver esse problema, porém n sei o que pode estar dando errado, no exercício pede para eu alocar uma matriz dinamicamente (somente valores inteiros), e depois de alocada mostrar a mensagem se ela é ou não é simétrica, consegui fazer até a parte da alocação (bem pelo menos eu acho que esta certo) mas dai na parte da simetria já tentei alguns modos e não funcionou

agradeço a ajuda :)

#include<stdio.h>
#include<stdlib.h>

int main(){
	
	int m,n,i,j;
	
	scanf("%d %d",&m,&n);
	
	int**x = (int**) malloc(m*sizeof(int*));
	
	for(i=0; i<m; i++)
		x[i] = (int*) malloc(n*sizeof(int));
		
	for(i=0; i<m; i++)
		for(j=0; j<n; j++)
			scanf("%d",&x[i][j]);

	return 0;
}	

 

Editado por Simon Viegas

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá!

Matriz Simétrica

Conceito de matriz simétrica é relacionado com seu número de linhas e colunas, caso sejam iguais, ela é simétrica.

https://mundoeducacao.bol.uol.com.br/matematica/matriz-simetrica.htm

 

~~ / ~~

 

Código para Teste: Matriz Simétrica

Com isso, se testa a simetria de matriz simplesmente fazendo teste condicional de igualdade.

Se o número de linhas é igual o número de colunas então é quadrada [M x M].

teste_simetria

/*	Teste de Simetria para Matriz	*/
/* Se o número de linhas[n] é igual ao de colunas[m]: é simétrica	*/
if (n == m) {
  printf ("Matriz simétrica")
}
/*Se não então: é assimétrica */
else {
  printf ("Matriz assimétrica")
}

 

 

  • Confuso 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sobre:

13 minutos atrás, AnsiC disse:

Olá!

Matriz Simétrica

Conceito de matriz simétrica é relacionado com seu número de linhas e colunas, caso sejam iguais, ela é simétrica.

https://mundoeducacao.bol.uol.com.br/matematica/matriz-simetrica.htm

 

~~ / ~~

 

Código para Teste: Matriz Simétrica

Com isso, se testa a simetria de matriz simplesmente fazendo teste condicional de igualdade.

Se o número de linhas é igual o número de colunas então é quadrada [M x M].

teste_simetria

 

Nops! Ai está apenas verificando se a matriz é quadrada. Na verdade, para uma matriz ser simétrica, ela necessariamente também será quadrada... mas, pela lógica, o oposto não é verdade. (pois passariam a ser a mesma coisa)

 

 

adicionado 3 minutos depois
Citação

Isto só será possível caso, m = n, e quando isso ocorre dizemos que a matriz é quadrada.

 

Att

  • Confuso 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Engraçada, estou com certeza de que é isso mesmo.

2 minutos atrás, Simon Viegas disse:

(pois passariam a ser a mesma coisa)

 

@Simon Viegas Uma matriz quadrada não é simétrica? Então não sei o que é um matriz simétrica ou quadrada. Explica-me?

adicionado 2 minutos depois

Se não for pedir muito caso em que a matriz é simétrica sem ser quadrada, para ilustração

Compartilhar este post


Link para o post
Compartilhar em outros sites
27 minutos atrás, AnsiC disse:

/* Se o número de linhas[n] é igual ao de colunas[m]: é simétrica */

 

Ali ó!.  Ser quadrada é uma CONDIÇÃO, não uma comprovação, ou seja, esse "se" serve para dizer que "pode ser simétrica", mas não garante!

 

Resumindo:

Só daria para verificar se NÃO é simétrica, ou seja, se não for quadrada, nem precisa verificar (até porque não teria como).

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Simon Viegas Ah! Entendo agora o que você tentou me dizer!

Com relação ao valores da matriz aij == aji que lhe configura a simetria dos elementos.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
13 minutos atrás, Simon Viegas disse:

Conceito de matriz simétrica é relacionado com seu número de linhas e colunas, caso sejam iguais, ela é simétrica.

Aqui também... você tá invertendo... o correto seria:
 

"Conceito de matriz simétrica é relacionado com seu número de linhas e colunas, caso NÃO sejam iguais, ela NÃO é simétrica."

adicionado 2 minutos depois

"Todo baiano (simétrico) é brasileiro (quadrado), mas nem todo brasileiro é baiano.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
1 hora atrás, Simon Viegas disse:

"Conceito de matriz simétrica é relacionado com seu número de linhas e colunas, caso NÃO sejam iguais, ela NÃO é simétrica."

Que coisa, você simplesmente acrescenta NÃO. Isso concerta alguma coisa? Qual o seu problema?

Que resulta na mesma afirmação?

Uma matriz para ser simétrica ainda precisa ser quadrada!

 

Eu por um breve instante achei o contrário, até questionei a possibilidade de haver matriz simétrica não quadrada.

Editado por AnsiC
Correção Português

Compartilhar este post


Link para o post
Compartilhar em outros sites
agora, AnsiC disse:

Que coisa, você simplesmente inverte a afirmação para um negação.

 

Não cara! é justamente isso que estou expondo! Não é uma negação.

 

"Todo baiano é brasileiro". A negação seria "Nem todo baiano é brasileiro"... Você estaria confundindo com "nenhum baiano é brasileiro". São diferentes.

 

Resumindo:

Você não pode verifica se uma matriz é quadrada, e por isso dizer que é simétrica!  Apenas pode dizer que PODE SER simétrica.

 

adicionado 5 minutos depois
5 minutos atrás, AnsiC disse:

Uma matriz para ser simétrica ainda precisa ser quadrada.

 

Exatamente, você está dizendo uma coisa, mas fez outra, veja:

43 minutos atrás, AnsiC disse:

/*	Teste de Simetria para Matriz	*/
/* Se o número de linhas[n] é igual ao de colunas[m]: é simétrica	*/
if (n == m) {
  printf ("Matriz simétrica")
}
/*Se não então: é assimétrica */
else {
  printf ("Matriz assimétrica")
}

 

Constatar que N = M não que dizer que é uma matriz simétrica, apenas que PODE SER.

 

Seria algo assim:

if (n == m) {
  printf ("Pode ser uma Matriz simétrica")
}
else {
  printf ("Não tem como ser uma Matriz assimétrica")
}

 

Entende?

 

Está confundindo "Pode ser" com "certeza que é".

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja, para um matriz ser simétrica ela precisa ser quadrada, porém nem toda matriz quadrada é simétrica porque existe a correspondência de valores na matriz. Contudo não existe menção a essa questão no problema. Basta para tanto verificar se m = n. Foi isso que eu disse quando falei:

51 minutos atrás, AnsiC disse:

Conceito de matriz simétrica é relacionado com seu número de linhas e colunas, caso sejam iguais, ela é simétrica.

 

17 minutos atrás, Simon Viegas disse:

"Conceito de matriz simétrica é relacionado com seu número de linhas e colunas, caso NÃO sejam iguais, ela NÃO é simétrica."

Se essa opção lhe agrada mais, ou é por você considerada mais lógica, obrigado por sua colaboração nesse aspecto.

adicionado 3 minutos depois

Por um instante pensei que, matrizes não quadradas poderia ser simétricas, daí você para mim teria sido mais útil exemplificar um caso desses, mais ao que parece não há, ou será que sim?@Simon Viegas

Editado por AnsiC

Compartilhar este post


Link para o post
Compartilhar em outros sites
4 minutos atrás, AnsiC disse:

Por um instante pensei que, matrizes não quadradas poderia ser simétricas, daí você para mim teria sido mais útil exemplificar um caso desses, mais ao que parece não há, ou será que sim?

Tá, em que momento eu supus que uma matriz não quadrada pode ser simétrica?

 

 

 

4 minutos atrás, AnsiC disse:

Se essa opção lhe agrada mais, ou é por você considerada mais lógica, obrigado por sua colaboração nesse aspecto.

@AnsiC, apenas pare para analisar com calma. Não é uma questão de agrada ou não, pois SÃO FRASES DIFERENTES!!!!!

 

Para resumir:

 

Minha matriz:

1 2 3
4 5 6
7 8 9

Qual a "ordem" dela? 3x3, ou seja, M=3 e N=3, correto?

 

Você diz:

16 minutos atrás, Simon Viegas disse:

if (n == m) {
  printf ("Matriz simétrica")

 

Logo, está dizendo que minha matriz é simétrica! Ela é?

Compartilhar este post


Link para o post
Compartilhar em outros sites

matrizes-2014-8-638.jpg

adicionado 3 minutos depois
1 hora atrás, Simon Viegas disse:

Logo, está dizendo que minha matriz é simétrica! Ela é?

Se todos os elementos da matriz é iguais a 0, ela é simétrica, porém não sei quais elementos há lá e se vai ser solicitado valores <<diferentes de todos iguais a 0>>, presumo pelo problema que não tem importância os elementos, também o enunciado não me deu muitas escolhas. 

Editado por AnsiC
Correção

Compartilhar este post


Link para o post
Compartilhar em outros sites

Para ter chance de ser simétrica uma matriz deve ser quadrada. Mas nem toda matriz quadrada é simétrica.

 

Uma matriz é simétrica quando sua transposição for igual a sua forma original.

 

Por exemplo:

1 2 3
4 5 6
7 8 9

é quadrada mas não é simétrica pois quando transporta fica:

1 4 7
2 5 8
3 6 9

que é diferente da forma original.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

 

1 hora atrás, isrnick disse:

Para ter chance de ser simétrica uma matriz deve ser quadrada. Mas nem toda matriz quadrada é simétrica.

Correto, essa é uma das partes.

 

Concordo plenamente com @isrnick ,

Diferente de @Simon Viegas , que não completa a condição para que um matriz seja definitivamente simétrica. 

1 hora atrás, isrnick disse:

Uma matriz é simétrica quando sua transposição for igual a sua forma original.

 

Editado por AnsiC
Correção

Compartilhar este post


Link para o post
Compartilhar em outros sites
3 minutos atrás, AnsiC disse:

 

 

Correto

adicionado 2 minutos depois

Concordo plenamente com @isrnick ,

Diferente de @Simon Viegas , ele completa a condição para que um matriz seja definitivamente simétrica. 

 

Como assim cara? rs

 

Essa citação É SUA!

1 hora atrás, AnsiC disse:

/* Se o número de linhas[n] é igual ao de colunas[m]: é simétrica */

 

Eu estou afirmando, com 99,999% de certeza, que ela está errada.

Compartilhar este post


Link para o post
Compartilhar em outros sites
11 minutos atrás, AnsiC disse:

Se todos os elementos da matriz é iguais a zero, ela é simétrica, porém não sei quais elementos há lá e se vai ser solicitado valores, presumo pelo problema que não tem importância os elementos, também o enunciado não me deu muitas escolhas. 

O autor do tópico já colocou scanfs para preencher a matriz com valores, então os elementos são relevantes, até por que sem eles não faria sentido falar em matriz simétrica, pois simetricidade é definida através da transposição dos elementos.

Compartilhar este post


Link para o post
Compartilhar em outros sites
52 minutos atrás, Simon Viegas disse:

Eu estou afirmando, com 99,999% de certeza, que ela está errada.

Sim, porque a estrutura da matriz é apenas uma das partes do problema, diria a mais simples delas.

 

51 minutos atrás, isrnick disse:

O autor do tópico já colocou scanfs para preencher a matriz com valores, então os elementos são relevantes, até por que sem eles não faria sentido falar em matriz simétrica, pois simetricidade é definida através da transposição dos elementos

De fato, eu apenas foquei no aspecto estrutural da matriz, e juro por deus, não vi o scanf:rezando:

Realmente eu não vi, ainda se for todos 0, o que acontece? Simétrico ou antissimétrico

@isrnick

 

 

 
52 minutos atrás, Simon Viegas disse:

Como assim cara? rs

 

57 minutos atrás, AnsiC disse:

Uma matriz é simétrica quando sua transposição for igual a sua forma original.

é diferente disso:

2 horas atrás, AnsiC disse:

Conceito de matriz simétrica é relacionado com seu número de linhas e colunas, caso sejam iguais, ela é simétrica.

Nessa caso, ingenuamente foquei apenas no aspecto estrutural de n x m e errei no conceito quando na verdade existe mais interesses [partes do problema]. 

Editado por AnsiC
Correção Português

Compartilhar este post


Link para o post
Compartilhar em outros sites
15 minutos atrás, AnsiC disse:

Se for todos 0, o que acontece? Simétrico ou antissimétrico

Ai precisaria ver apenas se é quadrada... se for, seria simétrica. Se não for quadrada, não seria (até porque nenhuma seria).

 

Ou seja, para ser simétrico tem duas condições: inicialmente ser quadrada, e que a transposta seja igual a original.

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

25 minutos atrás, Simon Viegas disse:

Ai precisaria ver apenas se é quadrada... se for, seria simétrica. Se não for quadrada, não seria (até porque nenhuma seria).

 

Ou seja, para ser simétrico tem duas condições: inicialmente ser quadrada, e que a transposta seja igual a original.

Exatamente, o pragmatismo me tomou, e foquei apenas no aspecto estrutural. Quando na verdade os elementos são importantes, e diferentes de todos iguais a 0. O que faz do problema objeto de meu maior interesse.

 

E pela amor de Deus, concerta esse enunciado @Guilherme Cesila . Para que não seja os elementos todos nulos.

 

Será que alguém, consegue resolver ????:lol:

Aguardo ansioso pela solução.

~~ / ~~

Editado por AnsiC
Tentar fazer o português legível
  • Amei 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
22 minutos atrás, AnsiC disse:

E pela amor de Deus, concerta esse enunciado @Guilherme Cesila . Para que não seja os elementos todos nulos.

 

Seria essa parte em negrito?

14 horas atrás, Guilherme Cesila disse:

Olá gente então tenho que resolver esse problema, porém n sei o que pode estar dando errado, no exercício pede para eu alocar uma matriz dinamicamente (somente valores inteiros), e depois de alocada mostrar a mensagem se ela é ou não é simétrica, consegui fazer até a parte da alocação (bem pelo menos eu acho que esta certo) mas dai na parte da simetria já tentei alguns modos e não funcionou

agradeço a ajuda :)

 

Acho que está certo. Ele que saber se é simétrica ou não.

 

RESUMINDO:

Primeiro verificar se é quadrada ou não. Se não for quadrada, já sabem-se que não é simétrica. Senão, verifica se a transporta é igual a matriz original OU alguma outra forma que consiga verificar a simetria.

 

obs.: vejam, At=A é apenas uma propriedade... Para resolver não necessariamente precisa achar a transposta... poderia por exemplo ir comparando as posições simétricas.... se uma delas for diferente, não é simétrica. Se forem, é!

adicionado 3 minutos depois

Adendo:

 

Fala também sobre:

3 minutos atrás, Simon Viegas disse:

somente valores inteiros

 

Mas isso não tem a menor importância... Poderia ser qualquer coisa... número reais, números imaginários, frutas amazônicas... não importa... o que importa é que "em posições simétricas, tem elementos iguais", ou seja, ser simétrico é ter "valores" iguais em posições simétricas (em matriz quadradas, é claro).

 

Editado por Simon Viegas
  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
7 minutos atrás, Simon Viegas disse:

Acho que está certo. Ele que saber se é simétrica ou não

E o que eu quero, é que também não sejam todos iguais a zero.

Obrigado.

Editado por AnsiC
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas voltando ao foco:

 

@Guilherme Cesila, sobre:

14 horas atrás, Guilherme Cesila disse:

mas dai na parte da simetria já tentei alguns modos e não funcionou

 

Creio que bastaria comparar as posições (i,j) com as posições (j,i). Algo como:

- inicia uma flag indicando que é simétrico;

- compara cada poção i,j com a j,i.

- se uma das comparações resultar que não é igual, então marca a flag como não sendo simétrico.

No final, verifica a flag.

 

 

 

 

 

  • Amei 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então é apenas isso mesmo:

  • Testar se é quadrada: A(M x M), n = m
  • e depois testar para i até n se todo j até m tem A(ij) == A(ji):

Se negativo é porque assimétrica.

Basta para tanto usar loop: for, while, ou goto

>.< facin

Compartilhar este post


Link para o post
Compartilhar em outros sites
13 minutos atrás, AnsiC disse:

testar para i até n se todo j até m tem A(ij) == A(ji):

 

Acho que seria isso...

 

Se estiver usando uma função, coloca um if  lá num for, que vai verificando isso... mas pela negação, ou seja, "se Aij for diferente de aji, então return 0". Também coloca um return 1 depois do for...

 

Resumindo: se alguma posição for diferente, vai retornar 0 (pois todas devem ser iguais, se pelo menos uma não for, já não é simétrico), se nenhuma for diferente, o for vai terminar vai retornar 1. 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×