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

Boa noite sou iniciante no assunto tive uma ideia criar um programa de numeração que funcione assim 

tenho 60 números  dos 60 vou remover 10 certo sobra 50

ja dos 50 quero gerar dele aleatoriamente 30 so que 3 vezes esse mesmo  processo 

dos 30 que ele gero vou fixar nos 3 que ele gerou 10 n certo ai sobra 20

desses 20 que sobrou gerar aleatoriamente mais 10 n por 5 vezes

 

me ajudem por favor eu não sei nem por onde começar acho muito difícil 

Editado por DiF
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
devair1010    449

@Helen Fernanda de Souza     Essa parte aqui eu entendi  que você vai inserir 60 números qualquer e depois remover 10 números, com isso vai sobrar 50 números :

Boa noite sou iniciante no assunto tive uma ideia criar um programa de numeração que funcione assim :
tenho 60 números,  dos 60 vou remover 10 certo, sobra 50 .

aqui você quer pegar 30 números aleatórios dos 50 que sobraram e em seguida pegar mais 30 números aleatórios dos mesmos 50 que sobraram e novamente pegar mais 30 números aleatórios dos mesmos 50 que sobraram ,  então você terá 90 números aleatórios .

ja dos 50 quero gerar dele aleatoriamente 30 so que 3 vezes esse mesmo  processo 

aqui não entendi pois ele gerou até aqui 90 números e você disse que são apenas 30, e você quer fixar nos 3 que ele gerou, então quais 3 são esses ?    e quais 10 números são esses ?   no entanto se pegar os 30 números apenas uma vez, então aí sim sobrarão 20 números que não foram usados para gerar os 30 números .

dos 30 que ele gerou, vou fixar nos 3 que ele gerou, 10 números certo ?, ai sobra 20

aqui  sobrando 20 números, sim você pode gerar 10 números aleatórios e guarda-los no vetor_1 , e depois gerar mais 10 números e guarda-los no vetor_2 , e gerar mais 10 números e guarda-los no vetor_3 , e o mesmo no vetor_4 , e no vetor_5 .com isso você pode imprimir esses 10 números que estão guardados em cada vetor  ou usa-los para outros fins .

desses 20 que sobrou gerar aleatoriamente mais 10 n por 5 vezes

 Porém não podemos fazer esse algoritmo todo pronto para você ,  só posso te dar umas dicas,  então use vetores para colocar os 60 números que você quer e então remova os 10 números aleatórios, depois mais 3 vetores para guardar  os 30 números gerados aleatórios,um para cada vez que ele gerar,  e para gerar esses números você pode usar a função randi , e no final mais cinco vetores para guardar os 10 números gerados .

    Você é que precisa fazer o algoritmo, faça o algoritmo e post ele aqui para podermos ver como está e em que podemos ajudar .

  • Curtir 3

Compartilhar este post


Link para o post
Compartilhar em outros sites
Helen Fernanda de Souza    17
  • Autor do tópico
  • Em 15/08/2017 às 23:14, devair1010 disse:
    
    ja dos 50 quero gerar dele aleatoriamente 30 so que 3 vezes esse mesmo  processo 

    aqui não entendi pois ele gerou até aqui 90 números e você disse que são apenas 30, e você quer fixar nos 3 que ele gerou, então quais 3 são esses ?    e quais 10 números são esses ?   no entanto se pegar os 30 números apenas uma vez, então aí sim sobrarão 20 números que não foram usados para gerar os 30 números .

    observe sim de fato ele da um total de 90 números , mais o que eu quis dizer é dos 50 quero que gere 30 números aleatoriamente só que 3 vezes o mesmo processo com os mesmo 50 

     

    eu tentei pensar em como chegar no resultado, e fiquei confuso não sei aplicar essa logica de excluir fixar aleatorio 

    não sei usar aplicar a função randi sou iniciante no assunto e vetor eu tentei fazer isso que me disse mais eu não consegui  me ajude com alguns exemplos olha o que eu fiz

     

    Algoritmo "Algoritmo exercicio"
    Var
    excluir,fixar,a,b,c,d
    vetor_1 : vetor[1..60] de inteiro
    vetor_2 : vetor[1..10] de inteiro
    vetor_3 : vetor[1..30] de inteiro
    vetor_4 : vetor[1..30] de inteiro
    vetor_5 : vetor[1..30] de inteiro
    vetor_6 : vetor[1..10] de inteiro
    vetor_7 : vetor[1..10] de inteiro
    vetor_8 : vetor[1..10] de inteiro
    vetor_9 : vetor[1..10] de inteiro
    vetor_10 : vetor[1..10] de inteiro
    
    Inicio
    escreval("Vamos Deletar 10 Números de 1 a 60 ")
    para excluir faca de 1 ate 10 faca
    
    
    
    
    Fimalgoritmo

    como vou fazer agora ?  só pra lembrar , tenho 60 tiro 10 então sobra 50 dos 50 gero 30 números 3 vezes o mesmo processo dos mesmo 50 

    ai dos 3 vezes 30 que gerou todos separados fixar em cada um 10 números depois disso,

    de cada 30 sobram 20 números 

    dos 20 de cada que sobrou vou gerar mais 10 de cada so que aleatoriamente  e imprimir na tela todos para ver o resultado

     

    obrigado pela ajuda.

     

     

    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    devair1010    449

    @Helen Fernanda de Souza     bom começo, porém é melhor colocar as variáveis de vetor com nomes ao invés de números, assim modifiquei o vetor_1 para vetor_normal com 60 posições :
      um vetor é como se fosse um gaveteiro onde cada gaveta pode guardar um número ou letra,

    " assim seria esse vetor ",

    vetor2.thumb.jpg.21a0e1bd9b1aa586e3fddbfbb5c20856.jpg

    nesse caso será um gaveteiro com sessenta gavetas, que você pode colocar qualquer número em cada uma das gaveta, então um jeito fácil de colocar números nesse vetor é usando um comando de repetição que pode ser um repita ou um enquanto ou um para, e nesse caso creio que seja melhor usar um para, e esse para indo de 1 até 60 para percorrer todas as posições do vetor, e como você não disse quais números você quer usar, então o mais fácil é colocar os números de 1 até 60, então na posição 1 do vetor será colocado o valor 1 na posição 2 será colocado o valor 2 e assim indo até a posição 60 que terá o valor 60, para colocar outros números precisaria modificar o código .

    aqui seu código com algumas modificações :

    Algoritmo "Algoritmo exercicio de numeracao"
    Var
    excluir,fixar,a,b,c,d : inteiro
    vetor_normal : vetor[1..60] de inteiro
    vetor_1      : vetor[1..60] de inteiro
    vetor_2      : vetor[1..10] de inteiro
    vetor_3      : vetor[1..30] de inteiro
    vetor_4      : vetor[1..30] de inteiro
    vetor_5      : vetor[1..30] de inteiro
    vetor_6      : vetor[1..10] de inteiro
    vetor_7      : vetor[1..10] de inteiro
    vetor_8      : vetor[1..10] de inteiro
    vetor_9      : vetor[1..10] de inteiro
    vetor_10     : vetor[1..10] de inteiro
    
    Inicio
    //primeiro precisa colocar os numeros no vetor
      para a de 1 ate 60 faca//repete 60 vezes
        vetor_normal[a] := a//coloca o numero cujo valor está guardado na variavel
                            // a no vetor na posição cujo valor esta guardado na
                            //variavel a.
      fimpara//verifica se a é menor ou igual a 60 se for repete tudo que está
             //dentro do loop
             
    //agora podemos deletar os dez numeros
      escreval("Vamos Deletar 10 Números de 1 a 60 ")
      para excluir de 1 ate 10 faca// não basta escrever a palavra excluir para
                                   //que haja a exclusão é preciso zerar a posição
                                   // no vetor
        repita// repete se o número já foi excluído
          b := 1//b recebe o valor 1 para controlar o repita
          escreva("Digite Um Número De [ 1 A 60 ]  Para Excluir ")
          leia(c)// prga um número
          se (c<1) ou (c>60)ENTÃO//se numero for < 1 ou se for maior que 60
            escreval("Só Pode Número De 1 Até 60, Escolha Outro  Tecle Enter ")
            b := 2//b recebe o valor 2 para repetir
            leia(c)//espera pressionar enter
          senao
            se vetor_normal[c] = 0 ENTÃO//verifica se na posição cujo valor está guardado
                                      // na variavel c é zero  se for
              escreval("Esse Número Já Foi Deletado, Escolha Outro   Tecle Enter")//imprime
                                                                          //mensagem
              b := 2//b recebe 2 pois o número já foi deletado e para repetir
              leia(c)//espera pressionar enter
            senao
              vetor_normal[ c ] := 0//aqui coloca zero para informar que
                                        //o numero foi deletado
            fimse
          fimse
          b := b-1//b recebe o valor dele menos 1
        ate b = 0//se b diferente de zero repete tudo que está entre o repita e
                 // o ate b = 0
      fimpara
      escreva("Tecle Enter Para Continuar")
      leia(c)
      limpatela
      escreval("Apenas Para Conferir Os Deletados")
      para a de 1 ate 60 faca//percorre todas as 60 posições do vetor_normal
        se vetor_normal[a] = 0 ENTÃO//se na posição do vetor_normal cujo valor
                                    // está na variavel a for zero é porque esse
                                   // número foi deletado e nesse caso o número
                                   //é igual ao valor da posição do vetor
          escreva(a," - ")//imprime o número
        fimse
      fimpara
      escreval
      escreval("Aqui Os 50 Números Que Sobraram")
      d := 1// inicializa d com valor da primeira posição do vetor_normal
      para a de 1 ate 6 faca//serão 6 linhas
        para c de 1 ate 10 faca//e dez colunas
          se vetor_normal[d] <> 0 ENTÃO//se o número que está no vetor_normal
                                       //na posição cujo valor está guardado na
                                       //variavel d for diferente de zero
            escreva(vetor_normal[d]," - ")//imprime o número
          senao
            escreva("  - ")//senão imprime um espaço vazio
          fimse
          d := d+1//d recebe o valor dele mais 1 para apontar para a proxima
                  //posição do vetor
        fimpara//c recebe o valor de C mais 1 e se for menor ou igual a 10 repete
               //tudo que está entre o PARA C até o primeiro FIMPARA
        escreval
      fimpara//A recebe o valor de A mais 1 e se for menor ou igual a 6 repete
               //tudo que está entre o PARA A até o primeiro FIMPARA
    Fimalgoritmo

    com isso você vai colocar 60 números no vetor e escolher 10 números para deleta-los,     esses dois loop no final serve apenas para você ver quais foram os números que você deletou e quais os números que restaram no vetor .

    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    devair1010    449

    @Helen Fernanda de Souza    ainda não tem a função randi não, por que ainda não estamos gerando os trinta números  então a função randi será usada para gerar os números aleatórios.  e para gerar esses números você pode usar um para indo de 1 ate 30 e então dentro do loop você pode colocar um código mais ou menos assim :

    g := randi(60)+1

    essa linha aqui é que gera um número entre 1 e 60 e coloca o número na variável g como está escrito ali no comando, em seguida você precisa verificar se esse número já está entre os números gerados, que dessa primeira vez pode ser guardados no vetor_3 aí do seu código, então com outro loop você percorre as trinta posições do vetor_3 verificando se já tem esse número e se já tiver então repete tudo para pegar outro número e testar de novo até que não tenha o número no vetor_3 aí coloca o número no vetor_3, e no final você terá os trinta números gerados aleatórios, depois fazer outro loop igual a esse e colocar os números gerados no vetor_4 e depois fazer outro loop igual a esse e colocar os números gerados no vetor_5, assim você terá trinta números em cada vetor.  para ver esse números você faz um loop indo de 1 ate 30 para percorrer todas as posições do vetor e imprime os números que estão no vetor assim :

    para a e 1 ate 30 faca
      escreva(vetor_3[a]," - ")
    fimpara

    e para imprimir os números dos outros vetor, faça outros loop como esse e mude o nome do vetor_3 para o nome do vetor que você quer imprimir .    faça o código dessa parte do programa e poste aqui para podermos  ajudar .

    Editado por devair1010
    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    devair1010    449

    @Helen Fernanda de Souza    no começo é um pouco complicado,  mas com a prática fica mais fácil, o que você precisa é ver o que cada comando faz e ver o que melhor se aplica no programa que você quer fazer. por exemplo no visualg tem esses comando aqui :

    para / fimpara e repita / ate  e enquanto / fimenquanto  que são comandos de repetição 

    se / senao e escolha / caso e e e ou e nao  que serve para fazer comparações

    Leia que serve para pegar algum dado digitado no teclado

    escreval  que serve para escrever alguma coisa na tela

    randi que gera números aleatórios

    mod que pega o resto da divisão de um número por outro

    caracpnum que converte caracteres para número inteiros

    numpcarac que converte números inteiro para caractere

    você pode ver sobre os comandos do visualg nesse site :

    http://www.netsoft.inf.br/aulas/4_ECI_Introducao_a_Informatica/Visualg2_manual.pdf

    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    Helen Fernanda de Souza    17
  • Autor do tópico
  • Boa tarde estou tendo dificuldade nao consigo aplicar a funcao randi e trabalhar dentro dos 50 que sobraram olha como ficou

     

    Algoritmo "Algoritmo exercicio de numeracao"
    
    Var
    excluir,fixar,a,b,c,d,g : inteiro //variaves
    vetor_normal   : vetor[1..60] de inteiro   // vetor armazena 60 posiçoes
    vetor_excluir  : vetor[1..10] de inteiro   // vetor armazena 10 posiçoes
    vetor_3      : vetor[1..30] de inteiro     // vetor armazena 30 posições
    vetor_4      : vetor[1..30] de inteiro     // vetor armazena 30 posições
    vetor_5      : vetor[1..30] de inteiro     // vetor armazena 30 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
       escreval("delete 10 numeros de 1 a 60")
       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
         escreva("numeros deletados")
           para a de 1 ate 60 faca // comando de 1 ate 60 armazena variavel a
           se vetor_normal[a] = 0 então
         escreva(a," - ")
    fimse
    fimpara
    escreval
         escreval("50 Números Que Sobraram")
           d := 1
           para a de 1 ate 6 faca
           para c de 1 ate 10 faca
            se vetor_normal[d] <> 0 então
           escreva(vetor_normal[d]," - ")
            senao
           escreva("  - ")
           fimse
        d := d+1
    fimpara
    escreval
    fimpara
    // ***************************************//
    escreval
    escreval("vamos escolher 30 numeros aleatorios dos 50")
    g := randi(60)+1
    para a de 1 ate 30 faca
    escreva(vetor_3[a]," - ")
    fimpara
    
    Fimalgoritmo

     

    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    devair1010    449

    @Helen Fernanda de Souza    você disse que não entendeu essa parte aqui :

    vetor_normal[ c ] := 0
     fimse
    fimse
         b := b-1 // nao entendi essa parte o do por que ate 0
         ate b = 0
    fimpara

    o até 0 é porque se correr tudo bem e não precisar repetir ele faz b = b-1 e como b valia 1 então 1 menos 1 igual 0 aí ele passa sem repetir, e vai gerar outro número, já no caso de o número já haver sido deletado ou o número digitado for menor que 1 ou maior que 60 ele faz b = 2, aí lá no final ele faz b=b-1 e como b nesse caso vale 2 então 2 menos 1 igual 1 aí ele repete porque b não é igual a zero.

        essa parte aqui :

    escreval("vamos escolher 30 numeros aleatorios dos 50")
    g := randi(60)+1
    para a de 1 ate 30 faca
    escreva(vetor_3[a]," - ")
    fimpara

    você precisa colocar o randi dentro do loop, pois a cada passada do loop ele precisa gerar um número aleatório e com isso no final do loop você terá seus trinta números aleatórios, e para gerar os números não precisa desse comando escreva, apenas se você quiser escrever o número na tela, então depois de gerar o número você precisa ver se ele já não foi gerado antes e no caso de já haver sido gerado antes, então repetir e gerar outro, até ter gerado os trinta e guardar o número no vetor . 
      então o código poderia ser assim :

    escreval("Vamos Escolher 30 Números Dos 50")
    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 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
          fimse
        fimpara
        vetor_3[a]=vetor_normal[g] //vetor_3 armazena o numero gerado
        b:=b-1//b recebe b menos 1
      ate b=0  // se b igual zero ele passa
    fimpara

     

    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Olá a todos.

     

    @devair1010, pelo que observei, mesmo que caia no [1] "//numero foi deletado ", ele estaria executando, sem necessidade, o [2] "//verifica os trinta numeros no vetor_3"... e também o [3] "//vetor_3 armazena o numero gerado"...  

     

    No aguardo.

    • Curtir 2

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    devair1010    449

    @Simon Viegas       boa percepção a sua,   não analisei o código antes de postar,   realmente ele executa todos os comandos mesmo sem necessidade,  creio que deveria ficar assim :

    escreval("Vamos Escolher 30 Números Dos 50")
    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
        se b <> 2 ENTÃO
          para c de 1 ate 30 faca                //verifica os trinta numeros no vetor_3
            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
          fimpara
        fimse
        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

     

    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    Helen Fernanda de Souza    17
  • Autor do tópico
  • Boa noite estive testando seu exemplo e da um erro de sintaxe e estou confusa antes tinha dado erro de variavel G

    coloquei no inicio do programa funcionou depois ao final do codigo da esse erro olha 

     

     

    visualgerro.jpg

     

     

    Editado por Simon Viegas
    Inserir imagem do link na própria postagem (anexado)
    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Pelo que vi na imagem, o código está utilizando "=" para atribuir um valor, mas no VisuAlg utilizam-se ":=" ou "<-".

     

    obs.: O "=" é utilizado para comparar, por exemplo, nos se.

     

     

    No aguardo.

    adicionado 1 minuto depois

    Por favor, caso necessite, poste o código completo para podermos analisar também.

    • Curtir 2

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    Helen Fernanda de Souza    17
  • Autor do tópico
  • Boa noite tentei achar o erro fiz o que disse e ainda continuou o mesmo erro na mesma linha o erro pode estar sera nas declarações de variavel ? 

     

    Algoritmo "Algoritmo exercicio de numeracao"
    
    Var
    excluir,fixar,a,b,c,d,g : inteiro //variaves
    vetor_normal   : vetor[1..60] de inteiro   // vetor armazena 60 posiçoes
    vetor_excluir  : vetor[1..10] de inteiro   // vetor armazena 10 posiçoes
    vetor_3      : vetor[1..30] de inteiro     // vetor armazena 30 posições
    vetor_4      : vetor[1..30] de inteiro     // vetor armazena 30 posições
    vetor_5      : vetor[1..30] de inteiro     // vetor armazena 30 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
       escreval("delete 10 numeros de 1 a 60")
       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
         escreva("numeros deletados")
           para a de 1 ate 60 faca // comando de 1 ate 60 armazena variavel a
           se vetor_normal[a] = 0 então
         escreva(a," - ")
    fimse
    fimpara
    escreval
         escreval("50 Números Que Sobraram")
           d := 1
           para a de 1 ate 6 faca
           para c de 1 ate 10 faca
            se vetor_normal[d] <> 0 então
           escreva(vetor_normal[d]," - ")
            senao
           escreva("  - ")
           fimse
        d := d+1
    fimpara
    escreval
    fimpara
    escreval("Vamos Escolher 30 Números Dos 50")
    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 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
          fimse
        fimpara
        vetor_3[a]:= vetor_normal[g] //vetor_3 armazena o numero gerado
        b:=b-1//b recebe b menos 1
      ate b=0  // se b igual zero ele passa
    fimpara
    Fimalgoritmo

     

    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Olá.

     

    Em que linha está dando o erro?

     

     

    Vou tentar analisar e explicar...

     

     

    Aqui deu na linha 70. Na sua postagem anterior, estava dando na 78... são linhas diferentes E são erros diferentes também...

     

    Erro:
    erro_se.jpg

     

     

    Então... nem sempre o VisuAlg indica exatamente o erro que ocorreu, mas costuma dar um bom indicativo... (nessa ele acertou)

     

    Veja, o se precisa de algo que resulte em VERDADEIRO ou FALSO. É comum utilizarem "expressões lógicas". . Algo como "se expressão que estou avaliando resultar em verdadeiro, eu deixo o computador executar o que está 'dentro de mim', se a expressão resultar em falso, não deixo executar...". Daí justamente que remete essa definição de "estrutura de seleção".. algo que seleciona se outros algos serão executados ou não.

     

    Uma forma de criar uma expressão lógica é utilizando OPERADORES RELACIONAIS, ou seja, estes "são utilizados em expressões lógicas para se testar a relação entre dois valores do mesmo tipo".. os disponíveis são: "=", "<", ">", "<=", ">=", "<>", mas no trecho da imagem, você está utilizando o um operador inválido...   Veja que utilizou ":=".

     

    Veja citação:

    23 horas atrás, Simon Viegas disse:

    obs.: O "=" é utilizado para comparar, por exemplo, nos se.

     

     

    No erro anterior, da linha 78, você estava utilizando um operador relacional (o "=") no lugar de um COMANDO DE ATRIBUIÇÃO (o ":="). Veja citação:

    23 horas atrás, Simon Viegas disse:

    [..] no VisuAlg utilizam-se ":=" ou "<-".

     

     

    RESUMINDO:

    - Nos se utilizam-se "=" (sem os ":")

    - Nas atribuições utilizam-se "<-" ou ":=".

     

     

     

    No aguardo.

     

    • Curtir 2

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    Helen Fernanda de Souza    17
  • Autor do tópico
  • Bom dia usei todos os comando de  "OPERADORES RELACIONAIS" e ainda nao consegui avanca o programa estava quase na parte final e agora travei nisso 

    poderia postar com o codigo corrigido ou vou ter que esperar o Devair1010 voltar para reavaliar o codigo fornecido por ele

    e me desculpe por nao entender sou iniciante no assunto mais eu me esforco quando tenho tempo para estudar 

    obrigada pela sua ajuda e explicacao mais nao consegui arrumar o erro e avancar se tiver alguns exemplos.

    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Olá @Helen Fernanda de Souza.
     

    Então, na postagem que contém:

    Em 30/08/2017 às 19:39, Helen Fernanda de Souza disse:

    Boa noite estive testando seu exemplo e da um erro de sintaxe e estou confusa antes tinha dado erro de variavel G

    coloquei no inicio do programa funcionou depois ao final do codigo da esse erro olha 

    Lá tem uma imagem e o erro nela aponta para linha 78. Na linha 78 você está "ATRIBUINDO" um valor, ou seja, deve utilizar "<-" OU ":=".

     

    Já na postagem que contém:

    Em 31/08/2017 às 21:19, Helen Fernanda de Souza disse:

    Boa noite tentei achar o erro fiz o que disse e ainda continuou o mesmo erro na mesma linha o erro pode estar sera nas declarações de variavel ? 

     

    O erro está na linha 70 (outra linha, e outro "problema"). Lá você está "COMPARANDO VALORES", ou seja, não pode usar o ":=", use apenas "=".

     

     

    Qualquer coisa posta seu código completo e onde está com dúvidas.

     

    No aguardo.

    • Curtir 2

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    devair1010    449

    @Helen Fernanda de Souza     seu código estava com um erro de sintaxe na linha 70 como o @Simon Viegas  disse , então modifiquei essa linha  e o código ficou assim :

    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_excluir  : vetor[1..10] de inteiro   // vetor armazena 10 posiçoes
    vetor_3      : vetor[1..30] de inteiro     // vetor armazena 30 posições
    vetor_4      : vetor[1..30] de inteiro     // vetor armazena 30 posições
    vetor_5      : vetor[1..30] de inteiro     // vetor armazena 30 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 6 faca
        para c de 1 ate 10 faca
          se vetor_normal[d] <> 0 ENTÃO
            escreva(vetor_normal[d]," - ")
          senao
            escreva(" - ")
          fimse
          d := d+1
        fimpara
        escreval
      fimpara
      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
    Fimalgoritmo

    com isso ele gerou 30 números aleatórios 1 vez , então para gera mais 30 números aleatórios mais duas vezes,  repita essa parte final do código de onde está escrito  " aqui é onde gera os números aleatórios "   até  onde está escrito   " aqui é onde termina a geração dos números aleatórios "   ,  você pode copiar essa parte e colar lá no final e mudar o vetor onde será guardados os números onde está escrito vetor_3  coloque vetor_4 e no outro que você colar mais abaixo no lugar de vetor_3 coloque vetor_5 , assim você terá gerado seus trinta números três vezes . então agora você quer gerar dez números dos vinte que sobram , mas como você gerou trinta números três vezes então terá gerado noventa números e é possível que não tenha sobrado vinte números , pois para ele gerar esses noventa números ele pode ter usado todos os cinquenta , então você precisa verificar quais os números que realmente sobram usando para isso um loop que verifica quais os números que não foram usados do vetor_normal . ou se você quiser pode gerar os trinta números apenas uma vez e então verificar quais os vinte que sobraram usando para isso um loop  e depois gerar os dez  números por cinco vezes desses vinte que sobraram , use um código semelhante ao que gerou os trinta,  então faça o código e poste aqui para vermos como ficou .

    • Curtir 2

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Olá a todos.

     

    Para mim, os requisitos do algoritmo ainda não está bem definido, ou seja, sem entender muito bem o que se quer, fica mais difícil conseguir ajudar.

     

    Então, pelo que eu entendi desse código do @devair1010, a base do algoritmo se comporta mais ou menos assim:

     

    1.  Os 60 números iniciais são fixos;
    2.  Obtém do usuário 10 números (ou posições) que serão considerados excluídos;
    3.  Dos 50 que sobram, sorteia 30 números;
    4.  Exibe os 30 números (separados em 3 linhas de 10 números cada). obs.: apesar de especificado no código, 30 números separados em 3 de 10, é diferente de 3 de 10 sorteados de 30, ou seja, nessa segunda possibilidade, os números podem se repetir em relação as outras linha.

    Bem resumidamente falando, seria algo como: "de 60 removo 10, dos 50 sorteio 30".

    @devair1010, essa minha interpretação está correta?

    @Helen Fernanda de Souza, supondo que sim, seria isso que você precisa?

     

     

     

    Mas eu analisando o que foi comentado por @Helen Fernanda de Souza:

     

    Em 19/08/2017 às 19:20, Helen Fernanda de Souza disse:

    como vou fazer agora ?  só pra lembrar , tenho 60 tiro 10 então sobra 50 dos 50 gero 30 números 3 vezes o mesmo processo dos mesmo 50 

    ai dos 3 vezes 30 que gerou todos separados fixar em cada um 10 números depois disso,

    de cada 30 sobram 20 números 

    dos 20 de cada que sobrou vou gerar mais 10 de cada so que aleatoriamente  e imprimir na tela todos para ver o resultado

     

    Interpretaria mais ou menos assim:

    1. De 60 números;  //faltou especificar quais números.... se são aleatórios OU de 1 a 60 OU se você informa etc;
    2. Remove 10, ficando com 50; //faltou especificar se são aleatórios OU você informa quais números etc;
    3. Dos 50, sorteia 30 números 3 vezes;
    4. De cada um dos 3 conjuntos de 30, remove 10; //faltou especificar se são aleatórios OU você informa quais números etc;
    5. De cada um dos 3 conjuntos de 20, sorteia 3.
    6. Exibe 0s 3 conjuntos de 3 números.


    Bem resumidamente falando, seria algo como: "de 60 removo 10, dos 50 sorteio 3 vez 30 números, de cada 30 removo 10, de cada 20 sorteio 3".

     

    Comparando essa duas interpretações, o código do @devair1010 não se encaixaria totalmente, ou seja, o código poderia está "certo" em relação à primeira interpretação, mas divergente em relação a segunda.

     

     

    @Helen Fernanda de Souza, para tentar refinar o algoritmo, é necessário primeiro redefinir esses "requerimentos"... é preciso saber o que você quer/precisa. Sem isso, tentado fazer uma analogia, seria como um médico fazer uma super operação de sucesso no fígado, enquanto o problema é num rim.

    Após alinharmos o que você precisa, você, como autor da proposta, pode tentar ir modificando e tirando dúvidas com nós colaboradores. 

     

     

    RESUMINDO:

    Inicialmente tente reformular a descrição do que você que fazer, e poste o seu código atual e em qual parte está com dúvidas ou precisa de auxílios ou sugestões.



    No aguardo.

    • Curtir 2

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    devair1010    449

    @Simon Viegas    realmente você está certo,  pelo enunciado eu entendi que fosse dessa forma,  mas agora que você falou eu vi que pode ser de outro modo .

    • Curtir 2

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    Helen Fernanda de Souza    17
  • Autor do tópico
  • Boa noite muito obrigada pela ajuda e os exemplos, eu estava analisando o código e esta certo sim e dessa forma 

    eu coloquei ele para fazer o mesmo processo 3 vezes,

    eu adicionei mais 3 vetores com o nome de vetor_f1, vetor_f2, vetor_f3  para fixar de cada 30 que gerou 10 números escolhido por min

    restaria então 20 números de cada um, então eu adicionei mais 3 vetores com o nome de vetor_sob1, vetor_sob2, vetor_sob3 

    agora desses 20 que sobrou de cada um quero gerar agora +10 números aleatorio por 3 vezes de cada 20 essa e a parte final do programa e do que quero chegar 

    me ajuda como chegar ate o final e so no visualG ele aceita salvar os dados como log para compara no arquivo texto o resultados de toda essa operacao e terminando ele vou estudar mais a fundo e reescrever nas linguagem C++ e C#

    me ajuda com essa parte final do sistema e muita obrigada.

    a parte do sistema se resumi a isso caso alguma duvida no explicar 

    //fixar agora 10 numeros de cada 30 que gerou
    //gerar aleatorio agora +10 de cada dos 20 que soubrou

     

    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_excluir  : vetor[1..10] de inteiro   // vetor armazena 10 posiçoes
    vetor_3      : vetor[1..30] de inteiro     // vetor armazena 30 posições
    vetor_4      : vetor[1..30] de inteiro     // vetor armazena 30 posições
    vetor_5      : vetor[1..30] de inteiro     // vetor armazena 30 posições
    vetor_f1     : vetor[1..10] de inteiro     // vetor armazena 10 posicões
    vetor_f2     : vetor[1..10] de inteiro     // vetor armazena 10 posicões
    vetor_f3     : vetor[1..10] de inteiro     // vetor armazena 10 posicões
    vetor_sob1   : vetor[1..20] de inteiro     // vetor armazena 10 posicões
    vetor_sob2   : vetor[1..20] de inteiro     // vetor armazena 10 posicões	
    vetor_sob3   : vetor[1..20] de inteiro     // vetor armazena 10 posicõ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 6 faca
        para c de 1 ate 10 faca
          se vetor_normal[d] <> 0 então
            escreva(vetor_normal[d]," - ")
          senao
            escreva(" - ")
          fimse
          d := d+1
        fimpara
        escreval
      fimpara
      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
        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_4[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_4[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
        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_4[d]," - ")
          d := d+1
        fimpara
        escreval//para pular para a linha de baixo
      fimpara
        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_5[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_5[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
       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_5[d]," - ")
          d := d+1
        fimpara
        escreval//para pular para a linha de baixo
      fimpara
      //fixar agora 10 numeros de cada 30 que gerou
      //gerar aleatorio agora +10 de cada dos 20 que soubrou
    Fimalgoritmo

     

    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    devair1010    449

    @Helen Fernanda de Souza     no visualg não tem como salvar no arquivo , isso pode ser feito em  c   c++    c#  e etc...

    então ali você colocou para fixar 10 números dos 30 que gerou, mas esses 10 serão aleatórios ou escolhido pelo usuário ?

    e para gerar os 10 aleatórios dos 20 que sobraram, precisar ver quais são esses 20 que sobraram , pois talvez não tenha sobrado 20, já que dos 50 foram gerado 30 três vezes , então se for os 20 que sobram da primeira vez que gerou os 30 aí dá pra fazer.

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Olá @Helen Fernanda de Souza, um ponto importante é a definição de como você vai excluir os números dos vetores.

     

    No seu código você declarou o vetor_excluir lá na linha 5, mas não está utilizando em momento algum.

    10 horas atrás, Helen Fernanda de Souza disse:
    
    vetor_excluir  : vetor[1..10] de inteiro   // vetor armazena 10 posiçoes

    Ou seja, ou você adapta o algoritmo para usar o vetor, ou apaga essa variável.

     

     

    Pelo código, verifiquei que está "apagando" o número do próprio vetor, como visto na linha 38:

     

            vetor_normal[ c ] := 0

     

    Pronto, vamos tomar como base que vai "zerar" a posição que foi apagada. Desse modo, o vetor_exclur pode ser apagado.

     

     

     

    Outro ponto seria reorganizar as nomenclaturas das variáveis, deixando um pouco mais sugestiva... algo como:

    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

     

    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;

     

    Para tentar ajudar, caso queira usar essa estrutura, adiantei parte do código..:
     

    algoritmo "Algoritmo exercicio de numeracao2"
    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("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 3 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()
    
    //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
    
    //Sorteia os 30 números do primeiro vetor de 30 posições
    
    
    
    
    
    
    
    
    
    
    
    
    fimAlgoritmo

     

    Esse trecho é referente às duas primeiras etapas:
     

    - Gera 60 números para o vetor_60;
    - Exclui 10 número do vetor_60;

     

    Daí tente entender essas sugestões, e caso deseje, dar continuidade seguindo os mesmos princípios.

    Obs.: a indentação está configurada para dar 3 espaços.

     

    Qualquer dúvidas sobre esse código ou sugestões, é só postar.

     

    Obs2.: Tente fazer o programa por partes.. por exemplo, crie a parte que irá sortear os 30 números do primeiro vetor de 30 posições e a parte que irá exibir esses números... só após tiver tudo certo, vá para próxima etapa, que é criara o segundo vetor de 30 posições. (será praticamente uma cópia, só mudando o nome do vetor)... por ai vai...

     

     

    No aguardo.

    • Curtir 1

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites
    Helen Fernanda de Souza    17
  • Autor do tópico
  • Boa noite e obrigada pelos exemplos, devido ao trabalho não tive tempo para ver o código mais próximo sábado,

    vou estudar eles e já pra adiantar o raciocínio.

     

    @devair1010 os 10 números devem ser fixado pelo usuário dos 30 que gerou

     

    @devair1010só uma pergunta nesses 30 que ele gerou para fazer esse processo vou ter que fazer algo parecido com excluir do vetor e mandar ele escrever em tela e os que sobrou, e a outra parte eu tentei pensar de qual forma seria talvez tentando chegar a conclusão resposta final mandar excluir 10 desse vetor que ele gerou os 30  sobraria 20 então jogo esses 20 em outro vetor etc ... desses vetor de 20 faço um randi 3x ? e isso ?

     

    Obrigada @Simon Viegas pelos seus exemplos sábado irei estudar esse novo código  eu percebi que e diferente e vou trabalhar no seu exemplo e no código do  @devair1010

     

    • 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

    ×