Jump to content
AprendizZ

Ciclo de testes sequenciais.

Recommended Posts

AprendizZ

Sendo novato nesta coisa de linguagem C, venho pedir ajuda na tentativa de criar um ciclo que usa todos os elementos de um array em testes sequenciais. Caso um dos testes dê positivo então vai directamente para a condição final (ainda dentro do ciclo) e passa ao elemento seguinte.

O esquema é mais ou menos isto:

ciclo for (para correr todos os elementos do array)
{
faz 1ª função de teste
	se encontra -> já não vai à função de teste seguinte -> segue à condição MOSTRA -> passa ao elemento seguinte;
	senão -> continua para função seguinte;

faz 2ª função de teste
	se encontra -> já não vai à função de teste seguinte -> segue à condição MOSTRA -> passa ao elemento seguinte;
	senão -> continua para função seguinte;

faz 3ª função de teste
	se encontra -> segue à condição MOSTRA -> passa ao elemento seguinte;
	senão -> continua;

MOSTRA:
se há para mostrar -> mostra;
senão -> diz que não existe;
}

Já tentei diversas opções. Tentei breaks, mas não pretendo cortar o ciclo antes do tempo.

Alguém me pode dar umas luzes.

Obrigado.

Share this post


Link to post
Share on other sites
thoga31

Possivelmente uma variável de controlo que te indica se encontrou ou não. Caso não tenha encontrado, faz essas 3 funções, se não faz o MOSTRA. Para parar o ciclo, a variável de controlo terá de ficar com um valor que indique que foi encontrado, fazes continue e o ciclo interrompe, volta ao início e, como está a ser dito "foi encontrado", vai directamente ao MOSTRA.

for (correr elementos array) {
      Se Não(encontrado) então {
            Funções (em que, se encontra, faz "encontrado = sim")
            Se Não(encontrado) então
                  diz("não existe")
      }
      SeNão {
            diz("existe")
            encontrado = não
      }
}

Salvo erro, acho que é disto que necessitas - uma das soluções possíveis.

Cumpz.


Knowledge is free!

Share this post


Link to post
Share on other sites
KTachyon

for (i = 0; i < array_size; i++) {
    int found = 0;

    if (condition1) {
        found = 1;
    }
    else if (condition2) {
        found = 1;
    }
    else if (condition3) {
        found = 1;
    }

    if (found) mostra();
    else printf("não existe");
}

Ou, se for apenas uma questão de aceitar uma das condições:

for (i = 0; i < array_size; i++) {
    int found = 0;

    if (condition1 || condition2 || condition3) {
        found = 1;
    }

    if (found) mostra();
    else printf("não existe");
}


“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

×
×
  • Create New...

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.