Ir ao conteúdo
  • Cadastre-se

VisualG Construção algoritmo de numeração


Posts recomendados

@Helen Fernanda de Souza     até aqui ele gerou 30 dos 50 uma vez, então como você quer gerar esses 30 3 vezes, então repita essa parte do código que gera os 30 mais duas vezes e coloque o resultado em outro vetor.
     depois para gerar os dez desses trinta você usa os valores que estão nesses vetores dos trinta, e para fixar os dez escolhido pelo usuário use um loop igual ao de excluir dez lá do começo e use outro vetor para guardar esses 10.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Bom dia hoje tentei fazer o que me disse não funcionou,  parece que não conecta com a o vetor e joga os números que sobrou em outro vetor para o processo randi e ao tentar ler e fixar 10 números dos 30 não acontece onde estou fazendo errado

estou quebrando a cabeça e refazendo do zero mais não vai adicionei mais 2 vetores  um para os 20 que sobram  dos 30 e outro e para 10 aleatórios ajuda com essa dor de cabeça.

Algoritmo "Algoritmo exercicio de numeracao2"
Var
excluir,fixar,a,b,c,d,g : inteiro //variaves
vetor_normal : vetor[1..60] de inteiro   // vetor armazena 60 posiçoes
vetor_3      : vetor[1..30] de inteiro   // vetor armazena 30 posições
vetor_s      : vetor[1..20] de inteiro   // vetor armazena 20 posições
vetor_aleatorio : vetor[1..10] de inteiro // vetor armazena 10 posições
//inicio do codigo
Inicio
// vamos armazenar os 60 numeros na variavel a e dentro do vetor_normal
  para a de 1 ate 60 faca
    vetor_normal[a] := a // armazena 60 numeros dentro do vetor_normal
  fimpara
// deletando 10 numeros
  escreval("vamos excluir 10 numeros de 1 a 60")
  para excluir de 1 ate 10 faca   // comando para fazer de 1 ate 10
    repita
    b := 1
    escreva("Digite O",excluir," Número de 1 a 60 Para Deletar ")
    leia(c)  //ler entrada teclado
    se (c<1) ou (c>60)então   // so vale de 1 ate 60
      escreval("so pode ser numero de 1 a 60 escolha outro tecle enter")
      b := 2
      leia(c)
    senao
      se vetor_normal[c] = 0 então
        escreval("o numero ja foi deletado , escolha outro tecle enter")
        b := 2
        leia(c)
      senao
        vetor_normal[ c ] := 0
      fimse
    fimse
    b := b-1 // nao entendi essa parte o do por que ate 0
    ate b = 0
  fimpara
  escreval("Aqui Estão Os 10 Números Deletados")
  para a de 1 ate 60 faca // comando de 1 ate 60 armazena variavel a
    se vetor_normal[a] = 0 então// se for zero então o número foi deletado
      escreva(a," - ")
    fimse
  fimpara
  escreval
  escreval("Aqui Estão Os 50 Números Que Sobraram")
  d := 1
  para a de 1 ate 50 faca
      se vetor_normal[d] <> 0 então
        escreva(vetor_normal[d]," - ")
      senao
        escreva(" - ")
      fimse
      d := d+1
    fimpara
    escreval
  escreval("Vamos Escolher Aleatoriamente 30 Números Dos 50")
  //aqui é onde gera os numeros aleatórios
  para a de 1 ate 30 faca  // serão 30 números
    repita  // repite se precisar
      b:=1  // com valor 1 ele não repete
      g:=randi(60)+1  // gera um número aleatorio
      se vetor_normal[g]=0 então//numero foi deletado
        b:=2//b recebe valor 2 para repetir e escolher outro
      fimse
      para c de 1 ate 30 faca//verifica os trinta numeros no vetor_3
        se b <> 2 então// se o número não houver sido deletado
          se vetor_3[c] = vetor_normal[g] então//se no vetor já haver o numero gerado
            b:=2// b recebe o valor 2 para repetir e escolher outro numero
            interrompa
          fimse
        fimse
      fimpara
      se b <> 2 então
        vetor_3[a]:= vetor_normal[g] //vetor_3 armazena o numero gerado
      fimse
      b:=b-1    // b recebe b menos 1
    ate b=0     // se b igual zero ele passa
  fimpara
  //aqui é onde termina a geração dos números aleatórios
  //escrevando os números gerados aleatórios
  escreval("Aqui Estão Os 30 Números Gerados Aleatórios")
  d:=1
  para a de 1 ate 3 faca
    para c de 1 ate 10 faca
      escreva(vetor_3[d]," - ")
      d := d+1
    fimpara
    escreval//para pular para a linha de baixo
  fimpara
  //fixando 10 Numeros dos 30 aleatorio
  escreval("vamos fixar 10 numeros dos 30 gerados")
  para excluir de 1 ate 10 faca   // comando para fazer de 1 ate 10
    repita
    b := 1
    escreva("Digite O",excluir," Número de 1 a 30 Para Deletar ")
    leia(c)  //ler entrada teclado
    se (c<1) ou (c>60)então   // so vale de 1 ate 60
      escreval("so pode ser numero de 1 a 30 escolha outro tecle enter")
      b := 2
      leia(c)
    senao
      se vetor_3[c] = 0 então
        escreval("o numero ja foi deletado , escolha outro tecle enter")
        b := 2
        leia(c)
      senao
        vetor_3[ c ] := 0
      fimse
  // aqui estão os 20 numeros que sobraram
     escreval("Aqui Estão Os 20 Números Que Sobraram")
  d := 1
  para a de 1 ate 20 faca
      se vetor_3[d] <> 0 então
        escreva(vetor_3[d]," - ")
      senao
        escreva(" - ")
      fimse
      d := d+1
    fimpara
    escreval
  //gerando 10 numeros aleatorio dos 20 que sobraram
  escreval("Vamos Escolher Aleatoriamente 10 Números Dos 20")
  para a de 1 ate 10 faca  // serão 10 números
    repita  // repite se precisar
      b:=1  // com valor 1 ele não repete
      g:=randi(60)+1  // gera um número aleatorio
      se vetor_normal[g]=0 então//numero foi deletado
        b:=2//b recebe valor 2 para repetir e escolher outro
      fimse
      fimpara
      para c de 1 ate 10 faca//verifica os dez numeros no vetor_3
        se b <> 2 então// se o número não houver sido deletado
          se vetor_aleatorio[c] = vetor_normal[g] então//se no vetor já haver o numero gerado
            b:=2// b recebe o valor 2 para repetir e escolher outro numero
            interrompa
          fimse
        fimse
      fimpara
      se b <> 2 então
        vetor_aleatorio[a]:= vetor_normal[g] //vetor_3 armazena o numero gerado
      fimse
      b:=b-1    // b recebe b menos 1
    ate b=0     // se b igual zero ele passa
  fimpara
  //mostrar os 10 numeros escolhido aleatorio em tela
  para a de 1 ate 10 faca
  escreva(vetor_aleatorio[a]," - ")
  fimpara
Fimalgoritmo

 

 

 

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

@Helen Fernanda de Souza        aqui o código com as melhorias feitas pelo  Simon Viegas ,   os vetores tiveram os nomes modificados  para melhor compreensão,  então até aqui ele excluiu os 10 de 60, e gerou os 30 dos 50 que sobraram e fez isso 3 vezes,  e agora os dez que vai fixar dos 30 são escolhidos pelo usuário ?   e você quer fixar  dez de cada um desses trinta ?

algoritmo "Algoritmo exercicio de numeracao3"
var
   vetor_60   :vetor [1..60] de inteiro //vetor armazena 60 posiçoes
   vetor_30_1 :vetor [1..30] de inteiro //vetor armazena 30 posições
   vetor_30_2 :vetor [1..30] de inteiro //vetor armazena 30 posições
   vetor_30_3 :vetor [1..30] de inteiro //vetor armazena 30 posições
   vetor_10_1 :vetor [1..10] de inteiro //vetor armazena 10 posições
   vetor_10_2 :vetor [1..10] de inteiro //vetor armazena 10 posições
   vetor_10_3 :vetor [1..10] de inteiro //vetor armazena 10 posições
   vetor_3_1  :vetor [1..3 ] de inteiro //vetor armazena 3  posições
   vetor_3_2  :vetor [1..3 ] de inteiro //vetor armazena 3  posições
   vetor_3_3  :vetor [1..3 ] de inteiro //vetor armazena 3  posições

   p       :inteiro  //auxiliar para posicionar o vetor
   i,j     :inteiro  //auxiliar para percorrer o vetor
   OK      :logico   //flag para verificar se a etapa foi realizada com sucesso
   excluir :inteiro  //número a ser excluído do vetor
   aguardar:caracter //variável criada apenas para aguardar um ENTER na interação com o usuário
Inicio
//gera os 60 números do vetor inicial
escreval("GERANDO OS 60 NÚMEROS INICIAIS...")
para p de 1 ate 60 faca
   vetor_60[p]:=p
fimpara
escreval("Tecle Enter")
leia(aguardar)
escreval("NÚMEROS GERADOS COM SUCESSO!")

//exibe os 60 números gerados
escreval()
escreval("Aqui estão os 60 números iniciais")
p:=1
para i de 1 ate 6 faca //cada linha
   para j de 1 ate 10 faca //cada coluna
      escreva(vetor_60[p]:2," - ")
      p:=p+1
   fimpara
   escreval//para pular para a linha de baixo
fimpara


//"Remove" 10 números do vetor inicial
escreval()
escreval("REMOVENDO 10 NÚMEROS DO VETOR INICIAL...")
para i de 1 ate 10 faca
   repita
      OK:=verdadeiro //inicializa a flag como OK
      escreva("Digite o ",i:2," número de 1 a 60 para deletar: ")
      //ALEATORIO ON      //HABILITA O RECURSO DE GERAR VALORES ALEATÓRIOS
      //aleatorio -20,80  //DEFINIE A FAIXA DE NÚMERO QUE PODEM SER GERADOS
      leia(excluir)
      //ALEATORIO OFF     //DESABILITA O RECURSO
      //OBS.: para faltar a ler pelo teclado, basta remover essas linhas
      se (excluir<1) ou (excluir>60) ENTÃO //se o número está fora da faixa válida
         escreval("Só pode ser número de 1 a 60")
         OK:=falso //marca como inválido
         {escreva("Digite ENTER para retornar")} //acho que não é necessário
         {leia(aguardar) //apenas para aguarda um ENTER}
      senao
         se vetor_60[excluir]=0 ENTÃO //se posição já está removida
            escreval("Esse número ja foi removido, escolha outro")
            OK:=falso //marca como inválido
            {escreva("Digite ENTER para retornar")} //acho que não é necessário
            {leia(aguardar) //apenas para aguarda um ENTER}
         senao
            vetor_60[excluir]:=0 //remove o número do vetor
         fimse
      fimse
   ate OK
fimpara
escreval("NÚMEROS REMOVIDOS COM SUCESSO")

//exibe os 10 números que foram removidos
escreval()
escreval("Aqui estão os 10 números removidos")
para p de 1 ate 60 faca
   se vetor_60[p]=0 ENTÃO //se tiver zero ENTÃO o número foi removido
      escreva(p:2," - ") //exibe a posição do número (que representa o próprio número)
   fimse
fimpara
escreval()
escreval("Tecle Enter")
leia(aguardar)
//exibe os 50 números que sobraram após ser removido os 10
escreval()
escreval("Aqui estão os 50 números que sobraram")
p:=1
para i de 1 ate 6 faca
   para j de 1 ate 10 faca
      se vetor_60[p] <> 0 ENTÃO
         escreva(vetor_60[p]:2," - ")
      senao
         escreva("  "," - ")
      fimse
      p:=p+1
   fimpara
   escreval()
fimpara
escreval("Tecle Enter")
leia(aguardar)
//Sorteia os primeiro 30 números do vetor de 60 posições que agora tem 50
escreval("Vamos Escolher Aleatoriamente Os Primeiros 30 Números Dos 50")
para i de 1 ate 30 faca  // serão 30 números
  repita  // repite se precisar
    ok := verdadeiro
    p:=randi(60)+1  // gera um número aleatorio
    se vetor_60[p]=0 ENTÃO//numero foi deletado
      ok := falso
    fimse
    para j de 1 ate 30 faca//verifica os trinta numeros no vetor_30_1
      se ok = verdadeiro ENTÃO //se o número não houver sido deletado
        se vetor_30_1[j] = vetor_60[p] ENTÃO//se no vetor já haver o numero gerado
          ok := falso// b recebe o valor 2 para repetir e escolher outro numero
          interrompa
        fimse
      fimse
    fimpara
    se ok = verdadeiro ENTÃO
      vetor_30_1[i] := vetor_60[p] //vetor_3 armazena o numero gerado
    fimse
  ate ok
fimpara
escreval("Os Primeiros 30 Números Foram Gerados Com Sucesso")
//escrevando os primeiros números gerados aleatórios
escreval("Aqui Estão Os primeiros 30 Números Gerados Aleatórios")
p:=1
para i de 1 ate 3 faca
  para j de 1 ate 10 faca
    escreva(vetor_30_1[p]," - ")
    p := p+1
  fimpara
  escreval//para pular para a linha de baixo
fimpara
escreval("Tecle Enter")
leia(aguardar)
//Sorteia os segundos 30 números do vetor de 60 posições que agora tem 50
escreval("Vamos Escolher Aleatoriamente Os segundos 30 Números Dos 50")
para i de 1 ate 30 faca  // serão 30 números
  repita  // repite se precisar
    ok := verdadeiro
    p:=randi(60)+1  // gera um número aleatorio
    se vetor_60[p]=0 ENTÃO//numero foi deletado
      ok := falso
    fimse
    para j de 1 ate 30 faca//verifica os trinta numeros no vetor_30_1
      se ok = verdadeiro ENTÃO //se o número não houver sido deletado
        se vetor_30_2[j] = vetor_60[p] ENTÃO//se no vetor já haver o numero gerado
          ok := falso// b recebe o valor 2 para repetir e escolher outro numero
          interrompa
        fimse
      fimse
    fimpara
    se ok = verdadeiro ENTÃO
      vetor_30_2[i] := vetor_60[p] //vetor_3 armazena o numero gerado
    fimse
  ate ok
fimpara
escreval("Os Segundos 30 Números Foram Gerados Com Sucesso")
//escrevando os segundos números gerados aleatórios
escreval("Aqui Estão Os segundos 30 Números Gerados Aleatórios")
p:=1
para i de 1 ate 3 faca
  para j de 1 ate 10 faca
    escreva(vetor_30_2[p]," - ")
    p := p+1
  fimpara
  escreval//para pular para a linha de baixo
fimpara
escreval("Tecle Enter")
leia(aguardar)
//Sorteia os terceiros 30 números do vetor de 60 posições que agora tem 50
escreval("Vamos Escolher Aleatoriamente Os terceiros 30 Números Dos 50")
para i de 1 ate 30 faca  // serão 30 números
  repita  // repite se precisar
    ok := verdadeiro
    p:=randi(60)+1  // gera um número aleatorio
    se vetor_60[p]=0 ENTÃO//numero foi deletado
      ok := falso
    fimse
    para j de 1 ate 30 faca//verifica os trinta numeros no vetor_30_1
      se ok = verdadeiro ENTÃO //se o número não houver sido deletado
        se vetor_30_3[j] = vetor_60[p] ENTÃO//se no vetor já haver o numero gerado
          ok := falso// b recebe o valor 2 para repetir e escolher outro numero
          interrompa
        fimse
      fimse
    fimpara
    se ok = verdadeiro ENTÃO
      vetor_30_3[i] := vetor_60[p] //vetor_3 armazena o numero gerado
    fimse
  ate ok
fimpara
escreval("Os terceiros 30 Números Foram Gerados Com Sucesso")
//escrevando os terceiros números gerados aleatórios
escreval("Aqui Estão Os terceiros 30 Números Gerados Aleatórios")
p:=1
para i de 1 ate 3 faca
  para j de 1 ate 10 faca
    escreva(vetor_30_3[p]," - ")
    p := p+1
  fimpara
  escreval//para pular para a linha de baixo
fimpara
escreval("Tecle Enter")
leia(aguardar)











fimAlgoritmo

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Muito obrigada pela ajuda sim , eu quero fixar 10 numero de cada 30 pelo usuario e de cada 30 sobraria 20 e gerar aleatorio de cada 20 10 numeros so falta essa parte. queria utilizar esse processo nos dois codigo e ja tentei nao consigo fazer ou pensar como chegar la me ajuda com esse codigo feito nos 2 exemplos para estudar 

estou quase desistindo ja disso e a parte final do programa tentei fazer com o modo que disse e nao deu obrigada.

e complicado agora que to aprendendo os comando ate la tem uma luta.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Olá @Helen Fernanda de Souza.

 

7 horas atrás, Helen Fernanda de Souza disse:

eu quero fixar 10 numero de cada 30 pelo usuario e de cada 30 sobraria 20 e gerar aleatorio de cada 20 10 numeros so falta essa parte.

O que você define como "fixar 10 números"? seria o equivalente é "excluir" do vetor para sobrar 20?

 

Se for isso, é justamente o que já sugeri... seu algoritmo pode ser feito assim:

 

Em 09/09/2017 às 09:30, Simon Viegas disse:

Seguindo esses princípios, creio que os passos podem ser mais ou menos estes:


- Gera 60 números para o vetor_60;
- Exclui 10 número do vetor_60;
- Sorteia 30 números para o vetor_30_1 do vetor_60;
- Sorteia 30 números para o vetor_30_2 do vetor_60;
- Sorteia 30 números para o vetor_30_3 do vetor_60;
- Exclui 10 número do vetor_30_1;
- Exclui 10 número do vetor_30_2;
- Exclui 10 número do vetor_30_3;
- Sorteia 10 números para o vetor_10_1 do vetor_30;
- Sorteia 10 números para o vetor_10_1 do vetor_30;
- Sorteia 10 números para o vetor_10_1 do vetor_30;
- Sorteia 3 números para o vetor_3_1 do vetor_10;
- Sorteia 3 números para o vetor_3_2 do vetor_10;
- Sorteia 3 números para o vetor_3_3 do vetor_10;

 

Esse código postado por @devair1010 já segue o que está sendo proposto como resposta e já faz esses itens:

- Gera 60 números para o vetor_60;
- Exclui 10 número do vetor_60;
- Sorteia 30 números para o vetor_30_1 do vetor_60;
- Sorteia 30 números para o vetor_30_2 do vetor_60;
- Sorteia 30 números para o vetor_30_3 do vetor_60;

Você tem alguma dúvida sobre o código postado na postagem anterior? se sim, quais dúvidas?

Antes disso, não podemos dar continuidade...

 

Se você já entende tudo do código, qual parte não está conseguindo dar continuidade?

 

No aguardo.

 

  • Curtir 1
  • Haha 1
Link para o comentário
Compartilhar em outros sites

Boa noite obrigada pela ajuda @Simon Viegas realmente é o que disse só que falta essa parte para ele ficar completo e eu não

sei fazer 

me ajude com ele por favor, inclusive ele esta completo assim!!!

- Gera 60 números para o vetor_60;
- Exclui 10 número do vetor_60;
- Sorteia 30 números para o vetor_30_1 do vetor_60;
- Sorteia 30 números para o vetor_30_2 do vetor_60;
- Sorteia 30 números para o vetor_30_3 do vetor_60;
- Exclui 10 número do vetor_30_1;
- Exclui 10 número do vetor_30_2;
- Exclui 10 número do vetor_30_3;
- Sorteia 10 números para o vetor_10_1 do vetor_30;
- Sorteia 10 números para o vetor_10_1 do vetor_30;
- Sorteia 10 números para o vetor_10_1 do vetor_30;

o que esta faltando e a parte que não sei fazer e a parte do excluir 10 dos vetores que gerou 30 e lembrando e removido pelo 

usuário os 10 então sobraria 20 números ainda do vetor 30_1 certo agora desses 20 que sobrou vou gerar ele aleatorio 10 numero entendeu ele completo e dessa forma que fez! eu tentei mais nem funciona parece que nao conecta com o resto do codigo olha a caca que fiz 

esse é o codigo antigo tentando criar o passo de excluir 10 dos 30 e gerar aleatorio mais 10 dos 20 que sobram do 30

 //fixando 10 Numeros dos 30 aleatorio
  escreval("vamos fixar 10 numeros dos 30 gerados")
  para excluir de 1 ate 10 faca   // comando para fazer de 1 ate 10
    repita
    b := 1
    escreva("Digite O",excluir," Número de 1 a 30 Para Deletar ")
    leia(c)  //ler entrada teclado
    se (c<1) ou (c>60)então   // so vale de 1 ate 60
      escreval("so pode ser numero de 1 a 30 escolha outro tecle enter")
      b := 2
      leia(c)
    senao
      se vetor_3[c] = 0 então
        escreval("o numero ja foi deletado , escolha outro tecle enter")
        b := 2
        leia(c)
      senao
        vetor_3[ c ] := 0
      fimse
  // aqui estão os 20 numeros que sobraram
     escreval("Aqui Estão Os 20 Números Que Sobraram")
  d := 1
  para a de 1 ate 20 faca
      se vetor_3[d] <> 0 então
        escreva(vetor_3[d]," - ")
      senao
        escreva(" - ")
      fimse
      d := d+1
    fimpara
    escreval
  //gerando 10 numeros aleatorio dos 20 que sobraram
  escreval("Vamos Escolher Aleatoriamente 10 Números Dos 20")
  para a de 1 ate 10 faca  // serão 10 números
    repita  // repite se precisar
      b:=1  // com valor 1 ele não repete
      g:=randi(60)+1  // gera um número aleatorio
      se vetor_normal[g]=0 então//numero foi deletado
        b:=2//b recebe valor 2 para repetir e escolher outro
      fimse
      fimpara
      para c de 1 ate 10 faca//verifica os dez numeros no vetor_3
        se b <> 2 então// se o número não houver sido deletado
          se vetor_aleatorio[c] = vetor_normal[g] então//se no vetor já haver o numero gerado
            b:=2// b recebe o valor 2 para repetir e escolher outro numero
            interrompa
          fimse
        fimse
      fimpara
      se b <> 2 então
        vetor_aleatorio[a]:= vetor_normal[g] //vetor_3 armazena o numero gerado
      fimse
      b:=b-1    // b recebe b menos 1
    ate b=0     // se b igual zero ele passa
  fimpara
  //mostrar os 10 numeros escolhido aleatorio em tela
  para a de 1 ate 10 faca
  escreva(vetor_aleatorio[a]," - ")
  fimpara

para melhor compreensão o que falta para completar e essa parte

- Exclui 10 número do vetor_30_1;
- Exclui 10 número do vetor_30_2;
- Exclui 10 número do vetor_30_3;
- Sorteia 10 números para o vetor_10_1 do vetor_30;
- Sorteia 10 números para o vetor_10_1 do vetor_30;
- Sorteia 10 números para o vetor_10_1 do vetor_30;

Obrigada pela ajuda e desculpa por não saber programar ainda to indo aos pouco.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Olá @Helen Fernanda de Souza.

 

1 hora atrás, Helen Fernanda de Souza disse:

o que esta faltando e a parte que não sei fazer e a parte do excluir 10 dos vetores que gerou 30 e lembrando e removido pelo 

usuário os 10 então sobraria 20 números ainda do vetor 30_1 certo agora desses 20 que sobrou vou gerar ele aleatorio 10 numero entendeu ele completo e dessa forma que fez! eu tentei mais nem funciona parece que nao conecta com o resto do codigo olha a caca que fiz 

esse é o codigo antigo tentando criar o passo de excluir 10 dos 30 e gerar aleatorio mais 10 dos 20 que sobram do 30

 

Seus textos estão um pouco confusos para mim... tente melhorar um pouco a pontuação, ok?

 

Vamos focar só na próxima tarefa:

1 hora atrás, Helen Fernanda de Souza disse:

- Exclui 10 número do vetor_30_1;

 

Então, essa parte é análoga ao que foi feito para excluir 10 do vetor inicial (de 60 posições)... até a quantidade é igual, só muda em qual vetor irá excluir, ou seja, basicamente irá copiar o que foi feito, só ajustando para o vetor correspondente.

 

obs.: Se atentar às nomenclaturas do vetores... por exemplo:

1 hora atrás, Helen Fernanda de Souza disse:

se vetor_3[c] = 0 então

O vetor vetor_3 não existe!  (seria vetor_30_1)

 

 

No aguardo.

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

Olá Boa noite, estive ontem analisando os exemplos e fiz uma pequena modificação no código só para ver como iria agir

mais notei que alguns erros porém o código corre de forma correta, mais ao fixar os números dos que gerou  aleatório ocorre erro.

estranho também que alguns números que tem no vetor que gerou aleatório ao fixar eles da a mensagem de que foi removido sendo que eu removi do 1 ate 10 

pelo meu observar erro no vetor algo como espaço !!! ou posso estar  errada.

me ajudem a corrigir esse problema  ele não fixa números altos acima de 90 só abaixo dele coloquei mais espaço no vetor para completa 200 não funcionou também, aqui algumas imagem dos erros 

 

anexo1.jpg

 

anexo2.jpg

 

 

o código aqui 

algoritmo "Algoritmo exercicio de numeracao3"
var
   vetor_200   :vetor [1..200] de inteiro //vetor armazena 200 posiçoes
   vetor_90_1 :vetor [1..200] de inteiro //vetor armazena 200 posições
   vetor_10_1 :vetor [1..25] de inteiro //vetor armazena 25 posições


   p       :inteiro  //auxiliar para posicionar o vetor
   i,j     :inteiro  //auxiliar para percorrer o vetor
   OK      :logico   //flag para verificar se a etapa foi realizada com sucesso
   excluir :inteiro  //número a ser excluído do vetor
   aguardar:caracter //variável criada apenas para aguardar um ENTER na interação com o usuário
Inicio
//gera os 200 números do vetor inicial
escreval("GERANDO OS 200 NÚMEROS INICIAIS...")
para p de 1 ate 200 faca
   vetor_200[p]:=p
fimpara
escreval("Tecle Enter")
leia(aguardar)
escreval("NÚMEROS GERADOS COM SUCESSO!")

//exibe os 200 números gerados
escreval()
escreval("Aqui estão os 200 números iniciais")
p:=1
para i de 1 ate 20 faca //cada linha
   para j de 1 ate 10 faca //cada coluna
      escreva(vetor_200[p]:2," - ")
      p:=p+1
   fimpara
   escreval//para pular para a linha de baixo
fimpara


//"Remove" 10 números do vetor inicial
escreval()
escreval("REMOVENDO 10 NÚMEROS DO VETOR INICIAL...")
para i de 1 ate 10 faca
   repita
      OK:=verdadeiro //inicializa a flag como OK
      escreva("Digite o ",i:2," número de 1 a 200 para deletar: ")
      //ALEATORIO ON      //HABILITA O RECURSO DE GERAR VALORES ALEATÓRIOS
      //aleatorio -20,80  //DEFINIE A FAIXA DE NÚMERO QUE PODEM SER GERADOS
      leia(excluir)
      //ALEATORIO OFF     //DESABILITA O RECURSO
      //OBS.: para faltar a ler pelo teclado, basta remover essas linhas
      se (excluir<1) ou (excluir>200) ENTÃO //se o número está fora da faixa válida
         escreval("Só pode ser número de 1 a 200")
         OK:=falso //marca como inválido
         {escreva("Digite ENTER para retornar")} //acho que não é necessário
         {leia(aguardar) //apenas para aguarda um ENTER}
      senao
         se vetor_200[excluir]=0 ENTÃO //se posição já está removida
            escreval("Esse número ja foi removido, escolha outro")
            OK:=falso //marca como inválido
            {escreva("Digite ENTER para retornar")} //acho que não é necessário
            {leia(aguardar) //apenas para aguarda um ENTER}
         senao
            vetor_200[excluir]:=0 //remove o número do vetor
         fimse
      fimse
   ate OK
fimpara
escreval("NÚMEROS REMOVIDOS COM SUCESSO")
//exibe os 10 números que foram removidos
escreval()
escreval("Aqui estão os 10 números removidos")
para p de 1 ate 200 faca
   se vetor_200[p]=0 ENTÃO //se tiver zero ENTÃO o número foi removido
      escreva(p:2," - ") //exibe a posição do número (que representa o próprio número)
   fimse
fimpara
escreval()
escreval("Tecle Enter")
leia(aguardar)
//exibe os 190 números que sobraram após ser removido os 10
escreval()
escreval("Aqui estão os 190 números que sobraram")
p:=1
para i de 1 ate 20 faca
para j de 1 ate 10 faca
      se vetor_200[p] <> 0 ENTÃO
         escreva(vetor_200[p]:2," - ")
      senao
         escreva("  "," - ")
      fimse
      p:=p+1
   fimpara
   escreval()
fimpara
escreval("Tecle Enter")
leia(aguardar)
//Sorteia os primeiro 90 números do vetor de 200 posições que agora tem 85
escreval("Vamos Escolher Aleatoriamente Os Primeiros 90 Números Dos 190")
para i de 1 ate 90 faca  // serão 90 números
  repita  // repite se precisar
    ok := verdadeiro
    p:=randi(200)+1  // gera um número aleatorio
    se vetor_200[p]=0 ENTÃO//numero foi deletado
      ok := falso
    fimse
    para j de 1 ate 90 faca//verifica os trinta numeros no vetor_30_1
      se ok = verdadeiro ENTÃO //se o número não houver sido deletado
        se vetor_90_1[j] = vetor_200[p] ENTÃO//se no vetor já haver o numero gerado
          ok := falso// b recebe o valor 2 para repetir e escolher outro numero
          interrompa
        fimse
      fimse
    fimpara
    se ok = verdadeiro ENTÃO
      vetor_90_1[i] := vetor_200[p] //vetor_3 armazena o numero gerado
    fimse
  ate ok
fimpara
escreval("Os Primeiros 90 Números Foram Gerados Com Sucesso")
//escrevando os primeiros números gerados aleatórios
escreval("Aqui Estão Os primeiros 90 Números Gerados Aleatórios")
p:=1
para i de 1 ate 10 faca
para j de 1 ate 9 faca
    escreva(vetor_90_1[p]," - ")
    p := p+1
  fimpara
  escreval//para pular para a linha de baixo
  fimpara
escreval("Tecle Enter")
leia(aguardar)
// fixando 25 numeros do vetor 90
escreval()
escreval("FIXANDO 25 NÚMEROS DO VETOR INICIAL...")
para i de 1 ate 25 faca
   repita
      OK:=verdadeiro //inicializa a flag como OK
      escreva("Digite o ",i:2," número de 1 a 25 para fixar: ")
      //ALEATORIO ON      //HABILITA O RECURSO DE GERAR VALORES ALEATÓRIOS
      //aleatorio -20,80  //DEFINIE A FAIXA DE NÚMERO QUE PODEM SER GERADOS
      leia(excluir)
      //ALEATORIO OFF     //DESABILITA O RECURSO
      //OBS.: para faltar a ler pelo teclado, basta remover essas linhas
      se (excluir<1) ou (excluir>200) ENTÃO //se o número está fora da faixa válida
         escreval("Só pode ser número de 1 a 200 ")
         OK:=falso //marca como inválido
         {escreva("Digite ENTER para retornar")} //acho que não é necessário
         {leia(aguardar) //apenas para aguarda um ENTER}
      senao
         se vetor_90_1[excluir]=0 ENTÃO //se posição já está removida
            escreval("Esse número ja foi removido, escolha outro")
            OK:=falso //marca como inválido
            {escreva("Digite ENTER para retornar")} //acho que não é necessário
            {leia(aguardar) //apenas para aguarda um ENTER}
         senao
            vetor_90_1[excluir]:=0 //remove o número do vetor
         fimse
      fimse
   ate OK
fimpara
escreval("NÚMEROS FIXADO COM SUCESSO")
//exibe os 100 números que sobraram após ser removido os 25
escreval()
escreval("Aqui estão os 65 números que sobraram")
p:=1
para i de 1 ate 65 faca
      se vetor_90_1[p] <> 0 ENTÃO
         escreva(vetor_90_1[p]:2," - ")
      senao
         escreva("  "," - ")
      fimse
      p:=p+1
   fimpara
   escreval()
escreval("Tecle Enter")
leia(aguardar)
fimalgoritmo

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Olá @Helen Fernanda de Souza.

 

14 horas atrás, Helen Fernanda de Souza disse:

Olá Boa noite, estive ontem analisando os exemplos e fiz uma pequena modificação no código só para ver como iria agir

mais notei que alguns erros porém o código corre de forma correta, mais ao fixar os números dos que gerou  aleatório ocorre erro.

estranho também que alguns números que tem no vetor que gerou aleatório ao fixar eles da a mensagem de que foi removido sendo que eu removi do 1 ate 10 

pelo meu observar erro no vetor algo como espaço !!! ou posso estar  errada.

me ajudem a corrigir esse problema  ele não fixa números altos acima de 90 só abaixo dele coloquei mais espaço no vetor

para completa 200 não funcionou também, aqui algumas imagem dos erros 

 

Eu não entendi muito bem o que quis dizer... mas resumidamente: o vetor_90_1 só tem 90 posições, logo você só poderá remover as posições de 1 a 90 (inclusos). Ao inserir um valor maior que 90, o programa não vai aceitar, pois essa posição não existe.

 

Perceba que estrutura do programa está voltada a posição, não ao valor do número...

 

 

 

 

  • Curtir 1
  • Triste 1
Link para o comentário
Compartilhar em outros sites

Boa noite, obrigada pela resposta @Simon Viegas mais ainda continuo não entender muito o que quis dizer mais eu tentei colocar 200 posição no vetor, e acima dos 90 ele continua a dar a mensagem de erro  "esse numero foi removido escolha outro" todo numero acima de 90 ele da essa mensagem, e pensei se podia ser que o vetor ele conta de 1,2,3,4,5 e o comando "randi" só embaralha os números dentro do vetor não sei se pode estar ligado a isso o erro mais qual seria a correção.

 

 

 

 

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Olá @Helen Fernanda de Souza.

 

Veja esse trecho:

Em 20/09/2017 às 21:22, Helen Fernanda de Souza disse:

// fixando 25 numeros do vetor 90
escreval()
escreval("FIXANDO 25 NÚMEROS DO VETOR INICIAL...")
para i de 1 ate 25 faca
   repita
      OK:=verdadeiro //inicializa a flag como OK
      escreva("Digite o ",i:2," número de 1 a 25 para fixar: ")
      //ALEATORIO ON      //HABILITA O RECURSO DE GERAR VALORES ALEATÓRIOS
      //aleatorio -20,80  //DEFINIE A FAIXA DE NÚMERO QUE PODEM SER GERADOS
      leia(excluir)
      //ALEATORIO OFF     //DESABILITA O RECURSO
      //OBS.: para faltar a ler pelo teclado, basta remover essas linhas
      se (excluir<1) ou (excluir>200) ENTÃO //se o número está fora da faixa válida
         escreval("Só pode ser número de 1 a 200 ")
         OK:=falso //marca como inválido
         {escreva("Digite ENTER para retornar")} //acho que não é necessário
         {leia(aguardar) //apenas para aguarda um ENTER}
      senao
         se vetor_90_1[excluir]=0 ENTÃO //se posição já está removida
            escreval("Esse número ja foi removido, escolha outro")
            OK:=falso //marca como inválido
            {escreva("Digite ENTER para retornar")} //acho que não é necessário
            {leia(aguardar) //apenas para aguarda um ENTER}
         senao
            vetor_90_1[excluir]:=0 //remove o número do vetor
         fimse
      fimse
   ate OK
fimpara
escreval("NÚMEROS FIXADO COM SUCESSO")

 

O código está lendo um valor que será usado para excluir do vetor..

Em 20/09/2017 às 21:22, Helen Fernanda de Souza disse:

      leia(excluir)

 

 

E usa esse valor (em excluir) como parâmetro de posição do vetor... que só tem 90 posições.

         se vetor_90_1[excluir]=0 ENTÃO //se posição já está removida

Esse "[ ]" serve para acessar determinada posição do vetor...

 

 

Ou seja:

10 horas atrás, Simon Viegas disse:

o vetor_90_1 só tem 90 posições, logo você só poderá remover as posições de 1 a 90 (inclusos). Ao inserir um valor maior que 90, o programa não vai aceitar, pois essa posição não existe.

 

Perceba que estrutura do programa está voltada à posição, não ao valor do número...

 

Entenda que o código está excluindo tomando como base a POSIÇÃO no vetor, e não o valor do número que contém nas posições!!! Acontece que "coincidentemente", no vetor inicial, o número contido na posição é igual ao número da posição em si.. Mas no vetor_90_1, os números estão seguem essa mesma lógica, como visto no trecho abaixo:

Em 20/09/2017 às 21:22, Helen Fernanda de Souza disse:

    se ok = verdadeiro ENTÃO
      vetor_90_1[i] := vetor_200[p] //vetor_3 armazena o numero gerado

Ou seja, o vetor_90_1 vai sendo preenchido com os valores sorteados...

 

RESUMIDAMENTE:
Para excluir determinado número específico, você precisa ver em que posição ele está e informar essa posição para excluir.

 

OU

 

Reformular o código para que aceite que informe o número, daí localiza o número e apaga...

 

OU

 

Reformular de outra forma...

 

 

Qualquer dúvida é só postar.

No aguardo.

 

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

Boa tarde obrigada @Simon Viegas pela resposta e ajuda, me de alguns exemplos de como faço para

Citação

Reformular o código para que aceite que informe o número, daí localiza o número e apaga...

e uma outra ideia também é fazer esses mesmo números que gerou aleatório mostrar na tela alinhado é possível tipo ele embaralhou  seguir de forma de tamanho dizendo 1-2-3-4-14-16-17-18-22...  mais queria com os dois ao mesmo tempo na tela para analise um com o modo original randi e o outro com alinhamento do de menor para maior.

 

uma duvida quero gerar 20 números aleatorio dos 90 aleatório e possível isso ? poderia me dar exemplos.

 

Obrigada pela sua ajuda de fato você  é um grande Moderador e um "Grande Sábio"

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Olá @Helen Fernanda de Souza.

 

18 horas atrás, Helen Fernanda de Souza disse:

me de alguns exemplos de como faço para

Citação

Reformular o código para que aceite que informe o número, daí localiza o número e apaga...

 

Por quanto deixe isso pra lá.. use do jeito que está, ou seja, remova informando a posição no vetor... Entenda que OS VALORES são de 1 a 200, mas só existem 90 POSIÇÕES. Quando se escolhe um número para excluir, na verdade você está escolhendo a POSIÇÃO do número, não o valor do número!

 

Leia minha postagem anterior.

 

 

 

 

Citação

[...]e uma outra ideia também é fazer esses mesmo números que gerou aleatório mostrar na tela alinhado é possível tipo ele embaralhou  seguir de forma de tamanho dizendo 1-2-3-4-14-16-17-18-22...  mais queria com os dois ao mesmo tempo na tela para analise um com o modo original randi e o outro com alinhamento do de menor para maior.

Desculpe, mas como já citado, os seus textos estão um pouco confusos para mim, e fica um pouco complicado para entender... tente escrever de uma forma mais formal, especialmente em relação ao uso de pontuação.

 

 

 

18 horas atrás, Helen Fernanda de Souza disse:

uma duvida quero gerar 20 números aleatorio dos 90 aleatório e possível isso ? poderia me dar exemplos.

Então, não faz diferença a origem dos números, ou seja, se os 90 foram digitados pelo usuário, se já estava preenchido, se foram gerado automaticamente... etc. Apenas sorteie os números e pronto. Veja, eu tenho um vetor com 90 posições, daí sorteio 20 POSIÇÕES desse vetor. Da mesma forma que podemos sortear sortear 10 do vetor de 200.. podemos sortear 20 do vetor de 90... o computador não sabe se foi sorteado ou não, e também não faz diferença...

 

O seu código já está assim, ou seja, apenas se atente que o número que recebe é o da posição, e que não importa o número que está nela! Tente reanalisar o código e fazer testes, por exemplo, na parte de "fixar" os 25, insira os números de 1 a 25 e veja o que acontece. Faça outros testes... tente entender a estrutura do código.

 

 

No aguardo.

 

 

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

Boa noite, então tentei sortear 20 números dos 90 e não funcionou, da erro no visualG ai tem que abrir novamente o programa.

eu acho que não estou conseguindo fazer a conexão dos vetores estou tendo dificuldade para entender.

se eu não conseguir resolver isso vou parar por aqui  

aqui está o código 

 

algoritmo "Algoritmo exercicio de numeracao3"
var
   vetor_200   :vetor [1..200] de inteiro //vetor armazena 200 posiçoes
   vetor_90_1 :vetor [1..90] de inteiro //vetor armazena 200 posições
   vetor_20_1 :vetor [1..20] de inteiro //vetor armazena 25 posições


   p       :inteiro  //auxiliar para posicionar o vetor
   i,j     :inteiro  //auxiliar para percorrer o vetor
   OK      :logico   //flag para verificar se a etapa foi realizada com sucesso
   excluir :inteiro  //número a ser excluído do vetor
   aguardar:caracter //variável criada apenas para aguardar um ENTER na interação com o usuário
Inicio
//gera os 200 números do vetor inicial
escreval("GERANDO OS 200 NÚMEROS INICIAIS...")
para p de 1 ate 200 faca
   vetor_200[p]:=p
fimpara
escreval("Tecle Enter")
leia(aguardar)
escreval("NÚMEROS GERADOS COM SUCESSO!")

//exibe os 200 números gerados
escreval()
escreval("Aqui estão os 200 números iniciais")
p:=1
para i de 1 ate 20 faca //cada linha
   para j de 1 ate 10 faca //cada coluna
      escreva(vetor_200[p]:2," - ")
      p:=p+1
   fimpara
   escreval//para pular para a linha de baixo
fimpara


//"Remove" 10 números do vetor inicial
escreval()
escreval("REMOVENDO 10 NÚMEROS DO VETOR INICIAL...")
para i de 1 ate 10 faca
   repita
      OK:=verdadeiro //inicializa a flag como OK
      escreva("Digite o ",i:2," número de 1 a 200 para deletar: ")
      //ALEATORIO ON      //HABILITA O RECURSO DE GERAR VALORES ALEATÓRIOS
      //aleatorio -20,80  //DEFINIE A FAIXA DE NÚMERO QUE PODEM SER GERADOS
      leia(excluir)
      //ALEATORIO OFF     //DESABILITA O RECURSO
      //OBS.: para faltar a ler pelo teclado, basta remover essas linhas
      se (excluir<1) ou (excluir>200) ENTÃO //se o número está fora da faixa válida
         escreval("Só pode ser número de 1 a 200")
         OK:=falso //marca como inválido
         {escreva("Digite ENTER para retornar")} //acho que não é necessário
         {leia(aguardar) //apenas para aguarda um ENTER}
      senao
         se vetor_200[excluir]=0 ENTÃO //se posição já está removida
            escreval("Esse número ja foi removido, escolha outro")
            OK:=falso //marca como inválido
            {escreva("Digite ENTER para retornar")} //acho que não é necessário
            {leia(aguardar) //apenas para aguarda um ENTER}
         senao
            vetor_200[excluir]:=0 //remove o número do vetor
         fimse
      fimse
   ate OK
fimpara
escreval("NÚMEROS REMOVIDOS COM SUCESSO")
//exibe os 10 números que foram removidos
escreval()
escreval("Aqui estão os 10 números removidos")
para p de 1 ate 200 faca
   se vetor_200[p]=0 ENTÃO //se tiver zero ENTÃO o número foi removido
      escreva(p:2," - ") //exibe a posição do número (que representa o próprio número)
   fimse
fimpara
escreval()
escreval("Tecle Enter")
leia(aguardar)
//exibe os 190 números que sobraram após ser removido os 10
escreval()
escreval("Aqui estão os 190 números que sobraram")
p:=1
para i de 1 ate 20 faca
para j de 1 ate 10 faca
      se vetor_200[p] <> 0 ENTÃO
         escreva(vetor_200[p]:2," - ")
      senao
         escreva("  "," - ")
      fimse
      p:=p+1
   fimpara
   escreval()
fimpara
escreval("Tecle Enter")
leia(aguardar)
//Sorteia os primeiro 90 números do vetor de 200 posições que agora tem 190
escreval("Vamos Escolher Aleatoriamente Os Primeiros 90 Números Dos 190")
para i de 1 ate 90 faca  // serão 90 números
  repita  // repite se precisar
    ok := verdadeiro
    p:=randi(200)+1  // gera um número aleatorio
    se vetor_200[p]=0 ENTÃO//numero foi deletado
      ok := falso
    fimse
    para j de 1 ate 90 faca//verifica os trinta numeros no vetor_30_1
      se ok = verdadeiro ENTÃO //se o número não houver sido deletado
        se vetor_90_1[j] = vetor_200[p] ENTÃO//se no vetor já haver o numero gerado
          ok := falso// b recebe o valor 2 para repetir e escolher outro numero
          interrompa
        fimse
      fimse
    fimpara
    se ok = verdadeiro ENTÃO
      vetor_90_1[i] := vetor_200[p] //vetor_3 armazena o numero gerado
    fimse
  ate ok
fimpara
escreval("Os Primeiros 90 Números Foram Gerados Com Sucesso")
//escrevando os primeiros números gerados aleatórios
escreval("Aqui Estão Os primeiros 90 Números Gerados Aleatórios")
p:=1
para i de 1 ate 10 faca
para j de 1 ate 9 faca
    escreva(vetor_90_1[p]," - ")
    p := p+1
  fimpara
  escreval//para pular para a linha de baixo
  fimpara
escreval("Tecle Enter")
leia(aguardar)

//Sorteia os primeiro 50 números do vetor de 90 posições 
escreval("Vamos Escolher Aleatoriamente Os Primeiros 20 Números Dos 90")
para i de 1 ate 20 faca  // serão 90 números
  repita  // repite se precisar
    ok := verdadeiro
    p:=randi(200)+1  // gera um número aleatorio
    se vetor_90_1[p]=0 ENTÃO//numero foi deletado
      ok := falso
    fimse
    para j de 1 ate 20 faca//verifica os trinta numeros no vetor_30_1
      se ok = verdadeiro ENTÃO //se o número não houver sido deletado
        se vetor_20_1[j] = vetor_90_1[p] ENTÃO//se no vetor já haver o numero gerado
          ok := falso// b recebe o valor 2 para repetir e escolher outro numero
          interrompa
        fimse
      fimse
    fimpara
    se ok = verdadeiro ENTÃO
      vetor_20_1[i] := vetor_90_1[p] //vetor_3 armazena o numero gerado
    fimse
  ate ok
fimpara
escreval("Os Primeiros 20 Números Foram Gerados Com Sucesso")
//escrevando os primeiros números gerados aleatórios
escreval("Aqui Estão Os primeiros 20 Números Gerados Aleatórios")
p:=1
para i de 1 ate 10 faca
para j de 1 ate 2 faca
    escreva(vetor_20_1[p]," - ")
    p := p+1
  fimpara
  escreval//para pular para a linha de baixo
  fimpara
escreval("Tecle Enter")
leia(aguardar)
fimalgoritmo

 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Olá @Helen Fernanda de Souza, estamos entrando num ciclo vicioso.. rs

 

Qual erro está dando? (respondo abaixo)

 

Ao executar, está dando erro na linha 136, essa linha:

19 minutos atrás, Helen Fernanda de Souza disse:

    se vetor_90_1[p]=0 ENTÃO//numero foi deletado

 

Como já expliquei:

Em 24/09/2017 às 12:52, Simon Viegas disse:

Quando se escolhe um número para excluir, na verdade você está escolhendo a POSIÇÃO do número, não o valor do número!

 

 

Veja que nesse se acima você está usando p para posicionar o vetor, mas antes está sorteando um número de 1 a 200 para p:

    p:=randi(200)+1  // gera um número aleatorio

 

Se o vetor vetor_90_1 só tem 90 posições, como você vai acessar as posições de 91 a 200? por exemplo, a posição 110 existe num vetor que vai de 1 a 90?

 

 

 

Repito:

Em 24/09/2017 às 12:52, Simon Viegas disse:

Quando se escolhe um número para excluir, na verdade você está escolhendo a POSIÇÃO do número, não o valor do número!

 

Se não entendeu essa, ou outra parte, só dizer o que não entendeu ainda...

 

 

Só ter um pouco mais de atenção! :)

 

 

obs.: para fazer testes, deixe o computador gerar números. Ative os "ALEATORIO".

//"Remove" 10 números do vetor inicial
escreval()
escreval("REMOVENDO 10 NÚMEROS DO VETOR INICIAL...")
para i de 1 ate 10 faca
   repita
      OK:=verdadeiro //inicializa a flag como OK
      escreva("Digite o ",i:2," número de 1 a 200 para deletar: ")
      ALEATORIO ON      //HABILITA O RECURSO DE GERAR VALORES ALEATÓRIOS
      aleatorio -20,210  //DEFINIE A FAIXA DE NÚMERO QUE PODEM SER GERADOS
      leia(excluir)
      ALEATORIO OFF     //DESABILITA O RECURSO
      //OBS.: para faltar a ler pelo teclado, basta remover essas linhas
      se (excluir<1) ou (excluir>200) ENTÃO //se o número está fora da faixa válida
         escreval("Só pode ser número de 1 a 200")

 

No aguardo.

 

 

 

 

Link para o comentário
Compartilhar em outros sites

essa parte aqui do código nao esta funcionando 

olha eu ja to ficando louca,  ajeita esse código para min 

 

//Sorteia os primeiro 50 números do vetor de 90 posições 
escreval("Vamos Escolher Aleatoriamente Os Primeiros 20 Números Dos 90")
para i de 1 ate 20 faca  // serão 90 números
  repita  // repite se precisar
    ok := verdadeiro
    p:=randi(200)+1  // gera um número aleatorio
    se vetor_90_1[p]=0 ENTÃO//numero foi deletado
      ok := falso
    fimse
    para j de 1 ate 20 faca//verifica os trinta numeros no vetor_30_1
      se ok = verdadeiro ENTÃO //se o número não houver sido deletado
        se vetor_20_1[j] = vetor_90_1[p] ENTÃO//se no vetor já haver o numero gerado
          ok := falso// b recebe o valor 2 para repetir e escolher outro numero
          interrompa
        fimse
      fimse
    fimpara
    se ok = verdadeiro ENTÃO
      vetor_20_1[i] := vetor_90_1[p] //vetor_3 armazena o numero gerado
    fimse
  ate ok
fimpara
escreval("Os Primeiros 20 Números Foram Gerados Com Sucesso")
//escrevando os primeiros números gerados aleatórios
escreval("Aqui Estão Os primeiros 20 Números Gerados Aleatórios")
p:=1
para i de 1 ate 10 faca
para j de 1 ate 2 faca
    escreva(vetor_20_1[p]," - ")
    p := p+1
  fimpara
  escreval//para pular para a linha de baixo
  fimpara
escreval("Tecle Enter")
leia(aguardar)
fimalgoritmo

 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Olá @Helen Fernanda de Souza.

 

5 horas atrás, Helen Fernanda de Souza disse:

essa parte aqui do código nao esta funcionando 

olha eu ja to ficando louca,  ajeita esse código para min 

 

É normal ter um pouco de dificuldades... um dos objetivos do estudo da programação é aprender a identificar os problemas... desenvolver um algoritmo é secundário! O foco é O PROBLEMA, daí vem o desenvolvimento de UMA SOLUÇÃO.

 

 

Vamos zerar tudo e começar do zero... Se atente a esses pontos abaixo:

 

1 - Quando vai excluir um número dos vetores, seja ele o de 200 ou de 90, o que se escolhe é a POSIÇÃO do número no vetor, e não o número em si. Entenda que ao escolher um número para excluir, você não está informando o número que vai excluir, mas sim a posição que esse número está no vetor. Apenas acontece que no vetor de 200, a posição do número é igual ao número em si.  <--- você precisa absorver isso! Qual a parte não está entendendo? inicialmente foque no entendimento do funcionamento, não na implementação do código! Se tiver duvidas sobre esse ponto, posta aqui o que não entendeu ou o que pode está confundindo!

 

 

2 - Abaixo está o trecho com erro:

    p:=randi(200)+1  // gera um número aleatorio
    se vetor_90_1[p]=0 ENTÃO//numero foi deletado

Veja que o p representa a POSIÇÃO do número no vetor. Tem alguma dúvida em relação a isso?

 

Se p é posição, e vetor_90_1 só tem 90 posições, como você vai sortear uma posição que vai de 1 a 200?

 

 

 

No aguardo.

 

 

 

 

No aguardo.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Boa noite, obrigada pela ajuda e a resposta, como você disse 

23 horas atrás, Simon Viegas disse:

Só ter um pouco mais de atenção! :)

só vou poder ir mais afundo nos estudos, dia 04 do més que vem ferias ;D agradeço pela ajuda, e mais uma vez obrigada

trabalho completo e encerrado.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

@Helen Fernanda de Souza, nesse ponto não é uma questão de ir mais afundo... só parar para entender a diferença entre um número E a posição desse número no vetor.

 

No seu código você acha que está tentando excluir baseado no valor dos números, mas deve excluir baseado na posição desse número no vetor.

 

 

Exemplo:

Supondo que tenho um vetor de 5 posições.

[1][2][3][4][5]

A posição 1 tem o número 1.

A posição 2 tem o número 2.

A posição 3 tem o número 3.

etc

 

Se eu quero apagar o número 4 desse vetor, eu vou acessar a posição 4? correto?. Pois o número 4, está na posição 4.

Algo como:

vetor[4]:=0

Perceba que ter o número 1 na posição 1, o 2 na posição 2 etc... é só uma coincidência!  A posição é uma coisa, o número contido na posição é outra. Apenas temos um número na posição que é igual a posição... Veja outro exemplo abaixo...

 

 

Agora suponha esse mesmo vetor com outros números:
[5][8][2][1][9]

A posição 1 tem o número 5.

A posição 2 tem o número 8.

A posição 3 tem o número 2.

etc

 

Se eu quero apagar o número 8 desse vetor, eu vou acessar a posição 8?. Não! Pois o número 8 está na posição 2. Logo eu preciso acessar a posição 2.

Algo como:

vetor[2]:=0

 

Perceba que para excluir um número, o que está importando é a posição onde o número está.

 

 

 

 

 

No seu problema, você tem um vetor de 90 posições, ou seja, indo da posição 1 a posição 90. Logo, você só pode excluir números que estão nessas posições!

 

Ao fazer um:

p:=randi(200)+1 // gera um número aleatorio

Você está dizendo para o computador sortear uma posição que vai de 1 a 200!!!! Mas SEU VETOR SÓ TEM 90 POSIÇÕES!!!!

 

Se o computador sortear qualquer número maior que 90, ao tentar acessar:

 se vetor_90_1[p]=0 ENTÃO//numero foi deletado

Vai dar erro !!! Por exemplo, se sortear um valor 121 para p, esse trecho acima seria equivalente a:

 se vetor_90_1[121]=0 ENTÃO//numero foi deletado

Ou seja, sorteie números de 1 a 90! Simples* assim :)

 

 

 

É só isso:

- posições de vetores   x   números contidos na posição.

 

 

No aguardo.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...