1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Ajuda a fazer um ciclo

Discussão em 'Programação' iniciada por Armandotv, 25 de Fevereiro de 2013. (Respostas: 16; Visualizações: 815)

  1. Boas,

    Alguem me pode dizer como posso fazer um ciclo com os seguintes dados?
    Ou seja o que pretendo era não estar a por uma a uma.



    $mediana1 = mediana($ligar,'Q1');
    $mediana2 = mediana($ligar,'Q2');
    $mediana3 = mediana($ligar,'Q3');
    $mediana4 = mediana($ligar,'Q4');
    $mediana5 = mediana($ligar,'Q5');
    $mediana6 = mediana($ligar,'Q6');
    $mediana7 = mediana($ligar,'Q7');
    $mediana8 = mediana($ligar,'Q8');
    $mediana9 = mediana($ligar,'Q9');
    $mediana10 = mediana($ligar,'Q10');
    $mediana11 = mediana($ligar,'Q11');
    $mediana12 = mediana($ligar,'Q12');
    $mediana13 = mediana($ligar,'Q13');
    $mediana14 = mediana($ligar,'Q14');
    $mediana15 = mediana($ligar,'Q15');
    $mediana16 = mediana($ligar,'Q16');
    $mediana17 = mediana($ligar,'Q17');
    $mediana18 = mediana($ligar,'Q18');
     
  2. alfinete

    alfinete Power Member

    Espica melhor o que queres fazer com o ciclo , que n estou a percerber oq ue queres fazer , , o que siginfica a var $ligar e 'Q??' ?
    e o que faz a função mediana ?
     
    Última edição: 25 de Fevereiro de 2013
  3. boas mediana é media da questão

    exemplo media 1 da questão 1

    São respostas que pretendo dar a media
     
  4. alfinete

    alfinete Power Member

    podes criar um array de respotas com 18 posicões que guarda '0' ou '1' para resposta errada e certa respectivamente para cada questão

    depois

    $media = 0;
    $arraymedias = ao teu array de medias
    $respostacerta =0;
    $tamanhoArrayMedias = $arraymedias.lenght
    $i = 0 // posiação onde te encontras


    for ($i = 0;i< $tamanhoArrayMedias;i ++)
    {
    // se resposta certa
    if ($arraymedias[0] =="1"')
    $respostacerta = $respostacerta +1;

    }
    // calculamos a media
    $media = $tamanhoArrayMedias \ $respostacerta


    fazes uma função que te recebe o array de respostas
    e retorna o valor da media

    uma coisa mais ou menos como fiz acima
     
  5. Sim mas o valor não é de resposta certa ou erradas, os valores já estão atribuidos.

    Quero que mediana1 = mediana($ligar,'Q1');

    Ou seja quero que ligue mediana 1 com a questão 1 por ai fora mediana 2 com questão 2
     
  6. pimpaz

    pimpaz Power Member

    qual é a linguagem de programação em questão?
     
  7. nfk

    nfk Power Member

    Tens alguma razão para querer as variáveis $mediana1 a $mediana18, em vez de um array como sugeriu o alfinete? Se não tiveres, só tens de criar o array de medianas e depois um ciclo com array_mediana = mediana($ligar, "Q" + i);

    Se por qualquer razão quiseres as 18 variáveis podes usar um ciclo com um eval, ou o mecanismo semelhante que houver na linguagem em questão (como muito bem perguntou o pimpaz, ajuda saber a linguagem...).
     
  8. Boas a linguagem é PHP.

    Sim pretendo as 18 variaveis.

    obgd pelas respostas.
     
  9. nfk

    nfk Power Member

    Podes tentar usar o eval(). Sei muito pouco de PHP, não sei se funciona. Também podes gerar o código com um template, mas não sei se vale o esforço.
     
  10. xpro

    xpro Power Member

    O nome tem mesmo de ser mediana1? não pode ser mediana[1]? se poder então podes usar isto
    $i=1;
    while($i<=18){
    $var[$i]='Q'.$i;
    mediana[$i]=($ligar,$var[$i])
    $i++;
    }
     
  11. boas o problema está ai xpro, é que $mediana1 tem que ser mesmo assim, pretendia que fosse $mediana1 depois $mediana2 por ai fora. Mas não encontro solução
     
  12. tipo se eu colocar assim funciona perfeitamente mas só para um resultado.

    $var='Q1'; aqui pretendia que faça um ciclo Q1 a Q18
    $mediana1 = mediana($ligar,$var); aqui que faça um ciclo $mediana1 a $mediana18
     
  13. mcog_blaster

    mcog_blaster Power Member

    experimenta e vê o resultado se aproxima do que queres:

    PHP:
    for( $i 1$i 19$i++ )
    {
        
    $nome "mediana" $i;
        ${
    $nome} = $i;

        
    $variavelNomes[] = $nome//array que contém os nomes das variáveis
    }

    foreach(
    $variavelNomes as $value)
    {
        echo 
    "Nome da variável: $value; Valor: ${$value}<br />\n";
    }
     
  14. é mais ou menos isso mcog, só tem um problema.

    Aparece o quadro que eu pretendia com os valores certos, mas por cima esta a imprimir isto consegues tirar isso de cima? Nome da variável: mediana1; Valor: 1
    Nome da variável: mediana2; Valor: 2
    Nome da variável: mediana3; Valor: 3
    Nome da variável: mediana4; Valor: 4
    Nome da variável: mediana5; Valor: 5
    Nome da variável: mediana6; Valor: 6
    Nome da variável: mediana7; Valor: 7
    Nome da variável: mediana8; Valor: 8
    Nome da variável: mediana9; Valor: 9
    Nome da variável: mediana10; Valor: 10
    Nome da variável: mediana11; Valor: 11
    Nome da variável: mediana12; Valor: 12
    Nome da variável: mediana13; Valor: 13
    Nome da variável: mediana14; Valor: 14
    Nome da variável: mediana15; Valor: 15
    Nome da variável: mediana16; Valor: 16
    Nome da variável: mediana17; Valor: 17
    Nome da variável: mediana18; Valor: 18
    Nome da variável: mediana19; Valor: 19
    Nome da variável: mediana20; Valor: 20
    Nome da variável: mediana21; Valor: 21
    Nome da variável: mediana22; Valor: 22
    Nome da variável: mediana23; Valor: 23
    Nome da variável: mediana24; Valor: 24
    Nome da variável: mediana25; Valor: 25
    Nome da variável: mediana26; Valor: 26
    Nome da variável: mediana27; Valor: 27
    Nome da variável: mediana28; Valor: 28
    Nome da variável: mediana29; Valor: 29

    Se não aparecer isso em cima é isso que pretendo
     
  15. Obrigado já consegui mcog_blaster e obrigado aos outros tb.
     
  16. Afinal não resolveu, reparei agora que os valores da mediana estão tb de 1 a 29
     
  17. ReginoCoeli

    ReginoCoeli Power Member

    Está até 29 porque é o valor da variável "value". Não?
     

Partilhar esta Página