Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

dedeboy

[Resolvido] Junção de Matrizes

Recommended Posts

Ola eu estou com problema numa exercicio de Matrizes é o seguinte:

Eu estou fazendo um exercicio que Me pede fazer a leitura de 15 elementos da Matriz A e B e depois me Pede para criar uma matriz C sendo que o a Matriz C é junção da Matriz A com B então a Matriz C tem que ter o dobro dos elementos dos dois que no caso 30 elementos. Só que não sei como faço a junção da Matriz A e B alguém me poderia me ajudar?

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Basicamente, você tem que fazer um laço de repetição na matriz A, ler o dado da A e já o gravar na C, depois repete isso com a B... só tem que tomar cuidado com o controle de posição da matriz C.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Basicamente, você tem que fazer um laço de repetição na matriz A, ler o dado da A e já o gravar na C, depois repete isso com a B... só tem que tomar cuidado com o controle de posição da matriz C.

 

[]'s

 

A ultuma parte que eu não entendi, poderia me dar um exemplo de função?

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual parte que não entendeu? Fala do controle de posição na matriz C? Se for, isso é simples... imagine a situação: você faz um laço de 1 a 15 pra gravar os dados no C lendo a partir do A... quando você sair deste laço, em teoria você tem 15 elementos gravados no vetor C correto? Agora, digamos que seu vetor A contivesse apenas 5 dados válidos e o resto das posições vazias, o que aconteceria? Seu vetor C na realidade não teria que ter 15 elementos preenchidos ao sair do laço feito no vetor A, mas sim 5, sendo que o próximo elemento a ser inserido a partir da leitura do vetor B deverá ser gravado na posição 6 do vetor C. Ou seja: você vai ter que ter uma variável auxiliar que será incrementada apenas quando inserir valores no vetor C, sendo ela a controladora da posição em que vai gravar os dados no vetor... com isso, temos:

 

1) Dois vetores de 15 elementos (A e B) que serão varridos por um laço for normal (ou repeat)

 

2) A necessidade de ter uma variável de controle de posição para a inserção dos dados no terceiro vetor ©, que você irá inicializar antes do primeiro for (ou repeat) com 0 e irá incrementar sempre que atribuir valor ao vetor C.

 

3) Se houver necessidade de ordenar os valores do vetor C, recomenda-se o uso de algum algoritmo de ordenação no fim do processo (como o Quicksort).

 

Sacou a idéia? Qualquer coisa posta ai.

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Qual parte que não entendeu? Fala do controle de posição na matriz C? Se for, isso é simples... imagine a situação: você faz um laço de 1 a 15 pra gravar os dados no C lendo a partir do A... quando você sair deste laço, em teoria você tem 15 elementos gravados no vetor C correto? Agora, digamos que seu vetor A contivesse apenas 5 dados válidos e o resto das posições vazias, o que aconteceria? Seu vetor C na realidade não teria que ter 15 elementos preenchidos ao sair do laço feito no vetor A, mas sim 5, sendo que o próximo elemento a ser inserido a partir da leitura do vetor B deverá ser gravado na posição 6 do vetor C. Ou seja: você vai ter que ter uma variável auxiliar que será incrementada apenas quando inserir valores no vetor C, sendo ela a controladora da posição em que vai gravar os dados no vetor... com isso, temos:

 

1) Dois vetores de 15 elementos (A e B) que serão varridos por um laço for normal (ou repeat)

 

2) A necessidade de ter uma variável de controle de posição para a inserção dos dados no terceiro vetor ©, que você irá inicializar antes do primeiro for (ou repeat) com 0 e irá incrementar sempre que atribuir valor ao vetor C.

 

3) Se houver necessidade de ordenar os valores do vetor C, recomenda-se o uso de algum algoritmo de ordenação no fim do processo (como o Quicksort).

 

Sacou a idéia? Qualquer coisa posta ai. :unsure:

 

[]'s

 

Nossa meio complicado, mas vamos ver se estou indo certo no caminho lógico. Então eu preciso primeiro criar um Matriz C com 30 elementos para amanzenar os valores lidos da Matriz A e B, daí que sai a junção? Acho se tiver um algoritmo de um exemplo acho que entenderia melhor.

 

[]s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então eu fiz 90% do algoritmo, criei a variavel auxiliar, mas na na onde devo proceder, já pensei em tudo e não sei como eu faço, a minha duvida ta no ponto de interrogação no algoritmo, estou mandando pra você veja melhor.

[]s

 

A,B: vetor[1..15] de inteiro

C: vetor [1..30] de inteiro

I,J: inteiro

 

 

inicio

// Seção de Comandos

J:= 0

Escreval("Digita os numeros da Matriz A:")

Para I de 1 ate 15 passo 1 faca

Leia(A)

 

fimpara

Escreval("Digite os numeros da Matriz B: ")

Para I de 1 ate 15 passo 1 faca

Leia(B)

 

fimpara

Para I de 1 ate 30 passo 1 faca

 

?

 

fimpara

 

Para I de 1 ate 30 passo 1 faca

Escreva(C)

fimpara

Compartilhar este post


Link para o post
Compartilhar em outros sites

O modo mais simples de resolver seria por dois laços para ler os dados de A e B e jogar no C.... mas vi outras respostas a problemas semelhantes ao seu em tópicos neste mesmo fórum (tópicos recentes, diga-se por passagem)... vale a pena dar uma pesquisada aqui e verá outras possibilidades.

 

A,B: vetor[1..15] de inteiro

C: vetor [1..30] de inteiro

I,J: inteiro

 

 

inicio

// Seção de Comandos

J:= 0

Escreval("Digita os numeros da Matriz A:")

Para I de 1 ate 15 passo 1 faca

Leia(A)

 

fimpara

Escreval("Digite os numeros da Matriz B: ")

Para I de 1 ate 15 passo 1 faca

Leia(B)

 

fimpara

 

Para I de 1 ate 15 passo 1 faca

C[J] = A

J:= J+1

fimpara

 

Para I de 1 ate 15 passo 1 faca

C[J] = B

J:= J+1

fimpara

 

Para I de 1 ate 30 passo 1 faca

Escreva(C)

fimpara

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.