Ir para conteúdo

POWERED BY:

Arquivado

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

Gustavo Rodrigues Torre

[Resolvido] Vetor compactado 2

Recommended Posts

Escrever um algoritmo que lê um vetor V(20) e o escreve. Retire, a seguir, os elementos em duplicata, compactando o vetor Y, e escrevendo o vetor compactado.

 

Eu fiz este parecido com o que você me ajudou a resolver só que dá erro.

Onde esta o erro?

 

j <- 1

para i de 1 ate 20 faca

se (V = V) entao

Y[j] <- V

j <- j + 1

fimse

fimpara

 

 

escreval("Vetor Y compactado")

para i de 1 ate j-1 faca

escreval (Y)

fimpara

Compartilhar este post


Link para o post
Compartilhar em outros sites

Voce precisa de dois laços.

 

k <- 0
para i de 1 ate 20 faca
   copia <- true
   para j de i+1 ate 20 faca entao
	  se(V[i] = V[j])
		 copia <- false
	  fimse
   fim_para
   se (copia = true) entao
	  Y[k] <- A[i]
	  k++
   fimse
fim_para

Compartilhar este post


Link para o post
Compartilhar em outros sites

true e false não são aceitos no visualg

Qual seria outra opção?

 

 

Voce precisa de dois laços.

 

k <- 0
para i de 1 ate 20 faca
   copia <- true
   para j de i+1 ate 20 faca entao
	  se(V[i] = V[j])
		 copia <- false
	  fimse
   fim_para
   se (copia = true) entao
	  Y[k] <- A[i]
	  k++
   fimse
fim_para

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu fiz assim

E esta dando erro dizendo assim: Esperava-se uma para...faca inteiro

 

 

k <- 0

para i de 1 ate 20 faca

ncopia <- 1

para j de i+1 ate 20 faca

se(V = V[j])

ncopia <- 0

fimse

fimpara

se (ncopia = 1) entao

Y[k] <- A

k <- k+1

fimse

fimpara

 

 

 

Use:

 

0 para false

1 para true

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ele é chatinho quanto a sintaxe. Testei atribuindo um valor ao vetor V.

Veja agora:

 

// Função :
// Autor :
// Data : 13/11/2007
// Seção de Declarações 
var
   k,i,j: inteiro
   c: logico
   v: vetor [1..10] de inteiro
   y: vetor [1..10] de inteiro
inicio
v[1] <- 1
v[2] <- 2
v[3] <- 3
v[4] <- 2
v[5] <- 4
v[6] <- 5
v[7] <- 6
v[8] <- 1
v[9] <- 7
v[10] <- 8

k <- 1
para i de 1 ate 10 faca
   c <- verdadeiro
   para j de i+1 ate 10 faca entao
	  se(V[i] = V[j]) entao
		 c <- falso
		 interrompa
	  fimse
   fimpara
   se (c = verdadeiro) entao
	  Y[k] <- V[i]
	  k <- k+1
   fimse
fimpara
fimalgoritmo

Compartilhar este post


Link para o post
Compartilhar em outros sites

E este program e bem chato mesmo

 

O programa não mostrou nada

Apenas uma tela preta

 

 

Ele é chatinho quanto a sintaxe. Testei atribuindo um valor ao vetor V.

Veja agora:

 

// Função :
// Autor :
// Data : 13/11/2007
// Seção de Declarações 
var
   k,i,j: inteiro
   c: logico
   v: vetor [1..10] de inteiro
   y: vetor [1..10] de inteiro
inicio
v[1] <- 1
v[2] <- 2
v[3] <- 3
v[4] <- 2
v[5] <- 4
v[6] <- 5
v[7] <- 6
v[8] <- 1
v[9] <- 7
v[10] <- 8

k <- 1
para i de 1 ate 10 faca
   c <- verdadeiro
   para j de i+1 ate 10 faca entao
	  se(V[i] = V[j]) entao
		 c <- falso
		 interrompa
	  fimse
   fimpara
   se (c = verdadeiro) entao
	  Y[k] <- V[i]
	  k <- k+1
   fimse
fimpara
fimalgoritmo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja agora:

 

algoritmo "semnome"
// Função :
// Autor :
// Data : 13/11/2007
// Seção de Declarações 
var
   k,i,j: inteiro
   c: logico
   v: vetor [1..10] de inteiro
   y: vetor [1..10] de inteiro
inicio
v[1] <- 1
v[2] <- 2
v[3] <- 3
v[4] <- 2
v[5] <- 4
v[6] <- 5
v[7] <- 6
v[8] <- 1
v[9] <- 7
v[10] <- 8

k <- 1
para i de 1 ate 10 faca
   c <- verdadeiro
   para j de i+1 ate 10 faca entao
	  se(V[i] = V[j]) entao
		 c <- falso
		 interrompa
	  fimse
   fimpara
   se (c = verdadeiro) entao
	  Y[k] <- V[i]
	  k <- k+1
   fimse
fimpara

para i de 1 ate k-1 faca
   escreval (y[i])
fimpara
   
fimalgoritmo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora rodou mais eu gostaria que o usuário colocasse os valores e não ter valores já prontos teria como fazer isso?

 

 

Veja agora:

 

algoritmo "semnome"
// Função :
// Autor :
// Data : 13/11/2007
// Seção de Declarações 
var
   k,i,j: inteiro
   c: logico
   v: vetor [1..10] de inteiro
   y: vetor [1..10] de inteiro
inicio
v[1] <- 1
v[2] <- 2
v[3] <- 3
v[4] <- 2
v[5] <- 4
v[6] <- 5
v[7] <- 6
v[8] <- 1
v[9] <- 7
v[10] <- 8

k <- 1
para i de 1 ate 10 faca
   c <- verdadeiro
   para j de i+1 ate 10 faca entao
	  se(V[i] = V[j]) entao
		 c <- falso
		 interrompa
	  fimse
   fimpara
   se (c = verdadeiro) entao
	  Y[k] <- V[i]
	  k <- k+1
   fimse
fimpara

para i de 1 ate k-1 faca
   escreval (y[i])
fimpara
   
fimalgoritmo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Claro que tem.

Faça um loop para de 1 ate tamanho do vetor.

dentro desse loop mande uma mensagem para o usuario pedindo para digitar um valor e faça a leitura em V

Ok?

 

Agora rodou mais eu gostaria que o usuário colocasse os valores e não ter valores já prontos teria como fazer isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não funcionou ele não retirou um numero repetido olha o código

Eu só fiz acrescentar o que você me disse

 

algoritmo "semnome"

// Função :

// Autor :

// Data : 13/11/2007

// Seção de Declarações

var

k,i,j: inteiro

c: logico

v: vetor [1..10] de inteiro

y: vetor [1..10] de inteiro

inicio

Para i de 1 ate 10 faca

escreva("Digite um valor do elemento da linha" , i,"do vetor K: ")

leia (v)

fimpara

 

k <- 1

para i de 1 ate 10 faca

c <- verdadeiro

para j de i+1 ate 10 faca entao

se(V = V[j]) entao

c <- falso

interrompa

fimse

fimpara

se (c = verdadeiro) entao

Y[k] <- V

k <- k+1

fimse

fimpara

 

para i de 1 ate k-1 faca

escreval (y)

fimpara

 

fimalgoritmo

 

 

 

Claro que tem.

Faça um loop para de 1 ate tamanho do vetor.

dentro desse loop mande uma mensagem para o usuario pedindo para digitar um valor e faça a leitura em V

Ok?

 

Agora rodou mais eu gostaria que o usuário colocasse os valores e não ter valores já prontos teria como fazer isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Voce entrou com quais números?

Vou testar aqui.

 

Não funcionou ele não retirou um numero repetido olha o código

Eu só fiz acrescentar o que você me disse

Compartilhar este post


Link para o post
Compartilhar em outros sites

Aqui funcionou certinho, o que voce pode estar confundindo é:

Vetor V continua do jeito que está, o vetor que recebe os números sem repetição é Y.

 

Execute o passo a passo do VisuAlg tenho certeza que aprenderá mais.

 

http://forum.imasters.com.br/public/style_emoticons/default/natal_wink.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Funcionou

Eu vi o meu erro

Tópico resolvido

Obrigado

Aqui funcionou certinho, o que voce pode estar confundindo é:

Vetor V continua do jeito que está, o vetor que recebe os números sem repetição é Y.

 

Execute o passo a passo do VisuAlg tenho certeza que aprenderá mais.

 

http://forum.imasters.com.br/public/style_emoticons/default/natal_wink.gif

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.