Sistema de Bibliotecas UCS - Cantos do fim do século
Resolucao trabalho euromilhoes
1. 13/11/2014 Euromilhões em C
Programação I
Ana Isabel Rodrigues
LICENCIATURA INFORMATICA – 1º ANO - Nº 558
2. 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
113 de novembro de 2014
3. 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]){
213 de novembro de 2014
4. 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])
313 de novembro de 2014
5. 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
413 de novembro de 2014
6. 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)
FV
Opcao Gerar
Chave (2)
FV
Escrever (“Os números são: “ + numeros[i])
Escrever (“As estrelas são: “ + estrelas[i])
Escrever (“Digite
uma opção válida”)
513 de novembro de 2014
7. 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.
613 de novembro de 2014
9. 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/
813 de novembro de 2014