Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
pessoal tenho q fazer um algoritmo que construa uma matriz 50 x 30 e depois de construída inverter suas linhas. Exemplo: a
última linha será a primeira e a primeira a última. A antepenúltima será a segunda e a segunda será antepenúltima
e assim por diante.
e a ideia q tive foi essa, mas sei q esta totalmente diferente de exemplo achado aqui no forum mesmo pois esta em pascal
mais o meu ñ acho q esteja de tudo errado
var
matriz: vetor [1..5,1..3] de inteiro
contl, contc, aux: inteiro
inicio
contl:= 1
para contl de 1 ate 5 faca
contc:= 1
para contc de 1 ate 3 faca
leia(matriz [contl,contc])
contc:= contc + 1
fimpara
contl:= contl + 1
fimpara
aux:= 1
contl:= 5
contc:= 3
para aux de 1 ate 5 faca
escreva (matriz [contl, contc])
contl:= contl - 1
aux:= aux + 1
fimpara
fimalgoritmo
gostaria de saber se esta certo e se tiver errado onde esta o errado e uma dica de como concertar
Voce pode criar outra matriz que receba as linhas invertidas.
Algo do tipo:
matriz: invertida [1..5,1..3] de inteiro
k <- 0
para i de 5 ate 1 faca
k <- k + 1
para j de 1 ate 5 faca
invertida[k][j] <- matriz[i][j]
http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif
mas ele pede pra montar a mareiz
e nesse caso ai ele esta lendo numeros.
e o meu algoritmo esta errado?
>
olha no laço 'para' ñ precisa incrementar o contador ele é incrementado ow decrementado automaticamente!!
seu exercicio pode ser feito assim:
para i de 1 até 5 faça
para j de 1 até 5 faça
leia (num)
matriz[i][j] <- num
fim_para
fim_para
para i de 5 até 1 faça
para j de 5 até 1 faça
escreva(matriz[i][j])
fim_para
fim_paraveja c é assim q você qr!! caso naum volte a postar q a gente refaz!!
[]'s
o montar a matriz é ler os numero para jogar dentro da matriz!
qual é o meu erro aqui? eu acho q fiz conforme as dicas
CODE
var
matriz: vetor[1..5,1..3] de inteiro
num, contc, contl : inteiro
inicio
contl:= 1
para contl de 1 ate 5 faca
contc:= 1
para contc de 1 ate 3 faca
leia (num)
matriz [contl, contc]:= num
fimpara
fimpara
para contl de 5 ate 1 faca
para contc de 5 ate 1 faca
escreva (matriz [contl, contc]
fimpara
fimpara
fimalgoritmo
naum precisa iniciar contc e contl com 1 o laço para jah faz isso nesse trecho:
para contl de 1 até 5 façaobserve q ele jah vai ser iniciado com 1 e vai até 5
e na hr de escrever a matriz observe q você declarow q ele teria 3 linhas e no laço para você escrevew para ir até 5!
qlqr dúvida, volte a postar []'s
ainda ñ esta escrevendo inverso
CODE
varmatriz: vetor[1..5,1..3] de inteiro
num, contc, contl : inteiro
inicio
para contl de 1 ate 5 faca
para contc de 1 ate 3 faca
leia (num)
matriz [contl, contc]:= num
fimpara
fimpara
para contl de 5 ate 1 faca
para contc de 3 ate 1 faca
escreva (matriz [contl, contc])
fimpara
fimpara
fimalgoritmo
>
naum precisa iniciar contc e contl com 1 o laço para jah faz isso nesse trecho:
para contl de 1 até 5 façaobserve q ele jah vai ser iniciado com 1 e vai até 5
e na hr de escrever a matriz observe q você declarow q ele teria 3 linhas e no laço para você escrevew para ir até 5!
qlqr dúvida, volte a postar []'s
tente com o laço para assim:
para contl de 5 ate 1 passo -1 faça
para contc de 3 ate 1 passo -1 faça
escreva (matriz [contl, contc])
fim_para
fim_para
olha fiz o exemplo em linguagem C para verificar e deu certo!!
verifique como é para decrementar uma variavel no laço 'para' pelo Visualg!
eu aprendi no caderno, sendo assim:
para i de 5 até 1 passo -1 faça
Segue o code em Linguagem C, para você dar uma olhada.
#include <stdio.h>
#include <conio.h>
int main(void)
{
int mat[5][3], num;
int i, j;
for (i=1;i<=5;i++) for(j=1;j<=3;j++) {
printf("Matriz[%d][%d] <- ",i,j);
scanf("%d",&num);
mat[i][j] = num;
}
printf("\n Matriz Normal\n");
for (i=1;i<=5;i++) {
printf("\n");
for(j=1;j<=3;j++) printf("%.2d ",mat[i][j]);
}
printf("\n\n Matriz Invertida\n");
for (i=5;i>=1;i--) {
printf("\n");
for(j=3;j>=1;j--) printf("%.2d ",mat[i][j]);
}
system("PAUSE>>NULL");
return 0;
}deu certo incremetei o passo -1 como foi dado
contl := 1
CODE
varmatriz: vetor[1..5,1..3] de inteiro
num, contc, contl : inteiro
inicio
para contl de 1 ate 5 faca
para contc de 1 ate 3 faca
leia (num)
matriz [contl, contc]:= num
fimpara
fimpara
contl:= 1
para contl de 5 ate 1 passo -1 faca
para contc de 3 ate 1 passo -1 faca
escreva (matriz [contl, contc])
fimpara
fimpara
fimalgoritmo
so uma coisa q num entendi pessei q ele iria inverter so as linhas (entao o meu primeiro algoritmo taria certo) e ñ toda a matriz
>
tente com o laço para assim:
para contl de 5 ate 1 passo -1 faça
para contc de 3 ate 1 passo -1 faça
escreva (matriz [contl, contc])
fim_para
fim_para
O algoritmo só pede para inverter as linhas, portanto faça "passo 1" no segundo "para".
http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif
velau, passeiros
assim ta dando certo
CODE
var
matriz: vetor[1..5,1..3] de inteiro
num, contc, contl : inteiro
inicio
para contl de 1 ate 5 faca
para contc de 1 ate 3 faca
leia (num)
matriz [contl, contc]:= num
fimpara
fimpara
contl:= 5
para contl de 5 ate 1 passo -1 faca
para contc de 1 ate 3 faca
escreva (matriz [contl, contc])
fimpara
fimpara
fimalgoritmo
Ficou certinho.
http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif
a hehe pensei q era pra inverter td a matriz, + td bem soh seguir o q o Kandrade falow q seu algoritmo vai estar certinho!!
http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif
olha no laço 'para' ñ precisa incrementar o contador ele é incrementado ow decrementado automaticamente!!
seu exercicio pode ser feito assim:
para i de 1 até 5 faça
para j de 1 até 5 faça
leia (num)
matriz[i][j] <- num
fim_para
fim_para
para i de 5 até 1 faça
para j de 5 até 1 faça
escreva(matriz[i][j])
fim_para
fim_paraveja c é assim q você qr!! caso naum volte a postar q a gente refaz!!
[]'s