Ir para conteúdo

POWERED BY:

Arquivado

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

TCHE

[Resolvido] inverter vetor

Recommended Posts

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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_para
veja c é assim q você qr!! caso naum volte a postar q a gente refaz!!

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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_para
veja c é assim q você qr!! caso naum volte a postar q a gente refaz!!

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

o montar a matriz é ler os numero para jogar dentro da matriz!

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

naum precisa iniciar contc e contl com 1 o laço para jah faz isso nesse trecho:

para contl de 1 até 5 faça
observe 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

Compartilhar este post


Link para o post
Compartilhar em outros sites

ainda ñ esta escrevendo inverso

 

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

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ça
observe 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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

deu certo incremetei o passo -1 como foi dado

contl := 1

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:= 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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

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.