dedeboy 0 Denunciar post Postado Novembro 17, 2009 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
Chrnos 30 Denunciar post Postado Novembro 17, 2009 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
dedeboy 0 Denunciar post Postado Novembro 17, 2009 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
Chrnos 30 Denunciar post Postado Novembro 18, 2009 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
dedeboy 0 Denunciar post Postado Novembro 18, 2009 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
dedeboy 0 Denunciar post Postado Novembro 18, 2009 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
Chrnos 30 Denunciar post Postado Novembro 19, 2009 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
dedeboy 0 Denunciar post Postado Novembro 19, 2009 Valeu! Chrnos vou pesquisar sim, nunca pensei nessa possibilidade Obrigado. Compartilhar este post Link para o post Compartilhar em outros sites