Resolucao trabalho euromilhoes
Transcript of Resolucao trabalho euromilhoes
13/11/2014
Euromilhões em C Programação I
Ana Isabel Rodrigues LICENCIATURA INFORMATICA – 1º ANO - Nº 558
Sumário ....................................................................................................................................................... 0
Algoritmo: Criar o Euromilhões, leitura de 5 números e 2 estrelas de forma ordenada e sem repetição ....................................................................................................................................... 2
Fluxograma: Criar o Euromilhões, leitura de 5 números e 2 estrelas de forma ordenada e sem repetição ....................................................................................................................................... 4
Em C .............................................................................................................................................. 6
1) ............................................................................................................................................... 6
2) ............................................................................................................................................... 6
3) ............................................................................................................................................... 7
Descrição: ...................................................................................................................................... 8
#include <time.h>, .................................................................................................................... 8
int minimo, int numeros, int estrelas, ..................................................................................... 8
No int main(), ............................................................................................................................ 8
Material Apoio: ............................................................................................................................. 8
1 13 de novembro de 2014
Algoritmo: Criar o Euromilhões, leitura de 5 números e 2 estrelas de forma ordenada e sem repetição
[Inicialização de Variáveis]
char xop
int numeros[5] <- {-1}
int estrelas[2] <- {-1}
int n <- 0
int e <- 0
int i <- 0
int j <- 0
int xtemp <- 0
int minimo <- 1
int mnumeros <- 50
int mestrelas <- 11
[Leitura de Variáveis]
xop <- Ler (“Opção Menu”)
[Calculo do Valor]
Caso 1
Escrever(“ Chave Ordenada do Euromilhões + 2 Estrelas”)
srand((unsigned) time(NULL))
Para (n=0;n<5;n++) {
Fazer {
numeros[n]<- rand()%(mnumeros-minimo+1)+mínimo
}
Enquanto (numeros[n]<> 0)
Para (i=0;i<5;i++) {
Para (j=0:j<4;j++){
Se (numeros[j]<>numeros[j+1]){
2 13 de novembro de 2014
numeros[j]<- rand()%51
Se (números[j]> números[j+1]){
Xtemp<-numeros[j]
Números[j]<- números[j+1]
Números[j+1]<-xtemp
}
}
}
Para (i=0;i<2;i++) {
Para (j=0;j<2;j++) {
Se (estrelas[j]<>estrelas[j+1])
estrelas[j] <- rand()%12
Se(estrelas[j]>estrelas[j+1]) {
xtemp<-estrelas[j]
estrelas[j]<-estrelas[j+1]
estrelas[j+1]<-xtemp
}
}
}
Caso 2
Sair
Caso <> 1 e 2
Escrever (“Escolha uma opção válida”)
[Resultado]
Escrever (“ Os números são: “ numeros[i])
Escrever (“ As estrelas são: “ estrelas[i])
3 13 de novembro de 2014
Fluxograma: Criar o Euromilhões, leitura de 5 números e 2 estrelas de forma ordenada e sem repetição
Inicio
char xop
int numeros[5] = {-1}
int estrelas[2] = {-1}
int n = 0
int e = 0
int i = 0
int j = 0
int xtemp = 0
int minimo = 1
int mnumeros = 50
int mestrelas = 11
Opcao
Escolha a opção:
1 – Gerar Chave
2 - Sair
4 13 de novembro de 2014
Para (n=0;n<5;n++) { Fazer { numeros[n]<- rand()%(mnumeros-minimo+1)+mínimo }
Enquanto (numeros[n]<> 0)
Se(numeros[n]==1) { int reset = 0; int index = n;
Para (n=0; n<5; n++){ index++; if (reset==0 && index>5) {
index = 0; reset = 1;
} Se (numeros[index]==0) {
numeros[n]=n; n=index; break; } } }
Para (i=0;i<5;i++) { Para (j=0:j<4;j++){ Se (numeros[j]<>numeros[j+1]){ numeros[j]<- rand()%51 Se (números[j]> números[j+1]){
Xtemp<-numeros[j] Números[j]<- números[j+1] Números[j+1]<-xtemp }
} } Para (i=0;i<2;i++) {
Para (j=0;j<2;j++) { Se (estrelas[j]<>estrelas[j+1])
Fim
Opcao Gerar Chave (1)
F V
Opcao Gerar Chave (2)
F V
Escrever (“Os números são: “ + numeros[i]) Escrever (“As estrelas são: “ + estrelas[i])
Escrever (“Digite uma opção válida”)
5 13 de novembro de 2014
Em C
1) Criei um menu para que o utilizador possa escolher o que pretende fazer, gerar chave ou sair, caso opte por outra opção ira ser visualizada uma mensagem para que escolha uma opção valida, que coloquei no int main().
2) Função para gerar os numeros e as estrelas aleatoriamente, com verificação de repetição e ordenação no final.
6 13 de novembro de 2014
3) int main():
7 13 de novembro de 2014
Descrição:
#include <time.h>, isto porque para a função rand funcionar ela precisa de um valor inicial chamado de “semente”.
Se nenhum valor é passado, rand assume um valor constante. Como este valor é assumido sempre no programa, a sequência gerada será a mesma para cada execução.
Para gerar valores diferentes a cada execução é necessário utilizar a função srand que inicializa a função rand com um valor “semente”, de tal forma que esta semente seja um valor diferente a cada execução do programa, isto por sua vez produz valores diferentes na sequência.
A função srand, ira fazer com que os valores gerados não se repitam a cada execução e recebe um argumento do tipo inteiro sem sinal, ou seja unsigned int.
int minimo, int numeros, int estrelas, na função ger_num_est, são variaveis criadas para poder seleccionar a serie de numeros que se pretende, o euromilhões em numeros é de 1 a 50 e as estrelas de 1 a 11, se não utilizar pode surgir o 0.
No int main(), utilizei o Switch, Case, na opção 1 são gerados os numeros e estrelas aleatoriamente, na opção 2 conforme indica sai e caso nenhuma destas opções seja escolhida, utilizei o Default, deriva do inglês padrão, é o case que é activado caso não tenha achado nenhum case definido, ou seja, é o que acontece em último caso, que neste manda escolher uma opção válida.
Material Apoio: Programação em C++ - Conceitos básicos e Algoritmos (FCA)
http://www.random.org/randomness/
8 13 de novembro de 2014