You are on page 1of 9

AGRUPAMENTO DE ESCOLAS DE SANTA COMBA DO

CURSO PROFISSIONAL DE TCNICO DE GESTO E PROGRAMAO DE SISTEMAS


INFORMTICOS
2012-2015
PROGRAMAO E SISTEMAS DE INFORMAO

MDULO 2 Mecanismos de Controlo de Execuo

Objetivos do mdulo:

Conhecer vrios tipos de variveis

Compreender a estrutura de um programa

Conhecer estruturas de deciso e de repetio

Os objetivos indicados aplicam-se a duas linguagens de programao: C e PHP

Contedos do mdulo:

Estrutura de um programa

Tipos de dados e variveis

Operadores e expresses

Entrada e sada de dados

Mecanismos de controlo

Seleo simples

Seleo mltipla

Repetio condicional

Repetio incondicional

Verso PHP

Estrutura de um programa

Em PHP os programas so ficheiros executados pelo servidor para criar pginas dinmicas que so enviadas para o
browser do computador cliente. O cdigo PHP para ser executado como cdigo deve estar entre <?php ?>.

Exemplo-1
<?php
Echo Ol mundo;
?>

Nestes exemplos vamos utilizar o servidor web gratuito mais popular cujo nome Apache e a verso 5.3.8 do PHP.
Este pequeno exemplo deve ser gravado na pasta do servidor web, assim, no Windows esta pasta est localizada
dentro da pasta programas\Apache Software Foundation\Apache2.2\htdocs, no Linux a pasta /var/www/html.

alunosnet@gmail.com alunosnet.pt.vu Pgina 1 de 9


No Linux as permisses de acesso ao ficheiro devem ser alteradas para permitir que todos possam pelo menos ler o
ficheiro, assim deve executar o comando chmod 744 ficheiro.php.

Para que este exemplo fique correto devemos incluir algumas etiquetas html, uma vez que o cdigo php vai gerar um
ficheiro html.

Exemplo-1a
<html>
<body>
<?php
Echo Ol mundo;
?>
</body>
</html>

No podemos esquecer que este cdigo s executado se a extenso do ficheiro for php e no html.

Tal como em C todas as instrues em PHP devem terminar com um ; (ponto e vrgula), de igual modo o PHP case
sensitive, ou seja, diferente escrever em minsculas e MAISCULAS.

Comentrios

Em PHP os comentrios iniciam-se com os carateres /* e terminam com */

Para fazer um comentrio de uma linha podemos utilizar // ou #

Tipos de dados e variveis

O PHP no tem comandos para declarar variveis, elas so criadas quando so utilizadas. Os nomes das
variveis tm de comear com um $.

Em PHP as variveis podem mudar de tipo de dados, bastando que lhes seja atribudo um dado de um tipo
diferente.

Exemplos:

<?php
$x=10;
echo $x;
$x=Joaquim;
Echo $x;
?>
O comando echo envia o texto para a pgina que vai ser gerada, o principio o mesmo do comando printf,
ou seja, se pretendemos mostrar qualquer coisa ao utilizador devemos utilizar este comando.

Apesar de no ser necessrio definir um tipo de dados para as variveis existem os seguintes tipos de dados
que so assumidos automaticamente de acordo com os dados da varivel: int, float, boolean, string, array, object,
NULL.

Para testarmos o tipo de dados de uma varivel podemos utilizar as funes is_type, por exemplo is_string
ou is_int.

alunosnet@gmail.com alunosnet.pt.vu Pgina 2 de 9


Delimitadores de strings e char

As servem para delimitar as strings (cadeiras de carateres) enquanto que o . (ponto) serve para juntar
vrias strings numa s ou juntar strings a variveis de outro tipo. Tambm pode ser utilizada a para delimitar as
strings.

Operadores e expresses

Aritmticos

+ soma
- subtrao
* multiplicao
/ diviso
% resto da diviso inteira
. Concatenar strings

Relacionais

== Igual a
=== Idntico a, verdadeiro se iguais e do mesmo tipo
> Maior que
< Menor que
>= Maior ou igual a
<= Menor ou igual a
!= Diferente de

Lgicos

&& E
|| Ou
! No
and E
or Ou

Operador de increment e decrement

++ Incrementa de uma unidade


-- Decrement de uma unidade

Operador aritmtico de atribuio

= Atribui varivel um valor


Ex: x=5;

Entrada e sada de dados

Para sada de dados existem diversas funes, sendo a uma das mais conhecidas a funo echo. Esta permite
imprimir no ecr constantes e variveis, imprimir no ecr entende-se por enviar para a pgina web que vai ser
mostrada ao utilizador. Apesar da funo echo ser bastante fcil de utilizar tambm podemos utilizar a funo printf
tal como existe em C.

alunosnet@gmail.com alunosnet.pt.vu Pgina 3 de 9


A sintaxe da funo echo :

echo Constante.$varivel

Existe outra instruo equivalente ao echo designada por print.

A introduo de dados nos programas em PHP deve ser feita atravs de formulrios html. Estes formulrios
fazem chegar os dados ao cdigo PHP atravs de duas variveis especiais, $_POST e $_GET. Dependendo do mtodo
definido no formulrio para enviar os dados utilizamos uma ou a outra.

Exemplo: Nome do Mtodo de


formulrio envio dos dados

<html>
<body>
<form name=form method=post>
Primeiro nmero:
<input type=text name=n1> </p>
Segundo nmero:
<input type=text name=n2> </p>
<input type=submit value=Somar>
</form>
</body>
</html>

Neste exemplo o formulrio criado com cdigo html. A linha


<form name=form method=post>
pode ainda ter esta forma
<form name=form method=post action=pagina.php>
neste caso alm de definirmos um formulrio com o nome form, indicamos que o mtodo de envio de dados para o
servidor processar o post e a pgina, ou o programa, que vai processar esses dados chama-se pagina.php. No
primeiro exemplo no era indicada nenhuma pgina, nestes casos a prpria pgina que tem o formulrio que
chamada para processar os dados.

Para melhor compreender o funcionamento do programa importante entender o que acontece quando so
pedidas pginas web a um servidor, assim a seguir apresenta-se o ciclo de vida de uma pgina web.

1. Ao inserir um endereo de uma pgina no browser o computador do cliente inicia um pedido de pgina ao
servidor onde esta est alojada.
2. Se a pgina tiver a extenso .html o servidor simplesmente envia essa pgina para o computador do cliente.
3. Se a pgina tiver a extenso .php o servidor abre essa pgina e executa o seu cdigo, gerando assim a pgina
que posteriormente envia para o computador cliente, a pgina enviada no contm o cdigo php, este fica
sempre no servidor, o cliente s recebe a pgina gerada pelo cdigo.
4. Quando o utilizador interage com a pgina, por exemplo clicando num boto, esta pode executar cdigo
diretamente no seu computador, por exemplo cdigo em javascript, no sendo necessrio enviar nem
receber nada do servidor. Por vezes ao clicar num boto iniciamos um processo de enviar dados para o

alunosnet@gmail.com alunosnet.pt.vu Pgina 4 de 9


servidor processar e receber a resposta deste, o que acontece quando clicamos no boto SUBMIT de um
formulrio html.
5. Quando um formulrio envia dados do computador cliente para o servidor pode utilizar um de dois mtodos.
O mtodo GET permite o envio dos dados atravs do link da pgina, adicionando cada elemento enviado a
este. O mtodo POST procede ao envio sem que o utilizador se aperceba desse envio porque visualmente
no existe nenhuma alterao.
6. Sempre que feito um pedido ao servidor e recebido a resposta a pgina refrescada no browser.
7. Existe tambm uma varivel especial designada $_REQUEST que contm os mesmos dados das variveis
$_GET e $_POST.
8. As pginas PHP s so enviadas para o cliente quando a sua execuo termina no lado do servidor!

Muito importante: quando recebemos dados do utilizador atravs de um formulrio devemos sempre validar os
dados de modo a verificar se os campos esto corretamente preenchidos. Esta validao pode ser feita do lado do
cliente, com javascript, ou do lado do servidor, o ideal nestes casos validar os dados na prpria pgina de modo a
informar o utilizador de quais os campos mal preenchidos. Esta validao especialmente importante quando
trabalhamos com bases de dados e com informao que requer medidas de segurana.

Assim no exemplo anterior ao clicar no boto SOMAR formulado um pedido ao servidor enviando os dados do
formulrio, identificados com os nomes nos elementos que contm esses dados. Esse pedido corresponde a chamar
a mesma pgina porque no foi indicada outra pgina para essa ao. Deste modo a pgina ao ser carregada deve
verificar se j recebeu dados ou no, se recebeu dados deve process-los, para tal verifica se as referidas variveis
especiais GET ou POST tem alguns dados.

<?php
// o formulrio utiliza o mtodo post para enviar dados por isso
//verificamos se a varivel $_POST tem algum desses dados
if(isset($_POST['n1'])){ //este if permite saber se j foi clicado o boto SOMAR
$num1=$_POST['n1'];
$num2=$_POST['n2'];
$resultado=$num1+$num2;
echo "Resultado da soma de {$num1} com {$num2} ".$resultado;
}
?>

Mecanismos de controlo

A execuo de um programa iniciada na primeira linha, sendo executadas todas as instrues por ordem
sequencial de cima para baixo e da esquerda para a direita.

Seleo simples

Os blocos de cdigo em PHP tm de estar delimitados por <?php e ?> e dentro destas etiquetas podem
existir blocos marcados com chavetas { } para indicar o inicio e fim de determinadas aes como ifs ou ciclos.

Bloco SE

Para a linguagem PHP qualquer valor diferente de 0 (zero) considerado verdadeiro. No existe o valor
verdadeiro ou falso.

Em C a estrutura SE definida assim:

alunosnet@gmail.com alunosnet.pt.vu Pgina 5 de 9


If (condio) ao;

Ex.1: if($idade==10) echo Tens dez anos!;

Ex.2: if($idade==10){

echo Tens dez anos! </p>;

echo s uma criana!;

Tambm existe a estrutura SE SENO:

if (condio) ao;

else ao;

Ex:

if ($idade==10){
echo Tens dez anos!;
}else{
echo No tens dez anos;
}

Existe, ainda, uma estrutura de se encadeados:

if (condio) ao;
elseif (condio) ao;
elseif(condio) ao;
else ao;

Ex:
if($idade==10){
echo Tens dez anos!;
}elseif ($idade==11){
echo Tens onze anos!;
}else{
echo No sei a tua idade!;
}

Seleo mltipla

Uma estrutura que pode evitar uma sequncia de SEs a estrutura switch case.

switch(varivel){
case valor1:
ao;
break;
case valor2:
ao;

alunosnet@gmail.com alunosnet.pt.vu Pgina 6 de 9


break;
default:
ao;
}
Ex.:

$idade=10;
switch($idade){
case 10:
echo Tens dez anos;
break;
case 11:
echo Tens onze anos;
break;
default:
echo No tens dez ou onze anos;
}

Repetio condicional

Para criar ciclos em C podemos utilizar condies, tal como na estrutura SE.

Sintaxe do ciclo while: (repete enquanto a condio verificar verdadeiro)

while(condio)
{
ao;
}
Ex.:
$idade=0;
while($idade<10)
{
echo Idade: .$idade.</p>;
$idade=$idade+1:
}
Ciclo infinito:
while(1)
{
ao a repetir eternamente;
}

Sintaxe do ciclo do .. while: (repete enquanto a condio verificar verdadeiro)


do
{
}while(condio)
Ex:
$idade=0;
do

alunosnet@gmail.com alunosnet.pt.vu Pgina 7 de 9


{
echo Idade: .$idade.</p>;
$idade++;
}while($idade<10);

A principal diferena entre este ciclo e o anterior que no ciclo do while o cdigo sempre executado uma
vez pois a condio s testada no final da execuo.

Dentro dos ciclos podemos utilizar a instruo break para interromper a repetio.
Ex:
$idade=0;
while($idade<10)
{
echo Idade: .$idade.</p>;
$idade++;
if ($idade==5) break;
}

Outra instruo que s podemos utilizar dentro dos ciclos a instruo continue.
Ex:
$idade=0;
while($idade<10)
{
echo Idade: .$idade.</p>;
$idade++;
if ($idade==5) continue;
}

Repetio incondicional

Outro tipo de ciclos que o PHP implementa o ciclo com contador, o ciclo for.

Sintaxe do ciclo for:

for(inicio;condio para continuar;nova repetio)

ao;

inicio - , normalmente, utilizado para inicializar variveis mas pode ter qualquer instruo que pretendemos
executar uma vez no inicio do ciclo, mas tambm pode ficar em branco. Pode tambm ter vrias instrues
separadas por , (virgulas).

condio para continuar a condio que deve ser verdadeira para o ciclo continuar

nova repetio-, normalmente, utilizado para incrementar/decrementar a varivel mas pode ter qualquer
instruo que pretendemos executar sempre no final das instrues que esto dentro do ciclo e antes de iniciar a
repetio do ciclo. Tambm pode ficar em branco ou ter vrias instrues separadas por , (virgulas).

Ex:

for($idade=0;$idade<10;$idade++)

alunosnet@gmail.com alunosnet.pt.vu Pgina 8 de 9


{
echo Idade: .$idade.</p>;
}

Em PHP existe ainda outro ciclo que permite percorrer os elementos de uma determinada estrutura.

foreach($elementos as $valor)
ao;

Ex:
<?php
$x=array("um","dois","trs");
foreach ($x as $valor)
{
echo $valor . "<br />";
}
?>

alunosnet@gmail.com alunosnet.pt.vu Pgina 9 de 9