Ir para conteúdo
Fórum Script Brasil
  • 0

Uma ajuda pra finalizar meu Algorítimo, por favor!!


Hedson Ferreira da Silva

Pergunta

Pessoal estou precisando de fechar esse trabalho e entregar hoje... por favor me ajudem a finalizar esse algorítimo não consigo fazer o vetor com a soma das diagonais principais..... segue o programa  [code]

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

#define LINHAS 3
#define COLUNAS 3
/*Faça um algoritmo em linguagem C com as seguintes funcionalidades:
* Receba duas matrizes como dados e entrada. A dimensão das matrizes deve ser de, no máximo 5x5. Ambas matrizes de-vem ter as mesmas dimensões;
* O usuário deve digitar a dimensão das matrizes (máximo 5x5). Faça uma checagem usando um laço de repetição que só permita o programa avançar caso ele digite dimensões corretas de no máximo 5;
* Escreva ambas matrizes na tela, de uma forma legível;
* Escreva a matriz resultante da soma destas duas matrizes multiplicada pelos últimos dois números da sua matricula da UNINTER;
* Escreva um vetor resultante da soma das diagonais principais das duas matrizes multiplicado pelos últimos dois números da sua matricula da UNINTER;
*/


int mat1[LINHAS][COLUNAS] = { 0 };
int mat2[LINHAS][COLUNAS] = { 0 };
int mat3[LINHAS][COLUNAS] = { 0 };
int soma[LINHAS][COLUNAS] = { 0 };
int vetor = { 0 };
int i, j, ru;

int main()
{
    printf("    Hedson Ferreira _ RU 2411288  Exercicio de Matrizes - Uninter 2018\n\n"); // tela inicial do Algoritimo
    printf(" Digite os 2 ultimos numero R.U.: "); /*identificação do fator de multiplicação*/
    scanf_s("%d", &ru);


    for (int i = 0; i < LINHAS; i++)
    {
        for (int j = 0; j < COLUNAS; j++)
        {
            printf("Digite o valor %d|%d =  ", i, j);
            scanf_s("%d", &mat1[j]);
        }
    }
    printf("\n     1.a Matriz gerada\n");
    for (int i = 0; i < LINHAS; i++)
    {
        for (int j = 0; j < COLUNAS; j++)
        {
            printf("%d\t", mat1[j]);
        }
        printf("\n");
    }

    for (int i = 0; i < LINHAS; i++)
    {
        for (int j = 0; j < COLUNAS; j++)
        {
            printf("Digite o valor %d|%d =  ", i, j);
            scanf_s("%d", &mat2[j]);
        }
    }
    printf("\n     2a. Matriz gerada\n");
    for (int i = 0; i < LINHAS; i++)
    {
        for (int j = 0; j < COLUNAS; j++)
        {
            printf("%d\t", mat2[j]);
        }
        printf("\n");
    }
    // cálculo da soma dos valores da matriz X fator RU

    printf("\n     Matriz resultante da Soma das matrizes vezes fator RU\n");
    for (int i = 0; i < LINHAS; i++)
    {
        for (int j = 0; j < COLUNAS; j++)

            printf("%d\t", (mat1[j] + mat2[j]) * ru, mat3[j]);
        {printf("\n");

        }
        // cálculo da soma das diagonais

        for (int i = 0; i < LINHAS; i++)
        {
            for (int j = 0; j < COLUNAS; j++)
            {
                if (i == j) 
                {
                    printf("%d\t", vetor = (mat1[j] + mat2[j] * ru));
                    
                }
            }
            printf("\n");
        }
    }
        system("pause");
        return 0;
    
} [/code]

Editado por Hedson Ferreira da Silva
Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Olá, tudo certo!?

Então ...

Seguindo a ordem dos quesitos no enunciado do exercício, qual parte você não está conseguindo.

Observação: Apesar do prazo tenha selo e gosto pelo que está fazendo, porque quando publicar teu código para apreciação de outros; alguns notaram nele o seu empenho.

/**> Enunciado do Programa
 **> ---------------------
 **> Faça um algoritmo em linguagem C com as seguintes funcionalidades:
 **> a) Receba duas matrizes como dados e entrada. A dimensão das matrizes deve
 **> ser de, no máximo 5x5. Ambas matrizes de-vem ter as mesmas dimensões;
 **> b) O usuário deve digitar a dimensão das matrizes (máximo 5x5). Faça uma 
 **> checagem usando um laço de repetição que só permita o programa avançar caso
 **> ele digite dimensões corretas de no máximo 5;
 **> c) Escreva ambas matrizes na tela, de uma forma legível;
 **> d) Escreva a matriz resultante da soma destas duas matrizes multiplicada 
 **> pelos últimos dois números da sua matricula da UNINTER;
 **> e) Escreva um vetor resultante da soma das diagonais principais das duas 
 **> matrizes multiplicado pelos últimos dois números da sua matricula da
 **> UNINTER;
 **/

 

Link para o comentário
Compartilhar em outros sites

  • 0
16 minutos atrás, britivaldo disse:

Olá, tudo certo!?

Então ...

Seguindo a ordem dos quesitos no enunciado do exercício, qual parte você não está conseguindo.

Observação: Apesar do prazo tenha selo e gosto pelo que está fazendo, porque quando publicar teu código para apreciação de outros; alguns notaram nele o seu empenho.


/**> Enunciado do Programa
 **> ---------------------
 **> Faça um algoritmo em linguagem C com as seguintes funcionalidades:
 **> a) Receba duas matrizes como dados e entrada. A dimensão das matrizes deve
 **> ser de, no máximo 5x5. Ambas matrizes de-vem ter as mesmas dimensões;
 **> b) O usuário deve digitar a dimensão das matrizes (máximo 5x5). Faça uma 
 **> checagem usando um laço de repetição que só permita o programa avançar caso
 **> ele digite dimensões corretas de no máximo 5;
 **> c) Escreva ambas matrizes na tela, de uma forma legível;
 **> d) Escreva a matriz resultante da soma destas duas matrizes multiplicada 
 **> pelos últimos dois números da sua matricula da UNINTER;
 **> e) Escreva um vetor resultante da soma das diagonais principais das duas 
 **> matrizes multiplicado pelos últimos dois números da sua matricula da
 **> UNINTER;
 **/

 

e) Escreva um vetor resultante da soma das diagonais principais das duas 
 **> matrizes multiplicado pelos últimos dois números da sua matricula da
 **> UNINTER;

 

Link para o comentário
Compartilhar em outros sites

  • 0
35 minutos atrás, Hedson Ferreira da Silva disse:

**> e) Escreva um vetor resultante da soma das diagonais principais das duas 
**> matrizes multiplicado pelos últimos dois números da sua matricula da 
**> UNINTER;

 

Então ... Estamos falando sempre de uma matriz quadrada que pode no mínimo ser 1x1 e no máximo ser 5x5. A comprimento da diagonal principal, ou seja, o número de elementos que pertence a diagonal principal da matriz, é igual ao comprimento dos seus lados. Assim sendo, uma matriz 3x3 tem d-principal de comprimento 3. Assim sendo, o vetor para alberga essa diagonal tem largura igual a 3. Outro aspecto geométrico é que, o par ordenado dos elementos da matriz principal tem seu componentes iguais. Assim sendo, para o nosso exemplo sempre teremos i == j, basta percorres varrer todos elementos da matriz para um só i, ou para só j não havendo a necessidade de verificar se i é igual a j. Tanto para linhas, quanto para colunas da matriz os valores serão 0 até 3, para o nosso exemplo.

 

É simples de implementar, e poderá ser igual a sim:

for( int x= 0; x < 3; ++x )
{	/**> A soma do elemento na diagonal principal multiplicada por RU
	 **> é atribuindo, logo depois do calculo, no índice coeso do vetor.
	 **/
 	vetor_ints[ x ]= 
  		((matriz0_ints[ x ][ x ] + matriz1_ints[ x ][ x ]) * RU);
}

 

Imprimir vai ser igual, exceto pelo calculo e pela presença de uma função de saída para o prompt.

for( int x= 0; x < 3; ++x )
{	printf( "%d ", vetor_ints[ x ] ) 
}
Editado por britivaldo
Link para o comentário
Compartilhar em outros sites

  • 0
2 horas atrás, britivaldo disse:

Então ... Estamos falando sempre de uma matriz quadrada que pode no mínimo ser 1x1 e no máximo ser 5x5. A comprimento da diagonal principal, ou seja, o número de elementos que pertence a diagonal principal da matriz, é igual ao comprimento dos seus lados. Assim sendo, uma matriz 3x3 tem d-principal de comprimento 3. Assim sendo, o vetor para alberga essa diagonal tem largura igual a 3. Outro aspecto geométrico é que, o par ordenado dos elementos da matriz principal tem seu componentes iguais. Assim sendo, para o nosso exemplo sempre teremos i == j, basta percorres varrer todos elementos da matriz para um só i, ou para só j não havendo a necessidade de verificar se i é igual a j. Tanto para linhas, quanto para colunas da matriz os valores serão 0 até 3, para o nosso exemplo.

 

É simples de implementar, e poderá ser igual a sim:


for( int x= 0; x < 3; ++x )
{	/**> A soma do elemento na diagonal principal multiplicada por RU
	 **> é atribuindo, logo depois do calculo, no índice coeso do vetor.
	 **/
 	vetor_ints[ x ]= 
  		((matriz0_ints[ x ][ x ] + matriz1_ints[ x ][ x ]) * RU);
}

 

Imprimir vai ser igual, exceto pelo calculo e pela presença de uma função de saída para o prompt.


for( int x= 0; x < 3; ++x )
{	printf( "%d ", vetor_ints[ x ] ) 
}

Muito obrigado pelos esclarecimentos, tudo okay...

[RESOLVIDO]

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...