Desenvolvimento Web I


                Aula 03


Instrutor: José Fernando Santana Andrade
      fernando.amdrade@gmail.com
Estrutura de controle
                sequencial
                   Início



                            comando 1


                            comando 2


                            comando 3

                                                    Fim
                            comando n




01/12/12                    Desenvolvimento Web I         2/53
Estruturas de controle
            condicional
    Para que usar ?




01/12/12              Desenvolvimento Web I   3/53
Estruturas de controle
            condicional
    Para que usar ?
●   Usamos para codificar uma tomada de
    decisão
●   Utilizamos uma expressão lógica para
    decidir por qual fluxo de execução o
    programa deve seguir



01/12/12              Desenvolvimento Web I   4/53
Estruturas de controle
            condicional




01/12/12         Desenvolvimento Web I   5/53
Estrutura Condicional
              Simples
●   Introduz um desvio condicional, ou seja, um
    desvio na execução natural do programa
●   Útil quando necessita-se de duas opções de
    fluxo para serem seguidas com base no
    resultado do teste lógico
      –    Verdadeiro
      –    Falso


01/12/12                Desenvolvimento Web I   6/53
Estrutura Condicional
              Simples

           SE (teste) ENTÃO
           {
             comandos …
           }
           CASO CONTRÁRIO
           {
             comandos …
           }

01/12/12             Desenvolvimento Web I   7/53
Fluxo do Comando if

       início




                                Comando IF         fim
                  [TRUE]


                [FALSE]
                              Comando ELSE




01/12/12                   Desenvolvimento Web I         8/53
if … else

    if (teste)
    {
        Comandos se teste é verdadeira
    }
    else
    {
        Comandos se teste é falsa
    }

01/12/12           Desenvolvimento Web I   9/53
Exemplo

    $a = 1;
    if ($a==5)
    {
        echo “é igual”;
    }
    else
    {
        echo “não é igual”;
    }
01/12/12             Desenvolvimento Web I   10/53
Estrutura Condicional
             Aninhada
●   Utilizamos quando necessitamos realizar
    testes encadeados
●   O fluxo de execução irá depender de um ou
    mais testes lógicos




01/12/12           Desenvolvimento Web I      11/53
Exemplo
     $salario             =1020;
     $tempo_servico         =12;
     $tem_reclamacoes =false;
     if($salario > 1000)
     {
         if($tempo_servico >= 12)
         {
             if($tem_reclamacoes != true)
             {
                 echo 'parabéns, você foi promovido';
             }
         }
     }
01/12/12                   Desenvolvimento Web I        12/53
Exercício

    Refaça o código utilizando apenas uma
    estrutura IF




01/12/12           Desenvolvimento Web I    13/53
Exercício

    Refaça o código utilizando apenas uma
    estrutura IF
     $salario            =1020;
     $tempo_servico      =12;
     $tem_reclamacoes    =false;

     if(($salario > 1000) && ($tempo_servico >= 12) and
     ($tem_reclamacoes != true))
     {
         echo “parabéns, você foi promovido <br />”;
     }

01/12/12                  Desenvolvimento Web I           14/53
Exercício

●   Dado um número, imprima se ele é par ou
    ímpar




01/12/12           Desenvolvimento Web I      15/53
Exercício

●   Dado um número, imprima se ele é par ou
    ímpar
           if($a%2==0)
              echo "$a é par";
           else
              echo "$a é ímpar";



01/12/12           Desenvolvimento Web I      16/53
…?…:…

       $valor = 1001;
       if($valor > 1000)
       {
           $resultado = 'muito caro';
       }
       else
       {
           $resultado = 'pode comprar';
       }
       echo $resultado;

01/12/12                  Desenvolvimento Web I   17/53
…?…:…

  $valor = 1001;
  $resultado = ($valor > 1000) ? 'muito caro' : 'pode comprar';
  echo $resultado;




01/12/12                  Desenvolvimento Web I              18/53
…?…:…

  $valor = 1001;
  $resultado = ($valor > 1000) ? 'muito caro' : 'pode comprar';
  echo $resultado;

  A primeira expressão é a condição a ser avaliada
  A segunda é o valor caso verdadeiro
  A terceira é o valor caso seja falsa

                   teste ? true : false

01/12/12                  Desenvolvimento Web I              19/53
Exercício

    a) Elabore um script que receba 2 números
    e imprima qual é o maior e qual é o menor.
    b) Dados 3 números, faça um scritp que
    imprima em ordem crescente e depois em
    ordem decrescente os 3 números.




01/12/12            Desenvolvimento Web I    20/53
Exercício a


    $a = $_GET['a'];
    $b = $_GET['b'];
    $maior = $a>$b ? $a : $b;
    $menor = $a<$b ? $a : $b;
    echo “O maior é $maior”;
    echo “O menor é $menor”;




01/12/12               Desenvolvimento Web I   21/53
Exercício b
$n = $_GET['n'];
$m = $_GET['m'];
$o = $_GET['o'];
$menor = ($n<$m and $n<$o)?$n:(($m<$n and $m<$o)? $m: $o);
$maior = ($n>$m and $n>$o)?$n:(($m>$n and $m>$o)? $m: $o);
$meio = ($n!=$menor && $n!=$maior)? $n: (($m!=$menor && $m!=$maior)? $m: $o);
echo 'Em ordem crescente </br>';
echo 'O menor é '.$menor;
echo ' ,o do meio é '.$meio;
echo ' e o maior é '.$maior;
echo '</br> Em ordem decrescente </br>';
echo 'O maior é '.$maior;
echo ' ,o do meio é '.$meio;
echo ' e o menor é '.$menor;




01/12/12                     Desenvolvimento Web I                    22/53
Estrutura de Múltipla
                  Escolha
●   Aplicadas para os casos em que a
    avaliação da expressão de testes, tem mais
    de dois valores possíveis como resultado




01/12/12              Desenvolvimento Web I   23/53
Estrutura de Múltipla
                  Escolha
                           TRUE
                   caso                      comandos


           FALSE
                          TRUE               comandos     FIM
                   caso


           FALSE
                          TRUE               comandos
                   caso

           FALSE                               default


01/12/12                          Desenvolvimento Web I         24/53
switch
           switch ($valor)
           {
              case “valor_1”:
                  //comandos
                  break;
              case “valor_2”:
                  //comandos
                  break;
              case “valor_n”:
                  //comandos
                  break;
              defaul:
              defaul
                  //comandos
           }

01/12/12                        Desenvolvimento Web I   25/53
Exemplo
   $i = 1;
   switch ($i)
   {
       case 0:
           echo “i é igual a 0”;
           break;
       case 1:
           echo “i é igual a 1”;
           break;
       case 2:
           echo “i é igual a 2”;
           break;
       default:
           echo “i é igual a 0, 1 ou 2”;
   }
01/12/12                      Desenvolvimento Web I   26/53
Exemplo
   switch ($i) {
   case 0:
   case 1:
   case 2:
     echo "número positivo menor que 3";
     break;
   case 3:
     echo "número igual a 3";
     break;
   default: echo 'número maior que 3';
   }
01/12/12            Desenvolvimento Web I   27/53
Exercício

    Faça um algoritmo que dado uma letra
    imprima se é ou não uma consoante.
    Ex.: localhost/letra.php?letra=“a”
    Resultado:
    'a' não é uma consoante




01/12/12             Desenvolvimento Web I   28/53
Exercício

    switch ($letra) {
    case 'a':
    case 'e':
    case 'i':
    case 'o':
    case 'u':
      Echo " '$letra não' é uma consoante";
      break;
    default: echo " '$letra' é uma consoante";
    }
01/12/12            Desenvolvimento Web I        29/53
Estruturas de Repetição

    Qual o objetivo ?




01/12/12            Desenvolvimento Web I   30/53
Estruturas de Repetição

    Qual o objetivo ?
●   Fazer com que o computador repita um
    bloco de comandos enquanto uma
    determinada condição seja satisfeita




01/12/12            Desenvolvimento Web I   31/53
Estruturas de Repetição
           Início




                                    FALSE



                                             FIM
                TRUE



                    comandos




01/12/12             Desenvolvimento Web I         32/53
Repetição com teste no
             início
●   Repete um determinado bloco de comando
    0 ou mais vezes, enquanto uma
    determinada condição for é satisfeita




01/12/12          Desenvolvimento Web I   33/53
while


           while (expressão)
           {
             comandos
           }




01/12/12                Desenvolvimento Web I   34/53
Exemplo

           $a = 0;
           while ($a < 5)
           {
             echo “$a <br />”;
             $a++;
           }



01/12/12                 Desenvolvimento Web I   35/53
Exemplo

           $a = 0;                               Resultado:
           while ($a < 5)
           {
             echo “$a <br />”;
             $a++;
           }



01/12/12                 Desenvolvimento Web I                36/53
Repetição com teste no
             final
●   Semelhante ao anterior difere apenas na
    posição do teste, que é feito no final




01/12/12           Desenvolvimento Web I      37/53
do … while

           do
           {
             comandos
           }
           while(teste)




01/12/12                  Desenvolvimento Web I   38/53
Exemplo

           $a = 5;
           do
           {
             echo “a = $a <br /> vou repeti”;
             --$a;
           }while($a>0)



01/12/12                  Desenvolvimento Web I   39/53
Exemplo
  $a = 5;
  do
  {
    echo “a = $a <br /> vou repeti”;
    --$a;
                                Resultado:
  }while($a>0)




01/12/12            Desenvolvimento Web I    40/53
Repetição com variável
          de controle
●   Usada quando sabemos previamente o
    número de repetições que precisam ser
    executadas
●   O número de repetições é determinado por
    uma variável de controle




01/12/12           Desenvolvimento Web I    41/53
for
  for(expressão1; expressão2; expressão3)
  {
    comandos
  }




01/12/12         Desenvolvimento Web I   42/53
Exemplo
  for($i = 0; $i <= 5; $i++)
  {
    print “$i <br />”;
  }




01/12/12            Desenvolvimento Web I   43/53
Exemplo
  for($i = 0; $i <= 5; $i++)
  {
    print “$i <br />”;
  }
                                            Resultado:




01/12/12            Desenvolvimento Web I                44/53
Exercício

●   Dado um número, elabore um script que
    imprima a tabuada de 0 até 10 do número
    dado.
    Ex.: localhost/tabuada.php?n=3




01/12/12           Desenvolvimento Web I      45/53
Exercício

    Ex.: localhost/tabuada.php?n=3

   for($i=0;$i<=10;$i++)
   {
     echo "$n x $i = ".$n*$i."<br />";
   }




01/12/12            Desenvolvimento Web I   46/53
Exercício

    Faça um script que imprima os n primeiros
    números da sequência de Fibonacci.
    Ex.: localhost/fib.php?n=7
    0112358




01/12/12            Desenvolvimento Web I   47/53
Exercício

           $n0=0;
           $n1=1;
           echo "$n0 - ";
           echo "$n1 - ";
           for($i=2; $i<$p; $i++)
           {
              $n = $n0+$n1;
              echo "$n - ";
              $n0=$n1;
              $n1=$n;
           }
01/12/12                    Desenvolvimento Web I   48/53
Exercício

    Escreva um script que imprima a sequencia:
     *
     **
     ***
     ****
     *****

01/12/12           Desenvolvimento Web I    49/53
Exercício

           $a='*';
           for($i=0;$i<5;$i++)
           {
             echo "$a<br />";
             $a.='*';
           }

01/12/12           Desenvolvimento Web I   50/53
Exercício

    Faça um algoritmo que imprima a
    sequência:
     o00o00o00o00o00o00o00o00o00o00o00o




01/12/12           Desenvolvimento Web I   51/53
Exercício

           $j=22;
           for($i=0;$i<$j;$i++)
           {
              if($i%3==0)
                 echo "o";
              else
                 echo '0';
           }

01/12/12         Desenvolvimento Web I   52/53
Obrigado !




01/12/12        Desenvolvimento Web I   53/53

Php03

  • 1.
    Desenvolvimento Web I Aula 03 Instrutor: José Fernando Santana Andrade fernando.amdrade@gmail.com
  • 2.
    Estrutura de controle sequencial Início comando 1 comando 2 comando 3 Fim comando n 01/12/12 Desenvolvimento Web I 2/53
  • 3.
    Estruturas de controle condicional Para que usar ? 01/12/12 Desenvolvimento Web I 3/53
  • 4.
    Estruturas de controle condicional Para que usar ? ● Usamos para codificar uma tomada de decisão ● Utilizamos uma expressão lógica para decidir por qual fluxo de execução o programa deve seguir 01/12/12 Desenvolvimento Web I 4/53
  • 5.
    Estruturas de controle condicional 01/12/12 Desenvolvimento Web I 5/53
  • 6.
    Estrutura Condicional Simples ● Introduz um desvio condicional, ou seja, um desvio na execução natural do programa ● Útil quando necessita-se de duas opções de fluxo para serem seguidas com base no resultado do teste lógico – Verdadeiro – Falso 01/12/12 Desenvolvimento Web I 6/53
  • 7.
    Estrutura Condicional Simples SE (teste) ENTÃO { comandos … } CASO CONTRÁRIO { comandos … } 01/12/12 Desenvolvimento Web I 7/53
  • 8.
    Fluxo do Comandoif início Comando IF fim [TRUE] [FALSE] Comando ELSE 01/12/12 Desenvolvimento Web I 8/53
  • 9.
    if … else if (teste) { Comandos se teste é verdadeira } else { Comandos se teste é falsa } 01/12/12 Desenvolvimento Web I 9/53
  • 10.
    Exemplo $a = 1; if ($a==5) { echo “é igual”; } else { echo “não é igual”; } 01/12/12 Desenvolvimento Web I 10/53
  • 11.
    Estrutura Condicional Aninhada ● Utilizamos quando necessitamos realizar testes encadeados ● O fluxo de execução irá depender de um ou mais testes lógicos 01/12/12 Desenvolvimento Web I 11/53
  • 12.
    Exemplo $salario =1020; $tempo_servico =12; $tem_reclamacoes =false; if($salario > 1000) { if($tempo_servico >= 12) { if($tem_reclamacoes != true) { echo 'parabéns, você foi promovido'; } } } 01/12/12 Desenvolvimento Web I 12/53
  • 13.
    Exercício Refaça o código utilizando apenas uma estrutura IF 01/12/12 Desenvolvimento Web I 13/53
  • 14.
    Exercício Refaça o código utilizando apenas uma estrutura IF $salario =1020; $tempo_servico =12; $tem_reclamacoes =false; if(($salario > 1000) && ($tempo_servico >= 12) and ($tem_reclamacoes != true)) { echo “parabéns, você foi promovido <br />”; } 01/12/12 Desenvolvimento Web I 14/53
  • 15.
    Exercício ● Dado um número, imprima se ele é par ou ímpar 01/12/12 Desenvolvimento Web I 15/53
  • 16.
    Exercício ● Dado um número, imprima se ele é par ou ímpar if($a%2==0) echo "$a é par"; else echo "$a é ímpar"; 01/12/12 Desenvolvimento Web I 16/53
  • 17.
    …?…:… $valor = 1001; if($valor > 1000) { $resultado = 'muito caro'; } else { $resultado = 'pode comprar'; } echo $resultado; 01/12/12 Desenvolvimento Web I 17/53
  • 18.
    …?…:… $valor= 1001; $resultado = ($valor > 1000) ? 'muito caro' : 'pode comprar'; echo $resultado; 01/12/12 Desenvolvimento Web I 18/53
  • 19.
    …?…:… $valor= 1001; $resultado = ($valor > 1000) ? 'muito caro' : 'pode comprar'; echo $resultado; A primeira expressão é a condição a ser avaliada A segunda é o valor caso verdadeiro A terceira é o valor caso seja falsa teste ? true : false 01/12/12 Desenvolvimento Web I 19/53
  • 20.
    Exercício a) Elabore um script que receba 2 números e imprima qual é o maior e qual é o menor. b) Dados 3 números, faça um scritp que imprima em ordem crescente e depois em ordem decrescente os 3 números. 01/12/12 Desenvolvimento Web I 20/53
  • 21.
    Exercício a $a = $_GET['a']; $b = $_GET['b']; $maior = $a>$b ? $a : $b; $menor = $a<$b ? $a : $b; echo “O maior é $maior”; echo “O menor é $menor”; 01/12/12 Desenvolvimento Web I 21/53
  • 22.
    Exercício b $n =$_GET['n']; $m = $_GET['m']; $o = $_GET['o']; $menor = ($n<$m and $n<$o)?$n:(($m<$n and $m<$o)? $m: $o); $maior = ($n>$m and $n>$o)?$n:(($m>$n and $m>$o)? $m: $o); $meio = ($n!=$menor && $n!=$maior)? $n: (($m!=$menor && $m!=$maior)? $m: $o); echo 'Em ordem crescente </br>'; echo 'O menor é '.$menor; echo ' ,o do meio é '.$meio; echo ' e o maior é '.$maior; echo '</br> Em ordem decrescente </br>'; echo 'O maior é '.$maior; echo ' ,o do meio é '.$meio; echo ' e o menor é '.$menor; 01/12/12 Desenvolvimento Web I 22/53
  • 23.
    Estrutura de Múltipla Escolha ● Aplicadas para os casos em que a avaliação da expressão de testes, tem mais de dois valores possíveis como resultado 01/12/12 Desenvolvimento Web I 23/53
  • 24.
    Estrutura de Múltipla Escolha TRUE caso comandos FALSE TRUE comandos FIM caso FALSE TRUE comandos caso FALSE default 01/12/12 Desenvolvimento Web I 24/53
  • 25.
    switch switch ($valor) { case “valor_1”: //comandos break; case “valor_2”: //comandos break; case “valor_n”: //comandos break; defaul: defaul //comandos } 01/12/12 Desenvolvimento Web I 25/53
  • 26.
    Exemplo $i = 1; switch ($i) { case 0: echo “i é igual a 0”; break; case 1: echo “i é igual a 1”; break; case 2: echo “i é igual a 2”; break; default: echo “i é igual a 0, 1 ou 2”; } 01/12/12 Desenvolvimento Web I 26/53
  • 27.
    Exemplo switch ($i) { case 0: case 1: case 2: echo "número positivo menor que 3"; break; case 3: echo "número igual a 3"; break; default: echo 'número maior que 3'; } 01/12/12 Desenvolvimento Web I 27/53
  • 28.
    Exercício Faça um algoritmo que dado uma letra imprima se é ou não uma consoante. Ex.: localhost/letra.php?letra=“a” Resultado: 'a' não é uma consoante 01/12/12 Desenvolvimento Web I 28/53
  • 29.
    Exercício switch ($letra) { case 'a': case 'e': case 'i': case 'o': case 'u': Echo " '$letra não' é uma consoante"; break; default: echo " '$letra' é uma consoante"; } 01/12/12 Desenvolvimento Web I 29/53
  • 30.
    Estruturas de Repetição Qual o objetivo ? 01/12/12 Desenvolvimento Web I 30/53
  • 31.
    Estruturas de Repetição Qual o objetivo ? ● Fazer com que o computador repita um bloco de comandos enquanto uma determinada condição seja satisfeita 01/12/12 Desenvolvimento Web I 31/53
  • 32.
    Estruturas de Repetição Início FALSE FIM TRUE comandos 01/12/12 Desenvolvimento Web I 32/53
  • 33.
    Repetição com testeno início ● Repete um determinado bloco de comando 0 ou mais vezes, enquanto uma determinada condição for é satisfeita 01/12/12 Desenvolvimento Web I 33/53
  • 34.
    while while (expressão) { comandos } 01/12/12 Desenvolvimento Web I 34/53
  • 35.
    Exemplo $a = 0; while ($a < 5) { echo “$a <br />”; $a++; } 01/12/12 Desenvolvimento Web I 35/53
  • 36.
    Exemplo $a = 0; Resultado: while ($a < 5) { echo “$a <br />”; $a++; } 01/12/12 Desenvolvimento Web I 36/53
  • 37.
    Repetição com testeno final ● Semelhante ao anterior difere apenas na posição do teste, que é feito no final 01/12/12 Desenvolvimento Web I 37/53
  • 38.
    do … while do { comandos } while(teste) 01/12/12 Desenvolvimento Web I 38/53
  • 39.
    Exemplo $a = 5; do { echo “a = $a <br /> vou repeti”; --$a; }while($a>0) 01/12/12 Desenvolvimento Web I 39/53
  • 40.
    Exemplo $a= 5; do { echo “a = $a <br /> vou repeti”; --$a; Resultado: }while($a>0) 01/12/12 Desenvolvimento Web I 40/53
  • 41.
    Repetição com variável de controle ● Usada quando sabemos previamente o número de repetições que precisam ser executadas ● O número de repetições é determinado por uma variável de controle 01/12/12 Desenvolvimento Web I 41/53
  • 42.
    for for(expressão1;expressão2; expressão3) { comandos } 01/12/12 Desenvolvimento Web I 42/53
  • 43.
    Exemplo for($i= 0; $i <= 5; $i++) { print “$i <br />”; } 01/12/12 Desenvolvimento Web I 43/53
  • 44.
    Exemplo for($i= 0; $i <= 5; $i++) { print “$i <br />”; } Resultado: 01/12/12 Desenvolvimento Web I 44/53
  • 45.
    Exercício ● Dado um número, elabore um script que imprima a tabuada de 0 até 10 do número dado. Ex.: localhost/tabuada.php?n=3 01/12/12 Desenvolvimento Web I 45/53
  • 46.
    Exercício Ex.: localhost/tabuada.php?n=3 for($i=0;$i<=10;$i++) { echo "$n x $i = ".$n*$i."<br />"; } 01/12/12 Desenvolvimento Web I 46/53
  • 47.
    Exercício Faça um script que imprima os n primeiros números da sequência de Fibonacci. Ex.: localhost/fib.php?n=7 0112358 01/12/12 Desenvolvimento Web I 47/53
  • 48.
    Exercício $n0=0; $n1=1; echo "$n0 - "; echo "$n1 - "; for($i=2; $i<$p; $i++) { $n = $n0+$n1; echo "$n - "; $n0=$n1; $n1=$n; } 01/12/12 Desenvolvimento Web I 48/53
  • 49.
    Exercício Escreva um script que imprima a sequencia: * ** *** **** ***** 01/12/12 Desenvolvimento Web I 49/53
  • 50.
    Exercício $a='*'; for($i=0;$i<5;$i++) { echo "$a<br />"; $a.='*'; } 01/12/12 Desenvolvimento Web I 50/53
  • 51.
    Exercício Faça um algoritmo que imprima a sequência: o00o00o00o00o00o00o00o00o00o00o00o 01/12/12 Desenvolvimento Web I 51/53
  • 52.
    Exercício $j=22; for($i=0;$i<$j;$i++) { if($i%3==0) echo "o"; else echo '0'; } 01/12/12 Desenvolvimento Web I 52/53
  • 53.
    Obrigado ! 01/12/12 Desenvolvimento Web I 53/53