Php03

53
Aula 03 Instrutor: José Fernando Santana Andrade [email protected] Desenvolvimento Web I

Transcript of Php03

Page 1: Php03

Aula 03

Instrutor: José Fernando Santana [email protected]

Desenvolvimento Web I

Page 2: Php03

01/12/12 Desenvolvimento Web I 2/53

Estrutura de controle sequencial

comando 1

comando 2

comando n

comando 3

Início

Fim

Page 3: Php03

01/12/12 Desenvolvimento Web I 3/53

Estruturas de controle condicional

Para que usar ?

Page 4: Php03

01/12/12 Desenvolvimento Web I 4/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

Page 5: Php03

01/12/12 Desenvolvimento Web I 5/53

Estruturas de controle condicional

Page 6: Php03

01/12/12 Desenvolvimento Web I 6/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

Page 7: Php03

01/12/12 Desenvolvimento Web I 7/53

Estrutura Condicional Simples

SE (teste) ENTÃO {

comandos … }CASO CONTRÁRIO{

comandos … }

Page 8: Php03

01/12/12 Desenvolvimento Web I 8/53

Fluxo do Comando if

Comando IF

Comando ELSE

[TRUE]

[FALSE]

início

fim

Page 9: Php03

01/12/12 Desenvolvimento Web I 9/53

if … else

if (teste) {

Comandos se teste é verdadeira }else{

Comandos se teste é falsa }

Page 10: Php03

01/12/12 Desenvolvimento Web I 10/53

Exemplo

$a = 1;ifif ($a==5) {

echo “é igual”;}elseelse{

echo “não é igual”;}

Page 11: Php03

01/12/12 Desenvolvimento Web I 11/53

Estrutura Condicional Aninhada

● Utilizamos quando necessitamos realizar testes encadeados

● O fluxo de execução irá depender de um ou mais testes lógicos

Page 12: Php03

01/12/12 Desenvolvimento Web I 12/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';}

}}

Page 13: Php03

01/12/12 Desenvolvimento Web I 13/53

Exercício

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

Page 14: Php03

01/12/12 Desenvolvimento Web I 14/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 />”;}

Page 15: Php03

01/12/12 Desenvolvimento Web I 15/53

Exercício

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

Page 16: Php03

01/12/12 Desenvolvimento Web I 16/53

Exercício

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

if($a%2==0)echo "$a é par";

elseecho "$a é ímpar";

Page 17: Php03

01/12/12 Desenvolvimento Web I 17/53

… ? … : …

$valor = 1001;if($valor > 1000){

$resultado = 'muito caro';}else{

$resultado = 'pode comprar';}echo $resultado;

Page 18: Php03

01/12/12 Desenvolvimento Web I 18/53

… ? … : …

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

Page 19: Php03

01/12/12 Desenvolvimento Web I 19/53

… ? … : …

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

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

teste ? true : falseteste ? true : false

Page 20: Php03

01/12/12 Desenvolvimento Web I 20/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.

Page 21: Php03

01/12/12 Desenvolvimento Web I 21/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”;

Page 22: Php03

01/12/12 Desenvolvimento Web I 22/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;

Page 23: Php03

01/12/12 Desenvolvimento Web I 23/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

Page 24: Php03

01/12/12 Desenvolvimento Web I 24/53

Estrutura de Múltipla Escolha

comandos

default

comandos

comandos

caso

caso

caso

TRUE

TRUE

TRUE

FALSE

FALSE

FALSE

FIM

Page 25: Php03

01/12/12 Desenvolvimento Web I 25/53

switch

switchswitch ($valor){

casecase “valor_1”://comandosbreak;

casecase “valor_2”://comandosbreak;

casecase “valor_n”://comandosbreak;

defauldefaul://comandos

}

Page 26: Php03

01/12/12 Desenvolvimento Web I 26/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”;

}

Page 27: Php03

01/12/12 Desenvolvimento Web I 27/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';}

Page 28: Php03

01/12/12 Desenvolvimento Web I 28/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

Page 29: Php03

01/12/12 Desenvolvimento Web I 29/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";}

Page 30: Php03

01/12/12 Desenvolvimento Web I 30/53

Estruturas de Repetição

Qual o objetivo ?

Page 31: Php03

01/12/12 Desenvolvimento Web I 31/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

Page 32: Php03

01/12/12 Desenvolvimento Web I 32/53

Estruturas de Repetição

comandos

TRUE

FALSE

FIM

Início

Page 33: Php03

01/12/12 Desenvolvimento Web I 33/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

Page 34: Php03

01/12/12 Desenvolvimento Web I 34/53

while

while (expressão){

comandos}

Page 35: Php03

01/12/12 Desenvolvimento Web I 35/53

Exemplo

$a = 0;while ($a < 5){

echo “$a <br />”;$a++;

}

Page 36: Php03

01/12/12 Desenvolvimento Web I 36/53

Exemplo

$a = 0;while ($a < 5){

echo “$a <br />”;$a++;

}

Resultado:

Page 37: Php03

01/12/12 Desenvolvimento Web I 37/53

Repetição com teste no final

● Semelhante ao anterior difere apenas na posição do teste, que é feito no final

Page 38: Php03

01/12/12 Desenvolvimento Web I 38/53

do … while

do{

comandos}while(teste)

Page 39: Php03

01/12/12 Desenvolvimento Web I 39/53

Exemplo

$a = 5;do{

echo “a = $a <br /> vou repeti”;--$a;

}while($a>0)

Page 40: Php03

01/12/12 Desenvolvimento Web I 40/53

Exemplo

$a = 5;do{

echo “a = $a <br /> vou repeti”;--$a;

}while($a>0) Resultado:

Page 41: Php03

01/12/12 Desenvolvimento Web I 41/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

Page 42: Php03

01/12/12 Desenvolvimento Web I 42/53

for

for(expressão1; expressão2; expressão3){

comandos}

Page 43: Php03

01/12/12 Desenvolvimento Web I 43/53

Exemplo

for($i = 0; $i <= 5; $i++){

print “$i <br />”;}

Page 44: Php03

01/12/12 Desenvolvimento Web I 44/53

Exemplo

for($i = 0; $i <= 5; $i++){

print “$i <br />”;}

Resultado:

Page 45: Php03

01/12/12 Desenvolvimento Web I 45/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

Page 46: Php03

01/12/12 Desenvolvimento Web I 46/53

Exercício

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

for($i=0;$i<=10;$i++){

echo "$n x $i = ".$n*$i."<br />";}

Page 47: Php03

01/12/12 Desenvolvimento Web I 47/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

0 1 1 2 3 5 8

Page 48: Php03

01/12/12 Desenvolvimento Web I 48/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;

}

Page 49: Php03

01/12/12 Desenvolvimento Web I 49/53

Exercício

Escreva um script que imprima a sequencia:

***************

Page 50: Php03

01/12/12 Desenvolvimento Web I 50/53

Exercício

$a='*';for($i=0;$i<5;$i++){

echo "$a<br />";$a.='*';

}

Page 51: Php03

01/12/12 Desenvolvimento Web I 51/53

Exercício

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

o00o00o00o00o00o00o00o00o00o00o00o

Page 52: Php03

01/12/12 Desenvolvimento Web I 52/53

Exercício

$j=22;for($i=0;$i<$j;$i++){

if($i%3==0)echo "o";

elseecho '0';

}

Page 53: Php03

01/12/12 Desenvolvimento Web I 53/53

Obrigado !