1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Urgente - Portugues estruturado

Discussão em 'Programação' iniciada por TripleX, 19 de Janeiro de 2008. (Respostas: 5; Visualizações: 1685)

  1. TripleX

    TripleX Power Member

    Boa tarde a todos, tenho um trabalho para entregar esta semana e não sei trabalhar muito bem com matrizes. Espero que me possam ajudar a fazer um algoritmo em português estruturado que me resolva o meu problema.
    O enunciado do trabalho é o seguinte:

    "A Igreja da Sagrada Família em Barcelona é uma obra de referência na Arquitectura, da autoria de Antoni Gaudí. Esta igreja apresenta diversas curiosidades a níveis arquitectónico, artístico e de engenharia. A sua construção iniciou-se no final do século XIX e actualmente ainda não se encontra acabada estando edificado pouco mais de metade do projecto inicial de Gaudí.

    Uma das curiosidades desta igreja é a existência, numa das suas fachadas, de um criptograma constituído por uma matriz quadrada (4 linhas por 4 colunas). Cada elemento da matriz é um número inteiro. Existem diversas combinações de quatro elementos desta matriz cuja soma é igual a 33 (a idade de Jesus Cristo quando foi crucificado).

    A matriz seguinte representa o criptograma referido acima:
    1 14 14 4
    11 7 6 9
    8 10 10 5
    13 2 3 15


    Entre outras combinações, todas as linhas e todas as colunas, assim como ambas as diagonais, somam 33. É o caso, por exemplo, da linha 2, constituída pelos números 11, 7, 6, 9 (11+7+6+9=33). Ao todo existem 310 combinações de 4 dos elementos da matriz que produzem um somatório igual a 33.

    Pretende-se com este trabalho o desenvolvimento de um programa em Português Estruturado que permita verificar, para uma matriz quadrada de qualquer dimensão, se o somatório das suas linhas, colunas e das duas diagonais, totalizam um determinado valor. A dimensão da matriz e o valor do somatório a verificar são dados lidos pelo programa. No final, o programa indica se a matriz verifica o somatório ou não, ou seja, se o somatório de todas as linhas, colunas e diagonais corresponde ao valor fornecido ou não (neste caso, basta que o somatório falhe uma vez).

    Sugere-se ainda que os alunos procurem construir outras matrizes que obedeçam a esta propriedade, para além daquela que é apresentada como exemplo.
    ________________________________________

    Na resolução deste trabalho deverão ser usados subprogramas e variáveis indexadas. "

    Obrigado pela vossa atenção.

    O meu email é [email protected]

    abraços
     
  2. Baderous

    Baderous Banido

    Os subprogramas serão as funções soma_linha, soma_coluna e soma_diagonal e as variáveis indexadas serão os índices da matriz.
     
  3. TripleX

    TripleX Power Member

    Sim.
    Mas não consigo montar isso.
    Pode me ajudar?
     
  4. Baderous

    Baderous Banido

    - soma_linha:

    Sendo i,j os índices da matriz, x o valor presente em cada posição da matriz, vais somar os valores x(i,j), mantendo o i fixo e variando o j desde 0 até ao nº de colunas da matriz. Por exemplo, se for uma matriz 3x3, a função soma_linha vai realizar a soma: x(i,0)+x(i,1)+x(i,2).

    - soma_coluna:

    Igual à anterior, mas desta vez mantens o j fixo e varias o i.

    - soma_diagonal:

    Só há 2 diagonais, sendo que os valores da diagonal com inclinação negativa são aqueles cujos índices são iguais e variam entre 0 e o nº máximo de linhas/colunas (para uma matriz 3x3: x(0,0)+x(1,1)+x(2,2)), e os da diagonal com inclinação positiva são aqueles cujos índices variam alternadamente entre 0 e o nº máximo de linhas/colunas (para uma matriz 3x3: x(2,0)+x(1,1)+x(0,2)).

    Depois disto, no programa principal, após o utilizador introduzir a dimensão da matriz e o valor da soma a ser verificado, tens que aplicar a função soma_linha a cada linha e, para cada uma, verificar se o valor obtido é igual ao que tu queres, fazendo o mesmo com a função soma_coluna e por fim com a soma_diagonal.
     
  5. TripleX

    TripleX Power Member

    Obrigado.
    Ajudou muito.
    Abraços.
     

Partilhar esta Página