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

equações novamente

Recommended Posts

Alo , como faço para dados 10 valores possiveis, escolher aleatoriamente 6 valores nao repetidos

case equ of

1:

2:

3:

4:

5:

6:

7:

8:

9:

10:

end;

obrigado pela atençao:D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alo , como faço para dados 10 valores possiveis, escolher aleatoriamente 6 valores nao repetidos

case equ of

1:

2:

3:

4:

5:

6:

7:

8:

9:

10:

end;

obrigado pela atençao:D

Olá,

guilhermerayol, vou te passar duas informações que podem ser úteis:

1) Como gerar números aleatórios

Você pode usar o comando Random() (da unit CRT);

randomize; {serve para iniciar o random (evitar que gere números repetidos)}
sorteado:=Random(10); {gera um número aleatório de 0 a 9}

2) Você precisa de uma estrutura que marque os números já saídos

Neste caso deixo sua imaginação trabalhar.

***

A lógica é mais ou menos assim:

-Até que se escolha 6 números... gera um número aleatório, se o número na posição gerada ainda não tiver saído, então a escolhe ele.

No aguardo.

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites
Guest Source Code

Este programa testado no PascalZim gera uma matrix de 10 elementos, de 1 a 10, para servir de exemplo. Eles são armazenados na variável DataMatrix. Na variável ResultMatrix está a resposta procurada, tendo 6 números escolhidos aleatoriamento e sendo mostrado com o comando writeln. Dentro do laço wlhile a variável TestMatrix serve para avaliar se um elemento já foi escolhido. O comando random serve para gerar um número aleatório entre 0 e 9.

O comando randomize serve para que o programa nao comece com as mesmas variáveis quando for iniciado.

Program DataSearch ;

var

N, Position: Integer;
DataMatrix: array [1..10] of Integer;
ResultMatrix: array [1..6] of Integer;
TestMatrix: array [1..10] of Boolean;

Begin

randomize;

// Exemple (Cria um exemplo)

for N := 1 to 10 do
begin

DataMatrix [N] := N;
TestMatrix [N] := False;

end;

Position := 0;

while Position < 6 do
begin

// Random (Gera um numero aleatorio)

N := random (10);
Inc (N);

// Search (Faz a procura)

if TestMatrix [N] = False then

begin

TestMatrix [N] := True;
inc (Position);
ResultMatrix [Position] := DataMatrix [N];

end;

end;

// View (Mostra o resultado)

for N := 1 to 6 do
writeln (ResultMatrix [N]);

End.

Espero ter te ajudado.

Editado por Mog.Lucas
Utilize tags [code]. Leia mais aqui: http://forum.clubedohardware.com.br/tags-code-como/709848

Compartilhar este post


Link para o post
Compartilhar em outros sites
Guest Source Code

É a minha primeira vez como membro desse site e acho que não entendi direito a dúvida e não fui muito claro na ajuda.

Tentarei novamente.

Criei um novo código que serve para Free Pascal e Pascal ZIM.

Utilizei essas variáveis:


var

N, Controle: Integer;
Elemento: array [1..10] of Boolean;

O código a seguir mostra o resultado procurado.


for N := 1 to 10 do
Elemento [N] := False;

Controle := 0;

repeat

(coloque seu código de equ)

if Not Elemento [equ] then
begin

Elemento [equ] := True;
inc (Controle);

Case equ of

1: SeuPrograma1;
2: SeuPrograma2;
3: SeuPrograma3;
4: SeuPrograma4;
5: SeuPrograma5;
6: SeuPrograma6;
7: SeuPrograma7;
8: SeuPrograma8;
9: SeuPrograma9;
10: SeuPrograma10;

end;

end;

until Controle = 6;

Explicação do código:

No lugar de SeuPrograma coloque o seu código.

Esse código só funcionará se 'equ' gerar um número de 1 a 10 cada vez que for executado.

O código 'equ' será executado eternamente até que ele gere 6 números diferentes.

A variável 'Elemento' começa com False e é alterada para True quanto é escolhida (exite 10 elementos).

A variável 'Controle' não permite que o programa saia do laço 'repeat' enquanto 6 elementos não forem escolhidos.

A linha 'if Not Elemento [equ] then' testa se um elemento ainda não foi escolhido. Caso afirmativo esse elemento se torna True e a linha 'inc (Controle)' soma 1 a variável 'Controle'.

Espero ter ajudado!

Agradeço ao moderador Mog.Lucas pela dica da tags e pela correção da postagem.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Guest Source Code

Encontrei o seu primeiro post (equações), pensei então em modificar o programa.

Troquei a variável do tipo inteira R por Equ e coloquei o comando random.

Esse programa fica preso dentro do laço 'repeat' até que se execute 6 equações sem repetir nenhuma. Acho que é isso que você quer.

Utilize as variáveis:

var 

Equ, N, Controle: integer;
Elemento: array [1..10] of boolean;

Coloque o comando 'randomize' no início do programa e execute-o apenas uma vez (pode ser no evento onCreate do Free Pascal);

Utilize o algoritmo abaixo:

for N := 1 to 10 do
Elemento [N] := False;

Controle := 0;

repeat

Equ := random (10);
inc (Equ);
if Equ > 10 then Equ := 10;

if Not Elemento [Equ] then
begin

Elemento [Equ] := True;
inc (Controle);

Case Equ of

1: Equacao1;
2: Equacao2;
3: Equacao3;
4: Equacao4;
5: Equacao5;
6: Equacao6;
7: Equacao7;
8: Equacao8;
9: Equacao9;
10: Equacao10;

end;

end;

until Controle = 6;

Espero que seja isso.

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

×