Professor Jefferson Chaves [email protected] · Professor Jefferson Chaves...
Transcript of Professor Jefferson Chaves [email protected] · Professor Jefferson Chaves...
Professor Jefferson Chaves [email protected]
Jefferson de Oliveira Chaves - IFC Araquari
• Tipos de dados;
• Operadores;
• Arrays;
Jefferson de Oliveira Chaves - IFC Araquari
Jefferson de Oliveira Chaves - IFC Araquari
• Por vezes, será importante saber o tipo de dados;
• Quando dissemos ao usuário, digite sua idade, por
exemplo, ele pode:
18
18 anos
Dezoito
XVI I I
Jefferson de Oliveira Chaves - IFC Araquari
• Por vezes, será importante saber o tipo de dados:
$numeroFilhos = 5; //valor inteiro (integer) $salario = 2.5; //valor decimal (float) $nome = ‘Joinville’; //uma palavra (String) $maiorIdade = true; //valor lógico (Boolean)
Jefferson de Oliveira Chaves - IFC Araquari
• São quatro tipos de dados primitivos:
• Boolean Apenas valores lógicos (verdadeiro / falso);
• Integer Número do conjunto dos inteiros;
• Float Número do conjunto dos decimais;
• String Uma palavra, um nome ;
Jefferson de Oliveira Chaves - IFC Araquari
Este é o tipo mais simples. Um tipo booleano expressa um valor verdade. Ele pode ser
verdadeiro (TRUE) ou falso (FALSE).
// atribui o valor true para $temSaldo $temSaldo = true;
Jefferson de Oliveira Chaves - IFC Araquari
Um inteiro é um número do conjunto
Z = {..., -2, -1, 0, 1, 2, ...}.
// números inteiros $numInteiro = 1234; $inteiroNegativo = -5;
Jefferson de Oliveira Chaves - IFC Araquari
• O tamanho de um inteiro é dependente de plataforma, sendo um número aproximado a
2 bilhões
• O tamanho do inteiro pode ser determinado
pela constante PHP_INT_SIZE, e seu o
valor máximo com a constante
PHP_INT_MAX.
Jefferson de Oliveira Chaves - IFC Araquari
• Misseis Patriot (1991);
• Mars Climate Orbiter (1998);
• Ariane 5 vôo 501 (1996)
• Bug do Milênio (2000)
Jefferson de Oliveira Chaves - IFC Araquari
Jefferson de Oliveira Chaves - IFC Araquari
• Números decimais (em programação escrito
como "float", "double";
• O valore decimal de ser separado por ponto e não por vírgula;
$a = 1.234; // número decimal
Jefferson de Oliveira Chaves - IFC Araquari
• Algumas operações numéricas podem resultar em valores representados pela constante NAN;
• Existem alguns problemas com arredondamentos e conversões.
• Não existem meio filho ou salário negativo.
Jefferson de Oliveira Chaves - IFC Araquari
• O PHP realiza dinamicamente a ‚moldagem‛
dos dados numa operação chamada de cast.
• Podemos converter um tipo de dado em outro deixando explícito o casting desejado:
– $numero = (integer) 2.5;
– $numero = (int) ‚10 porquinhos‛;
– $numero = (real) 2;
– $numero = (float/doble) 2; Jefferson de Oliveira Chaves - IFC Araquari
Jefferson de Oliveira Chaves - IFC Araquari
• Os operadores aritméticos são os mesmos da matemática tradicional;
• O que pode mudar são os símbolos de cada operação;
• Exponenciação, por exemplo, é representada por dois asteriscos:
2**2 //dois elevado ao quadrado
Jefferson de Oliveira Chaves - IFC Araquari
Exemplo Nome Resultado
-$a Negação Oposto de $a.
$a + $b Adição Soma de $a e $b.
$a - $b Subtração Diferença entre $a e $b.
$a * $b Multiplicação Produto de $a e $b.
$a / $b Divisão Quociente de $a e $b.
$a % $b Módulo Resto de $a dividido por $b.
$a ** $b Exponencial Resultado de $a elevado a $b.
Jefferson de Oliveira Chaves - IFC Araquari
<?php
echo (5 * 5); // imprime 25
echo (10 / 2); // imprime 5
echo (5 % 2); // imprime 1
echo (5 / 0); // Warning: Division by zero
?>
Jefferson de Oliveira Chaves - IFC Araquari
<?php
//Calculos de média:
$media_errada = 10 + 8 / 2; //resultado 14
$media_correta = (10 + 8) / 2; //resultado 9
?>
Jefferson de Oliveira Chaves - IFC Araquari
Jefferson de Oliveira Chaves - IFC Araquari
• Um operador de atribuição altera o valor armazenado em uma variável;
• Nas operações de atribuição, o primeiro operando é sempre uma variável:
<?php //atribuição variável $numero recebe o valor de 3 $numero = 3; ?>
Jefferson de Oliveira Chaves - IFC Araquari
<?php //atribuição $saldoBanco recebe o valor de 1000 $saldoBanco = 1000; // define $saldoBanco para 1500 $saldoBanco = $saldoBanco + 500; echo $saldoBanco; //imprime o valor ? ?>
Jefferson de Oliveira Chaves - IFC Araquari
<?php //atribuição $saldoBanco recebe o valor de 1000 $saldoBanco = 1000; // define $saldoBanco para 1500, como se disséssemos: // $saldoBanco = $saldoBanco + 500;
$saldoBanco += 500; echo $saldoBanco; //imprime o valor ? ?>
Jefferson de Oliveira Chaves - IFC Araquari
Jefferson de Oliveira Chaves - IFC Araquari
• Um array (vetor em português) é uma variável especial capaz de armazenar uma coleção de
variáveis.
• Todo array possui uma capacidade;
$herois = array( ); $herois = array(‚Batman‛, ‚Hulk‛, ‚Thor‛);
Jefferson de Oliveira Chaves - IFC Araquari
$onibus = array( ); Jefferson de Oliveira Chaves - IFC Araquari
• Basicamente, um array é como um armário com
gavetas numeradas a partir do número 0;
Jefferson de Oliveira Chaves - IFC Araquari
• Para criarmos um array precisamos de um método que faça isso. O método array( );
• Também podemos criar um array preenchido;
<?php
//criar um array vazio $herois = array( );
//criar um array preenchido $herois = array(‚Batman‛, ‚Hulk‛, ‚Thor‛);
Jefferson de Oliveira Chaves - IFC Araquari
• No PHP existem 3 tipos de arrays:
• Arrays indexados - com índice numérico;
• Arrays associativos - com nomes como índices;
• Arrays multidimensionais - Arrays que contem outros arrays;
Jefferson de Oliveira Chaves - IFC Araquari
Jefferson de Oliveira Chaves - IFC Araquari
• É um tipo de array que possui seu índice numérico;
• Podemos dizer que índice é a posição da informação em um array;
• O índice inicial de um array é zero ( 0 );
Jefferson de Oliveira Chaves - IFC Araquari
• Para acessar o valor de um array basta colocar na frente da variável um colchete com seu índice;
$herois = array(‚Batman‛, ‚Hulk‛, ‚Thor‛);
echo $herois[0]; //mostra Batman
Jefferson de Oliveira Chaves - IFC Araquari
• Também pode adicionar um novo valor ao array em uma posição específica da seguinte forma:
$herois = array(‚Batman‛, ‚Hulk‛, ‚Thor‛);
$herois[3] = ‚Deadpool‛;
Jefferson de Oliveira Chaves - IFC Araquari
• E pra acessar esse conteúdo poderíamos selecioná-lo por meio de seu índice;
• Cuidado com o Notice: Undefined offset;
echo $herois[3];
Jefferson de Oliveira Chaves - IFC Araquari
• Ou ainda poderíamos dinamicamente adicionar um valor ao próximo espaço vazio;
• Isso é útil quando não sabemos ao certo a quantidade de índices do nosso array;
$herois[ ] = ‚Capitão Caverna‛;
Jefferson de Oliveira Chaves - IFC Araquari
• Afim de testar nossos arrays e ver seu conteúdo,
temos as funções print_r e var_dump;
• Ambas tem funções parecidas, mas var_dump tem uma saída mais detalhada, com o tipo e o número de caracteres;
print_r ( $herois ) ;
var_dump ( $herois ) ;
Jefferson de Oliveira Chaves - IFC Araquari
Jefferson de Oliveira Chaves - IFC Araquari
• É um tipo de array cujo índice é uma palavra;
• Comumente chamado de dicionário:
• palavra => significado;
$fruta = array( "cor" => "vermelha", "sabor" => "doce", "formato" => "redonda", "nome" => "maçã" );
Jefferson de Oliveira Chaves - IFC Araquari
• Para acessar o valor de um array associativo, basta colocar na frente do array o nome do índice entre colchetes;
echo $fruta[‘nome’] //maçã
Jefferson de Oliveira Chaves - IFC Araquari
Jefferson de Oliveira Chaves - IFC Araquari
• Iterar significa percorrer todos ou alguns itens de um array de forma sistemática;
• Normalmente usamos a estrutura de repetição FOR para isso;
• Mas para isso precisamos do tamanho máximo do nosso array;
• Para saber o tamanho do array usamos o método sizeof( );
Jefferson de Oliveira Chaves - IFC Araquari
$tamanho = sizeof($herois ); for($i = 0; $i < $tamanho; $i++){ echo $herois[$i]; }
Jefferson de Oliveira Chaves - IFC Araquari
• O FOR resolve o problema de iterar sobre um array.
• No entanto usá-lo para iterar sobre arrays associativos (aquele como índice como uma palavra) não é trivial;
• Nesses casos usamos o FOREACH;
Jefferson de Oliveira Chaves - IFC Araquari
• O FOREACH (para cada, em português) é um FOR melhorado para iterar sobre arrays;
• Ele identifica sozinho o tamanho do array, verifica índices existentes e etc.;
Jefferson de Oliveira Chaves - IFC Araquari
$herois = array(‚Batman‛, ‚Hulk‛, ‚Thor‛); foreach( $herois as $heroi ){ echo $heroi; }
Jefferson de Oliveira Chaves - IFC Araquari
• O FOREACH pega cada elemento do array e o atribui a uma variável a cada loop;
$herois = array(‚Batman‛, ‚Hulk‛, ‚Thor‛); foreach( $herois as $heroi ){
echo $heroi; //Batman
}
1
loop
Jefferson de Oliveira Chaves - IFC Araquari
• O FOREACH pega cada elemento do array e o atribui a uma variável a cada loop;
$herois = array(‚Batman‛, ‚Hulk‛, ‚Thor‛); foreach( $herois as $heroi ){
echo $heroi; //Hulk
}
2
loop
Jefferson de Oliveira Chaves - IFC Araquari
• O FOREACH pega cada elemento do array e o atribui a uma variável a cada loop;
$herois = array(‚Batman‛, ‚Hulk‛, ‚Thor‛); foreach( $herois as $heroi ){
echo $heroi; //Thor
}
3
loop
Jefferson de Oliveira Chaves - IFC Araquari
• Com o FOREACH, ainda é possível exibir o índice o valor;
• Basta adicionar uma seta ( => ) assim como em um array associativo;
• Os nomes usados nestas variáveis devem seguir as mesmas regras já vistas para variáveis;
Jefferson de Oliveira Chaves - IFC Araquari
$herois = array(‚Batman‛, ‚Hulk‛, ‚Thor‛); foreach( $herois as $indice => $valor ){ echo ‚$indice -- $valor‛; }
Jefferson de Oliveira Chaves - IFC Araquari
• Como array é uma estrutura complexa, existem método que nos ajuda a manipular os dados nele contidos;
$nomes = array(‚Jefferson‛, ‚Ana‛, ‚Bruno‛); sort($nomes ); foreach( $nomes as $nome ){ echo $nome; }
Jefferson de Oliveira Chaves - IFC Araquari
1. Faça um Programa que pergunte em que turno você estuda. Peça para digitar M para matutino, V para Vespertino ou N para Noturno.
Imprima a mensagem "Bom Dia!", "Boa Tarde!" ou "Boa Noite!" ou "Valor Inválido!", conforme o caso.
Dica: use if, elseif, else
2. Digite 5 números e verifique qual é o maior;
Dica: guarde em um array, ordene e mostre o primeiro.
3. Crie um programa que entre com os dados de altura e sexo de 5 pessoas.
Imprima na tela quantas pessoas são do sexo masculino e quantas pessoas são do sexo feminino.
Mostre também qual é a maior altura e se essa altura é de um homem ou uma mulher.