Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sign in to follow this  
inesbras

Duvida de C++ - validações do...while

Recommended Posts

inesbras

Boa tarde,

Estou a fazer um Jogo de Euromilhões em c++ (com uma serie de especificações), e estou a precisar de umas luzes.

A certa altura do programa, o utilizador fornece uma chave manualmente, e o programa tem que fazer a validação (ver se tem numeros e estrelas repetidos ou fora do limite). Tem que ser feito com do ... while, ja andei ai as voltas, mas estava-me a dar erro. (/* FORNECER CHAVE VENCEDORA */ )

Esta dava-me mesmo jeito saber, visto que vou ter que fazer varias validações.

Vou postar apenas uma parte do codigo porque enfim...vai haver muita gente a procurar por isto.

Outra duvida menos importante, é no /*MENU*/ , onde mediante o número de Apostas (1 a 5), deve criar o seguinte output:

"

Quantas apostas deseja fazer? (maximo 5 apostas)

2

Aposta 1:  Deseja fornecer manualmente (1), automaticamente (2) ou por ficheiro (3) uma chave de aposta?

2

Aposta 2:  Deseja fornecer manualmente (1), automaticamente (2) ou por ficheiro (3) uma chave de aposta?

"

Se o numero de apostas for 3,aparece um menu para a Aposta 1, Aposta 2, e Aposta 3, por ai fora.

Estava a fazer com "case", mas assim aquilo fica enorme. Há alguma maneira de por aquilo menor, sem ter que estar a copiar tudo?

(O menu ainda está incompleto, só pus as indicações na aposta 1)

São estas duvidas iniciais, sabendo isso julgo que consigo fazer o resto.

Agradecia qualquer ajuda.

Share this post


Link to post
Share on other sites
HappyHippyHippo

não digo nada até teres o código bem identado ... pode ser desta que interiorizes que certas coisas não é só para ficar bonito


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
pmg

em c++

#include <stdio.h> 
#include <stdlib.h> 
#include <time.h> 

Eu nao sei C++, por isso nao respondo as tuas duvidas.

Mas tenho uma sugestao:

Tenta evitar os headers de compatabilidade com C nos teus programas. Usando os headers proprios de C++ compartimentalizas as funcoes no namespace std em vez de estares a poluir o namespace geral com as definicoes dos headers de compatabilidade

O header de C++ que substitui o header <stdio.h> é o <iostream> (ou o <cstdio> para maior compatabilidade).

Os outros nao sei ... mas deve ser algo parecido.


What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Share this post


Link to post
Share on other sites
KTachyon

Podes utilizar um pequeno array de chars, ou mesmo um conjunto de bits, onde registas cada número gerado e verificas a cada inserção/random se os valores já foram preenchidos. Para imprimir, percorres a memória sequencialmente e imprimes quando encontras um valor marcado. Por exemplo, no caso do random:

char chave[MAX_NUM] = {0};

for(int i=0; i < MAX_PLAYS; i++) {
    int g = rand() % 50;
    
    if (chave[g] > 0) { i--; continue; }
    chave[g] = 1;
}

/* Imprimir */
for (int i = 0; i < MAX_NUM; i++) {
    if (chave[g] > 0) 
        printf("%d ", g+1);
}

Em relação ao menu, não percebo o que queres dizer, mas se achas que tens uma função muito grande, podes segmentar o programa em várias funções.


“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.