Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Helen Fernanda de Souza

VisualG Construção algoritmo de numeração

Recommended Posts

@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

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • 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

    Compartilhar este post


    Link para o post
    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

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • 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

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    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

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • 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

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    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.

    Editado por Simon Viegas
    • Curtir 2

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • 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

     

    Editado por Helen Fernanda de Souza
    Inserir imagens do link na própria postagem
    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    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

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • 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

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    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.

     

    Editado por Simon Viegas
    • Curtir 2

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • 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"

    Editado por Helen Fernanda de Souza
    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    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

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • 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

     

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    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.

     

     

     

     

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • 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

     

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    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

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
  • Autor do tópico
  • 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.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    @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

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Crie uma conta ou entre para comentar

    Você precisar ser um membro para fazer um comentário






    Sobre o Clube do Hardware

    No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

    ×