Sunteți pe pagina 1din 139

Sumrio

Captulo 1. Introduo a Lgica de Programao......................................................................................... 8


1.1. Noes de Lgica............................................................................................................................... 8
1.2. O que lgica................................................................................................................................................... 8
1.3. A real lgica do dia a dia.................................................................................................................................. 8
1.4. Lgica de programao...................................................................................................................... 9
1.5. O que um algoritmo......................................................................................................................... 10
1.6. Porque importante construir um algoritmo..................................................................................... 10
1.7. As maneiras de representarmos um algoritmo................................................................................... 11
1.7.1. Descrio Narrativa.................................................................................................................... 11
1.7.2. Fluxograma Convencional.......................................................................................................... 11
1.7.3. Portugus Estruturado ou Pseudocdigo.................................................................................... 13
1.8. EXERCCIOS PROPOSTOS............................................................................................................ 14
Captulo 2. Tpicos Preliminares.................................................................................................................. 15
2.1. Tipos primitivos................................................................................................................................. 15
2.1.1.Tipos de Primitivos de Dados...................................................................................................... 15
2.2. Constantes.......................................................................................................................................... 15
2.3. Varivel............................................................................................................................................. 16
2.4. Formao de identificadores............................................................................................................. 16
2.5. Declarao de variveis...................................................................................................................... 16
2.6. Comandos de entrada e sada............................................................................................................. 17
2.6.1. COMANDO DE ENTRADAS DE DADOS.............................................................................. 17
2.6.2. COMANDO DE SAIDAS DE DADOS..................................................................................... 18
2.7. Expresses aritmticas....................................................................................................................... 19
2.8. Operadores aritmticos...................................................................................................................... 20
2.9. Expresses lgicas............................................................................................................................. 21
2.10. Operadores relacionais..................................................................................................................... 21
2.11. Operadores lgicos........................................................................................................................... 22
2.12. Comando de atribuio.................................................................................................................... 22
2.12.1. PRIORIDADE DE OPERADORES:....................................................................................... 23
2.13. EXERCCIOS PROPOSTOS.......................................................................................................... 23
Captulo 3. Estruturas de Controle................................................................................................................ 25
3.1. Estrutura sequencial........................................................................................................................... 25
3.2. Estrutura de seleo........................................................................................................................... 26
3.2.1. Seleo Simples.......................................................................................................................... 26
3.2.2. Seleo Composta....................................................................................................................... 28
3.3. Seleo de mltipla escolha............................................................................................................... 31
3.4. Estruturas de repetio....................................................................................................................... 32
3.5. Repetio com teste no incio e no final............................................................................................ 32
3.5.1. TESTE INCIO........................................................................................................................... 32
3.5.2. TESTE FINAL........................................................................................................................... 34
3.6. Repetio com varivel de controle................................................................................................... 35
3.7. Comparao entre estruturas de repetio.......................................................................................... 37
3.8. EXERCCIOS PROPOSTOS............................................................................................................ 39
Captulo 4. Estruturas de Dados.................................................................................................................... 40
4.1. O que estruturas de dados................................................................................................................ 40
4.2. Variveis compostas homogneas..................................................................................................... 40
4.3. Variveis compostas unidimensionais............................................................................................... 41
4.4. Declarao e manipulao(unidimensional)..................................................................................................... 41
4.4.1. Leitura de Dados de Uma Matriz do Tipo Vetor...................................................................................... 42
4.5. Variveis compostas multidimensionais........................................................................................................... 43
4.6. Declarao e manipulao(multidimensionais )............................................................................................... 44
4.7. Variveis compostas heterogneas................................................................................................................... 45
4.8. Registros (declarao e manipulao).............................................................................................................. 45
4.9. Registros de conjuntos (declarao e manipulao)......................................................................................... 46
4.10. EXERCCIOS PROPOSTOS......................................................................................................................... 47
Captulo 5. Introduo a PHP....................................................................................................................................... 51
5.1. O que PHP...................................................................................................................................................... 51
5.1.1. Um pouco da Histria do PHP.................................................................................................................. 52
5.2. Instalao do Servidor PHP.............................................................................................................................. 52
5.2.1. Instalao Apache..................................................................................................................................... 53
5.2.2. Instalao Php5......................................................................................................................................... 54
5.2.3. Instalao MYSQL................................................................................................................................... 55
5.2.4. Instalao phpMyAdmin........................................................................................................................... 55
5.3. Caractersticas de um programa PHP............................................................................................................... 56
5.3.1. COMANDOS DE SADA(OUTPUT)...................................................................................................... 57
5.4. EXERCCIOS PROPOSTOS........................................................................................................................... 58
Captulo 6. Atribuies em PHP................................................................................................................................... 59
6.1. Variveis........................................................................................................................................................... 59
6.2. Tipos de Variveis............................................................................................................................................ 61
6.2.1. Tipo booleano........................................................................................................................................... 61
6.2.2. Tipo inteiro................................................................................................................................................ 61
6.2.3. Tipo ponto flutuante:................................................................................................................................. 62
6.2.4. Tipo numrico........................................................................................................................................... 62
6.2.5. Tipo String................................................................................................................................................ 62
6.2.6. Tipo array.................................................................................................................................................. 63
6.2.7. Tipo objeto................................................................................................................................................ 63
6.2.8. Tipo recurso.............................................................................................................................................. 63
6.2.9. Tipo null.................................................................................................................................................... 63
6.3. Constantes......................................................................................................................................................... 63
6.3.1. Constantes prdefinidas............................................................................................................................ 63
6.3.2. Definindo constantes................................................................................................................................. 63
6.4. Converso de varivel....................................................................................................................................... 64
6.5. EXERCCIOS PROPOSTOS........................................................................................................................... 65
Captulo 7. Operadores................................................................................................................................................. 66
7.1. Operadores de strings........................................................................................................................................ 66
7.2. Operadores de atribuio.................................................................................................................................. 66
7.3. Operadores de decremento e incremento.......................................................................................................... 68
7.4. Operadores aritmticos..................................................................................................................................... 69
7.5. Operadores relacionais...................................................................................................................................... 69
7.6. Operadores lgicos ou booleanos..................................................................................................................... 70
7.7. Precedncia de Operadores............................................................................................................................... 71
7.8. EXERCCIOS PROPOSTOS........................................................................................................................... 73
Captulo 8. Estruturas de Controle e Repetio............................................................................................................ 74
8.1. Blocos de controle............................................................................................................................................. 74
8.2. IF e ELSE.......................................................................................................................................................... 74
8.3. Atribuio condicional (ternrio)....................................................................................................... 76
8.4. SWITCH........................................................................................................................................................... 76
8.4.1. SWITCH com BREAK.......................................................................................................................... 77
8.5. WHILE.............................................................................................................................................................. 78
8.6. DO...WHILE..................................................................................................................................................... 79
8.7. FOR................................................................................................................................................................... 80
8.8. FOREACH........................................................................................................................................................ 81
8.9. BREAK............................................................................................................................................................. 82
8.10. CONTINUE.................................................................................................................................................... 83
8.11. EXERCCIOS PROPOSTOS......................................................................................................................... 85
Captulo 9. Manipulao de Arrays.............................................................................................................................. 86
9.1. Criando um Array............................................................................................................................................. 86
9.2. Arrays Associativos.......................................................................................................................................... 87
9.3. Interaes.......................................................................................................................................................... 88
9.4. Acessando um Array......................................................................................................................................... 88
9.5. Alterando um Array.......................................................................................................................................... 89
9.6. Arrays multidimensionais................................................................................................................................. 90
9.7. Funes com Arrays......................................................................................................................................... 92
9.8. EXERCCIOS PROPOSTOS........................................................................................................................... 96
Captulo 10. Manipulaes de Funes........................................................................................................................ 97
10.1. Declarando uma Funo................................................................................................................................. 97
10.2. Escopo de Variveis em Funes................................................................................................................... 98
10.3. Passagem de Parmetro................................................................................................................................... 99
10.4. Valor de Retorno............................................................................................................................................. 100
10.5. Recurso.......................................................................................................................................................... 100
10.6. EXERCCIOS PROPOSTOS......................................................................................................................... 101
Captulo 11. Manipulao de arquivos e diretrios...................................................................................................... 102
11.1. Criando e Abrindo um Arquivo...................................................................................................................... 102
11.2. Gravando em um arquivo................................................................................................................................ 103
11.3. Fechando um arquivo...................................................................................................................................... 104
11.4. Lendo um arquivo........................................................................................................................................... 104
11.5. Copiando,Renomeando e Apagando um Arquivo.......................................................................................... 105
11.6. Manipulando Diretrio.................................................................................................................................... 106
11.7. EXERCCIOS PROPOSTOS......................................................................................................................... 107
Captulo 12. Interaes PHP com HTML..................................................................................................................... 108
12.1. Formulrios .................................................................................................................................................... 108
Elementos de um formulrio........................................................................................................................... 108
12.2. Exemplo de formulrio................................................................................................................................... 110
12.3. Mtodo Post e Get........................................................................................................................................... 112
12.3.1. Mtodo Get.......................................................................................................................................... 112
Recebendo dados via mtodo GET............................................................................................................ 113
12.3.2. Mtodo Post................................................................................................................................................. 114
12.4. Interaes com o Browser............................................................................................................................... 115
12.5. Cookies........................................................................................................................................................... 116
Acessando um cookie:.................................................................................................................................... 118
12.6. Sesso.............................................................................................................................................................. 118
12.7. Requisio de Arquivos......................................................................................................................... 120
12.8. Tratamentos de erro........................................................................................................................................ 121
12.9. EXERCCIOS PROPOSTOS......................................................................................................................... 122
Captulo 13. Introduo ao MySQL............................................................................................................................. 123
13.1. O que o MYSQL?......................................................................................................................... 123
13.2. Trabalhando com MYSQL............................................................................................................................. 123
13.2.1. Estruturas de Dados............................................................................................................................ 124
13.2.2. Criando Banco e Tabelas................................................................................................................... 125
13.2.3. Manipulando dados das tabelas.......................................................................................................... 126
13.3. Trabalhando com PhpMyAdmin..................................................................................................................... 128
13.3.1. Manipulando banco de dados no PhpMyadmin................................................................................. 129
13.4. EXERCCIOS PROPOSTOS......................................................................................................................... 132
Captulo 14. PHP com Banco de dados MYSQL......................................................................................................... 133
14.1. Criando e Selecionando a Conexo................................................................................................................ 133
14.2. Manipulando Dados do Database................................................................................................................... 134
mysql_query................................................................................................................................................... 134
mysql_result................................................................................................................................................... 134
mysql_fetch_array.......................................................................................................................................... 135
14.3. Criao de CRUD........................................................................................................................................... 136
14.4. EXERCCIOS PROPOSTOS ....................................................................................................................... 139
Caro Aluno(a),

Este Material foi criado com o objetivo de ser utilizado na aprendizagem da lgica voltada para
programao, onde ser utilizado a programao estruturada em portugus, tambm chamada de
portugus estruturado ou Portugol. Para auxlio na aprendizagem usaremos a ferramenta
(programa) chamada Visualg.
Ser dividido o contedo em quatro captulos, desde princpios bsicos at algo
mais avanado dentro de um contexto lgico, e que traz ao aluno uma base inicial para futuras
programaes em outras linguagens. As diagramaes desse material foram feitas com o uso da
ferramenta Dia, porm no entraremos em detalhes sobre ela. Vale ressaltar que o contedo aqui
visto, devido a limitao da ferramenta Visualg, no tem aparo completo de seu uso dentro da
ferramenta, mas ser tratado de forma coerente todos os conceitos que sero abordados.
Esperamos que esse material seja um contribuinte para todos aqueles que querem aprender de
forma dedicada e que principalmente tenha um significado importante para inicializao da
formao dos que querem seguir a carreira de programador.
Lgica de Programao 8

Captulo 1. Introduo a Lgica de Programao


Objetivos
Apresentar os conceitos elementares de lgica e sua aplicao no cotidiano;
Definir o que um algoritmo; Estabelecer uma relao entre a lgica e o algoritmo;
Mostrar exemplos de como utilizar a lgica em situaes do dia a dia, apresentando de forma
simples e coerente.

1.1. Noes de Lgica


Lgica algo muito comum na nossa vida, a prova disso o que fazemos durante o dia, pois
mesmo sem perceber usamos a lgica todo momento, por exemplo:
Ao acordamos: Ao acordar, tenho
Tomamos um banho. um algoritmo para
Escovamos os dentes. Fazer o caf?
Tomamos o caf da manh.
Para irmos ao trabalho:
Colocamos uma roupa apropriada.
Pegamos um nibus.
Chegamos no trabalho.

Perceba que podemos detalhar mais coisas a respeito do exemplo anterior, nessa sequncia foi
definida alguns fatos comuns.
Quando queremos chegar a um objetivo final, temos que traar uma lgica coerente que tenha
sentido, onde em uma sequncia lgica temos definido todos os passos que devemos seguir at o
final.

1.2. O que lgica.


Lgica vem do grego clssico logos(), que significa
palavra, pensamento, ideia, argumento, relato, razo lgica ou
princpio lgico. uma parte da filosofia que estuda o
fundamento, a estrutura e as expresses humanas do
conhecimento. A lgica foi criada por Aristteles no sculo IV a.C.
Para estudar o pensamento humano e distinguir interferncias e
argumentos certos e errados.
J que o pensamento a manifestao do conhecimento, e que
o conhecimento busca a verdade, preciso estabelecer algumas
regras para que essa meta possa ser atingida.

1.3. A real lgica do dia a dia.


Sempre que estamos pensando em algo, a lgica nos acompanha. Usamos a lgica quando
falamos ou quando escrevemos para por em ordem o nosso pensamento que est sendo expresso.
A automao o processo em que uma tarefa deixa de ser desempenhada pelo homem e passa a
ser realizada por mquinas, sejam estes dispositivos mecnicos, eletrnicos (como os
computadores) ou de natureza mista. Para que a automao de uma tarefa seja bem sucedida
necessrio que a mquina que ir realiz-la seja capaz de desempenhar cada uma das etapas
constituintes do processo a ser automatizado com eficincia, de modo a garantir a repetio do
mesmo.

Professor Renato Almansa da Silva Curso Tcnico em Informtica


Lgica de Programao 9

Assim, necessrio que seja especificado com clareza e exatido o que deve ser realizado em
cada uma das fases do processo a ser automatizado, bem como a sequncia em que estas fases
devem ser realizadas. A essa especificao da sequncia ordenada de passos que deve ser seguida
para a realizao de uma tarefa, garantindo a sua repetibilidade, d-se o nome de algoritmo. Ao
contrrio do que se pode pensar, o conceito de
algoritmo no foi criado para satisfazer as necessidades da
computao. Pelo contrrio, a programao de computadores
apenas um dos campos de aplicao dos algoritmos. Na
verdade, h inmeros casos que podem exemplificar o uso
(involuntrio ou no) de algoritmos para a padronizao do
exerccio de tarefas rotineiras. No entanto, daqui por diante
a nossa ateno se volta para automao de tarefas
utilizando computadores e para isto definiremos o que lgica
de programao. Os algoritmos so descritos em uma
linguagem chamada pseudocdigo.
Este nome uma aluso posterior implementao em uma linguagem de programao, ou seja,
quando formos programar em uma linguagem, por exemplo Visual Basic, C, C++, Java, etc.,
estaremos gerando nossos cdigo usando a ferramenta VisuAlg.
Exemplo:
Preciso pagar um conta de luz.
O valor da conta e de R$ 45,25 reais.
Portanto preciso de R$ 45,25 reais para pagar a conta.
Pagarei a conta as 3:00h da tarde.
Voltei para casa.

1.4. Lgica de programao.


A lgica de programao necessria para pessoas que desejam trabalhar com desenvolvimento
de sistemas e programas, assim, ela permite definir a sequncia lgica para a criao de
aplicativos. Significa o uso correto das leis do pensamento, da ordem da razo, do processo de
raciocnio e simbolizao formais na programao de computadores. Com isso cria-se tcnicas
que cooperam para a produo de solues logicamente vlidas e coerentes, que resolvam
com qualidade os problemas que se deseja programar.

Ento o que lgica?

Lgica de programao a tcnica de encadear pensamentos para atingir determinado objetivo.


Usar o raciocnio algo abstrato, intangvel. Os seres humanos tm a capacidade de express-lo
atravs de palavras ou escrita, que por sua vez se baseia em um determinado idioma, que segue
uma srie de padres (gramtica). Um mesmo raciocnio pode ser expresso em qualquer um dos
inmeros, mas continuar representando o mesmo raciocnio, usando apenas outra conveno.
Em programao temos vrias linguagens como, java, C, Php,
Python, Delphi dentre muitas outras que existem, porem cada uma
delas tem um padro prprio. Essas por sua vez, so muito atreladas
a uma grade diversidade de detalhes computacionais, mas com o
mesmo raciocnio, seguindo as regras da linguagem, pode ser obtido
o mesmo resultado.

Professor Renato Almansa da Silva Curso Tcnico em Informtica


Lgica de Programao 10

1.5. O que um algoritmo

Um algoritmo formalmente uma sequncia finita de passos que levam a execuo de uma
tarefa. Podemos pensar em algoritmo como uma receita, uma sequncia de instrues que busca
uma meta especfica. Estas tarefas no podem ser redundantes nem subjetivas na sua definio,
logo, devem ser claras e precisas.
Os algoritmos servem como modelo para programas, pois sua linguagem intermediria a
linguagem humana e as linguagens de programao, sendo ento, uma boa ferramenta na
validao da lgica de tarefas a serem automatizadas. Os algoritmos servem para representar a
soluo de qualquer problema, mas no caso do processamento de dados, eles devem seguir as
regras bsicas de programao para que sejam compatveis com as linguagens de programao.
Por esse motivo os algoritmos so independentes das linguagens. Ao contrrio de uma linguagem
de programao, no existe um formalismo rgido de como deve ser escrito o algoritmo.
O algoritmo deve ser fcil de interpretar e fcil de codificar, ou seja, ele deve ser o intermedirio
entre a linguagem falada e a linguagem de programao a qual for definir.
Como exemplos de algoritmos podemos citar os algoritmos das operaes bsicas (adio,
multiplicao, diviso e subtrao) de nmeros reais decimais. Outros exemplos seriam os
manuais de aparelhos eletrnicos, como um DVD player, aparelhos celulares, televisores, que
explicam passo a passo como operar, programar, gravar um evento, listar suas fotos, etc.
At mesmo as coisas mais simples, podem ser descritas por sequncias lgicas. Por exemplo:
Trocar uma lmpada.
Pegar uma escada
Colocar a escada no local certo.
Pegar a lmpada nova
Subir na escada.
Retirar a lmpada velha.
Colocar a lmpada nova.
Descer da escada.
Guardar a escada.
Colocar a lmpada velha no lixo.
Ligar o interruptor para testar.

Somar dois nmeros quaisquer.


Escreva o primeiro nmero no retngulo A
Escreva o segundo nmero no retngulo B
Some o nmero do retngulo A com nmero do retngulo B e coloque o resultado no
retngulo C

1.6. Porque importante construir um algoritmo.

Saber construir algoritmos fundamental na formao de profissionais de informtica ou


computao e como tal, proporcionar condies para essa aprendizagem um constante desafio
aos professores e profissionais da rea.
Um algoritmo tem um papel importante, pois ele determina de que formas podemos resolver um
determinado problema, um programa de computador, por exemplo, desenvolvido com muita
lgica e principalmente um conjunto de algoritmos.
Outra importncia da construo dos algoritmos que uma vez concebida uma soluo
algortmica para um problema, esta pode ser traduzida para qualquer linguagem de programao
e ser agregada das funcionalidades disponveis nos diversos ambientes; costumamos denominar
esse processo de codificao.

Professor Renato Almansa da Silva Curso Tcnico em Informtica


Lgica de Programao 11

1.7. As maneiras de representarmos um algoritmo.

Existem diversas formas de representao de algoritmos, mas no h um consenso com relao a


melhor delas para ser aplicada na resoluo do problema proposto. Algumas formas de
representao de algoritmos tratam os problemas apenas em nvel lgico, abstraindo-se de
detalhes de implementao muitas vezes relacionados com alguma linguagem de programao
especfica. Por outro lado existem formas de representao de algoritmos que possuem uma
maior riqueza de detalhes e muitas vezes acabam por obscurecer as ideias principais do
algoritmo, dificultando seu entendimento. Sendo assim temos as seguintes formas:
Descrio Narrativa;
Fluxograma Convencional;
Pseudocdigo, tambm conhecido como Portugus Estruturado ou Portugol.

1.7.1. Descrio Narrativa.


Nesta forma de representao os algoritmos so expressos diretamente em linguagem natural.
Como exemplo, observe os algoritmos seguintes:

Esta representao pouco usada na prtica porque o uso da linguagem natural muitas vezes da
oportunidade a mas interpretaes, ambiguidades e imprecises.
Por exemplo, a instruo afrouxar ligeiramente as porcas no algoritmo da troca de pneus esta
sujeita a interpretaes diferentes por pessoas distintas. Uma instruo mais precisa seria:
afrouxar a porca, girando-a 30 grau no sentido anti-horrio.
Por mais simples que seja um algoritmo narrativo, pode haver uma grande quantidade de
detalhes, que por sua vez segue um conjunto de regras dentro da sequencia a qual pertencem.

1.7.2. Fluxograma Convencional.

uma representao grfica de algoritmos onde formas geomtricas diferentes implicam aes
(instrues, comandos) distintos. Tal propriedade facilita o entendimento das ideias contidas nos
algoritmos e justifica sua popularidade.
Esta forma aproximadamente intermediria a descrio narrativa e ao pseudocdigo (subitem
seguinte), pois menos imprecisa que a primeira e, no entanto, no se preocupa com detalhes de
implementao do programa, como o tipo das variveis usadas. Nota-se que os
fluxogramas convencionais preocupam-se com detalhes de nvel fsico da
implementao do algoritmo. Por exemplo, figuras geomtricas diferentes so adotadas para
representar operaes de sada de dados realizadas em dispositivos distintos.
Existem diversas ferramentas para criao de fluxograma como Jude, Microsoft Visio, Dia(usado
no linux), dentre outras, cada uma delas tem uma vantagem em particular.

Professor Renato Almansa da Silva Curso Tcnico em Informtica


Lgica de Programao 12

Trabalharemos com o editor de diagrama chamado Dia, onde podemos facilmente instalar no
Linux e sua licena de livre acesso.

Dica: Pesquise o uso dessas ferramentas por meios da internet, amigos ou professores.

Observe as principais formas geomtrica usadas para representao de Fluxogramas


de algoritmos:

Incio ou fim do fluxograma Operao de entrada de dados

Deciso
Operao de atribuio
Operao de sada de dados

Um fluxograma se resume a um nico smbolo inicial por onde a execuo do algoritmo comea,
e um ou mais smbolos finais, que so pontos onde a execuo do algoritmo se encerra. Partindo
do smbolo inicial, h sempre um nico caminho orientado a ser seguido, representando a
existncia de uma nica sequncia de execuo das instrues. Isto pode ser melhor visualizado
pelo fato de que, apesar de vrios caminhos poderem convergir para uma mesma figura do
diagrama, h sempre um nico caminho saindo desta. Excees a esta regra so os smbolos
finais, dos quais no h nenhum fluxo saindo, e os smbolos de deciso, de onde pode haver
mais de um caminho de sada(usualmente dois caminhos), representando uma bifurcao no
fluxo.
O exemplo ao lado representa um fluxograma
convencional, mostrando a representao do algoritmo
de clculo da mdia de um aluno sob a forma de um
fluxograma.
A imagem abaixo uma representao no diagrama de
Chapin. (no abordaremos esse diagrama, nessa
apostila).

Professor Renato Almansa da Silva Curso Tcnico em Informtica


Lgica de Programao 13

1.7.3. Portugus Estruturado ou Pseudocdigo.

Esta forma de representao de algoritmos rica em detalhes, como a definio dos tipos das
variveis usadas no algoritmo. Por assemelhar-se bastante a forma em que os
programas so escritos, encontra muita aceitao. Na verdade, esta representao
suficientemente geral para permitir a traduo de um algoritmo nela representado para
uma linguagem de programao especfica seja praticamente direta. A forma geral da
representao de um algoritmo na forma de pseudocdigo a seguinte:

Algoritmo uma palavra que indica o incio da definio de um algoritmo em


forma de pseudocdigo.
I Nome do programa: um nome simblico dado ao algoritmo com a finalidade de distingui-
los dos demais.
II Var: consiste em uma poro opcional onde so declaradas as variveis globais usadas no
algoritmo principal;
III Incio e Fim: so respectivamente as palavras que delimitam o incio e o trmino do
conjunto de instrues do corpo do algoritmo.
O algoritmo do clculo da mdia de um aluno, na forma de um pseudocdigo, fica da seguinte
forma no visualg:

Professor Renato Almansa da Silva Curso Tcnico em Informtica


Lgica de Programao 14

Dica: O Visual ser a ferramenta que utilizaremos no decorrer do aprendizado, lembrando


que no usaremos todos os recursos disponveis diretamente na ferramenta, uma parte
pratica com programao lgica dentro do Visualg, a outra mostra conceitos que so
logicamente utilizados nas maiorias das linguagens de programao, uma vez que, at
ento, a verso do Visual no abrange praticar todo contedo contido nessa apostila como
registos, manipulao de arquivo, dentre outros.

1.8. EXERCCIOS PROPOSTOS


1) Crie uma sequncia lgica para sacar dinheiro em um caixa eletrnico.
2) Crie uma sequncia lgica para determinar se um numero par ou impar.
3) Crie um fluxograma para as questes um e dois.
4) Dado o fluxograma abaixo determine:
C = capital, ex: R$ 1.000,00

T = tempo em anos, ex: 2 anos


I = Taxa de juros, ex: 5%
o usurio entra com esses valores e sabe quanto e calculado em juros simples.
a)quais as entradas de dados.
b)qual o processo que est sendo executado.
c)qual ser a sada de informao se o usurio digitar 1025, 3, 12.

5) Resolva as seguintes lgicas:


I Um time de futebol ganhou 8 jogos mais do que perdeu e empatou 3 jogos menos do que
ganhou, em 31 partidas jogadas. Quantas partidas o time venceu?
II Uma pessoa supe que seu relgio est 5 minutos atrasado, mas, na verdade, ele est 10
minutos adiantados. Essa pessoa que chega para um encontro marcado, julgando estar 15
minutos atrasada em relao ao horrio combinado, chegou, na realidade, na hora certa em
quantos minutos atrasados?
III Trs msicos, Joo, Antnio e Francisco, tocam harpa, violino e piano. Contudo, no se sabe
quem toca o qu. Sabe-se que o Antnio no o pianista. Mas o pianista ensaia sozinho Tera.
O Joo ensaia com o Violoncelista s Quintas. Quem toca o qu?
IV Existem trs mulheres, Dona Rosa, Dona Branca, Dona Lils, Dona branca diz: as cores de
vestido que estamos usando combinam com nossos nomes, mas no estamos usando a cor do
prprio nome, a pessoa que est de lils diz: verdade, quis as cores que cada uma est usando?
6) Supondo que voc tenha planejado no seu dia posterior ir para o colgio, aps isso pagar uma
conta no banco, aps isso ir trabalhar, crie um algoritmo o mais detalhado possvel
que possa satisfazer todo o planejamento citado:
7) Faa um algoritmo para imprimir um documento. Descreva com detalhes.
8) Faa um algoritmo para colocar um quadro em uma parede. Descreva com detalhes.

Professor Renato Almansa da Silva Curso Tcnico em Informtica


Lgica de Programao 15

Captulo 2. Tpicos Preliminares


Objetivos
Apresentar basicamente alguns tipos de dados a ser implementados e adotados; Falar qual
sua importncia; diferenciar varivel de constante; Apresentar comandos e processo de
entrada.
2.1. Tipos primitivos.

Todo o trabalho realizado por um computador baseado na manipulao das informaes


contidas em sua memria. A grosso modo de expressar-se, estas informaes podem ser
classificadas em dois tipos:
As instrues, que comandam o funcionamento da mquina e determinam a maneira como
devem ser tratados os dados. As instrues so especficas para cada modelo de computador,
pois so funes do tipo particular de processador utilizado em sua implementao.
Os dados propriamente ditos, que correspondem a poro das informaes a serem processadas
pelo computador.

2.1.1. Tipos de Primitivos de Dados

Qual quer dado a ser tratado na construo de um algoritmo deve pertencer a algum tipo, que ir
determinar o domnio de seu contedo. Os tipos mais comuns de dados so conhecidos como
tipos primitivos de dados, so eles: inteiro, real, caractere e lgico. A classificao que ser
apresentada no se aplica a nenhuma linguagem de programao especfica, pelo contrrio, ela
sintetiza os padres utilizados na maioria das linguagens.
Inteiro: todo e qualquer dado numrico que pertena ao conjunto de nmeros inteiros relativos
(negativo, nulo ou positivo). Exemplos: {...4,3,2,1,0,1,2,3,4,...}.
Real: todo e qualquer dado numrico que pertena ao conjunto de nmeros reais (negativo, nulo
ou positivo). Exemplos: {15,34; 123,08; 0,005; 12,0 ; 510,20}.
Numrico: trata-se de todo e qualquer nmero que pertena ao conjunto dos inteiros ou reais,
tambm abrange nmeros binrios, octal e hexadecimal.
Dados literais: todo e qualquer dado composto por um conjunto de caracteres alfanumricos
(nmeros, letras e caracteres especiais). Exemplos: {Aluno Aprovado, 10% de multa,
Confirma a excluso??, S, 9930002, email,123nm,fd54fd}.
Lgico: A existncia deste tipo de dado , de certo modo, um reflexo da maneira como os
computadores funcionam. Muitas vezes, estes tipos de dados so chamados de booleanos,
devido significativa contribuio de Boole a rea da lgica matemtica. A todo e qualquer
dado que s pode assumir duas situaes dados biestveis, algo como, por exemplo, {0/1,
verdadeiro/falso, sim/no, true/false }.
2.2. Constantes.

Uma constante um determinado valor fixo que no se modifica ao longo do tempo, durante a
execuo de um programa. Conforme o seu tipo, a constante classificada como sendo
numrica, lgica e literal.

Nesse exemplo temos o nmero 4 como constante, ou seja, ele nunca se altera.

Professor Renato Almansa da Silva Curso Tcnico em Informtica


Lgica de Programao 16

2.3. Varivel.
Uma varivel um espao reservado na memria do computador para armazenar um tipo de
dado determinado. As variveis devem receber nomes para poderem ser referenciadas e
modificadas quando necessrio. Um programa deve conter declaraes que especificam de que
tipo so as variveis que ele utilizar e s vezes um valor inicial. Tipos podem ser, por exemplo:
inteiros, reais, caracteres, etc. As expresses combinam variveis e constantes para calcular
novos valores.
Veja um exemplo de variveis do tipo carcter e outra do tipo inteiro, ele sero armazenados na
memria:

Veja um exemplo onde atribumos valores as variveis nome e idade:

2.4. Formao de identificadores.

Toda varivel deve possuir um nome para sua identificao dentro de um algoritmo, mas vale
ressaltar que no podemos atribuir qualquer nome a ela, e uma vez atribudo, verificar se ele
um identificador vlido ou no. Na figura abaixo observamos um resumo atravs de um grfico
que segue resumidamente as regras.

Representamos nomes escolhidos para rotular as variveis, procedimentos e funes,


normalmente, obedecem as seguintes regras:
1. O primeiro carcter deve ser uma letra.
2. Os nomes devem ser formados por caracteres pertencentes ao seguinte conjunto:
{a,b,c,..z,A,B,C,...Z,0,1,2,...,9,_}.
3. Os nomes escolhidos devem explicitar seu contedo. EX: A, B1, BC3D,SOMA,
CONTADOR.
Obs.: Um exemplo de identificador invlido seria 2AB ou qualquer outro iniciado por um dgito.
2.5. Declarao de variveis

Toda varivel possui algum contedo, que ser armazenado por ela e manipulado pelo algoritmo.
As variveis que sero utilizadas nos algoritmos devem ser declaradas inicialmente. A
declarao de uma varivel indica o tipo de dado que ela pode guardar no decorrer da
execuo do algoritmo (ou no decorrer da execuo do programa que futuramente ser
construdo).
Para declararmos uma varivel, temos que criar um identificador para ela, que ser o nome da
varivel no algoritmo, e tambm temos que definir o tipo de dado que a varivel pode armazenar.

Professor Renato Almansa da Silva Curso Tcnico em Informtica


Lgica de Programao 17

Faremos a declarao de variveis obedecendo ao seguinte padro:

Portugol: [nome do tipo de varivel] : [ nome da varivel];

Padro Visualg [nome da varivel] : [ nome do tipo de varivel]

Percebemos que existem duas diferenas na declarao das variveis do Portugol em relao a do
Visual, que justamente a troca de posies e a ausncia de ponto e vrgula.

Exemplo:

Visualg Portugol
alunos : caracter caracter : alunos;
valor : inteiro inteiro : valor;
b : real real : b;

2.6. Comandos de entrada e sada.

Em um algoritmo preciso representar a troca de informaes que ocorrer entre o mundo da


mquina e o nosso mundo, para isso, devemos utilizar comandos de entrada e sada, sendo que, a
nvel de algoritmo esses comandos representam apenas a entrada e a sada da informao,
independe do dispositivo utilizado (teclado, discos, impressora, monitor,...), mas, sabemos que
nas linguagens de programao essa independncia no existe, ou seja, nas linguagens de
programao temos comandos especficos para cada tipo de unidade de Entrada/Sada.
2.6.1. COMANDO DE ENTRADAS DE DADOS

Para que possamos obter dados do meio exterior para uso do computador (memria principal),
estes tm de vir atravs dos dispositivos de entrada. Da mesma forma, as informaes que so
produzidas, tm de ser levadas ao meio externo (um arquivo, uma impressora, uma tela etc.)
atravs de um dispositivo de sada. Para isso, utilizamos dois comandos assim definidos:
Comando leia tem a finalidade de l, do meio externo, a prxima informao disponvel para
leitura e armazena na(s) varivel(eis) discriminada(s) aps o comando, entre parnteses. Mais
tarde aprenderemos como especificar a leitura de um dado que est armazenado em um arquivo e
de que arquivo est sendo lido o dado.

Exemplo: leia (v) O valor da varivel (v) dado por um dispositivo de entrada.

Professor Renato Almansa da Silva Curso Tcnico em Informtica


Lgica de Programao 18

2.6.2. COMANDO DE SAIDAS DE DADOS


Comando escreva ou escreval: Imprime (na tela ou na impressora) o contedo da(s)
varivel(eis) especificada(s) aps o comando, entre parnteses. No ser preocupao nossa a
formatao de relatrios, mas o comando permite a impresso de texto (entre ), se for
necessria para clareza ou especificao do que est sendo impresso.

Exemplo: escreva(x) O valor atual da varivel (x) informado para um dispositivo de sada.

Vale ressaltar que em linguagens de programao geralmente termina um comando com ponto
e vrgula (;), mas para o uso do Visualg no precisamos usar (;) para fechar comando, uma vez
que isso ocorre de forma automtica.

.Exemplo: escreva(x) O valor atual da varivel (x) informado para um dispositivo de sada.

em Visualg: numero : inteiro


Portugol: inteiro : numero;

Tambm podemos concatenar valores no comando de sada. Isso varia muito de uma linguagem
para outra, por exemplo:

Ao executar (tecla de atalho F9) isso imprime na tela resultado seguinte:

Esse exemplo ao lado utilizamos os a


subtrao de dois nmeros e logo aps
imprimimos o resultado na tela.

Professor Renato Almansa da Silva Curso Tcnico em Informtica


Lgica de Programao 19

Exemplo com o comando leia e escreva:


Sada da Execuo

Utilizamos o escreval quando queremos uma quebra de linha, troque por escreva e perceba o
que acontece:

2.7. Expresses aritmticas.


Quando construmos algoritmos comum trabalharmos com expresses matemticas para a
resoluo de alguns problemas. As expresses matemticas podem fazer uso de operadores
aritmticos e relacionais. As variveis (ou constantes) manipuladas pelos operadores so
chamadas de operandos. Observe o diagrama:

Exemplos:

A+B (A e B so os operados, e + o operador da expresso).


((2 * A) + 5)
(B/A)
((A//2)*B) 15

Professor Renato Almansa da Silva Curso Tcnico em Informtica


Lgica de Programao 20

2.8. Operadores aritmticos

Chamamos de operadores aritmticos o conjunto de smbolos que representa as operaes


bsicas da matemtica.

Para representa potencia e radiciao, utilizamos:


Operador Funo Significado Exemplos
^ Potenciao X elevado a y 2^8
raizQ Radiciao Raiz quadrada de x raizQ(3)

Exemplo Cdigo fonte Sada da Execuo

Usaremos outras operaes matemticas no convencional, porem muito uteis na construo de


algoritmos que so o resto e o quociente da diviso inteira, conforme abaixo.
Operador Funo Exemplos
mod Resto da diviso 9 mod 4 resolta em 1
div Quociente da diviso 9 div 4 resulta em 2

Exemplo Algoritmo que possui as 4 operaes


Sada da Execuo

Professor Renato Almansa da Silva Curso Tcnico em Informtica


Lgica de Programao 21

Algoritmo que calcula o quociente e resto de uma diviso:

Cdigo fonte. Sada da execuo.

2.9. Expresses lgicas


As expresses lgicas sempre retornaram True (Verdadeiro) e False (Falso). Para se montar
expresses lgicas utilizamos de operadores relacionais e operadores lgicos.
Visualg Portugol
a <- verdadeiro a <- verdadeiro;
b <- falso b <- falso;

2.10. Operadores relacionais


So utilizados para relacionar variveis ou expresses, resultando num valor lgico (Verdadeiro
ou Falso), sendo eles mostrados na tabela abaixo:

Obs.: utilizamos somente o = no lugar de ==, e < > no lugar de !=, mas isso somente no
Visualg.
Exemplos:
Comparaes:
num != 3 {compara se num diferente de 3,se for igual retorna falso}
nome = DENISE {compara se nome igual a DENISE ,se for retorna verdadeiro}
num > 5 falso (0) {3 no maior que 5}

Algoritmo abaixo mostra o uso desses operadores relacionais.


Cdigo-fonte. Sada da execuo.

Professor Renato Almansa da Silva Curso Tcnico em Informtica


Lgica de Programao 22

2.11. Operadores lgicos.


So utilizados para avaliar expresses lgicas. Estes operadores servem para avaliar expresses
que resultam em valores lgico sendo verdadeiro ou falso:

Esses operadores tem a finalidade de novas proposies lgicas composta a partir de outra
proposies lgicas simples. Observe:

Operador Funo
no Negao
e Conjuno
ou Disjuno

Exemplo:
cdigo-fonte.

2.12. Comando de atribuio


O operador de atribuio utilizado para atribuir valores aos identificadores (variveis e
constantes) e na montagem de expresses (aritmticas, lgicas e literal).
Com isso podemos definir sempre que um tipo de dado deve ser compatvel com o tipo da
varivel.
A figura abaixo mostra em diagrama a sua sintaxe:

O valor da expresso atribudo ao identificador (varivel).

X <- 2 y <- 5-x Z <- (3*(y- 9)) w <- (4*((w+2y)/2)*x)

Professor Renato Almansa da Silva Curso Tcnico em Informtica


Lgica de Programao 23

Este comando permite que se fornea ou altere o valor de uma determinada varivel, onde o tipo
desse valor seja compatvel ao tipo de varivel na qual est sendo armazenado, de acordo com o
especificado na declarao.
Exemplo:
NUM <- 8 {A varivel NUM recebe o valor 8}
NOME <- Guilherme {A varivel NOME recebe o valor Guilherme}

2.12.1. PRIORIDADE DE OPERADORES:


Durante a execuo de uma expresso que envolve vrios operadores, necessrio a existncia
de prioridades, caso contrrio poderemos obter valores que no representam o resultado
esperado. A maioria das linguagens de programao utiliza as seguintes prioridades de
operadores:
1. Efetuar operaes embutidas em parnteses "mais internos".
2. Efetuar Funes.
3. Efetuar multiplicao e/ou diviso.
4. Efetuar adio e/ou subtrao.
5. Operadores Relacionais.
6. Operadores Lgicos
2.13. EXERCCIOS PROPOSTOS
1) Como podemos definir o conceito de tipos primitivos de dados.
2) Cite alguns tipos primitivos e der exemplos.
3) Qual a diferena entre constantes e variveis.
4) Como podemos definir a formao de um identificador vlido? crie cinco identificadores no
Visualg (o nome devera ser uma nica letra e aps isso os tipos).
5) Crie o seguinte cdigo no Visualg e diga qual o resultado final.

6)Crie um programa no onde podemos receber dois nmeros digitados pelo usurio no final ele
some os nmeros e imprima o resultado.
7)Dado a formula:

Crie um programa para calcular a formula de Bhaskara. Onde no final mostre ao usurio x1 e x2
separadamente.
Dica: o usurio digita trs valores, a, b e c, o programa ter duas variveis para receber o
calculo, x1 e x2. Para calcular raiz quadrada use o comando raizQ(x) onde x o numero que
tem valor inteiro, atribua o resultado da raiz a soma e depois a subtrao.
ex: b raizQ(25) , b recebe 5,pois raiz de 25, e b deve ser do tipo real.

Professor Renato Almansa da Silva Curso Tcnico em Informtica


Lgica de Programao 24

8) Crie um diagrama onde podemos representar o programa da questo 7.


9) Crie um programa que receba pelo usurio o nome, ano de nascimento, ano atual, e calcule a
idade, mostrando a seguinte sada ex: meu nome Janana e tenho 23 anos de idade.
10) crie um diagrama para representao da questo 9.
11) usando o comando o tipo de dado logico do Visualg, teste os operadores relacionais. ex: a :
logico , a 12 <=5 ,escreva(a).

Professor Renato Almansa da Silva Curso Tcnico em Informtica


Lgica de Programao 25

Captulo 3. Estruturas de Controle


Objetivos
Mostrar conceitos e estrutura sequencial de fluxo, em etapas lgicas, onde se pode assimilar suas
variaes, combinaes e equivalncias; Apresentar estruturas de repetio e sua aplicao.

As estruturas de controle de dado so responsveis pela manipulao dos dados conforme seja
necessrio na realizao de um processamento. Cada instruo programvel possui uma lgica
de operao e estabelece uma sequencia de aes a serem efetuadas ou verificadas.
Quando estivermos criando os algoritmos sero necessrias s manipulaes de dados
respeitando a sequencia lgica de cada comando, buscando sempre alcanar os objetivos
almejados pelos algoritmos. Basicamente as estruturas de controle de dados so de trs tipos
principais:
Sequencial: conjunto de comandos separados por ponto e vrgula (;) que so executados em uma
sequncia linear de cima para baixo.
Seleo: a partir de um teste condicional, uma instruo, ou um conjunto de instrues, podem
ser executados ou no, dependendo exatamente do resultado do teste efetuado.
Repetio: uma instruo ou o conjunto de instrues que ser executado repetidamente, de
acordo com o resultado de um teste condicional.
3.1. Estrutura sequencial.
A estrutura sequencial a mais convencional entre todas as possveis, pois ela consiste na
execuo de uma instruo de cada vez, onde o encerramento da primeira instruo permite o
acionamento da instruo seguinte, respeitando a ordem de cima para baixo.
Observe o exemplo a seguir: O mesmo exemplo no Visualg fica:

Declaraes
real NOTA;
Inicio
escreva("Informa a nota da prova: ");
leia(NOTA);
escreva("Nota =", NOTA);
Fim

O algoritmo proposto no exemplo anterior descritivo e respeita as regras de organizao e


sintaxe do portugus estruturado. Porm, qual a primeira instruo a ser executada neste
algoritmo?
Ele ser executado de maneira sequencial, onde a partir da palavra reservada Declaraes s
instrues vo sendo executadas de cima para baixo e a prxima instruo s executada aps a
anterior ser encerrada. O ponto e vrgula marca exatamente o final da instruo a ser executada,
no caso dos comandos do Visualg vale lembrar que suas instrues no finalizam com ponto e
vrgula, pois ao passar pra prxima linha o programa reconhece como finalizao da instruo
anterior.
1. Primeira execuo ser a criao da varivel NOTA.
2. Segunda ser a escrita da mensagem que orienta o usurio.
3. Na terceira ser armazenado o valor informado pelo usurio.
4. A quarta e ltima mostrar uma mensagem e o valor lido
Professor Renato Almansa da Silva Curso Tcnico em Informtica
Lgica de Programao 26

importante observar que sempre ser executado primeiro o bloco de declaraes e na sequencia
o bloco de instrues. A execuo da palavra reservada Fim encerra a execuo do algoritmo.

3.2. Estrutura de seleo.


Este tipo de estrutura permitir a escolha de um caminho sequencial a ser executado.
Primeiramente, ela efetua um teste condicional que definir o caminho de execuo do algoritmo
baseado no resultado deste teste.
Os testes condicionais so baseados na lgica convencional, podem obter o resultado de
verdadeiro ou falso. Estes testes podem ser efetuados sobre operaes relacionais simples ou
com expresses lgicas complexas que resultem em um valor lgico (verdadeiro ou falso).
As estruturas de seleo podem ser classificadas de 4 formas diferentes, sendo esta classificao
baseada na organizao lgica existente em cada situao. Esta classificao se resume em:

> Seleo simples.


> Seleo composta.
> Seleo encadeada.
> Seleo de mltipla escolha.

3.2.1. Seleo Simples


Neste tipo de seleo proposto um teste condicional, que sendo verdadeiro possibilitar a
execuo de uma instruo ou um conjunto de instrues (bloco condicional) especfica.

Portugus estruturado:
Acompanhe a seguir as regras de representao em algoritmo para a tcnica descritiva do
portugus estruturado.
Sintaxe:
:
se (<condio>) ento
comando 1;
comando 2;
:
:
comando n;
fim se;

Exemplo No Visualg

Declaraes
inteiro IDADE;
Inicio
escreva("Informe sua idade: ");
leia(IDADE);
se (IDADE < 15) ento
escreva ("Voc uma criana");
fim se;
Fim

Professor Renato Almansa da Silva Curso Tcnico em Informtica


Lgica de Programao 27

Este algoritmo ser executado sequencialmente at chegar ao comando SE (comando condicional


SE) que realizar o teste condicional para verificar a veracidade do valor informado pelo usurio
e armazenado na varivel IDADE.
Se ela for verdadeira, ou seja, for menor que 15 a mensagem "Voc uma criana" ser mostrada
na tela. Se o valor informado pelo usurio no atender ao teste condicional, a mensagem no ser
exibida e o bloco condicional no ser executado.

Fluxograma:
Abaixo temos no fluxograma o smbolo que representa uma deciso ou seleo e a seguinte:

As suas vrtices indica qual a sada caso ela for

Deciso Verdadeira ou falsa.

Acompanhe a seguir a representao em algoritmo na tcnica grfica do fluxograma:

INICIO

Inteiro IDADE

Exerccio rpido:
escreva (informe 1) Crie um algoritmo que leia um
sua idade:) nmero e diga se ele maior ou menor
que 10.
2) Crie um algoritmo que leia dois
nmeros e determine qual o maior
Leia (IDADE) entre eles, imprimindo na tela (o
primeiro nmero o maior, o
segundo nmero e o maior ) de acordo
com o valor digitado.
F
IDADE < 15

V
escreva (voc e
uma criana)

FIM

Professor Renato Almansa da Silva Curso Tcnico em Informtica


Lgica de Programao 28

3.2.2. Seleo Composta


A seleo composta sempre executar um bloco condicional, pois se o resultado do teste
condicional for verdadeiro um conjunto de instrues ou somente uma ser executada e se o
resultado no for verdadeiro um outro conjunto de instrues, ou somente uma, ser executada
tambm.
Este tipo de seleo sempre identificar um nico caminho de instrues a ser percorrido,
dependendo sempre do resultado da veracidade do testes condicional executado.
Sintaxe:

:
se (<condio>) ento
comando 1;
:
comando n;
seno
comando 5;
:
comando m;
fim se;

Exemplo: no Visualg

Declaraes
inteiro idade;
Inicio
escreva("Informe sua idade: ");
leia(idade);
se (idade < 15) ento
escreva ("Voc uma criana");
seno
escreva("Voc adulto");
fim se;
Fim

Se a idade informada for menor que 15 ento a mensagem a classificar como uma criana,
seno a mensagem apresentada ser que Voc adulto.

Professor Renato Almansa da Silva Curso Tcnico em Informtica


Lgica de Programao 29

Veja como o fluxograma que representa o cdigo anterior abaixo:

INICIO

Inteiro IDADE Exerccio rpido:


1) Crie um algoritmo que leia
sua idade e diga se voc de
maioridade ou de menoridade.
escreva (informe 2) Crie um algoritmo que um
sua idade:) nmero, caso ele seja menor que
0, transforme ele em positivo, se
no, imprima seu valor na tela.

Leia (IDADE)

V F
IDADE < 15

escreva (voc e escreva (voc e


uma criana) adulto)

FIM
3.2.3. Seleo encadeada
A instruo de seleo (SE) pode ser encadeada uma dentro da outra, seja no bloco verdadeiro
(ento) ou falso (seno). Todas as instrues programveis podem estar dentro de qualquer um
dos blocos da instruo de seleo.
O encadeamento destas instrues tambm chamada de aninhamento de instrues de seleo
ou condicional vrias, no existindo um limite de quantos testes condicionais podem estar dentro
de outro. Quem estabelece este tipo de limite a soluo lgica proposta no algoritmo para
alcanar uma soluo eficiente.
Sintaxe:

se (<condio_1>) ento
<bloco de comandos 1>;
seno
se (<condio_2>) ento
<bloco de comandos 2>;
seno
se (<condio_3>) ento
<bloco de comandos 3>;
fim se;
fim se;
fim se;

Professor Renato Almansa da Silva Curso Tcnico em Informtica


Lgica de Programao 30

Exemplo no Visualg

Declaraes
inteiro idade;
Incio
escreva("Informe sua idade: ");
leia(idade);
se (idade < 20) ento
se(idade < 15) ento
escreva ("Voc criana");
seno
escreva ("Voc adolescente");
fim se;
seno
se(idade < 50) ento
escreva("Voc adulto");
seno
escreva("Voc velho");
fim se;
fim se;
Fim

Fluxograma
INICIO

Inteiro IDADE

escreva (informe
sua idade:)

Leia (IDADE)

F F
IDADE < 20 IDADE < 50
V
V
F
IDADE < 15
escreva (voc e escreva (voc e
V adulto) velho)

escreva (voc e uma escreva (voc e


criana) adolecente)

FIM

Exerccio Rpido
1) Crie um algortimo que receba os trs lados(A,B,C) de um tringulo e diga de
ele tringulo escaleno(todos os lados diferente), issceles(somente dois lados
iguais) ou equiltero(todos os lados iguais).
2) Dado trs variveis, crie um algoritmo que determine quem a maior, a
intermediaria e a menor.

Professor Renato Almansa da Silva Curso Tcnico em Informtica


Lgica de Programao 31

3.3. Seleo de mltipla escolha.


Uma outra instruo condicional, muito utilizada nas avaliaes de igualdade, a seleo de
mltipla escolha. Ela verifica somente a igualdade do valor avaliado, onde sua veracidade
resultar na execuo de um bloco, ou de uma nica instruo especfica.
Sintaxe:

:
escolha (X)
caso <v1>:
comandos;
caso <v2>:
comandos;
caso <v3>:
comandos;
caso
contrario:
comandos;
fim escolha;

<v1>, <v2>, <v3> so supostos valores a serem relacionados por meio da operao de igualdade.
Exemplo:

Declaraes
inteiro estao;
Inicio
escreva("Digite o perodo trimestral do ano em que estamos: ");
leia(estao);
escolha (estao) { instruo de mltipla escolha sobre estao}
caso 1: escreva ("vero"); { testes de igualdades sobre estao }
caso 2: escreva ("outono");
caso 3: escreva ("inverno");
caso 4: escreva ("primavera");
caso contrario: escreva ("perodo invlido");
fim escolha;
Fim

No Visualg

Professor Renato Almansa da Silva Curso Tcnico em Informtica


Lgica de Programao 32

Temos algumas diferenas de sintaxe, onde uma delas a ausncia de dois pontos aps caso, a
outra o comando outrocaso que no portugol representado por casocontrario.

3.4. Estruturas de repetio.


O processamento de valores pode ocorrer diversas vezes sobre uma mesma lgica, porm os
dados a serem manipulados podem ser diferentes, como no calculo da tabuada de um nmero.
Este calculo realiza a mesma operao de multiplicao sobre os valores numricos inteiros
sequencias, normalmente iniciados em um (1) e seguindo at o nmero dez (10) quando estamos
aprendendo a calcular e memorizar o resultado obtido nesta operao.
Sendo assim, Vamos criar um algoritmo que leia um nmero positivo e apresente o resultado de
sua tabuada de um a dez (1 10). Observe o exemplo proposto:

Exemplo:
Supondo que o valor Soluo (algoritmo descritivo):
desejado seja 2 ento:

2x1=2
2x2=4
2x3=6
2x4=8
2 x 5 = 10
2 x 6 = 12
2 x 7 = 14
2 x 8 = 16
2 x 9 = 18
2 x 10 = 20

Para o desenvolvimento acima foi desenvolvido um algoritmo que atende ao problema


apresentado, mas se os valores tivessem que ser gerados ate 1000? Assim o algoritmo no ficaria
mais complexo, pois a operao a ser realizada seria a mesma, e ele ficaria bem maior. Adiante
veremos a soluo para esse problema.

Dica: os laos de repetio so conhecidos em ingls como loops ou loopin

3.5. Repetio com teste no incio e no final.

3.5.1. TESTE INCIO


Com o intuito de controlarmos as manipulaes necessrios sobre os dados armazenados,
tambm podemos utilizar as instrues de repetio, que permitem a repetio de uma operao
quantas vezes forem necessrias, baseando esta repetio no resultado de um teste condicional.
Para isso temos a estrutura enquanto <condio> faa. A instruo de repetio
ENQUANTO...FAA permite a execuo do conjunto de comandos pertencentes ao seu bloco
de repetio, sendo eles executados a partir de um teste condicional verdadeiro. Enquanto este
teste permanecer verdadeiro a repetio executada continuamente, sendo encerrada somente
quando a condio for falsa.

Professor Renato Almansa da Silva Curso Tcnico em Informtica


Lgica de Programao 33

Sintaxe:

:
enquanto (< condio >) faa
<bloco de repetio>; { com um ou vrios comandos }
fim enquanto;

Exemplo (descritivo): No Visualg

Declaraes
real nota, media;
inteiro aux;
Incio
aux 1;
media 0;
enquanto aux < 50 faca
escreva("Informe sua nota: ");
leia(nota);
media media + nota;
aux aux + 1;
fim enquanto
escreva("Mdia da turma = ",media /50);
Fim

Fluxograma

Observe ao lado a representao genrica em um algoritmo grfico usando o ENQUANTO


...FAA.

Exerccio rpido:
1) Crie um algortimo que conte de 1 at 100.
2) Crie um algortimo que receba 10 nmeros
e imprima na tela aps cada digitao.
3) Crie um programa que conte de 1 a 52.

Professor Renato Almansa da Silva Curso Tcnico em Informtica


Lgica de Programao 34

3.5.2. TESTE FINAL


Para o teste final temos a instruo REPITA ... AT, onde possui caractersticas relevantes na
sua lgica de execuo. As principais caractersticas dessa instruo so:

O teste condicional para realizar a repetio sobre o bloco de instrues existente entre a
palavra reservada REPITA e ATE executado somente no final do bloco, conforme a
organizao sequencial do algoritmo.
O bloco entre as duas palavras reservadas desta instruo ser executado no mnimo uma
vez.
A repetio executada somente se o teste condicional for falso, pois sendo ele
verdadeiro a repetio encerrada.
Sintaxe:

:
repita
<bloco de repetio>; {com um ou vrios comandos}
at (<condio>);
:

Exemplo (descritivo): No Visualg:

Declaraes
real nota, media;
inteiro aux;
Incio
aux 1;
media 0;
repita
escreva("Informe sua nota: ");
leia(nota);
media media + nota;
aux aux + 1;
at (aux > 50);
escreva("Mdia da turma = ",media /50);
Fim

Usando a representao grfica, vamos observar o mesmo exemplo usando a instruo REPITA
... AT.
O bloco de repetio vai ser executado at a condio for maior que 50.

Professor Renato Almansa da Silva Curso Tcnico em Informtica


Lgica de Programao 35

Observe Fluxograma ao lado:

Exerccio rpido:
1) Crie um algortimo que leia um
nmero e mostre vrios * na tela de
acordo com esse nmero. Ex: 10 vai
imprimir **********.
2) Crie um algoritmo que leia dois
nmeros e mostre o intervalo entre eles.
Ex: 5 e 12 vai mostra: 6,7,8,9,10,11.

3.6. Repetio com varivel de controle.


Na estrutura de repetio vista at agora, ocorrem casos que fica difcil determinar o nmeros de
vezes que um bloco vai executar. Ou seja, ser executado enquanto a condio for satisfatria.
A instruo de repetio PARA ... FAA executa um conjunto de instrues por uma quantidade
de vezes bem definidas (conhecidas).

Sintaxe:

:
para X de i at f passo p faa

<comandos>;

fim para;

Onde:
X uma varivel inteira que auxiliar na contagem da repetio iniciada com o valor i at o valor
final de f ,p o valor do incremento dado a varivel X.
O problema da tabuada, apresentado anteriormente, pode ser solucionado com o algoritmo que
usa eficientemente a instruo de repetio para ... faa.

Professor Renato Almansa da Silva Curso Tcnico em Informtica


Lgica de Programao 36

Soluo da tabuada (descritiva):

Declaraes
inteiro valor, contador;
Incio
escreva ("Informe o valor desejado: ");
leia(valor);
para contador de 1 at 10 passo 1 faa
escreval(valor, " x ",contador," = ", ( valor * contador) );
fim para;
Fim

No Visualg:

Vamos acompanhar outro exemplo na aplicao desta instruo de repetio.

Exemplo (descritivo): No Visualg:

Declaraes
real nota, soma, media;
inteiro aux;
Incio
soma <- 0;
para aux de 1 at 50 passo 1 faa
escreva("Informe sua nota: ");
leia(nota);
soma<- soma + nota;
fim para;
media <- soma / 50;
escreva ("Mdia da turma = ", MEDIA);
Fim

Neste exemplo, a repetio, ou looping, realizado pela instruo para ... faa efetua a leitura e a
soma de 50 notas de alunos de uma turma, apresentando no seu final a mdia desta turma.

Professor Renato Almansa da Silva Curso Tcnico em Informtica


Lgica de Programao 37

Fluxograma:
Acompanhe a seguir o algoritmo grfico da
soluo descrita anteriormente em portugus
estruturado.

Exerccio rpido:
1) Faa um algoritmo que receba 10
nmeros e imprima somente os 5
primeiros.
2) Faa um algoritmo que imprima
somente nmeros pares de 2 at 20.

3.7. Comparao entre estruturas de repetio.


As estruturas de repetio possuem uma forma diferenciada para controlar a quantidade de
repeties a serem executadas. Estes controles podem ser genericamente classificados
em automtico ou controlado pelo usurio do programa.
AUTOMTICO: Uma varivel auxiliar contar de quantas vezes ser executado o conjunto
de comandos (bloco de repetio), sem interferncia direta do usurio. O bloco ser
repetido sempre a quantidade de vez prevista pelo desenvolvedor do programa.
CONTROLADO PELO USURIO: O programa sempre respeitar a solicitao do
usurio, executando um bloco de repetio quantas vezes forem solicitadas pelo usurio,
respeitando a lgica existente no programa desenvolvido.
Na tabela a seguir podemos ver um comparativo de estruturas de repetio;
Estrutura Condio Quantidade de execuo Condio de existncia
Enquanto Inicio 0 ou muitas Condio verdadeira
Repita Final Mnimo 1 Condio falsa
Para No tem ((vf - vi) div p) + 1 v < = vf
Onde:
V varivel de controle
Vi e o valor inicial da varivel de controle
Vf e o valor final da varivel
P e o valor o incremento dado a varivel

Professor Renato Almansa da Silva Curso Tcnico em Informtica


Lgica de Programao 38

Diagrama:

enquanto

repita

para

Repare que a estrutura para a mais complexa, uma vez que acontece vrios processos no
mesmo, as estruturas repita e enquanto so muito semelhantes. A diferena est na ordem da
expresso e ao, pois em repita a expresso lgica testada no final, ou seja, a ao executa
pelo menos uma vez.

Comparao da sintaxe:

enquanto
enquanto aux < 50 faca
.......
fim enquanto

repita
repita
......
at (aux > 50);

para
para aux de 1 at 50 passo 1 faa
.....
fim para;

Professor Renato Almansa da Silva Curso Tcnico em Informtica


Lgica de Programao 39

Veja um exemplo de um programa feito com as trs estruturas:

Repare que a varivel aux iniciada varias vezes pois a cada lao de repetio
incrementado um novo valor, no caso de 1 at o numero 10.

3.8. EXERCCIOS PROPOSTOS


1) Quais os trs tipos de estruturas de dados, e diga qual a principal diferena entre elas.
2) Quais as estruturas de seleo, defina cada uma delas.
3) Usando estrutura de seleo crie um algoritmo no Visualg onde o usurio digite 4 notas de
um aluno e mostre no final a mdia dizendo ao usurio se ele foi aprovado ou reprovado.
4) Usando escolha crie um algoritmo onde o usurio digite um numero de 1 a 7,aps isso
imprima a seguinte frase, ex: a opo escolhida foi a de nmero 5.
5) Crie um fluxograma para a questo 4 de acordo com a forma resolvida.
6) Defina qual a principal finalidade de uma estrutura de repetio.
7) Crie um algoritmo no visual que receba dois nmeros, o primeiro devera ser digitado por
uma pessoa, o outro por outra pessoa, o intuito do algortimo e verificar se o segundo usurio
chutou o numero prximo do primeiro ou no, caso ele acerte o chute imprima na tela(use a
estrutura se para comparar).
8) usando estrutura de repetio enquanto,crie um algortimo no Visualg que conte de 1 at 20.
9) Agora com os mesmos cdigos da questo 9, faa um algortimo que, ao chegar em 20
comece a contar de novo(acrescente a estrutura se para reinicializar a varivel) .
10)Crie um algortimo onde o usurio entre com o tempo em minutos,aps isso ele imprima na
tela uma contagem regressiva(use qualquer estrutura de repetio).
11)Faa um algortimo onde o usurio entre com numero e imprima a tabuada
daquele numero(use qualquer estrutura de repetio).
12) Dada a expresso H= 1/1+3/2+5/3+7/4+.....+99/50,crie um algoritmo que mostre o
valor final de H.
13) Crie um algoritmo que o usurio entre com um numero e ele diga se par ou impar(use
qualquer estrutura de comparao)..
14) Crie um programa que mostre toda a tabuada de 1 at 9 (use qualquer
estrutura de repetio).
Professor Renato Almansa da Silva Curso Tcnico em Informtica
Lgica de Programao 40

Captulo 4. Estruturas de Dados


Objetivos
Mostrar a manipulao de vetores e matrizes em sua aplicao; Mostrar aplicabilidade dessas
estruturas visando somente o conceito de registros(uma vez que no existe registos nas verses
atuais do Visualg).

4.1. O que estruturas de dados.


So organizaes de dados construdas a partir da composio dos tipos primitivos j existentes
(caractere, inteiro, real, lgico). Esses novos tipos de dados podem armazenar um conjunto de
dados conhecidos como variveis compostas. As variveis que armazenam esses tipos de dados
podem ser classificadas em: variveis compostas homogneas e variveis compostas
heterogneas.
As variveis compostas so estruturas de dados (armazenam um conjunto de dados) homogneos
ou heterogneas. Esses dados podem ser armazenados em dois tipos de variveis: as
variveis unidimensionais (conhecidas como vetores) e as variveis multidimensionais
(conhecidas como matriz).
O diagrama abaixo mostra as regras sintticas, supondo que o valor a ser atribudo um conjunto
de informaes:

Lembrando que estas regras podem mudar de acordo com a linguagem. Veja a
forma estruturada utilizada no Visualg.

Declarao:

Inicializao:

4.2. Variveis compostas homogneas.


As estruturas de dados homogneas permitem agrupar diversas informaes dentro de uma
mesma varivel. Este agrupamento ocorrer obedecendo sempre ao mesmo tipo de dado, e por
esta razo que estas estruturas so chamadas homogneas. A utilizao deste tipo de
estrutura de dados recebe diversos nomes, como: variveis indexadas, variveis
compostas, variveis subscritas, arranjos, vetores, matrizes, tabelas em memria ou arrays.
Os nomes mais usados para essas estruturas homogneas so: matrizes (genrico) e vetores
(matriz de uma linha e vrias colunas).
Exemplos:
Alcateia (vrios lobos), conjunto de nmeros inteiros, lista de contatos, time de futebol, o
vetor notas, que armazena o conjunto de notas da primeira e outros.

Professor Renato Almansa da Silva Curso Tcnico em Informtica


Lgica de Programao 41

4.3. Variveis compostas unidimensionais.


So variveis que necessitam de apenas um ndice para individualizar um elemento do conjunto
que so chamado de vetores. Os vetores so usados nos casos em que um conjunto de dados do
mesmo tipo precisa ser armazenado em uma mesma estrutura.

Exemplo:

1. Guardar 20 nmeros diferentes em um mesmo tipo de varivel.


2. Lista de palavras em uma mesmo tipo de varivel.
3. 50 Mdias de alunos em um mesmo tipo de varivel.

Diagrama:

Diagrama da estrutura no Visualg:

onde:
Li = representa o limite inicial do vetor.
Lf = representa o limite final do vetor.
Tipo primitivo: representa qualquer uns dos tipos bsicos de dados.

4.4. Declarao e manipulao(unidimensional).


Ao imaginar o elevador de um prdio sabemos que este capaz de acessar qualquer um de seus
andares. Entretanto, no basta saber que andar desejamos atingir se no soubermos o nome do
edifcio, pois qualquer um possui andares. O que precisamos de antemo saber o nome do
edifcio e s ento nos preocuparmos para qual daqueles andares queremos ir. O mesmo acontece
com os vetores, visto que so compostos por diversas variveis e, como podem existir muitos
vetores, torna se necessrio determinar qual vetor contm o dado desejado e depois especificar
em qual posio este se encontra. O nome do vetor determinado por meio do identificador que
foi utilizado na definio de variveis, e a posio, por meio da constante, expresso aritmtica
ou varivel que estiver dentro dos colchetes, tambm denominada ndice. Aps isolar um nico
elemento do vetor, poderemos manipul-lo atravs de qualquer operao de entrada, sada ou
atribuio.

Professor Renato Almansa da Silva Curso Tcnico em Informtica


Lgica de Programao 42

A sintaxe do comando de definio de vetores a seguinte:

Portugol: <nome do tipo de varivel> : [ nome da varivel] <expresso>;

Padro Visualg: [nome da varivel] : vetor[<valor do ndice>] de [ tipo de varivel]

Observe:

Declarao convencional : tipo: nome[n];

Declarao no Visualg: nome : identificador[n]de tipo

n e o tamanho do vetor
Exemplo:

real: media[40];
inteiro: valor[100];
alunos : vetor[0..50] de caracter
dias : vetor[0..31] de inteiros

4.4.1. Leitura de Dados de Uma Matriz do Tipo Vetor


A leitura de um vetor feita passo a passo, ou seja, um de seus componentes por vez usando a
mesma sintaxe da instruo primitiva da entrada de dados, onde alm do nome da varivel
deve ser explicitada a posio do componente lido.

Sintaxe:

leia(<nome_da_varivel> [ <ndice> ]);

Veja uma figura onde representamos um vetor de 10 posies onde cada uma guarda uma nota
diferente. Para recuperarmos o valor guardado, devemos fazer uma chamada do nome do vetor
passando pra ele qual a posio queremos. Vale lembrar que se passarmos um ndice invlido
ocorrer um erro no algoritmo.

notas : vetor[1..10] de real


escreva( notas[6] )

Professor Renato Almansa da Silva Curso Tcnico em Informtica


Lgica de Programao 43

Uma observao importante a ser feita a utilizao da construo para a fim de efetuar a
operao de leitura repetidas vezes em cada uma delas, lendo um determinado componente do
vetor. De fato esta construo muito comum quando se opera com vetores, devido
necessidade de se realizar uma mesma operao com os diversos componentes dos mesmos. Na
verdade, so raras as situaes que se deseja operar isoladamente com um nico componente do
vetor.
Um vetor uma estrutura de dados indexada, ou seja, cada valor pode ser acessado atravs de
um ndice, o qual corresponde a uma posio no vetor os ndices so valores inteiros e positivos
(0, 1, 2, 3,...); em outras palavras, uma posio especfica do vetor pode ser acessada diretamente
atravs do seu ndice.
Abaixo temos o exemplo de uma operao com para, onde temos um vetor notas de 5 posies e
cada uma ser atribuda o valor de 1*10 at 5*10 logo aps a leitura:

atribuio: leitura

4.5. Variveis compostas multidimensionais.


So as variveis que necessitam mais de um ndice para a individualizao de seus elementos. As
variveis multidimensionais podem ser bidimensionais, onde o primeiro elemento representa a
linha e o segundo a coluna. Podem ainda ser tridimensionais, onde o elemento representa a
pgina (face).
Diagrama:

Diagrama da estrutura no Visualg:

onde:
Li = representa o limite inicial do vetor.
Lf = representa o limite final do vetor.
V = vetor.
Vn = nmeros de vetores.
Tipo primitivo: representa qualquer uns dos tipos bsicos de dados.
Professor Renato Almansa da Silva Curso Tcnico em Informtica
Lgica de Programao 44

Dica: Cada vetor separado por virgula, com isso formamos uma matriz.

4.6. Declarao e manipulao (multidimensionais).


Para declarar uma matriz multidimensional temos que definir quantas dimenses a mesma vai
possuir. Cada matriz vai ser composta por dois ou mais vetores.

Sintaxe da declarao:

tipo IDENTIFICADOR = matriz [LI1..LF1, LI2..LF2, ..., LIn..LFn] de <tipo>;

Onde:
LI1..LF1, LI2..LF2, ..., LIn..LFn : So os limites dos intervalos de variao dos ndices da
varivel, onde cada par de limites est associado a um ndice; <tipo> : representa qualquer um
dos tipos bsicos ou tipo anteriormente definido; lista de variveis : lista de variveis (separadas
por vrgula) que tero o mesmo tipo denotado por IDENTIFICADOR.
Exemplo:
tipo SALA = matriz [1..4, 1..4] de inteiro;
tipo M = matriz [1..3, 1..5, 1..4] de inteiro;

No Visualg:
notas : vetor [1..2,1..5] de inteiro
alunos : vetor[1..3,1..20] de caracter

Veja um Exemplo onde temos o seguinte cdigo:

Professor Renato Almansa da Silva Curso Tcnico em Informtica


Lgica de Programao 45

Observe que no cdigo temos uma matriz com duas dimenses onde cada dimenso um vetor.
Alm disso, essa matriz guardada em uma varivel chamada dados, onde ela representa tanto o
nome como a rua de uma determinada pessoa.

4.7. Variveis compostas heterogneas.


J sabemos que um conjunto homogneo de dados composto de variveis do mesmo tipo
primitivo, porm se tivssemos um conjunto em que os elementos no so do mesmo tipo,
teramos ento um conjunto heterogneo de dados.
Considerando que os andares de um prdio so divididos em apartamentos temos uma estrutura
multidimensional. Para localizarmos um indivduo 4 neste prdio precisaremos de seu nome, o
andar e o nmero do apartamento. Considerando uma estrutura bidimensional (dois ndices:
andar e apartamento), o primeiro ndice indica a linha e o segundo, a coluna.

O elemento hachurado referenciado por MSALA [2, 3].


4.8. Registros (declarao e manipulao).
Uma das principais estruturas de dados o registro. Para exemplificar, imagine uma passagem de
nibus, que formada por um conjunto de dados logicamente relacionados, porm de tipos
diferentes, tais como nmero da passagem (inteiro), origem e destino (caractere), data
(caractere), horrio (caractere), poltrona (inteiro), distncia (real), que so subdivises do
registro (elementos do conjunto), tambm chamadas de campos. Logo, um registro composto
por campos que so partes que especificam cada um dos dados.
Observe o seguinte formulrio abaixo:

Uma das principais estruturas de dados o registro. Para exemplificar imagine uma identificao
de passageiro, ou seja, aquele formulrio de informaes que o passageiro entrega ao motorista
antes de embarcar no nibus junto com a passagem. Ela formada por um conjunto de
informaes logicamente relacionadas, porm de tipos diferentes tais como nmeros de
passageiros(inteiro), idade(inteiro) e o nome do passageiro(caracteres) que so subdivises do
registro (elementos do conjunto), tambm chamadas de campo.
Um registro composto por campos que so partes que especificam cada uma das informaes
que o compe. Uma varivel do tipo registro uma varivel composta, pois engloba um conjunto
de dados e heterognea (cada campo pode ser de um tipo primitivo diferente).

Professor Renato Almansa da Silva Curso Tcnico em Informtica


Lgica de Programao 46

Diagrama:

Dica: No existe registro no Visualg, portanto para programao do mesmo usa-se outras
linguagens que sero visto nos mdulos mais adiante.

4.9. Registros de conjuntos (declarao e manipulao).

Para usarmos um registro precisamos primeiramente definir em detalhes como constitudo o


tipo construdo, especificando todos os campos e depois, declarar uma ou mais variveis,
associando os identificadores de variveis ao identificador do tipo registro. Nas estruturas
composta homogneas (vetores e matrizes ) utilizamos tipos de dados primitivos como sendo os
elementos dessas estruturas. Agora utilizaremos como componentes dessa estrutura no
apenas um tipo primitivo mas tambm os tipos construdos, neste caso os registros.
Sintaxe da declarao:

tipo IDENTIFICADOR = registro


tipo1 : campo1;
tipo2 : campo2;
. .
. .
tipon :campon;
fimregistro;
INDENTIFICADOR : lista de variveis;

Onde:
IDENTIFICADOR: representa o nome associado ao tipo registro construdo; tipo1, tipo2, tipon :
representam qualquer um dos tipos bsicos ou tipo anteriormente definido; campo1,
campo2, campo: representam nomes associados a cada campo do registro; lista de variveis:
lista de variveis (separadas por vrgula) que tero o mesmo tipo denotado por
IDENTIFICADOR.
Declarao: Como possumos um vetor composto de registros, no podemos declarar esse vetor
sem antes ter definido a estrutura de dados de seus elementos(registros);devemos ento definir
primeiro o tipo construdo registro e depois o vetor.

tipo REGPASSAGEM = registro


inteiro : numero, poltrona;
caractere: origem, destino,
data, horrio;
real: distncia;
fimregistro;
REGPASSAGEM : PASSAGEM;

Professor Renato Almansa da Silva Curso Tcnico em Informtica


Lgica de Programao 47

O exemplo corresponde definio de um modelo REGPASSAGEM de um registro e criao


de uma rea de memria chamada PASSAGEM, capaz de conter sete subdivises.

Manipulao:
A manipulao de um registro de conjuntos deve obedecer as manipulaes prprias de cada
estrutura de dados anteriormente definida. Para utilizar um campo especfico do registro,
devemos diferenciar esse campo. Para tal utilizamos o caractere . (ponto) para
estabelecer a separao entre o nome do registro e o nome do campo.

Podemos aplicar uma leitura ou uma escrita direta no registro:

leia(PASSAGEM);
escreva(PASSAGEM);

Exemplo utilizando o registro PASSAGEM:

incio
{definies anteriores}
.
.
leia(PASSAGEM.numero);
leia(PASSAGEM.origem);
.
.
escreva(PASSAGEM);
fim

4.10. EXERCCIOS PROPOSTOS

1) Diga com suas palavras qual a principal finalidade de uma estrutura de dados.
2) Qual a diferena de variveis compostas homogneas para variveis compostas heterogneas.
3) Qual a diferena de variveis compostas unidimensionais para variveis compostas
multidimensionais.
4) Como podemos definir o conceito de registro.
5) Crie um algoritmos que leia um vetor com 20 nmeros de 1...20 e escreva na tela cada um
deles, use escreval (escrever com quebra de linha).
6) Crie um algoritmo que leia 30 nmeros de 1... 30 e gere um segundo vetor para receber os
mesmos, porm de maneira invertida, mostre na tela os dois vetores.
7) Crie um algortimo que leia 10 nmeros digitados pelo usurio e diga qual foi o maior
numero, use dois vetores de mesmo tipo.
8) Crie um algoritmo que tenha uma matriz 2 x 3 com base nisso faa:
a) O preenchimento de cada linha digitada pelo usurio.
b) A soma das 2 linhas separadamente.
c) A soma das 3 colunas separadamente.
d) A soma total da matriz.

Professor Renato Almansa da Silva Curso Tcnico em Informtica


Lgica de Programao 48

10) Observe o seguinte registro:

responda:
a) Quantos campos do tipo inteiro o registro possui.
c) Quantos campos do tipo caracter o registro possui.
d) Declare a forma desse registro em cdigo.
c) Com uma folha de papel criem um algortimo onde o usurio digite todas essas informaes e
logo aps ele escreva essas informaes na tela.

Professor Renato Almansa da Silva Curso Tcnico em Informtica


Caro Aluno(a),

Este material tem como objetivo abordar o uso da tecnologia de programao web PHP e a base
de dados MYSQL. Alm disso, mostrar a sintaxe e exemplos prticos dos principais comandos.
Ser dividido o contedo em dez captulos, onde, sete deles so dedicados a tecnologia PHP, um
direcionado a tecnologia HTML com PHP, um a comandos SQL voltados para banco de dados
MYSQL, e outro para associao das trs tecnologias. Alm disso em alguns captulos temos
exerccios rpidos para fixao do contedo visto e ao final de cada captulo, uma lista de
exerccios propostos.
No falaremos de ferramentas de edio, onde fica a critrio do aluno escolher juntamente com o
seu instrutor qual a ferramenta mais adequada, porem informamos que todas as
imagens e testes executados em nessa apostila teve como base o uso da ferramenta netbeans para
PHP.
PHP e MySQL 51

Captulo 5. Introduo a PHP


Objetivos
Fazer uma apresentao da linguagem PHP e um pouco da historia; Mostrar quais requisitos
necessrios para instalao e configurao de um servidor web para PHP e banco de dados MYSQL.

5.1. O que PHP


PHP significa: Hypertext Preprocessor. O produto foi originalmente chamado de Personal Home
Page Tools, mas como se expandiu em escopo um nome novo e mais apropriado foi escolhido por
votao da comunidade. Voc pode utilizar qualquer extenso que desejar para designar um arquivo
PHP, mas os recomendados foram *.php , *.phtml. O PHP est atualmente na verso 5.3.3,
chamado de PHP5 ou, simplesmente de PHP, mas os seus desenvolvedores esto trabalhando para
lanamento da verso 6, que causa uma preocupao para os programadores do mundo todo, uma
vez que, algumas funcionalidades antigas deixam de funcionar quando passaram da verso 4 para a
5.

PHP uma linguagem de criao de scripts embutida em HTML no servidor. Os


produtos patenteados nesse nicho do mercado so as Active Server Pages(ASP) da Microsoft, o
Coldfusion da Allaire e as Java Server Pages da antiga Sun que foi comprada pela Oracle. PHP s
vezes chamado de o ASP de cdigofonte aberto porque sua funcionalidade to
semelhante ao produto/conceito, ou o que quer que seja, da Microsoft.
Exploraremos a criao de script no servidor, mais profundamente, nos prximos captulos, mas, no
momento, voc pode pensar no PHP como uma coleo de supertags de HTML que permitem
adicionar funes do servidor s suas pginas da Web. Por exemplo, voc pode utilizar PHP para
montar instantaneamente uma complexa pgina da Web ou desencadear um programa
que automaticamente execute o dbito no carto de crdito quando um cliente realizar uma compra.
Observe uma representao de como PHP e HTML se comportam:

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 52

O PHP tem pouca relao com layout, eventos ou qualquer coisa relacionada aparncia de uma
pgina da Web. De fato, a maior parte do que o PHP realiza invisvel para o usurio final. Algum
visualizando uma pgina de PHP no ser capaz de dizer que no foi escrita em HTML, porque o
resultado final do PHP HTML.
O PHP um mdulo oficial do servidor http Apache, o lder do mercado de servidores Web livres
que constitui aproximadamente 55 por cento da World Wide Web. Isso significa que o mecanismo
de script do PHP pode ser construdo no prprio servidor Web, tornando a manipulao de dados
mais rpida. Assim como o servidor Apache, o PHP compatvel com vrias plataformas, o que
significa que ele executa em seu formato original em vrias verses do UNIX e do Windows. Todos
os projetos da Apache Software Foundation incluindo o PHP so software de cdigofonte
aberto.
5.1.1. Um pouco da Histria do PHP.
Rasmus Lerdorf, engenheiro de software, membro da equipe Apache o criador e a fora motriz
original por trs do PHP. A primeira parte do PHP foi desenvolvida para utilizao pessoal no final
de 1994. Tratavase de um wrapper de PerlCGI que o auxiliava a monitorar as
pessoas que acessavam o seu site pessoal. No ano seguinte, ele montou um pacote chamado de
Personal Home Page Tools (tambm conhecido como PHP Construction Kit) em resposta
demanda de usurios que por acaso ou por relatos falados depararamse com o seu trabalho. A
verso 2 foi logo lanada sob o ttulo de PHP/FI e inclua o Form Interpreter, uma ferramenta para
analisar sintaticamente consultas de SQL. Em meados de 1997, o PHP estava sendo utilizado
mundialmente em aproximadamente 50.000 sites.
Obviamente estava se tornando muito grande para uma
nica pessoa administrar, mesmo para algum concentrado e
cheio de energia como Rasmus. Agora uma pequena equipe
central de desenvolvimento mantinha o projeto sobre o
modelo de junta benevolente do cdigofonte aberto,
com contribuies de desenvolvedores e usurios em todo o
mundo. Zeev Suraski e Andi Gutmans, dois programadores
israelenses que desenvolveram os analisadores de sintaxe PHP3 e
PHP4, tambm generalizaram e estenderam seus trabalhos sob a
rubrica de Zend.com (Zeev, Andi, Zend, entendeu?).
O quarto trimestre de 1998 iniciou um perodo de crescimento
explosivo para PHP, quando todas as tecnologias de cdigofonte
aberto ganharam uma publicidade intensa.
Em outubro de 1998, de acordo com a melhor suposio, mais de 100.000 domnios nicos
utilizavam PHP de alguma maneira. Um ano depois, o PHP quebrou a marca de um milho de
domnios. Enquanto escrevo esta apostila, o nmero explodiu para cerca de dois milhes de
domnios.
5.2. Instalao do Servidor PHP
As requisies so feita de forma cliente servidor, onde um determinado cliente faz
uma requisio a um servidor, ele por sua vez recebe a requisio e faz todo o processo em
diferentes camadas, retornando somente o que o cliente(browser) solicitou.
Para o funcionamento do PHP necessrio a instalao de um servio dentro de um sistema
operacional, esse servio e proporcionado atravs do Apache que compatvel com o protocolo
HTTP. Alm disso preciso instalar a verso do PHP5 para um funcionamento mais compatvel
com as maioria das pginas PHP. Outro servio o banco de dados, onde futuramente
estaremos trabalhando com ele. O banco de dados que usaremos o MYSQL.
Normalmente essa instalao chamada de LAMP(Linux, Apache, MYSQL, PHP) voltada para
sistemas operacionais Linux, como tambm WAMP(Windows, Apache, MYSQL, PHP) voltada
para sistemas operacionais Windows. Ser visto a instalao do LAMP uma vez que esse material e
voltado para Linux Educacional e por se tratar de uma instalao mais complicada, e tambm a
ferramenta phpMyAdmin usada para administrar banco de dados MYSQL.
Professor Renato Almansa da Silva Curso Tcnico em Informtica
PHP e MySQL 53

5.2.1. Instalao Apache.


O apache um dos principais aplicativo para o funcionamento de programas web feito em PHP,
existe duas grandes verses, o apache 2.x e o Apache 1.3, que apesar de antigo ainda muito
utilizado em servidores. O Apache 2 trouxe muitas vantagens, sobretudo do ponto de vista do
desempenho alm de oferecer novos mdulos e mais opes de segurana. Mas sua adoo foi
retardada nos primeiros anos por um detalhe muito simples: o fato de ele ser incompatvel com os
mdulos compilados para o Apache 1.3. Como os mdulos so a alma do servidor web, muitos
administradores ficavam amarrados ao Apache 1.3 devido falta de disponibilidade de alguns
mdulos especficos para o Apache 2.
Iremos trabalhar com o Apache2 em sua verso para Linux, o procedimento de instalao simples
pois precisamos apenas de uma conexo com a internet e alguns comando, outra forma de
instalao e baixando o mesmo no site: http://httpd.apache.org/ e instalando de forma manual.
Para instalarmos precisamos abrir o konsole atualizar o nosso repositrio do Linux:
Digite sudo su,ou sudo e o nome do usurio root para ter permisses dentro do Konsole, logo aps
como o computador em rede com a internet atualize os repositrios:
#aptget update
Apartir de agora podemos instalar o apache:
#aptget install apache2
Espere at a concluso de toda instalao. Por padro o apache automaticamente inicializa,
podendo ser utilizado aps isso. Digite no http://127.0.0.1/ ou http://localhost/ no browser,
dever aparecer a seguinte tela:

Isto mostra que o apache estar funcionando corretamente. Trata-se de um texto dentro de um
arquivo HTML que vem como padro dentro da pasta var/www , essa a pasta principal do
apache, onde trabalharemos com os arquivos PHP.
O apache pode ser configurado de forma que podemos acessar mais de uma pgina com ip's ou
portas diferentes, ou seja podemos ter www1,www2 em uma mesma maquina servidora fazendo
acesso por endereos como http://localhost:8060 ou http://localhost:82, entre outros. Mas
trabalharemos apenas com a configurao padro do apache, uma vez que existe muito contedo a
respeito desse assunto na internet. Para obter mais informaes consulte a documentao do site
oficial do apache: http://httpd.apache.org/docs/2.2/

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 54

5.2.2. Instalao Php5.


Para o funcionamento dos programas em PHP precisamos de algumas dependncias,
onde funcionalidades, funes, classes e suporte a XML ento embutidas. Por exemplo, se voc
quiser utilizar orientao a objeto ou simplesmente fazer uma conexo com o banco
de dados, necessrio a instalao do PHP5, onde algumas bibliotecas sero instaladas para dar
suporte aos programas em PHP.
Aps instalar do apache e com o konsole logado como root podemos instalar o PHP5 com o
seguinte comando:
#aptget install php5
Aps a concluso da instalao, podemos testar criando um arquivo dentro da pasta
var/www.
Entre na pasta principal:
cd /var/www
Renomeie o arquivo index.html para outro nome:
#mv index.html nome.html
Qualquer arquivo com o nome index dentro da pasta www ser o primeiro arquivo a ser
executado. Lembrando que pode existir somente um arquivo index na pasta. Aps renomear
criaremos um novo arquivo.
#kate index.php
Aps executar esse comando, digite o seguinte cdigo no editor de texto kate:

Nesse momento estamos criando uma aplicao PHP que chama a funo phpinfo() que tem
como finalidade mostra informaes sobre configurao do PHP.
Abra o Browser e digite http://localhost/, se tudo estiver correto, observaremos seguinte tela:

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 55

5.2.3. Instalao MYSQL.


Agora veremos a instalao do banco de dados MYSQL, onde trabalharemos com essa base de
dados nos captulos finais dessa apostila.
Logando no konsole como root digite o seguinte comando:
#aptget install mysqlserver

Obs: em certo momento aparecer uma tela pedindo a senha de root do banco de dados, digite a senha
que o seu instrutor definir, logo aps confirme a senha digitando a novamente.

Para testarmos o nosso banco de dado utilize o seguinte comando:


#mysql u root p
u pede o usurio no caso o usurio do banco o root.
p pede a senha logo em seguida.
Se tudo sair como planejado voc devera logar no banco de dados:
mysql>
para sair digite exit e der um enter:

5.2.4. Instalao phpMyAdmin.


Instalaremos agora uma ferramenta para gerenciamento do banco de dados MYSQL.
O phpMyAdmin uma ferramenta feita em PHP, onde podemos executar de forma visual muitos
dos comandos usados no MYSQL. Podese tambem configurar o prprio SGBD
(Sistema de gerenciamento de banco de dados).
O primeiro passo para instalao estar logado no konsole como usurio root(sudo su, ou sudo e
o nome do usurio root).
Use o seguinte comando para instalar o phpMyAdmin:
#aptget install phpmyadmin
Logo aps aparecer uma tela pedindo a senha do banco de dados, justamente aquela que foi
digitada quando estava instalando o MYSQL.
Espere a instalao concluir.
Agora precisamos copiar o phpMyAdmin pra dentro da pasta var/www com o seguinte comando:
cp r /usr/share/phpmyadmin/ /var/www/
r copia o diretrios recursivamente(substituindo caso j exista).
Para acessar essa ferramenta digite no Browser: http://localhost/phpmyadmin, digite login: root,
e a senha do banco de dados que foi definida na instalao do MYSQL, se tudo estiver
correto temos a seguinte tela como mostra abaixo:

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 56

5.3. Caractersticas de um programa PHP.


Assim como qualquer linguagem de programao, o PHP tem algumas caractersticas
importantes, ao criamos um arquivo PHP podemos usar a seguinte extenso:
*.php Arquivo PHP contendo um programa.
*.class.php Arquivo PHP contendo uma classe(veremos o conceito de classe mais adiante).
*.ini.php Arquivo PHP a ser includo, pode incluir constantes ou configuraes.

Outras extenses podem ser encontradas principalmente em programas antigos:

*.php3 Arquivo PHP contendo um programa PHP verso 3.


*.php4 Arquivo PHP contendo um programa PHP verso 4.
*.phtml Arquivo PHP contendo um programa PHP e HTML na mesma pgina.

Vale ressaltar que o smbolo asterisco (*) simboliza qualquer nome a ser atribudo ao arquivo PHP.
Alm disso o cdigo de um programa escrito em PHP deve estar contido entre os
seguintes delimitadores:

ou

Ambos delimitadores so vlidos, porm para o funcionamento do segundo delimitado


necessrio a ativao dessa opo no apache.
Dica: Em alguns servidores apache a ativao do short_open_tag necessria,
passando o seu valor de 0 (desativado) para 1 (ativado), porm por padro o seu valor 1, o
mesmo encontrado no arquivo php.ini.

Outro fator importante para quem est programando sempre ter boas tcnicas de programao,
entre elas podemos citar os comentrios nos cdigos fonte, sempre e aconselhvel comentar os
trechos mais importantes, onde tanto o programador quanto outra pessoa ao analisar o cdigo,
possa identificar pelos comentrios trechos importantes que possa ser alterados ou no.
Para comentar uma nica linha nos cdigo PHP podemos utilizar tanto o separador // como
tambm #, observe o exemplo abaixo:

Lembrando que os comentrios so trechos de cdigo que no so executados, onde eles servem
somente para quem tem acesso aos cdigosfonte ou est ligado diretamente a programao desse
cdigo. Podemos tambm comentar muitas linhas, isso serve quando queremos que boa parte do
Professor Renato Almansa da Silva Curso Tcnico em Informtica
PHP e MySQL 57

cdigo no execute ou simplesmente colocar um comentrio mais extenso, observe o


exemplo abaixo:

ou

5.3.1. COMANDOS DE SADA(OUTPUT)


So comandos utilizados para gerar uma sada em tela(output). Se o programa PHP
for executado via servidor de pginas web(Apache ou IIS), a sada ser exibida na prpria pgina
HTML gerada no Browser(navegador), assim ser mostrado de acordo com o contedo existente na
sada, por exemplo, se tivermos o seguinte: <h2> Hello Word! <h2>, ser mostrado
no navegador apenas a mensagem Hello Word! em um tamanho maior, pois tratase de um cdigo
HTML dentro de comandos PHP.
Podemos ento usar os seguintes comandos para gerar comandos de sada: echo e print.
echo
um comando que imprime uma ou mais variveis ou textos, onde os mesmos so colocados em
aspas simples ' ' ou duplas . Sintaxe:
echo 'a','b','c';
resultado:
abc
print

uma funo que imprime uma String(texto) no console. Exemplo:


print( ' apostila de PHP ' );
resultado:
apostila de PHP

Observe um exemplo com o uso de echo e print:


Cdigo: Sada no Browser:

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 58

5.4. EXERCCIOS PROPOSTOS

1) Como podemos definir PHP e qual a sua relao com HTML.


2) Descreva um exemplo estrutural relacionando tag's HTML e delimitaes PHP.
3) Quais aplicativos bsicos podemos instalar para criarmos um servidor de pginas em PHP.
4) Em relao ao apache, qual a sua principal finalidade.
5) Quais as principais extenses de arquivos PHP e diga a diferena entre elas.
6) Crie dois exemplos de cdigo PHP usando seus delimitadores.
7) Qual as finalidades de usar comentrios dentro de um cdigofonte.
8) Cite os principais comandos de sada usados em PHP.
9) Qual a diferena entre echo e print.
10) Observe o seguinte cdigo e diga qual o item correto:

<?php
//pgina web.
echo '<h1>Ol, essa sua primeira pgina!<h1>';
echo '<h2>Responda!</h2>' print 'O que PHP?';
print 'Qual sua finalidade?'; echo '<h4>Resposta: item a!</h4>';

?>

I Esse cdigo pode ser interpretado pelo apache normalmente.


II As tag's HTML so interpretadas pelo servidor.
III Esse cdigo possui erros.
IV As tag's so interpretada pelo navegador do cliente.

a) I,II,IV esto corretas.


b) somente a I est correta.
c) III, IV esto correta.
d) somente IV est correta.
e) I e IV esto corretas.
Prtico:
11) Crie um arquivo PHP dentro da pasta www com o nome index.php, aps isso pegue o cdigo
anterior e adicione a esse arquivo, defina quais textos so visualizadas em seu navegador. Caso
exista erros,faa uma correo.
12) Crie dois arquivos diferentes, um com nome index.php, outro com o nome teste.php, aps
isso inclua o arquivo teste.php dentro do arquivo index.php, ambos arquivos dever ter no seu
cdigo impresso mensagens diferentes utilize o comando print.

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 59

Captulo 6. Atribuies em PHP


Objetivos
Mostrar a definio de variveis e os seus tipos; Mostrar como podese atribuir um valor a ela, seu
uso e aplicao em PHP; Mostrar o definio de constantes e sua importncia.

6.1. Variveis

Variveis so identificadores criados para guardar valores por determinado tempo. Em PHP elas so
declaradas e inicializadas, porm so armazenadas na memria RAM do servidor web. Esse um
dos motivos pelo qual os servidores precisam de grande quantidades de memria.
Imagine um servidor com mais de 20 mil acessos simultneos ao mesmo tempo, onde cada usurio
est acessando a mesma pgina feita em PHP. So criadas neste processo variveis
diferentes para cada usurio, logo, isso faz com que muitos processos sejam gerados e processados
pelo servidor.
A tipagem em PHP dinmica, ou seja, as variveis no precisam ser obrigatoriamente
inicializadas aps a declarao. Uma varivel inicializada no momento em que feita a primeira
atribuio. O tipo da varivel ser definido de acordo com o valor atribudo. Esse um fator
importante em PHP, pois uma mesma varivel pode ser de um mesmo tipo ou no, e pode assumir
no decorrer do cdigo um ou mais valores de tipos diferentes.
Para criar uma varivel em PHP, precisamos atribuir-lhe um nome de identificao,
sempre procedido pelo caractere cifro ($). Observe um exemplo:

Para imprimirmos as duas variveis usamos aspas duplas no comando echo, no exemplo anterior
temos a seguinte sada:

Obs.: Podem acontecer erros na exibio das mensagens por conta das codificaes de
acentuao. Caso isso acontea, mude a codificao do seu navegador ou utilize as metas
de codificao.

Algumas dicas Importantes:


Nomes de variveis devem ser significativa e transmitir a ideia de seu contedo dentro
do contexto no qual est inserido.
Utilize preferencialmente palavras em minsculo (separadas pelo caracter _) ou somente as
primeiras letras em maisculo quando da ocorrncia de mais palavras.
Nunca inicie a nomenclatura de variveis com nmeros. Ex: $1nota;
Professor Renato Almansa da Silva Curso Tcnico em Informtica
PHP e MySQL 60

Nunca utilize espao em branco no meio do identificados da varivel. Ex: $nome um;
Nunca utilize caracteres especiais( ! @ # ^ & * / | [ ] { } ) na nomenclatura das variveis.
Evite criar variveis com mas de 15 caracteres em virtude da clareza do cdigofonte.

Exemplo:
<?PHP
$codigo_cliente; //exemplo de varivel
$codigoCliente; //exemplo de varivel
?>

Com exceo de nomes de classes e funes, o PHP case sensitive, ou seja, sensvel a letras
maisculas e minsculas. Tome cuidado ao declarar variveis. Por exemplo a varivel $codigo
tratada de forma totalmente diferente da varivel $Codigo.Em alguns casos, precisamos ter em
nosso cdigofonte nomes de variveis que podem mudar de acordo com determinada situao.
Neste caso, no s o contedo da varivel mutvel, mas tambm variante (variable
variables). Sempre que utilizarmos dois sinais de cifro ($) precedendo o nome de uma varivel, o
PHP ir referenciar uma varivel representada pelo contedo da primeira.
Nesse exemplo, utilizamos esse recurso quando declaramos a varivel $nome (contedo de
$varivel) contendo 'maria'.

Resultado = maria.
Quando uma varivel atribuda a outra, sempre criada uma nova rea de armazenamento na
memria. Veja neste exemplo que, apesar de $b receber o mesmo contedo de $a, aps qualquer
modificao em $b, $a continua com o mesmo valor, veja:

Para criar referncia entre variveis, ou seja, duas variveis apontando para a mesma regio da
memria, a atribuio deve ser precedida pelo operador &. Assim, qualquer alterao em qualquer
uma das variveis reflete na outra, veja:

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 61

No exemplo anterior percebemos que tanto $a como $b apontam para a mesma referncia na
memoria, dessa forma se atribuirmos um novo valor em $a ou em $b, esse valor ser gravado no
mesmo endereo, fazendo com que, ambas variveis possam resgatar o mesmo valor.

6.2. Tipos de Variveis


Algumas linguagens de programao tem suas variveis fortemente tipadas, diferentemente disso
o PHP tem uma grande flexibilidade na hora de operar com variveis. De fato, quando definimos
uma varivel dando-lhe um valor, o computador atribui-lhe um tipo. Isso permite que o
programador no se preocupe muito na definio de tipos de variveis, uma vez que isso feita de
forma automtica. Porm deve ter cuidado com as atribuies de valores, evitando erros na hora de
iniciar uma varivel em PHP.
6.2.1. Tipo booleano.
Um booleano expressa um valor lgico que pode ser verdadeiro ou falso. Para especificar um valor
booleano, utilize a palavrachave TRUE para verdadeiro ou FALSE para falso. No exemplo a seguir,
declaramos uma varivel booleana $exibir_nome, cujo contedo TRUE(verdadeiro). Em seguida,
testamos o contedo dessa varivel para verificar se ela realmente verdadeira imprimindo na tela
caso seja. Usaremos a estrutura IF, uma estrutura de controle que veremos com mais detalhes no
capitulo 4, para testar a varivel. Observe:

Resultado = 1 (esse valor representa verdadeiro ou true).


Tambm podemos atribuir outros valores booleanos para representao de valores falso
em operao booleanas.
Inteiro 0 ;
Ponto flutuante 0.0 ;
Uma String vazia ou 0 ;
Um array vazio ;
Um objeto sem elementos ;
Tipo NULL .

6.2.2. Tipo inteiro


So os nmeros que pertencem ao conjunto dos nmeros inteiros, abrangendo valores negativos e
positivos, trata-se de valores decimais.

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 62

6.2.3. Tipo ponto flutuante:


Os nmeros de ponto flutuante (floats e doubles) so nmeros com casas decimais, onde a vrgula
substituda por um ponto. Exemplo:

6.2.4. Tipo numrico


Nmeros podem ser especificados em notao decimal (base 10), hexadecimal (base 16) ou octal
(base 8), opcionalmente precedido de sinal ( ou +), esse tipo abrange todos os valores abaixo:

No entraremos em detalhes em relao a converso desses valores, porm que fique claro a ideia
de que uma varivel numrica pode assumir diferentes tipos de valores.

6.2.5. Tipo String


Uma string uma cadeia de caracteres alfanumricos. Para declar-las podemos utilizar aspas
simples ( ' ' ) ou aspas duplas ( ). Exemplo:

Observe na tabela abaixo o que podemos tambm inserir em uma String:


Sintaxe Significado
\n Nova linha
\r Retorno de carro (semelhante a \n)
\t Tabulao horizontal
\\ A prpria barra ( \ )
\$ O smbolo $
\ Aspa simples
\ Aspa dupla
Observe o exemplo:

Resultado: \tipo de dado: 'inteiro'

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 63

6.2.6. Tipo array


Array uma lista de valores armazenados na memria, os quais podem ser de tipos diferentes
(nmeros, strings, objetos) e podem ser acessados a qualquer momento, pois cada valor
relacionado a uma chave. Um array tambm pode crescer dinamicamente com a adio de novos
itens. Veja no capitulo 6 como manipular esse tipo de estrutura.
6.2.7. Tipo objeto
Um objeto uma entidade com um determinado comportamento definido por seus mtodos (aes)
e propriedade (dados). Para criar um objeto deve-se utilizar o operador new. Para mais
informaes sobre orientao a objeto, consulte o site http:// php.net e pesquise sobre object.
6.2.8. Tipo recurso
Recurso (resource) uma varivel especial que mantm uma referncia de recursos externos.
Recursos so criados e utilizado por funes especiais, como uma conexo ao banco de dados. Um
exemplo a funo mysql_connect(), que ao conectar-se ao banco de dados, retorna um varivel de
referncia do tipo recurso. Exemplo:

Resource mysql_connect(...)
Outro exemplo:
mysql_fetch_row(...)

6.2.9. Tipo null


Quando atribumos um valor do tipo null(nulo) a uma varivel estamos determinando que a mesma
no possui valor, e que seu nico valor nulo. Exemplo:
$abc = null;

6.3. Constantes
6.3.1. Constantes pr-definidas
O PHP possui algumas constantes pr-definidas, indicando a verso do PHP, o Sistema Operacional
do servidor, o arquivo em execuo e diversas outras informaes. Para ter acesso a todas as
constantes pr-definidas, pode-se utilizar a funo phpinfo(), que exibe uma tabela contendo todas
as constantes pr-definidas, assim como configuraes da mquina, sistema operacional, servidor
HTTP e verso do PHP instalada, como foi feito em exemplos anteriores.

6.3.2. Definindo constantes


Para definir constantes utilizasse a funo define. Uma vez definido, o valor de uma constante no
poder mais ser alterado. Uma constante s pode conter valores escalares, ou seja, no pode conter
nem um array nem um objeto. A assinatura da funo define a seguinte:
define("NOME_DA_CONSTANTE","valor inaltervel");
Exemplo:

Resultado: valor inaltervel

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 64
O nome de uma constante tem as mesmas regras de qualquer identificador no PHP. Um nome de
constante vlida comea com uma letra ou sublinhado, seguido por qualquer nmero de letras,
nmeros ou sublinhados. Voc pode definir uma constante utilizando-se da funo define(). Quando
uma constante definida, ela no pode ser mais modificada ou anulada.
Estas so as diferenas entre constantes e variveis:
Constantes podem ser definidas e acessadas de qualquer lugar sem que as regras de escopo de
variveis sejam aplicadas;
Constantes s podem conter valores escalares.
Constantes no podem ter um sinal de cifro ($) antes delas;
Constantes s podem ser definidas utilizando a funo define( ), e no por simples assimilao;
Constantes no podem ser redefinidas ou eliminadas depois que elas so criadas;

6.4. Converso de varivel

PHP utiliza checagem de tipos dinmica, ou seja, uma varivel pode conter valores de diferentes
tipos em diferentes momentos da execuo do script. Por este motivo no necessrio declarar o
tipo de uma varivel para us-la. O interpretador PHP decidir qual o tipo daquela varivel,
verificando o contedo em tempo de execuo.
Ainda assim, permitido converter os valores de um tipo para outro desejado, utilizando o
typecasting ou a funo settype (ver adiante).
Assim podemos definir novos valores para terminadas variveis:

typecasting Descrio
(int),(integer) Converte em inteiro.
(real),(float),(double) Converte em ponto flutuante.
(string) Converte em string.
(object) Converte em objeto.

Exemplos:
Convertendo de ponto flutuante para inteiro.

Resultado: 208
Convertendo de String para Object.

Resultado: stdClass Object ( [scalar] => Bem vindo ao site! )

Convertendo de inteiro para ponto flutuante.

Resultado: 542

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 65

O resultado poderia ser 542.0, mas lembrando que o interpretador do PHP faz outra converso ao
notar que o numero 542.0 tem a mesma atribuio de 542. O resultado seria o mesmo se tentarmos
atribuir $a = 542.0.
6.5. EXERCCIOS PROPOSTOS
1) Qual a principal finalidade de uma varivel?
2) O que significa tipagem automtica.
3) Cite algumas dicas importantes na nomenclatura de variveis:
4) Das variveis abaixo, quais possuem nomenclaturas vlidas.
$a___b; $a_1_; $_incio;
$@nome; $val_!; $nome;
$a_|_; $#valor; $palavra;
$tele#; $123; $__=__;
$VALOR_MAIOR; $____; $all;
Resposta: __________________________________________________________________________
5) Crie dez variveis atribuindo valores diversos, logo aps use o comando echo pra imprimir na
tela do browser, exemplo:
<?php
$nome = Maria Cavalcante;
echo $nome;
....
?>
6) Quais os tipos de variveis que podemos citar em PHP.
8) Como podemos distinguir um tipo de varivel de outro, uma vez que a tipagem feita de forma
automtica em PHP.
9) Faa a ligao com os seguintes tipos:
1 $var = 10; ( )ponto flutuante.
2 $var = palavra; ( )tipo null.
3 $var = 10.22; ( )tipo objeto.
4 $var = true; ( )String.
5 $var = null; ( )numrico.
6 $var = new abc; ( )booleano.

10) Qual a principal finalidade de um constante e como elas so definidas em PHP.


11) Em que momentos precisamos converter uma varivel de um tipo em outro.
12) Quais os typecasting usados em PHP.
14) crie uma constante com o comando define e imprima com o comando print();
13) Crie converses e imprima na tela com o comando print() com as seguintes varivel.
$var1 = paraleleppedo, $var2 = 15.20, $var3 = 10.
a) converta a varivel $var1 em objeto.
b) converta a varivel $var3 em ponto flutuante.
c) converta a varivel $var2 em inteiro.

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 66

Captulo 7. Operadores em PHP


Objetivos
Demostrar os tipos e quais os operadores; Falar do conceito de atribuio e concatenao de strings;
Exemplificar os operadores, sua importncia e funcionamento

Os operadores tem seu papel importante dentro de qualquer linguagem de programao. atravs
deles que podemos realizar diversos operaes dentro de um programa, seja ela de atribuio,
aritmtica, relacional, lgico, dentre outros. Em PHP no diferente, os operadores so utilizados
constantemente, porm existem algumas regras que veremos mais adiante.
7.1. Operadores de strings
So operadores utilizados para unir o contedo de uma string a outra, com isso podemos dizer que
h dois operadores de string. O primeiro o operador de concatenao ('.') que j utilizamos em
exemplos anteriores, ele retorna a concatenao dos seus argumentos direito e esquerdo. O segundo
o operador de atribuio de concatenao ('.='), que acrescenta o argumento do lado direito no
argumento do lado esquerdo.
Observe o exemplo abaixo:

Nesse exemplo pode-se observar a declarao da varivel $d, logo aps temos uma inicializao e
atribuio de concatenao em uma mesma linha, isso possvel em PHP, deixando o cdigo mais
otimizado porm menos legvel.
7.2. Operadores de atribuio
O operador bsico de atribuio "=" (igual). Com ele podemos atribuir valores as variveis como
foi visto em exemplos anteriores. Isto quer dizer que o operando da esquerda recebe o valor da
expresso da direita (ou seja, " configurado para"). Mas podemos usar algumas
tcnicas, observe o exemplo abaixo:

Resultado: a = 9,b = 4
Alm do operador bsico de atribuio, h "operadores combinados" usados para array e string, eles
permitem pegar um valor de uma expresso e ento usar seu prprio valor para o resultado daquela
expresso.

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 67
Por exemplo:

Resultado: a = 8,b = Bom Dia!


Observe a expresso: $a = 3 e logo aps $a+=5. Isto significa a mesma coisa de $a = $a + 5, ou,
$a = 3 +5. A ideia pode ser usada para string, como foi feito com a varivel $b, onde $b = Bom,
logo aps usamos ponto(.) e igual(=) para concatenar os valores, ficando assim:
$b.=Dia!. Lembrando que isso significa a mesma coisa que $b = $b.Dia. Observe mais um
exemplo:

Resultado: Bom Dia turma

Podemos definir uma sequencia com duas concatenaes, onde $a = Dia.turma e logo aps
temos $b = Bom.Dia turma.
Os operadores de atribuio so usados para economizar linhas de cdigo, deixando assim o cdigo
mais funcional e otimizado. A tabela abaixo mostra os principais operadores de atribuio:

Operadores Descrio
= Atribuio simples.
+= Soma, depois atribui.
= Subtrai, depois atribui.
*= Multiplica, depois atribui.
/= Divide, depois atribui.
%= Modulo(resto) da diviso, depois atribui.
.= Concatena, depois atribui.
Exemplo:

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 68

Observe mais um exemplo aplicando os demais operadores.

Resultado: 24 12 2
Vale ressaltar que a cada echo, o valor de $a sofre modificaes. Isso devido a atribuio feita aps
a operao. Usamos o operador ponto (.) para concatenar os valores obtidos com <br> cdigo usado
em HTML para quebra de linha.

7.3. Operadores de decremento e incremento

So operadores usados para atribuir em 1 ou 1 a varivel, isso pode ser feito antes ou depois da
execuo de determinada varivel. A tabela abaixo mostra tais operadores:

Operadores Descrio
++$a Princremento. Incrementa $a em um e, ento, retorna $a.
$a++ Psincremento. Retorna $a, ento, incrementa $a em um.
--$a Prdecremento. Decrementa $a em um e, ento, retorna $a.
$a-- Psdecremento. Retorna $a, ento, decrementa $a em um.
Exemplo:

Nesse exemplo temos uma forma aplicada do uso de decremento e incremento, lembrando que a
varivel $a pode ter qualquer nome. Tambm podemos fazer um comparativo com o Princremento
ou incremento prefixado com operaes que j conhecemos, observe:

Operador Forma extensa. Forma simplificada


++$a $a = $a + 1 $a+=1
-- $a $a = $a - 1 $a- =1

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 69
7.4. Operadores de aritmticos
Os operadores aritmticos so operadores que j conhecemos, porm com a exceo de % (modulo)
onde ele retorna como resultado o resto da diviso entre dois valores.

Operadores Descrio
+ Adio.
- Subtrao.
* Multiplicao.
/ Diviso.
% Mdulo ou resto da diviso.

Exemplo:
Nesse exemplo fizemos algumas
operaes, porm ao utilizar
parnteses, estamos determinando
quem executa primeiro, no caso a
soma de $b+5.

7.5. Operadores relacionais

Os operadores relacionais, ou conhecidos tambm como operadores de comparao, so utilizados


para fazer determinadas comparaes entre valores ou expresses, resultando sempre um valor
booleano verdadeiro ou falso (TRUE ou FALSE). Para utilizamos esses operadores usamos a
seguinte sintaxe:
( valore ou expresso ) + ( comparador) + ( segundo valor ou expresso )

Observe a tabela abaixo:


Comparadores Descrio
== Igual. Resulta em TRUE se as expresses forem iguais.
=== Idntico. Resulta em TRUE se as iguais e do mesmo tipo de dados.
!= ou <> Diferente. Resulta verdadeiro se as variveis foram diferentes.
< Menor ou menor que. Resulta TRUE se a primeira expresso for menor.
> Maior ou maior que. Resulta TRUE se a primeira expresso for maior.
<= Menor ou igual. Resulta TRUE se a primeira expresso for menor ou igual.
>= Maior ou igual. Resulta TRUE se a primeira expresso for maior ou igual.

Veja um exemplo prtico:


$a <= $b
Compara se $a menor ou igual a $b, onde, retorna verdadeiro (TRUE), caso contrrio retorna falso
(FALSE).
Para testarmos essas comparaes podemos utilizar o condicional ?: (ou ternrio), sua sintaxe a
seguinte:
(expresso booleana) ? (executa caso verdadeiro) : (executa caso falso);

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 70

Agora podemos ver um exemplo envolvendo as sintaxes e empregabilidade dos comparadores:

Nesse exemplo declaramos e iniciamos trs variveis. Usamos ento o comando echo para imprimir
o resultado, onde o condicional ?: foi utilizado. Iniciamos as comparaes de $a, $b e $c, caso a
comparao individual retorne TRUE, imprime verdadeiro, caso retorne FALSE, imprime falso.
Observe que o comparador === compara o valor e o tipo, retornando FALSE por $b se tratar de
um tipo inteiro, e $c um tipo ponto flutuante, j o comparador == compara somente os valores
onde 45 igual a 45.0 retornando verdadeiro. Tambm podemos usar o operador !== onde tem a
funo semelhantemente ao operador != , mas retorna TRUE se os tipos forem diferentes. Se a
varivel for do tipo booleano, podemos compar-los assim:

$a == TRUE, $a == FALSE

7.6. Operadores lgicos ou booleanos

So chamados de operadores lgicos ou booleanos por se tratar de comparadores de duas ou mais


expresses lgicas entre si, fazendo agrupamento de testes condicionais e tem como retorno um
resultado booleano.
Na tabela abaixo temos os operadores e suas descries:
Operador Descrio
( $a and $b ) E : Verdadeiro se tanto $a quanto $b forem verdadeiros.
( $a or $b ) OU : Verdadeiro se $a ou $b forem verdadeiros.
( $a xor $b ) XOR : Verdadeiro se $a ou $b forem verdadeiro, de forma exclusiva.
( ! $a ) NOT : Verdadeiro se $a for falso, usado para inverter o resultado da condio.
($a && $b) E : Verdadeiro se tanto $a quando $b forem verdadeiros.
($a || $b) OU : Verdadeiro se $a ou $b forem verdadeiros.

Obs.: or e and tem procedncia maior que && ou ||, ou seja, em uma comparao extensa, onde
ambos esto aplicados. Eles tem prioridade de executar sua comparao primeiro.

No prximo exemplo usamos os operadores lgicos que tem procedncia maior:

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 71

Em outro exemplo temos os operadores lgicos mais comuns:

Tambm podemos atribuir valores as variveis usando os operadores lgicos:

O primeiro echo mostra 2 e 0, pois no atribui


valor a $b uma vez que a primeira condio j
satisfatria.
O segundo echo mostra 5 e 3, pois tanto a primeira
quanto a segunda precisam ser executadas.

7.7. Precedncia de Operadores


Agora j conhecemos uma boa quantidade de operadores no PHP, falta agora conhecer a
precedncia de cada um deles, ou seja, quem mais importante, qual operador avaliado primeiro
e qual avaliado em seguida. Observe o seguinte exemplo:

O resultado ser 17, pois o operador * tem maior precedncia em relao ao operador +. Primeiro
ocorre a multiplicao 2*6, resultando em 12, em seguida a soma de 5 + 12. Caso desejar realizar a
operao com o operador + para s em seguida realizar a operao com o operador *, temos que
fazer conforme o exemplo abaixo:

Observe que utilizamos os parnteses para determinarmos quem deve ser executado primeiro, assim
alterando o resultado para 42. Os parnteses determina qual bloco de cdigo executa primeiro, e
tambm serve para isolar determinadas operaes. Veja mais um exemplo onde as operaes so
feitas separadamente. Primeiro executa a soma, em seguida a subtrao e s ento executado a
multiplicao, imprimindo um resultado fina 21 :
Exemplo:

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 72

A tabela seguinte mostra a precedncia dos operadores, da maior precedncia no comeo para os
de menor precedncia.

Operador Descrio
! ++ Negativo, negao, incremento e decremento
*/% Multiplicao, diviso e resto da diviso
+ - . Adio, subtrao e concatenao
> < >= <= Maior que, menor que, maior ou igual e menor ou igual
== != < > Igual e diferente
&& E
|| OU
= += -= *= /= %= Operadores de atribuio
AND E com menor prioridade
XOR Ou exclusivo
OR Ou com menor prioridade

importante lembrar que primeiro o PHP executar todas as operaes que estiverem entre
parnteses, se dentro dos parnteses houver diversas operaes, a precedncia dos operadores ser
utilizada para definir a ordem. Aps resolver todas as operaes dos parentes, o PHP volta a
resolver o que esta fora dos parnteses baseando-se na tabela de precedncia de operadores.
Havendo operadores de mesma prioridade o PHP resolver a operao da esquerda para direita.
Tambm podemos trabalhar com procedncia de parnteses, fazendo associaes com um ou mais
operadores, observe o seguinte exemplo:

Seguindo a ordem de procedncia temos:


(5) * (6) / (16 ((7)*2)) >>> 5 * 6 / (16 (14)) >>> 5 * 6 / 2 >>> 30 / 2
Resultado : 15
Observe que primeiro executa todos os parnteses, e s ento temos as procedncia das demais
operaes.

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 73

7.8. EXERCCIOS PROPOSTOS


1) Qual a finalidade dos operadores de strings.
2) Quais os operadores de decremento e incremento, cite alguns exemplos:
3) Qual a finalidade do operador aritmtico %(modulo).
4) Cite os operadores relacionais, mostre alguns exemplos.
5) Quais operadores lgicos ou booleanos.
6) Quais os operadores de atribuio.
7) Qual a sintaxe do uso de ternrio e cite um exemplo.
8) Quais os operadores utilizados e o resultado final do cdigo abaixo:
<?php
$a =10;
$b = 12.5;
$c = $a+$b;
print($a>$b? verdadeiro : falso);
print($c>=$b? verdadeiro : falso);
?>
9)Observe o cdigo abaixo e diga quais das operaes so executadas primeiro, coloque a resposta
em ordem decrescente.
$a = 8*5-3+4/2+19%5/2+1;
10)Faa testes com os operadores relacionais substituindo o operados > do cdigofonte abaixo.
<?php
$var1 = 2.2564;
$var2 = 2.2635;
print($var1 > $var2 ? sim : no);
?>
11)Usando o operador de String . para montar a seguinte frase abaixo:
<?php
$a = de;
$b = um;
$c = comunicao;
$c = a;
$d = internet;
$e = meio;

print( ..... );
?>
12) Observe o cdigofonte abaixo e diga qual o resultado booleano final. Justifique sua resposta.
<?
$a = 12.0 < 11.2;
$b = 10*2-3 > 19%3+10;
$c = 10;
print( ($a || $c = 10 && $b) ? "true" : "false");
?>

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 74

Captulo 8. Estruturas de Controle e Repetio


Objetivos
Mostra estruturas de controle e sua aplicao prtica em PHP; Definir qual a principal finalidade
dessas estruturas; Mostrar exemplos em sua sintaxe; Mostrar aplicao e uso de foreach.

As estruturas que veremos a seguir so comuns para as linguagens de programao imperativas,


bastando descrever a sintaxe de cada uma delas resumindo o funcionamento. Independente do PHP,
boa parte das outras linguagens de programao tem estruturas iguais, mudando apenas algumas
sintaxes.

8.1. Blocos de controle


Um bloco consiste de vrios comandos agrupados com o objetivo de relacion-los com determinado
comando ou funo. Em comandos como if, for, while, switch e em declaraes de funes blocos
podem ser utilizados para permitir que um comando faa parte do contexto desejado. Blocos em
PHP so delimitados pelos caracteres { e }. A utilizao dos delimitadores de bloco em uma
parte qualquer do cdigo no relacionada com os comandos citados ou funes no produzir
efeito algum, e ser tratada normalmente pelo interpretador. Outro detalhe importante: Usar as
estruturas de controle sem blocos delimitadores faz com que somente o prximo comando venha ter
ligao com a estrutura. Observe os exemplos:

Observe que o temos um comando IF, onde passado a ele


uma expresso booleana que retorna verdadeiro ou falso.
O resultado da expresso FALSE(falso), pois 0
no maior que 2, fazendo com que o IF no execute o
echo com comando1. Somente o segundo echo
executado, pois no pertence ao IF declarado.
Mas se quisermos que mais de um comando pertena a
estrutura de controle, ser usado blocos de
comandos ( { comando; } ), onde atravs deles podemos delimitar e organizar os cdigos.

No cdigo ao lado, temos um bloco


onde inserimos dois comandos.
Observe que eles no sero
executados, pois a expresso booleana
passada para o IF falsa.

8.2. IF e ELSE
Essa estrutura condicional est entre as mais usadas na programao. Sua finalidade induzir um
desvio condicional, ou seja, um desvio na execuo natural do programa. Caso a condio dada pela
expresso seja satisfeita, ento sero executadas a instrues do bloco de comando. Caso a condio
no seja satisfeita, o bloco de comando ser simplesmente ignorado. Em lgica de programao o
que usamos como SE(expresso) ENTO { comando:}.

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 75

Sintaxe: Exemplo:

if(expresso)
comando;

if(expresso){
comando1;
comando2;
comando3;
}

Caso a condio no seja satisfatria (FALSE), podemos atribuir outro comando pertencente ao IF
chamado ELSE, como se fosse a estrutura SENO em lgica de programao.
Sintaxe: Exemplo:
if(expresso)
comando;
elese
comando;

if(expresso){
comando1;
comando2;
comando3;
}else{
comando1;
comando2;
comando3;
}

Nesse exemplo temos uma expresso booleana onde retorna falso, com isso o IF no executa,
passando a execuo para o eles, que por sua vez executa e atribu o valor menor idade a varivel
$texto. Em determinadas situaes necessrio fazer mais de um teste, e executar condicionalmente
diversos comandos ou blocos de comandos. Isso o que podemos chamar de If's encadeados,
onde usamos a estrutura IFELSE. Para facilitar o entendimento de uma estrutura do tipo:
Sintaxe: Exemplo:
if(expressao1)
comando1;
else
if(expressao2)
comando2;
else
if(expressao3)
comando3;
else
comando4;

Exerccio rpido:
1) Faa uma script em PHP que possua 4 notas de um aluno(cada uma em uma varivel). Depois
calcule e imprima a mdia aritmtica das notas e a mensagem de aprovado para mdia superior ou
igual a 7.0 ou a mensagem de reprovado para mdia inferior a 7.0.
Professor Renato Almansa da Silva Curso Tcnico em Informtica
PHP e MySQL 76

2)Faa uma script em PHP que receba a idade de um nadador(representada por uma varivel
chamada $idade) e imprima a sua categoria seguindo as regras:
Categoria Idade
Infantil A 5 - 7 anos
Infantil B 8 - 10 anos
Juvenil A 11- 13 anos
Juvenil B 14- 17 anos
Snior Maiores de 18 anos

8.3. Atribuio condicional (ternrio)


Como j vimos exemplos de atribuio condicionais (ternrios), podemos defini-los usando a
sintaxe:
(expresso booleana) ? (executa caso verdadeiro) : (executa caso falso);

Isso se aplica quando queremos uma estrutura resumida, onde podemos ter um resultado mais
direto, como por exemplo, atribuir um valor a uma varivel dependendo de uma expresso. Observe
o exemplo abaixo onde envolvemos uma varivel do tipo string, porm o valor atribudo a essa
varivel dever ser de acordo com o valor da idade:

uma estrutura parecida com IF e ELSE, onde dependendo da expresso booleana podemos
executar um bloco ou no.

Exerccio rpido:

1) Faa uma script em PHP que receba um nmero representado por uma varivel. Verifique se
este nmero par ou mpar e imprima a mensagem.

2) Crie outro script baseando em um seguro de vida com as seguintes regras:


Idade: Grupo de Risco:
18 a 24 Baixo
25 a 40 Mdio
41 a70 Alto

8.4. SWITCH
Observe que quando temos muitos if's encadeados estamos criando uma estrutura que no
considerada uma boa prtica de programao. Para resolver esse problema temos uma estrutura
onde sua funcionalidade semelhante ao IFELSE. O comando SWITCH uma estrutura que
simula uma bateria de teste sobre uma varivel. Frequentemente necessrio comparar a mesma
varivel com valores diferentes e executar uma ao especifica em cada um desses valores.

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 77

Sintaxe: Exemplo
switch(expresso) {
case valor 1:
comandos;
case valor 1:
comandos;
case valor 1:
comandos;
case valor 1:
comandos;
...
}

Resultado: opo 2:opo 3:opo 4:opo 5:


Nesse exemplo temos o numero = 2 onde o switch compara com os case's o valor recebido, o bloco
que executado do segundo case, porm os demais tambm so executados, para que tenhamos
um resultado satisfatrio temos que usar em cada case um comando chamado break. No qual tem a
funo de para o bloco de execuo.
8.4.1. SWITCH com BREAK
Break uma instruo (comando) passada quando queremos parar o fluxo da execuo de um
programa. Em PHP, ele tem a mesma funo que abortar o bloco de cdigo correspondente.
Observe o mesmo exemplo com o uso de break:
Temos agora como resultado opo 2:. O comando
break fez com que os demais case's abaixo do 'case 2'
no sejam executados.

Obs.: Alm de nmeros podemos tambm comparar


outros tipos como string, pontos flutuantes e
inteiros, veja um exemplo abaixo:

Mas o que aconteceria se no tivermos um valor que seja satisfatrio aos casos existentes no
switch? A resposta pra isso bem simples, nenhum dos blocos seria executados, porm temos um
comando onde determinamos uma opo padro caso nenhuma das outras venha ter resultado que
satisfaa a expresso passada para o switch chamada default (padro).
Veja um exemplo:

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 78

Resultado: opo invlida


A instruo passada no condiz com nenhum dos casos existentes. Por esse motivo o bloco
pertencente ao comando default ser executado.

O comando default pode ser inserido em qualquer lugar dentro do switch, porm caso
isso acontea, o uso do comando break deve ser adicionado para evitar que os case's
abaixo sejam executados.
A partir de agora trabalharemos as estruturas de repetio. Elas muito utilizadas nas linguagens
de programao.

Exerccio rpido:
1) Faa um script em PHP usando switch, onde receba uma varivel e mostre as seguintes opes:
1 - mdulo.
2 - somar.
3 - subtrair.
4 - multiplicar.
5 - dividir.

8.5. WHILE
O WHILE uma estrutura de controle similar ao IF, onde possui uma condio para executar um
bloco de comandos. A diferena primordial que o WHILE estabelece um lao de repetio, ou
seja, o bloco de comandos ser executado repetitivamente enquanto a condio passada for
verdadeira. Esse comando pode ser interpretado como:
ENQUANTO(expresso) FAA{ comandos...}.
Sintaxe:
while (expresso)
{
comandos;
}

Quando estamos usando um lao de repetio, podemos determinar quantas vezes ele deve ou no
se repetir. Isso pode ser feito de forma manual, onde o programador determina, ou
automaticamente, onde quem vai determinar fluxo de execuo o cdigo-fonte atravs de funes
do PHP, funes estas j existentes. Por exemplo, a funo sizeOf.
Para trabalharmos com essa contagem de quantas vezes o lao deve se repetir, usaremos incremento
ou decremento de uma varivel conforme vimos no capitulo de operadores em PHP.

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 79

Observe o exemplo abaixo:

Resultado: 123456789
Nesse exemplo criamos um lao de repetio que tem como condio $a < 10, a cada lao
executado um incremento na varivel $a, fazendo com que o seu valor aumente at a condio no
ser mais satisfatria.
Dica: Tenha cuidado quando estiver trabalhando com loop's (lao de repetio),
pois caso a expresso passada esteja errada, pode ocasionar em um loop infinito
fazendo com que o bloco de cdigo se repita infinitamente. Isso pode ocasionar
um travamento do navegador ou at mesmo do prprio servidor WEB.

Vamos ver agora um exemplo em que o lao se repete de forma automtica, onde quem determina o
loop uma funo do PHP e no um numero determinado pelo programador.
A funo strlen() recebe uma string e retorna a quantidade de caracteres incluindo tambm os
espaos em branco. Ele poderia ser aplicado diretamente no echo, mas no exemplo, ele determina a
quantidade de loop's.

Resultado: a frase possui 14 caracteres


Exerccio rpido:
1) Faa um script que conte de 1 at 100.
2) Faa um script que imprima na tela nmeros de 3 em 3 iniciando com 0 at 90, ex: 0,3,6,9...

8.6. DO...WHILE
O lao do...while funciona de maneira bastante semelhante ao while, com a simples diferena que a
expresso testada ao final do bloco de comandos. O lao do...while possui apenas uma sintaxe que
a seguinte:
Sintaxe:

do {
comando;
...
comando;
} while (expresso);

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 80

Exemplo:

Resultado: 123456789

Dica: Talvez na criao de alguma pgina ou sistema web, seja necessrio executar
um bloco de cdigo existente em um lao de repetio pelo menos uma vez, nesse
caso podemos usar o do...while.

Exerccio rpido:
1) Faa um script que conte de -1 at -100 usando do while.
2) Faa um script que imprima na tela somente nmeros pares de 2 at 20 com do while.

8.7. FOR
Outra estrutura semelhante ao while o for, onde tem a finalidade de estabelecer um lao de
repetio em um contador. Sua estrutura controlada por um bloco de trs comandos que
estabelecem uma contagem, ou seja, o bloco de comandos ser executado determinado nmero de
vezes.

Sintaxe:

for( inicializao; condio; incremento ){


comandos;
}

Parmetros Descrio
inicializao Parte do for que executado somente uma vez, usado para inicializar uma varivel.
condio Parte do for onde declarada uma expresso booleana.
incremento Parte do for que executado a cada interao do lao.

Lembrando que o loop do for executado enquanto a condio retornar expresso booleana
verdadeira. Outro detalhe importante que podermos executar o incremento a cada lao, onde
possibilitamos adicionar uma varivel ou mais. Mostraremos agora um exemplo fazendo um
comparativo entre a estrutura de repetio do while e tambm a do for de forma prtica.

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 81

Ambos os exemplo geram o mesmo resultado: 123456789


O for no precisa ter necessariamente todas as expresses na sua estrutura, com isso podemos criar
um exemplo de for onde suas expresses so declaradas externamente.

Observe nesse exemplo uma proximidade muito grande do comando while. Apesar de ser
funcional, no uma boa prtica de programao utilizar desta forma.

Exerccio rpido:
1) Faa um script que receba duas variveis $a e $b, logo aps imprima os nmeros de intervalos
entre eles com o uso de for. ex: a=5 ,b = 11, imprime : 5,6,7,8,9,10,11.

8.8. FOREACH
O foreach um lao de repetio para interao em array's ou matrizes, o qual estudaremos com
mais detalhes no prximo captulo. Tratasse de um for mais simplificado que compe um vetor ou
matriz em cada um de seus elementos por meio de sua clusula AS.

Sintaxe:
foreach( expresso_array as $valor){
comandos;
}

Exemplo:
Resultado:
ana
maria
joo
alex

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 82

Veremos adiante que um array uma varivel composta por vrios elementos. No caso do exemplo
anterior, esses elementos so nomes de pessoas. A finalidade do foreach justamente a cada lao,
pegar um desses valores e atribuir a uma varivel $nome at que tenha percorrido todo array e
assim, finalizar o lao. Tambm podemos saber em qual posio o elemento se encontra no array,
para isso basta adicionar uma nova varivel logo aps o AS seguido de =>.
Observe o exemplo:

Resultado:
0 ana
1 maria
2 joo
3 alex

Nesse exemplo observamos que cada elemento do array possui um ndice (chave), imprimindo na
tela o numero da posio e o valor guardado.

8.9. BREAK.
Outro comando importante o break, usado para abortar (parar) qualquer execuo de comandos
como SWITCH, WHILE, FOR, FOREACH, ou qualquer outra estrutura de controle. Ao encontrar
um break dentro de um desses laos, o interpretador PHP interrompe imediatamente a execuo do
lao, seguindo normalmente o fluxo do script.
Sintaxe:

while....
for....
break <quantidades de nveis>;

Vamos ver um exemplo com o uso de break dentro de um lao de repetio (no caso o for), onde
criamos um lao infinito, porm colocamos um if com a condio de parar o lao atravs do break.
Observe:

Podemos notar nesse exemplo a criao de um lao(loop) infinito, que ocorre quando tiramos a
condio do for, ou atribumos for( ; true ; ), porm a condio fica na responsabilidade do if,
quando o valor de $a e igual a 10, faz com que o if execute o break, fazendo com que o lao pare
de funcionar.

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 83

Mas se tivssemos mais de um lao, como poderamos definir qual deles deixaria de funcionar?
Para responder essa pergunta usamos a quantidades de nveis que pode existir em um
break, observe o exemplo abaixo:

Resultado:

Observe que definisse qual nvel podemos parar, ou seja, o primeiro nvel onde o break est
localizado, no exemplo citado temos dois nveis, e determinamos pelo break 2; que o segundo
for( que o de fora! ) deixaria de funcionar.

8.10. CONTINUE
A instruo continue, quando executada em um bloco de comandos for/while, ignora as instrues
restantes at o fechamento em }. Dessa forma, o programa segue para a prxima verificao da
condio de entrada do lao de repetio, funciona de maneira semelhante ao break, com a
diferena que o fluxo ao invs de sair do lao volta para o incio dele. Veja um exemplo:

Resultado: 0,2,4,6,8,10,12,14,16,18,
Podemos observar a seguinte lgica no exemplo acima:
Criamos um lao que tem 20 interaes de repetio. Logo aps temos um if, onde, quando o resto
da diviso por 2 for igual a 0 (numero par), o valor booleano ser false. Quando no for igual a 0,
significa que a varivel $i um numero impar( ex: 5%2 = 1), ento temos um valor booleano
true. Isso significa que o if executa somente quando os numero forem impares. Adicionamos um
continue, que ao executar o if, faz com que volte novamente para o incio do for, impedindo de
alcanar o echo em seguida. Com isso, em vez de mostramos os nmeros impares, imprimimos
somente os nmeros pares incluindo o 0. Resumimos que o cdigo s passa adiante quando o if
no executa o continue.
Fluxograma:

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 84

Assim como o break, tambm podemos definir em qual nvel queremos que a execuo continue.
Veja o exemplo abaixo:

Resultado:
Podemos observar ento o uso de continue dentro de um lao infinito. Ele faz com que o lao de
nvel 3 seja executado toda vez que a execuo passe pela linha 10 do cdigo, logo, impede que o
programa fique sempre executando dentro do while de nvel 1. Com isso, o while da linha 4 do
cdigo tem um ciclo de vida de 5 laos.
Observe tambm que os dois ltimos echo's nunca sero alcanados, pois o comando continue
impede que o fluxo do cdigo passe adiante, fazendo voltar ao nvel determinado.
Resumindo: O continue usado dentro de estruturas de loops para saltar o resto da execuo do
loop atual e continuar a execuo na avaliao do estado, em seguida, o incio da prxima
execuo.

Fluxograma:

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 85

8.11. EXERCCIOS PROPOSTOS

1) Qual a principal finalidade de uma estrutura de controle.


2) Qual a principal finalidade de uma estrutura de repetio.
3) Crie um cdigo com a um condio ternria onde receba um valor booleano e de acordo com o
valor passado na expresso, deve imprimir sim ou no.
4) Com o comando IF e ELSE crie um cdigo que determine se uma expresso verdadeira ou
falsa.
5) Qual a finalidade da estrutura de controle SWITCH e cite um exemplo onde comparamos uma
opo com 4 casos diferente.
6) Crie um contador de 1 at 20 usando a estrutura de repetio WHILE.
7) Crie um contador de 1 at 100 usando DO WHILE.
8) Crie um contador de 100 at 1 usando FOR.
10) Qual a finalidade de um FOREACH.
11) Crie um cdigo onde podemos para a execuo de um lao infinito com o uso de BREAK.
12) Como podemos determinar o uso de CONTINUE e qual a sua aplicao prtica em PHP.
13) Crie um cdigo com as seguintes caractersticas:
a) Dever receber um valor inicial e outro final (crie duas variveis para esse fim).
b) Como o comado FOR crie um lao onde a contagem e determinada pelo valor inicial e final.
c) Dentro do for dever conter um IF e ELSE responsvel por compara os valores passado a ele e
imprimir os pares e impares. Exemplo:

IF($valor%2==0)
echo $valor. um numero par;
ELSE
echo $valor. um numero impar;

d)Exemplo prtico: foi passado o numero inicial 8 e o final 15, ento o script PHP dever imprimir
o intervalo entre esse numero ou seja 8,9,10,11,12,13,14,15, mostrando quais deles so pares e
quais so impares.

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 86

Captulo 9. Manipulao de Arrays


Objetivos
Abordar de forma clara as principais estruturas de um array; Mostrar a sua criao e manipulaes
possveis; Definir arrays multidimensionais ou matrizes; Determinar formas de interaes e acessos.

Um array no PHP atualmente um conjunto de valores ordenado. Podemos relacionar cada valor
com uma chave, para indicar qual posio o valor est armazenado dentro do array. Ele otimizado
de vrias maneiras, ento podemos us-lo como um array real, lista (vetor), hashtable (que uma
implementao de mapa), dicionrio, coleo, pilha, fila e provavelmente muito mais. Alm disso,
o php nos oferece uma gama enorme de funes para manipul-los.
A explicao dessas estruturas esto alm do escopo dessa apostila, mas todo contedo aqui
abordado trs uma boa base para quem estar iniciando o contedo de array.
9.1. Criando um Array
Arrays so acessados mediante uma posio, como um ndice numrico. Para criar um array pode
se utilizar a funo array([chave =>] valor, ). Exemplo:
Sintaxe:
$nomes = array('Maria','Joo','Alice','Alex');
ou
$nomes = array(0=>'Maria', 1=>'Joo', 2=>'Alice', 3=>'Alex');

Nessa sintaxe temos duas formas de declarar uma varivel do tipo array. Onde a chave o ndice
podem ser de forma automtica como no primeiro exemplo, ou manual como no segundo. Outro
detalhe importante que: Todo array comea pela chave ou ndice de numero 0, quando o mesmo
no declarado.
Tambm temos outras formas de criar um array, onde simplesmente podemos adicionar valores
conforma a sintaxe abaixo:

$nome[] = 'Maria';
$nome[] = 'Joo';
$nome[] = 'Carlos';
$nome[] = 'Jos';

A figura abaixo representa um array que tem como valor representao de cores, e possui dez
posies, cada posio representa uma cor, seu ndice (chave) vai de 0 at 9. Veja:

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 87

Em cdigo temos:

9.2. Arrays Associativos.


Aos arrays associativos associasse um determinado valor ou nome a um dos valores do array.
O array associativo usa strings como ndice, onde cada string pode representas uma chave.
Observe a sintaxe:

$var = array('texto1'=>'valor1','texto2'=>'valor2',...,'textoN'=>'valorN');

Observe que quando usamos arrays associativos, a compreenso mais fcil, dando mais
legibilidade ao cdigo. Porm no utilizado quando usamos um array dentro de um lao (loop),
mas em outros casos sempre bom utilizar arrays associativos. Veja um exemplo:

Outra forma de iniciarmos o mesmo array adicionar valores conforme abaixo:

A imagem abaixo representa os exemplos anteriores:

Uma das vantagem do array associativo


quando fazemos o acesso ao array, onde temos
de forma clara e compreensvel o valor
que aquela chave pode conter. Como por
exemplo, nome, onde s vai existir nome de
pessoas. Veja abaixo um exemplo de acesso aos
valores armazenados em um array dessa
natureza.

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 88
Exemplo:

Dessa forma podemos acessar o array. Basta determinar o nome do array e qual a chave, onde cada
chave tem um valor j determinado. Resultar em um erro o uso de uma chave errada.

9.3. Interaes
Quando falamos de interaes em um array, estamos dizendo o mesmo que percorrer esse array
usando mecanismos da prpria linguagem. Como isso as interaes podem ser feitas de vrias
formas, mas no PHP podem ser iterados pelo operador FOREACH que j vimos anteriormente.
Exemplo:

Resultado:

Esse tipo de interao muito utilizado, principalmente quando temos arrays associativos.

Dica: Sempre que se depararem com arrays, onde havendo a necessidade de


percorrer suas informaes independentemente da chave, procure sempre utilizar
mecanismos de programao mais simplificados como FOREACH.

9.4. Acessando um Array


Quando criamos um array temos que ter em mente que estamos criando uma varivel que possui
vrios valores e que os mesmo podem ser acessados a qualquer momento. Cada valor est guardado
em uma posio que pode ser acessada atravs de uma chave.
A sintaxe para acesso simplificado de um array a seguinte:

nome_do_array[ chave_de_acesso ];

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 89

Temos que ter cuidado ao passar uma chave para o array, pois ela deve conter o mesmo nome de
qualquer uma das chaves existentes no array. Caso a chave no exista, o valor no poder ser
resgatado. A sintaxe acima retorna um valor contido no array, por esse motivo temos que atribuir
esse valor como mostra o exemplo abaixo:

Resultado: telefone.
9.5. Alterando um Array
Podemos alterar qualquer valor de um array. muito semelhante ao acesso, onde, a diferena est
na chamada do array. nesse momento que atribumos um novo valor.
Veja a sintaxe:

nome_do_array[ chave_de_acesso ] = <novo_valor>;

Observe o exemplo abaixo:

Resultados:

Vimos no exemplo anterior o valor da posio 1 do array ('telefone') foi alterada para sobrenome.
Vale ressaltar que esse array tem suas chaves definidas de forma automtica. A primeira posio
0, a segunda 1, e assim sucessivamente. Veja mais um exemplo onde alteramos o valor, mas
usando o operador de atribuio += e concatenao .=:

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 90

Resultados:
Arroz Tio Joo
1.98

Podemos observar que assim como as variveis comuns, a forma de alterar o valor de um array
igual. A diferena est na chamada do array, pois temos que passar a chave alm do valor que
queremos atribuir. Outro detalhe importante o tipo de valor, onde supostamente devemos atribuir
os tipos compatveis. Ou seja, se o valor atribudo a chave produto for do tipo string, no podemos
usar os operadores de atribuio para atribuir um outro tipo, porm podemos mudar o tipo do valor
pelo operador de atribuio simples (=).
Exemplo:
$var[2] += 1.90; // o tipo um ponto flutuante antes e depois.
$var[2] = 'bom dia' ; // agora temos a mudana de tipo ponto flutuante para string.

9.6. Arrays multidimensionais


Os arrays multidimensionais so estruturas de dados que armazenam os valores em mais de uma
dimenso. Os arrays que vimos at agora armazenam valores em uma dimenso, por isso para
acessar s posies utilizamos somente um ndice ou chave. Os arrays de 2 dimenses salvam seus
valores de alguma forma como em filas e colunas e por isso, necessitaremos de dois ndices para
acessar a cada uma de suas posies.
Em outras palavras, um array multidimensional como um continer que guardar mais valores
para cada posio, ou seja, como se os elementos do array fossem por sua vez outros arrays.
Outra ideia que temos que matrizes so arrays nos quais algumas de suas posies podem conter
outros arrays de forma recursiva. Um array multidimensionais pode ser criado pela funo array():
Na figura abaixo temos a representao de um array com duas dimenses.

Uma diferena importante de um array comum para


um multidimensional a quantidades de chaves
(ndices), onde cada um dos ndices representa uma
dimenso. Observe o cdigo da representao ao
lado.

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 91

Cdigo:

Outra forma de inicia o array:

Observe que temos uma chave para representar a linha e outra para representar a coluna, assim,
determinando uma matriz 4x4. Podemos ver tambm que inicializamos um array dentro do outro.
Cada subarray uma linha, e cada elemento do array maior representa as colunas.

Para acessarmos o valor de um array multidimensional, basta colocar as duas ou mais chaves da
posio que queremos acessar. muito semelhante ao array de uma nica dimenso.
Observe o acesso aos exemplos anteriores:

Sintaxe:
nome_do_array[ chave_1 ][ chave_2 ]...[chave_n] ;

Exemplo:

Dessa forma podemos acessar o elemento numrico 1.2 que estar guardado na posio linha 1
coluna 2, lembrando que o primeiro elemento de um array 0.

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 92

Abaixo, um exemplo que acessa todos os valores do array e imprime com quebra de linha:
resultado:

0.0 igual a 0 ,1.0 igual a 1 e


assim sucessivamente.

Explicando o cdigo:
Linha 2 criamos um array de duas dimenses.
Linha 7 temos um foreach para percorrer o primeiro array, ele retorna na varivel $linha os sub
arrys contido no array maior.
Linha 8 agora temos outro foreach que vai percorrer os valores dos arrays passando pra varivel
$linha.
Linha 9 criamos uma varivel $i para contar os elementos.
Linha 10 Imprime os valores.
Linha 11 temos um IF, quando $i for igual a 4, significa que podemos executar o cdigo
pertencente ao If, determinando que chegou ao quarto elemento do array.
Linha 12 Quebra de linha com o <br>.
Linha 13 Zera a varivel $i para comear a contagem de novo.

9.7. Funes com Arrays

Em PHP temos um conjuntos de funcionalidades e que j vem prontas para serem utilizadas.
Tratasse de funes que j esto predefinidas, voc pode encontr-las facilmente no site php.net.
Abordaremos agora funes utilizadas exclusivamente para manipulao de array, funes de
acesso, ordenao, dentre outras. Obviamente que no falaremos de todas, pois existem muitas
funes, mas mostraremos as mais utilizadas, e outras que so definidas como principais.
var_dump
Essa funo muito usada por programadores que pretendem realizar debug (anlise mais
detalhado para encontrar supostos erros). Observe um exemplo prtico:

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 93

Sada no Browser:

print_r
Imprime o contedo de uma varivel assim como var_dump(), porm com um formato menos
detalhado e mais legvel ao programador. Exemplo:
cdigo:

Sada no Browser:

Dica: Ao olhar o cdigo fonte da pgina aberta, nota-se o cdigo bem organizado,
porm os comentrios no podem ser vistos. Procure olhar o cdigofonte sempre
que tiver dvida de que cdigo HTML o PHP est gerando. Clique com boto
direito do mouse, procure cdigo fonte, e observe o que gerado!

array_push
Adiciona elementos ao final de um array. Tem o mesmo efeito de utilizar a sintaxe:
var_dump( nome_do_array , novo_valor)

Exemplo: Resultado:

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 94
array_pop
Remove um valor no final de um array. Sintaxe:

array_pop(nome_do_array);

Exemplo:
Resultado:

array_shift
Remove um elemento do incio de um array, sintaxe:

array_shift( nome_do_array )

Exemplo:
Resultado:

Como j sabemos como lidar com essas funes, observamos que, basta conhecer a sintaxe, para
montarmos um exemplo. Apresentaremos agora de forma resumida as demais funes.

Obs.: Todas as funes aqui apresentadas so para mostrar ao aluno as formas de


trabalharmos com determinadas funes. Fica a critrio do aluno se aprofundar ou no
nesse conhecimento, uma vez que exista inmeras funes.

Observe a tabela abaixo com outras funes:


Funes Definio Sintaxe:
array_unshift Adicionar um elemento no inicio de um array_unshift(nome_array , novo_valor)
array.
array_pad Preenche um array com valores, array_pad(nome_array, tamanho ,valor)
determina a quantidade de posies.
array_reverse Recebe um array e retornao na ordem array_reverse( nome_array, valor_booleano)
inversa.
array_merge Uni dois arrays criando um novo array. $novo_array = array_merge(array_1,array_2)
array_keys Retorna somente as chaves do array. array_keys(nome_array)
array_values Cria um novo array com os valores de $novo_array = array_values(outro_array)
outro.
array_slice Extrai posies de um array. $var = array_slice(nome_array, inicio, tamanho)
count Conta quantos elementos tem um array $var = count(nome_array)

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 95

Funes Definio Sintaxe:


in_array Verifica se um array possui determinado in_array(valor_buscado, nome_array)
valor.
sort Ordena um array pelos valores. sort(nome_array)
rsort Ordena um array pelos valores de rsort(nome_array)
ondem reversa.
explode Converte uma string em um array. explode(separador, nomer_string)
implode Converte um array em uma string implode(separador, nome_array)

Essa tabela mostra as funes mais comuns. Derrepente voc pode de deparar com algumas delas
em cdigos j feito, ou baixados da internet. Exemplo disso so as ferramentas CMS, como joomla
ou wordpress, que so feitas em PH. Existem muitas combinaes dessas funes e outras a mais
em seu cdigo-fonte. Veja um exemplos utilizando algumas das funes anteriores.

Resultado:

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 96

9.8. EXERCCIOS PROPOSTOS


1) O que um array, e qual a sua principal finalidade.
Declare um array chamado nomes com 8 posies, e grave nomes de pessoas que
voc conhece em cada uma delas. Aps criar o array responsa as questes 2, 4, 5, 10,
11:
2)Utilizado o array responda.
a)Qual nome impresso no navegador se colocarmos o cdigo:
echo nomes[3];
b)Quais nomes aparecer se adicionamos os seguintes cdigos:
for($i= 6; $i>1 ; i--)
echo nomes[$i];
c)O que acontece se chamarmos uma posio que no existe no array, exemplo:
nomes[15];
3)O que um array associativo, de exemplos:
4)Usando o comando foreach, crie uma interao onde todos os nomes possa ser impresso na tela.
5)Utilizando o mesmo cdigo, altere alguns nomes do array.
6)O que um array multidimensional?
Crie um array palavras multidimensional 5x3 com os valores da tabela abaixo, e responda as
questes 7,8,9:
oi tudo estar
voc vai ?
com dia !
, bem sim
casa hoje em

7)Crie um cdigo PHP onde com os valores do array possa ser impresso na tela com a frase oi,
tudo bem com voc?.
8)Utilizando as posies da sequencia [1][0],[1][1],[0][2],[4][2],[4][0],[4][1],[1][2] do array
palavras, qual frase podemos formular?utilize a funo print() para mostrar na tela do navegador.
9)Construa um cdigo PHP para mostra uma resposta para a pergunta da qusto 7.
(use o comando echo para imprimir na tela.
10)Utilizando a funo sort, imprima em ordem alfabtica os nomes do array nomes.
11)Use o comando array_unshift() para adicionar mais dois nomes no array.

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 97

Captulo 10. Manipulao de Funes


Objetivos
Apresentar as estrutura de funes em PHP; Mostrar qual a definio entre varivel global e esttica e
sua relao com o uso de funes; Mostrar tambm o uso de passagem de parmetros, recurso e qual
a sua principal finalidade.

Quando queremos um cdigo funcional para determinado fim, com, por exemplo, fazer um clculo
ou alguma interao dentro do PHP, usamos o que chamamos de funo. As funes so um pedao
de cdigo com o objetivo especfico, encapsulado sob uma estrutura nica que recebe um conjunto
de parmetros e retorna ou no um determinado dado. Uma funo declarada uma nica vez, mas
pode ser utilizada diversas vezes. uma das estruturas mais bsicas para prover reusabilidade ou
reaproveitamento de cdigo, deixando as funcionalidades mais legveis.

10.1. Declarando uma Funo.


Declaramos uma funo, com o uso do operador function seguido do nome que devemos
obrigatoriamente atribuir, sem espaos em branco e iniciando sempre com uma letra. Temos na
mesma linha de cdigo a declarao ou no dos argumentos pelo par de parnteses (). Caso exista
mais de um parmetro, usamos virgula(,) para fazer as separaes. Logo aps encapsulamos o
cdigo pertencente a funo por meio das chaves ({}). No final, temos o retorno com o uso da
clusula return para retornar o resultado da funo que pode ser um tipo inteiro, array, string,
ponto flutuante etc. A declarao de um retorno no obrigatrio. Observe a sintaxe:
function nome_da_funo( $argmento_1, $argumento_2, $argumento_n )
{
comandos;
return $valor;
}

Observe um exemplo onde criamos uma funo para calcular o ndice de massa corporal de uma
pessoa (IMC), onde recebe como parmetro dois argumentos. Um a altura representada pela
varivel $altura e o outro o peso representado pela varivel $peso. Passamos como parmetros
para essa funo o peso = 62 e a altura = 1.75. Observe:
Exemplo:

Resultado: 20.244897959184

Nesse exemplo temos a declarao e logo aps a chamada da funo, onde nesse momento que
passamos os dois parmetros na ordem que foi declarada na funo. Lembrando que essa ordem
obrigatria.
Professor Renato Almansa da Silva Curso Tcnico em Informtica
PHP e MySQL 98
Observe mais um exemplo, onde a funo declarada porm no possui a clusula return.

Resultado:

10.2. Escopo de Variveis em Funes


Um conceito importante em programao so os tipos de declaraes de variveis, onde sua
visibilidade vai depender de onde ela declarada. O acesso a essas variveis podem ser definidas da
seguinte forma:
Variveis locais So aquelas declaradas dentro de uma funo e no tem visibilidade fora
dela. Veja um exemplo:
O valor da varivel $a no impresso na
tela, pois ela s existe dentro da funo,
qualquer outra varivel declarada com o
mesmo nome fora da funo uma nova
varivel.

Variveis Globais So variveis declaradas fora do escopo de uma funo, porm tem
visibilidade (pode ser acessada) ao contexto de uma funo sem pass-la como parmetro. Para isso
declaramos a varivel e fazemos a sua chamada logo aps com o uso do termo global. Exemplo:

Resultado: 25

Variveis estticas Podemos armazenar variveis de forma esttica dentro de uma funo.
Significa que ao fazermos isso, temos o valor preservado independente da ultima execuo. Usamos
o operador static para declaramos a varivel. Exemplo:

Resultado: 10,20,30,
Observe que o valor mantido e a cada
chamada acrescentado +10, caso no
exista o static o resultado seria: 10,10,10, .

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 99

10.3. Passagem de Parmetro.


Como vimos anteriormente, podemos passar ou no parmetros em uma funo, porm existem
dois tipos de passagem de parmetros: Por valor (by value) e por referncia (by reference).
Por Valor Normalmente, a passagem de parmetros em PHP feita por valor, ou seja, se o
contedo da varivel for alterado, essa alterao no afeta a varivel original. Exemplo:

O exemplo acima mostra que passamos um valor de $a para a funo, porm o valor temos a
garantia que o valor continua integro, ou seja, no foi modificado ao longo do cdigo.
Por Parmetro Para passarmos um valor por parmetro, simplesmente colocamos o operador
& na frente do parmetro que queremos que o valor seja alterado, observe o exemplo abaixo:

Observe agora nesse ultimo exemplo que apenas acrescentamos o operador & no parmetro que
queramos que alterasse a varivel passada como parmetro, fazendo com que o resultado fosse a
soma de 23 + 26 = 49.
Por argumentos variveis O PHP permite outras formas avanadas de passagem
de parmetros, onde o valor e a quantidade so definidas de forma automticas por meio das
funes
func_get_args() e func_num_args().
func_get_args() diz os valores(argumentos) passado para a funo.
func_num_args() diz a quantidade de valores passados para a funo.

Observe um exemplo mais complexo abaixo:

Resultado: nome = Alex , nome = Sara ,nome = Maria ,nome = Bruna ,


Professor Renato Almansa da Silva Curso Tcnico em Informtica
PHP e MySQL 100
10.4. Valor de Retorno
Toda funo pode opcionalmente retornar um valor, ou simplesmente executar os comandos e no
retornar valor algum. No possvel que uma funo retorne mais de um valor, mas permitido
fazer com que uma funo retorne um valor composto, como listas ou array's. As operaes
aritmticas podem ser feita de forma direta no retorno. Observe um exemplo onde temos uma
operao direta:

Resultado:
O resultado : 139.5

Tambm podemos determinar mais de um retorno desde que eles no sejam acessados ao mesmo
tempo, observe o exemplo abaixo:

Esse cdigo mostra de forma clara que


no existe a possibilidade de
retornarmos mais de um return, caso
isso ocorresse, teramos um erro, ou no
funcionamento da funo.

10.5. Recurso.
Funo recursiva uma definio usada tanto na programao quanto na matemtica, onde,
significa que uma funo faz a chamada de si mesma na sua execuo. Um exemplo o calculo
do fatorial de um nmero. Observe:
Fatorial de 5: 5! = 5*4!, 4! = 4*3!, 3! = 3*2!, 2! = 2*1! ou 5*4*3*2*1 = 120.
Exemplo:

Resultado: 120

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 101

10.6. EXERCCIOS PROPOSTOS


1) Diga com suas palavras uma definio para funo, e como podemos declar-la em PHP.
2) Qual a diferena de variveis globais para variveis locais e como podemos defini-las em PHP.
3) O que um parmetro, e quais os tipos de parmetros em PHP.
4) Quais as funes que podemos usar para criarmos uma funo onde seus parmetros
so passados pro argumentos variveis.
5) O que um valor de retorno e qual o comando usado quando queremos retornar algo dentro de
uma funo.
6) O que recurso.
7) Crie uma funo que determine se um numero par ou impa. E faa uma chamada dessa funo
imprimindo o resultado.
8) Crie uma funo que calcule a fatorial de um nmero.
9) Crie uma funo para determina se um numero primo ou no. Numero primo aquele que
possui dois divisores, 1 e ele mesmo. Criem um lao de repetio e use estrutura de controle.

Anotaes:

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 102

Captulo 11. Manipulao de arquivos e diretrios


Objetivos
Mostrar formas de manipulao de arquivos; Usar os principais comandos para trabalharmos
com arquivos e diretrios; Aprender a trabalhar com leitura e escrita de arquivos, listagem, e
criao de variveis buffer de arquivos.

Assim como outras linguagens de programao, muito importante trabalharmos com


manipulaes de arquivos e diretrios em PHP, onde temos a possibilidade de manipular um
arquivo ou diretrio dentro do servidor web, podendo criar arquivos responsveis por guardar
informaes referentes aquele sistema ou pgina. Essas informaes podem ser resgatadas
futuramente, ou simplesmente so informaes que ao invs de serem gravadas no bando de dados,
foram gravadas em um arquivo ou log (arquivos que grava informaes sobre o sistema, erros etc..).
Ao trabalhar com arquivos, no mnimo duas operaes devem ser realizadas: abrir e fechar o
arquivo.

11.1. Criando e Abrindo um Arquivo.


O comando utilizado para criar um arquivo o mesmo que usamos para abri-lo, porm no Linux
temos que dar permisses pasta no qual o arquivo vai ser guardado.
Abra o konsole ou terminal do seu sistema (Linux). Digite:

chmod 777 /var/www

O comando chmod 777 da todas as permisses possveis na pasta www onde trabalharmos na
criao de nossos arquivos.
Para abrir ou criar um arquivo utilizaremos o seguinte comando abaixo:
fopen
Com esse comando podemos abrir um arquivo e retornar um identificador. Sua sintaxe e a seguinte:

$identificador = fopen(string_do_arquivo,modo_do_arquivo)

string_do_arquivo definido como o nome do arquivo mais a sua extenso, isso incluindo
ocaminho onde esse arquivo localizado ou no, por exemplo:
/home/aluno/meu_arquivo.txt
Podemos observar um arquivo criado dentro da pasta alunos com o nome meu_arquivo.txt.
modo_do_arquivo nesse parmetro podemos determinar a forma que o arquivo vai ser aberto
com os seguintes valores:
r read, este modo abre o arquivo somente para leitura.
w write, abre o arquivo somente para escrita , caso o arquivo no exista, tenta cri-lo.
a+ append, abre o arquivo para leitura e escrita, caso o arquivo no exista, tenta cri-lo.
Existem outros modos, mas trabalharemos somente com estes.

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 103

Dica: para trabalharmos com arquivos sempre importante sabermos se a pasta ou o


arquivo tem permisses dentro do Linux, caso isso no acontea, o arquivo no ser
criado, lido ou at mesmo gravado.

Veja um exemplo do uso do comando fopen:


Caso o arquivo no exista, ele criando
dentro da pasta onde o arquivo *.php foi
criado, ou seja, no nosso exemplo o arquivo
se chama index.php e estar dentro da pasta
www, aps executamos esse comando
teremos um novo arquivo com o nome
meu_arquivo.txt.
11.2. Gravando em um arquivo.

Aps o uso do comando fopen, temos um identificador apontando para o arquivo, e com ele que
podemos fazer alteraes ou manipulaes. Podemos gravar dados dentro do arquivo com o uso do
seguinte comando:
fwrite
sintaxe:
fwrite(indentificador,contedo)

identificador o parmetro retornado pelo comando fopen.


contedo o contedo a ser gravado no arquivo.
Vale ressaltar que para podermos gravar no arquivo ele deve ter permisso dentro do Linux e, alm
disso, ter como parmetro w ou a+ passado para o comando fopen.
Observe um exemplo onde escrevemos (gravamos) duas linhas dentro de um arquivo de texto
criado com os comandos visto at agora:
Exemplo: Resultado:

O uso de \n antes da palavra rua faz com que ocorra uma quebra de linha escrevendo o resto do
contedo na linha abaixo. Aps a execuo do script (colocando http://localhost no navegador e o
nome do script criado), abrimos o arquivo de texto (meu_arquivo.txt) com um editor e percebemos
o resultado final. Observe mais um
exemplo: Resultado:

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 104

No exemplo, fizemos a chamada do comando fwrite trs vezes e escrevemos a cada chamada um
valor diferente concatenando com \n.

11.3. Fechando um arquivo.


At agora trabalhamos com o comando fopen e no fechamos o arquivo, simplesmente abrimos e
executamos os demais comandos. Isso faz com que, caso tenhamos de usar o mesmo arquivo em
outra parte do cdigo, ele no poder ser utilizado, pois para isso preciso fechlo para ele poder
ser aberto novamente em outra parte do cdigo. Para isso usamos o seguinte comando:
fclose
sintaxe:
fclose(indentificador)

exemplo:
Toda vez que abrimos um arquivo com
fopen, devemos fech-lo com o
comando fclose conforme o exemplo
ao lado.

11.4. Lendo um arquivo.


Aps abrirmos um arquivo, outra operao que podemos efetuar a leitura do contedo existente
no arquivo. Essa operao feita linha por linha, onde podemos resgatar valores existentes de
acordo com a chamada do comando fread ou o ndice do array criado pelo comando file.
file
L um arquivo e retorna um array com todo seu contedo, de modo que a cada posio do array
representa uma linha do arquivo comeando pelo ndice 0.
sintaxe:
$array = file(string_do_arquivo)

string_do_arquivo da mesma forma que definida no comando fopen, usa-se o caminho com o
nome do arquivo ou simplesmente o nome do arquivo caso ele exista na mesma pasta onde o
arquivo PHP que contm o comando foi criado.
Exemplo: Resultado:

Nesse exemplo utilizamos o arquivo anterior onde foi escrito trs linhas, porm efetuamos a leitura
somente da linha 1 (ndice 0) e linha 2 (ndice 1). Oura forma percorrer o array usando um
foreach(),dessa forma podemos ler todas as linhas existentes no arquivo, veja:

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 105
Exemplo: Resultado:

11.5. Copiando, Renomeando e Apagando um Arquivo.


Em PHP tambm possvel copiarmos um arquivo de uma origem para um determinado destino,
como tambm apagar esse arquivo. Para isso usamos os seguintes comandos:
copy
Cria um arquivo para outro local/nome. retornando um valor booleano verdadeiro(true) caso a copia
tenha ocorrido sem erros ou falhas, caso contrrio retorna falso(false). Sintaxe:

copy(string_origem,string_destino)

exemplo:

Caso tudo ocorra corretamente, o resultado apresentado no navegador Cpia efetuada, e ser
criado uma cpia dentro da pasta com o nome meu_novo_arquivo.txt. Vale lembrar que podemos
tambm passar o caminho completo para onde deve ser copiado, como por exemplo:
/home/aluno/meu_novo_arquivo.txt

Para renomearmos um arquivo usamos:


rename
sintaxe:
rename(nome_do_arquivo, novo_nome)

Para apagarmos um arquivo usamos:


unlink
sintaxe:
unlink(nome_do_arquivo)

Observe um exemplo, onde renomeamos o arquivo meu_novo_arquivo.txt para


arquivo_texto.txt e apagamos o arquivo meu_arquivo.txt:

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 106

Aps executarmos
isso
No navegador,
percebemos as
mudanas
ocorridas dentro do
diretrio.

11.6. Manipulando Diretrio.


Alguns comandos bsicos so necessrios para manipulao de diretrios, mostraremos apenas
como obter o diretrio atual, como criar e apagar um diretrio, para isso usamos os seguintes
comandos:
mkdir
Cria um diretrio de acordo com a localizao e o modo. Sintaxe:

mkdir(string_localizao, int_modo);

string_localizao definido como o caminho com o nome do diretrio, ou somente o nome.


int_modo onde definimos as permisses de acesso(como se fosse o chmod do Linux).
Dessa forma podemos criar um diretrio e j atribuirmos as permisses a ele.
getcwd
Retorna o diretrio corrente, este comando usado caso precise obter o diretrio onde o arquivo
PHP que possui este comando est guardado.
sintaxe:
getcwd()

rmdir
Apaga um diretrio. Sintaxe:

rmdir(nome_diretrio);

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 107

Observe o exemplo envolvendo os trs comandos abaixo: Resultado:


Exemplo:

Observe que o comando getcwd obtm o caminho completo de onde o arquivo PHP que contm o
cdigo-fonte estar guardado.

11.7. EXERCCIOS PROPOSTOS


1) O que manipulao de arquivos.
2) Observe o cdigo-fonte abaixo:
1 <?php
2 $arquivo = fopen("all.txt","w");
3 fwrite($arquivo, "oi tudo bem!");
4 fclose($arquivo);
5 ?>
a) Que tipo de arquivo gerado na linha 2 e aonde o mesmo criado.
b) Que o parmetro w da linha 2 do cdigo representa.
c) Qual a finalidade do comando fwrite da linha 3 do cdigo.
d) Qual o principal motivo de fecharmos o arquivo com o comando fclose da linha 4 do cdigo.

Crie um arquivo de texto chamado frases.txt usando o comando fopen, e responsa as questes
3,4,5,6,7
3) Grave uma mensagem dentro do arquivo criado.
4) Com base no arquivo criado, utilize o comando fwrite para ler o mesmo imprimindo na tela do
navegador o contedo do arquivo.
5) Abra o arquivo frases.txt com um editor de texto, adicione cinco palavras, cada uma em uma
linha diferente, aps isso utilize o comando file, para efetuar a leitura do arquivo, e imprima na tela
a primeira e ultima palavras com o comando echo.
6) Crie uma cpia do arquivo renomeando o novo arquivo para palavras.txt.
7) Agora apague o arquivo frases.txt com o comando unlink.
8) Crie um diretrio com o comando mkdir e copie o arquivo palavras.txt para a pasta criada e
apague o anterior, tudo com comandos PHP.
9)Crie um cdigo que imprima na tela todo o cominho de pastas onde se localiza o arquivo
palavras.txt.

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 108

Captulo 12. Interaes PHP com HTML


Objetivos
Apresentar ao aluno como trabalhar com interaes PHP dentro do cdigo HTML; Mostrar exemplos
de formulrio, o uso de mtodos POST e GET, cookies, listagem, seo e suas interaes com o Browser.

Abordaremos nesse capitulo algumas formas de interaes utilizando a linguagem de programao


PHP e a linguagem de marcao HTML. Alm disso, mostraremos alguns componentes mais
utilizados para a construo de um sistema ou uma pgina web, e de que forma o PHP pode receber,
processar, e enviar essa informao.
Utilizamos linguagens para exibir os dados da aplicao, seja ela para simples conferncia, em
relatrio ou ainda possibilitando a adio e excluso de registros. Criaremos a principio
formulrios e listagem.

12.1. Formulrios
Podemos definir formulrio como um conjunto de campos disponveis ao usurio de forma
agrupada para serem preenchidos com informaes requisitada pela aplicao (sistemas web ou
pginas). Um formulrio composto por vrios componentes, alm de possuir botes de ao, no
qual define o programa que processar os dados.
Em uma aplicao determinamos ento a entrada de dados ( no caso os formulrios ), e a sada de
dados, que toda e qualquer informao apresentada ao usurio pelo browser, de forma que ambas
tenham uma ligao lgica e possa retornar um resultado onde todos os componentes da aplicao
trabalhem de forma coerente.
Elementos de um formulrio.
Para criarmos um formulrio, utilizamos a tag <form> e dentro dela podemos dispor diversos
elementos, onde, cada um deles representa uma propriedade em particular. A seguir explicaremos
os principais componentes de um formulrio.
Criando um formulrio:
Todo formulrio deve conter no mnimo as seguintes caractersticas, observe:

name Nome atribudo ao formulrio para sua identificao.


method Mtodo POST ou GET como veremos mais adiante.
action Caminho do arquivo que receber os dados do formulrio ao ser enviado.
Os elementos do formulrio sero preenchidos com os componentes input onde a tag <input>
conforme o exemplo abaixo:

A tag input pode ser composta por vrios elementos onde neles podemos definir o tipo, nome, e o
valor padro alm de outras propriedades que no apresentaremos nessa apostila.
name Nome atribudo ao componente para sua identificao.
value Valor padro que pode ser atribudo no formulrio.
type Tipo de input, nele onde definimos o tipo elemento o input vai representar.

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 109

Observe a tabela abaixo com a definio dos tipos que podemos atribuir ao elemento type do input.
type Descrio Exemplo:
texto Elemento utilizado para entra de texto simples,
um dos mais utilizados.
password Elemento utilizado para entrada de senhas,
exibe * no lugar dos caracteres inseridos pelo
usurio.
checkbox Utilizado para exibir caiar de verificao, muito
utilizado para perguntas booleanas.
radio Exibe botes para seleo exclusiva, utilizado
para seleo de apenas um item.

Utilizado para seleo de arquivos, esse tipo


file
muito comum quando queremos enviar algo
pelo navegador(browser).

hidden utilizado para armazenar um campo escondido No visvel ao usurio.


dentro do formulrio.
Usado para exibir um boto na tela, porm sua
button ao definida por outra linguagem como
javascript.

submit Boto usado para submeter os dados do


formulrio no servidor, ele envia as informaes
de acordo com as informaes preenchidas na
tag <form>.

reset Utilizado para limpar todos os campo do


formulrio, voltando ao valor inicial.

select Tipo utilizado para exibir uma lista de valores


contido na lista de seleo do usurio (cada
valor guadardo rm uma tag <option>, porm
s pode ser selecionado uma opo.

Tag: rea de texto disponibilizado ao usurio, possui


mltiplas linhas(rows) e colunas (cols) que
<textarea> podem ser determinados dentro de sua tag. No
um tipo de input, mas uma tag HTML para
formulrio.

A tag <textarea> pode ser definida conforme o exemplo de cdigo abaixo:

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 110

Observe que definimos uma caixa de texto com 5 linhas e 27 colunas, isso define o tamanho que
essa caixa vai ter dentro do formulrio.

12.2. Exemplo de formulrio.


Veremos agora exemplos de alguns formulrios comumente encontrados, usando os componentes
apresentado anteriormente. No entraremos em detalhes do HTML, sendo apresentado de maneira
direta, pois est subentendido que o aluno j conhea HTML. Observe os exemplos abaixo:
Tela de login:
cdigo-fonte:

Resultado:

Tela de Cadastro:
cdigo-fonte:

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 111

Resultado com dados preenchidos:

Tela de envio de dados e arquivos:


cdigofonte:

Resultado:

Com esses exemplos, j podemos trabalhar com as informaes at agora mostrada. Para isso
vamos conhecer os dois principais mtodos de envio de dados de um formulrio para um arquivo
PHP.

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 112

12.3. Mtodo Post e Get


Quando falamos em como enviar dados para um formulrio, deve vir em mente os mtodos GET e
POST, que so os mtodos utilizados. Mas quando fazemos uma requisio HTTP, sempre
utilizamos um desses mtodos, normalmente o GET.
Se voc digita um endereo na barra de endereo seu navegador e aperta a tecla enter (ou clica no
boto ir), o navegador faz uma requisio HTTP para o servidor do endereo digitado e o mtodo
dessa requisio o GET. Se voc clica em um link em um site, o navegador tambm se encarrega
de fazer um requisio HTTP com o mtodo GET para buscar o contedo da pgina que voc
clicou.
Esse mecanismo funciona da seguinte forma. Primeiro temos em um formulrio, um boto ou link.
Quando clicamos em umas dessas propriedades, estamos enviando uma requisio. A forma de
enviar pode ser definida pelo mtodo get ou post e deve ser enviada para algum arquivo, que ao
receber, processe a informao devolvendo resultado ou no. Veja a ilustrao abaixo:

12.3.1. Mtodo Get


O mtodo GET utiliza a prpria URL (normalmente chamada de URL) para enviar dados ao
servidor. Quando enviamos um formulrio pelo mtodo GET, o navegador pega as informaes do
formulrio e coloca junto com a URL de onde o formulrio vai ser enviado e envia, separando o
endereo da URL dos dados do formulrio por um ? (ponto de interrogao) e &.
Quando voc busca algo no Google, ele faz uma requisio utilizando o mtodo GET, voc pode
ver na barra de endereo do seu navegador que o endereo ficou com um ponto de interrogao no
meio, e depois do ponto de interrogao voc pode ler, dentre outros caracteres, o
que voc pesquisou no Google.
Abaixo temos um exemplo de uma URL do gmail da google, Observe:

Podemos notar a passagem de dois valores:


?hl = ptbr, logo aps &shva=1, ou seja, temos ento a criao da varivel hl que recebe o valor
ptbr, e tambm a varivel shva que recebe como valor 1. Veja exemplos de cdigos com links
enviando valores por mtodos GET.

Ao clicarmos em um desses links, podemos observar o seguinte comportamento na URL do


navegador:

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 113

Link informao estamos enviando dois valores via mtodo GET, um contendo 3, e o outro 4,
para o arquivo gravar.php .
Link Entrar estamos enviando dois valores via mtodo GET, um contendo 24, e o outro
annimo, para o arquivo gravar.php .
Formulrio(<form>) Envias as informaes preenchidas no input nome via GET
para o arquivo gravar.php.

Recebendo dados via mtodo GET


Agora trabalharemos com o arquivo PHP, onde podemos resgatar os valores enviados pelo mtodo
$_GET,sua sintaxe a seguinte:

$_GET['nome_da_campo'] retorna o valor passado pelo campo.


$_GET retorna um array com todos os valore enviados e seus supostos ndices.

Quando queremos um valor especifico, colocamos o nome da varivel da URL ou o nome


atribudo na propriedade name do input do formulrio.
Exemplo com links:
cdigo HTML:

cdigo PHP(nome do arquivo: gravar.php):


Resultado:

Exemplo com Formulrio:


cdigo HTML:

Browser:

cdigo PHP(nome do arquivo: gravar.php):

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 114

Resultado:

Em casos que precisamos de mais segurana, onde o ocultamento de informao necessrio, o


mtodo GET no uma boa opo. Observe no exemplo anterior que qualquer valor passado pela
URL fica visvel, e o usurio pode ver informaes pessoais como um login e uma senha.
Dica: Em casos semelhantes, utilize sempre o mtodo POST.

12.3.2. Mtodo Post


Muito semelhante ao mtodo GET, porm a principal diferena est em enviar os dados
encapsulado dentro do corpo da mensagem. Sua utilizao mais vivel quando trabalhamos com
informaes segura ou que poder ser alteradas somente por eventos do Browser. Sintaxe:

$_POST['nome_da_campo'] retorna o valor passado pelo campo.


$_POST retorna um array com todos os valore enviados e seus supostos ndices.

Veja o mesmo exemplo anterior, porm com o uso de POST:


Exemplo com Formulrio: Mudana no mtodo
cdigo HTML:

cdigo PHP(nome do arquivo: gravar.php):

Resultado aps o envio dos dados preenchidos:

Com o uso do mtodo post, as informaes ficam invisveis ao usurio, isso evita que alguma causa
mal-intencionada venha tornar os dados inconsistentes (dados sem fundamentos ou falsos).

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 115

12.4. Interaes com o Browser


PHP tambm permite interagir com informaes do browser automaticamente. Isso pode ser muito
til quando queremos coletar informaes sobre o cliente, como por exemplo, o tipo de browser
(navegador), ou qual o sistema operacional, dentre outras informaes.
O cdigo a seguir mostra informaes sobre o browser do usurio:

A varivel global $HTTP_USER_AGENT tem como finalidade retornar informaes do cliente que
est acessando o arquivo PHP pelo browser, abaixo um exemplo desse retorno:

J vimos que a varivel $HTTP_USER_AGENT retorna uma string com vrias informaes, com
isso podemos utilizar a funo strpos(), que tem como finalidade procurar valores de uma string
menor dentro de uma string maior. Podemos desta forma otimizar o nosso cdigo. Sintaxe:
strpos( string_maior , string_menor )

Observe outro cdigo com o uso da funo strpos() :

Nesse exemplo procuramos as palavras Firefox e MSIE dentro do valor retornado pela varivel
global $HTTP_USER_AGENT. Dessa forma, podemos tratar o resultado comparando-o com
0ou seja, se a palavra existir, significa que seu valor diferente de 0. O resultado impresso na
tela de acordo com o navegador do cliente.
Exemplo de requisio HTTP_USER_AGENT:

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 116

12.5. Cookies
Cookies so mecanismos para armazenar e consultar informaes. Eles so armazenados na
maquina do cliente que acessa ao servidor php, e possui vrias atribuies que so definidas pelo
programador, por exemplo: imagine uma loja virtual, onde o cliente colocou em seu carrinho de
compras vrios produtos, mas por algum motivo ele no concluiu a compra, tendo que desligar a
maquina que foi utilizada para fazer o acesso. No dia seguinte o cliente entra no mesmo site e
percebe que todos os itens ainda esto no carrinho de compra do jeito que ele deixou, esperando a
concluso da compra. Nesse exemplo, podemos perceber que as informaes foram gravadas na
maquina do cliente atravs dos cookies, que so simplesmente arquivos gerados pela pgina
acessada dentro de alguma pasta do navegador que existe exclusivamente para esses arquivos.
O PHP atribui cookies utilizando a funo setcookie que deve ser utilizada antes da tag <html>
numa pgina. Alm disso o uso de cookies no recomendado quando se trata de informaes
sigilosas. Os dados dos cookies so armazenados no diretrio de arquivos temporrios do visitante,
sendo facilmente visualizado por pessoas mal intencionadas.
Alm da opo aceitar cookies que pode ser desativada a qualquer momento pelo visitante. Mas
em cada navegador essa opo pode mudar de nome. Observe o comando abaixo:
setcookie
Sua sintaxe possui muitos parmetros, abaixo est representada todos os valores que podem ser
atribudo ao setcookie, mas vale ressaltar que no utilizaremos todos eles, somente os principais,
veja sua sintaxe.
Setcookie(nome_do_cookie,seu_valor,tempo_de_vida,path,
domnio,conexo_segura)

Onde na tabela abaixo temos a descrio de cada atributo:

Atributo Descrio
nome_do_cookie o nome que, posteriormente, se tornar a varivel e o que o servir
de referncia para indicar o cookie.
seu_valor o valor que a varivel possuir. Esse valor pode ser de todos os tipos.
o tempo, em segundos, que o cookie existir no computador do
seu_valor visitante. Uma vez excedido esse prazo o cookie se apaga de modo
irrecupervel. Se esse argumento ficar vazio, o cookie se apagar
quando o visitante fechar o browser.
path endereo da pgina que gerou o cookie automtico
domnio domnio ao qual pertence o cookie automtico
conexo_segura Indica se o cookie dever ser transmitido somente em uma conexo
segura HTTPS.

Observe um cdigo onde criamos um cookie:

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 116

Criamos ento uma string, logo aps a funo setcookie recebendo como parmetro somente o seu
nome e o valor a ser gravado.
Usaremos o navegador Mozilla Firefox para visualizarmos o cookie criado, para isso basta digitar o
endereo http://localhost na url, e logo aps ir na opo: Ferramentas Propriedades dapgina
Segurana Exibir cookie. Lembre-se de criar o cdigo acima primeiro e depois fazer a chamada
pelo navegador de sua maquina. Se tudo ocorrer corretamente dever aparecer a seguinte tela:
Veja que outras informaes como
caminho, enviar, e validade no foram
especificados, porm podemos determina-
los na hora da criao do cookie dentro do
cdigo php.
Mostraremos agora um cdigo onde
atribumos o tempo de vida do cookie, para
Nome do Cookie isso devemos capturar o tempo com a
Valor do cookie
funo time() atual e som-lo ao tempo que
queremos em segundos, isso faz com que o
cookie exista na maquina do cliente de
acordo com a quantidade de tempo
determinado pelo programador, observe um
exemplo onde atribuirmos mais esse
parmetro o funo setcookie:

Exemplo:

O novo resultado o seguinte: Esse cookie tem a validade de 3600


segundos, ou seja 1 hora, com isso
conclumos que o navegador fez seu acesso
as 14:47:36. Isso muito importante para a
programao dos cookies. Se quisermos
Data de vencimento do cookie, que ele exista por um determinado tempo,
aps ela ele deletado temos que calcular tudo em segundos da
automaticamente seguinte forma:

$tempo = time()+(3600*24*7);

Esse cookie tem seu tempo de vida de 7


dias, pois 3600 segundos = 1 hora, 24
horas = 1 dia e 7 * horas_de_um_dia
resulta em 7 dias.
Exemplo:

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 118

Validade:
Validade de 7 dias a partir do dia 12.

Acessando um cookie:
Para acessarmos o valor gravado em um cookie bem simples, basta utilizar o comando
$_COOKIE['coloque_aki_o_nome_do_cookie'], exemplo:

Resultado: valores a serem gravados


Observe agora um exemplo de um cdigo utilizado para contar as visitas de um site usando cookie:

O resultado de acordo com a quantidade de vezes que o cliente entrou no site ou atualizou o mesmo.

12.6. Sesso
Sesses so mecanismos muito parecidos com os tradicionais cookies. Suas diferenas so que
sesses so armazenadas no prprio servidor e no expiram a menos que o programador queira
apagar a sesso. As sesses so mtodos de manter (ou preservar) determinados dados
a mant-los ativos enquanto o navegador do cliente (o internauta) estiver aberto, ou enquanto a
sesso no expirar (por inatividade, ou porque em algum ponto voc mandou que ela expirasse).
Para criarmos uma sesso utilizaremos a funo abaixo:

Dessa forma estamos iniciando um conjunto de regras. essa


funo deve sempre estar no incio do cdigo-fonte,
com exceo de algumas regras.

Agora trabalharemos com essa sesso, primeiro podemos determinar o tempo de vida da sesso
com o seguinte comando:

Neste caso, session_cache_expire vem antes de session start. Porque primeiro ele avisa que a
sesso, quando iniciada, deve expirar em 5 minutos, e depois a inicia.

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 119

Com o comando $_SESSION podemos gravar valores na sesso, veja um exemplo:

Criamos uma sesso com o nome minha_sessao(no uma boa prtica de programao usar acentos
em nomes de variveis ou qualquer outra nomeao) e atribumos a ela o valor gravado na varivel
string $var. Essas informaes ficam gravadas no servidor, logo aps podemos resgatar o valor da
seguinte forma:

Observe que o comando $_SESSION tem seu tratamento igual a uma varivel do tipo Array. Para
resgatar o valor da sesso, basta fazer a chamada do comando passando o nome da sesso, no caso
minha_sessao. O exemplo anterior foi adicionado em um outro arquivo, por esse motivo temos
que chamar novamente o comando session_start(), para trazermos ao arquivo todas as
regras usadas em sesso no PHP.
Abaixo temos um exemplo com o uso da funo isset(), que verifica se uma varivel existe ou no,
retornando um valor booleano( true ou false ):

O resultado de acordo com a


existncia ou no da sesso.

Para desativarmos uma sesso podemos utilizar dois tipos de mecanismos: um deles o uso da
funo session_destroy() que tem como finalidade destruir todas as sesses criada pelo usurio, a
outra forma desalocarmos a sesso criada com o uso da funo unset().
Uso de session_destroy():

Uso de unset():
Usamos unset() quando queremos desalocar uma determinada sesso, imaginamos que o usurio ao
acessar uma determinada pgina, tenha criado vrias sesses com nomes diferente. Os nomes das
sesses so determinada pelo programador, porm ao clicar em um link, o mesmo tem que destruir
a seo escolhida. O exemplo abaixo destri a sesso especificada:

Dessa forma desalocamos (destruirmos) a


sesso minha_sessao, porm se
existirem outras, elas ainda continuaro
ativas.

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 120

12.7. Requisio de Arquivos


Assim como em muitas outras linguagens de programao tambm possvel incluir dentro de um
script PHP outros arquivos contendo outras definies, constantes, configuraes, ou at mesmo
carregar um arquivo contendo a definio de uma classe. Para isso podemos usar os seguintes
comandos:
include<arquivo>:
A instruo include() inclui e avalia o arquivo informado. O cdigo existente no arquivo entram no
escopo do programa que foi inserido, tornando-se disponvel a partir da linha em que a incluso
ocorre. Se o arquivo no existir, produzir uma mensagem de advertncia(warning).
Exemplo onde temos dois arquivos:
cdigo do arquivo_teste.php cdigo do arquivo index.php

Resultado:

Nesse exemplo podemos notar que o cdigo existente no arquivo_teste.php foi inserido dentro do
arquivo index.php, tendo como resultado a execuo dos dois cdigos como se fossem apenas um,
esse recurso muito utilizado, pois podemos incluir at mesmo cdigos de pginas inteiras em um
arquivo.
require<arquivo>:
Comando muito parecido ao include. Difere somente na manipulao de erros. Enquanto o include
produz uma warning, o require uma mensagem de Fatal Error caso o arquivo no exista.

Sintaxe: require 'nome_do_arquivo.php';

include_once<arquivo>:
Tem funcionalidade semelhante ao include, a diferena que caso o arquivo informado j esteja
includo, esse comando no refaz a operao, ou seja, o arquivo includo apenas uma vez. Este
comando til para garantir que o arquivo foi carregado apenas uma vez. Caso o programa passe
mais de uma vez pela mesma instruo, evitar sobreposio de arquivo.

Sintaxe: include_once 'nome_do_arquivo.php';

require_once<arquivo>:
Tem funcionalidade parecida com o comando require. A diferena justamente caso o arquivo j
tenha sido includo no programa, pois ele no carrega novamente o cdigo. muito semelhante ao
include_once, evitando redeclaraes ou sobreposies, porm a mensagem exibida caso o arquivo
no exista de Fatal Error.

Sintaxe: require_once 'nome_do_arquivo.php';

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 121

12.8. Tratamentos de erro.


So muito comuns erros na programao PHP, que podem partir do programador como pessoa
fsica, do servidor, ou outros fatores envolvidos que juntos venham ocasionar em um erro. Existem
quatro tipos de erros no PHP para indicar a gravidade do erro encontrado ou ocorrido. Eles so:
1. Erros de funes (function errors).
2. Avisos (warnings).
3. Erros de processamento (parser error).
4. Observaes (notice).

Os programadores devem prestar muita ateno nas mensagens de erro, afinal nenhum programador
quer por no ar um sistema que quando o primeiro visitante entra aparea uma mensagem de erro.
Para evitar essas inconvenincias use sempre um @ antes de cada chamada as funes. Se a
opo track_errors no arquivo php.ini estiver habilitada, a mensagem de erro poder ser
encontrada na varivel global $php_errormsg. Para exibir a mensagem direta no navegador
procure ativar a opo display_errors, as funes sero ativadas para On(ligada) ou
Off(desligada).
O arquivo php.ini no linux geralmente fica na pasta: /etc/php5/apache2/php.ini .
Veja o Exemplo:

Imprimindo a mensagem de erro:

Resultado:

Mensagem de erro com a opo display_errors = On do php.ini ativada:


Warning: strtolower() expects exactly 1 parameter, 0 given in /var/www/index.php on line 2
O erro mostra que devemos passar um parmetro para a funo strolower() na linha 2, mas
podemos ignorar o erro usando o @.

Essa funo deixaria todos os caracteres em minsculo, mas seu erro foi ignorado, no exibindo
nenhuma mensagem de erro.

Lembrando: podemos utilizar tag's curtas no PHP <? ?> em vez de tags
normais <?php ?>, mas isso vai depender da configurao do PHP (php.ini),
em alguns casos no funciona.

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 122

12.9. EXERCCIOS PROPOSTOS

1)Crie um formulrio HTML com os seguintes campos:


nome, endereo, email, senha, e o boto enviar.

2)Utilize o mtodo Get para visualizar os dados do array na URL do navegador ao clicar no boto
enviar.

3)Qual a diferena do mtodo POST e GET.

4)Como podemos receber dados via mtodo GET. Exemplifique.

5)Como podemos receber dados via mtodo POST. Exemplifique.

6)Crie um arquivo chamado dados.php, nesse arquivo dever conter os seguintes requisitos:
Os dados do formulrio da questo 1 dever ser enviado para esse arquivo via metodo
POST.
O aquivo dados.php dever conter cinco variveis, cada uma para determinado campo, exemplo:
$nome = $_POST['nome'];
Os valores dever ser impresso na tela.

7)Qual a finalidade da varivel global $HTTP_USER_AGENTE.

8)Crie um cookie gravando nele o seu nome, logo aps abra o Firefox e Exiba o valor gravado.

9)Crie um arquivo chamado criar_sessao.php, utilize comando PHP para cria uma seo com a
durabilidade de 3 minutos e adicione o valor sesso ativa.

10)Crie um novo arquivo chamado ler_sessao.php para verificar se a sesso criada na questo 9
existe ou no. Utilize o comando $_SESSION para ler o valor nela contido e imprima na tela.

11)Quais os possveis erros existentes em PHP e qual a definio de cada um deles.

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 123

Captulo 13. Introduo ao MySQL


Objetivos
Apresentar ao aluno as principais estruturas do banco de dados MYSQL de forma prtica e explicativa.
Abordar os principais comando SQL.

13.1. O que o MYSQL?


O MySQL um completo sistema de gerenciamento de bancos de dados relacional. Tem como
caractersticas mais marcantes a estabilidade e agilidade. Foi
criado por uma empresa sueca chamada TcX e vem sendo
desenvolvido por mais de 10 anos. O seu intuito ao crilo foi de
prover a seus clientes um produto altamente estvel, rpido e
seguro. Atualmente um dos SGBDs (Sistema Gerenciador de
Banco de Dados) mais utilizados na Internet. Vrias linguagens
de programao tm interface com este, como o PHP, Java
(JDBC), Perl, TCL/TK, Python, C/C++, etc, e ainda ODBC.
Outro ponto forte sua portabilidade. Existem verses para os
mais diversos sistemas operacionais como Linux, FreeBSD,
OpenBSD, NetBSD, Solaris, Windows 95/ 98/ NT/ 2000/ XP/
Vista/ Windows 7, HPUX, AIX, etc.
J virmos a instalao do MYSQL no Linux no captulo1.2.3, onde instalamos tambm o
PhpMyAdmin para administrarmos o banco de dados no modo grfico e pelo navegador.
13.2. Trabalhando com MYSQL.
Para logramos no mysql temos que abrir o Konsole (terminal) e digitar o seguinte comando:

mysql -u root -p
Nome do usurio.
u usurio, define o nome do usurio.
p password, pedido de senha.
Logo aps esse comando uma senha ser pedida. Digite a senha que foi definida na instalao do
banco. Depois de logarmos visualizaremos a seguinte tela:

Agora estamos logado no gerenciador de banco de dados MYSQL. Para sair do banco digite: quit
ou exit e logo aps der um enter.
Um banco de dados trabalha basicamente com tabelas, e cada tabela possui uma determinada
quantidade de linhas (registros) e colunas (campos). As informaes so gravadas para futuramente
serem inseridas, alteradas (atualizadas), ou deletadas.
O primeiro passo visualizarmos alguns bancos de dados que vem
como padro, para isso utilizamos comando show databases, veja
ao lado: Sempre utilize ; para finalizar qualquer comando.
Podemos perceber que na maquina que foi utilizado esse comando,
foram encontrados cinco banco de dados.

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 124

13.2.1. Estruturas de Dados


Os tipos de dados possuem diversas formas e tamanhos, permitindo ao programador criar tabelas
especficas de acordo com suas necessidades. Podemos definir a hierarquia de banco de dados da
seguinte forma: Banco de dados > Tabela > Registro > Tipo de dados, conforme a figura abaixo:

O MySQL prov um conjunto bem grande de tipos de dados, entre eles podemos
citar os principais:
Tipo de dado Descrio
CHAR(M) strings de tamanho fixo entre 1 e 255 caracteres.

VARCHAR(M) strings de tamanho flexvel entre 1 e 255 caracteres.

VARCHAR ocupa sempre o menor espao possvel, no entanto 50% mais lento que o tipo CHAR.

INT(M)[Unsigned] nmeros inteiros entre 2147483648 e 2147483647. A opo "unsigned" pode ser usada
na declarao mudando o intervalo para 0 e 4294967295 para inteiros no sinalizados.

FLOAT [(M,D)] nmeros decimais com D casas decimais.

DATE: armazena informao relativa a datas. O formato default 'YYYYMMDD' e as datas


variam entre '00000000' e '99991231'. MySQL prov um poderoso conjunto de
comandos para formatao e manipulao de datas.

TEXT/BLOB: strings entre 255 e 65535 caracteres. A diferena entre TEXT e BLOB que no primeiro
o texto no sensvel ao caso e no segundo sim.

BIT ou BOOL um nmero inteiro que pode ser 0(falso) ou 1(verdadeiro).

DOUBLE nmero em vrgula flutuante de dupla preciso. Os valores permitidos vo desde


1.7976931348623157E+308 at 2.2250738585072014E308, 0 e desde
2.2250738585072014E308 at 1.7976931348623157E+308

Existem outros tipos de dados, para mais detalhes consulte o site oficial do
MYSQL (http://www.mysql.com/).
Abaixo temos exemplos dessas estruturas:
Tipos de dados e seus
respectivos tamanhos

Nomes dos campos.

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 125

13.2.2. Criando Banco e Tabelas


Agora que conhecemos algumas estruturas (tipos de dados), podemos comear a trabalhamos com
alguns comandos, de acordo com a hierarquia criaremos o banco de dados e depois as tabelas:
CREATE DATABASE
Aps logar no MYSQL podemos cria qualquer base de dados com a seguinte sintaxe:

CREATE DATABASE 'nome_do_banco';


Exemplo:

Criamos ento um banco de dados chamado alunos

Dica: Os comandos funcionam normalmente em minsculo, mas por padro bom


sempre utilizar os comando SQL em maisculo para diferenci-los dos nomes e
atribuies, facilitando assim a organizao.

Novamente com o comando SHOW DATABASE podemos visualizar todos os bancos de dados
inclusive o que acabamos de criar:
Aps criamos o banco de dados alunos,
temos que conectarmo-nos a ele para iniciar
Aqui estar nosso qualquer operao.
bancos de dados. Para isso utilizado comando USE com a
seguinte sintaxe:

USE 'nome_do_banco';

Exemplo:

Com esse comando, todas as operaes que forem realizadas afetar de


forma direta somente o bando de dados alunos. A mensagem
Database changed significa bando de dados alterado.

CREATE TABLE
Uma base de dados pode possuir vrias tabelas, onde cada uma tem seu papel especifico e esto
relacionadas de forma direta ou no, para criarmos uma tabela usaremos a seguinte sintaxe:
CREATE TABLE 'nome_da_tabela' (
'nome_dos_campos' tipo_de_dado(tamanho) 'comandos...',
... ,
...
);
Exemplo:
Nem todo tipo de dado tem um tamanho, como por
exemplo, o tipo DATE. Alm disso, o comando NULL
significa que a informao inicial daquele campo nulo.
Para visualizar detalhes da tabela criada utilize o
comando DESCRIBE 'nome_da_tabela', veja o
exemplo:
Professor Renato Almansa da Silva Curso Tcnico em Informtica
PHP e MySQL 126

Exemplo:
Para exibir as tabelas use o comando
SHOW TABLES;

DROP
Para apagar o banco de dados ou a tabela, usamos o comando DROP com a seguinte sintaxe:
DROP DATABASE 'nome_do_banco'; //Usado para apagar o banco de sados
DROP TABLE 'nome_da_tabela'; //Usado para apagar tabelas.

Exemplo:

Apaga o banco de dados nomes. Apaga a tabela dados.

13.2.3. Manipulando dados das tabelas


Para manipulao dos dados de uma tabela usamos os seguintes comandos:
INSERT
Usado para inserir informaes em uma tabela. Possui a seguinte sintaxe:
INSERT INTO nome_da_tabela(campo1,campo2,...,...)
VALUES(valor1,valor2,...,...);

O valor inserido na tabela na mesma ordem que definida os campos, ou seja, o campo1
receber o valor1, o campo2 o valor2 e assim sucessivamente.
Exemplo:

SELECT
Permite recuperar informaes existentes nas tabelas. Sintaxe:

SELECT 'campo1','campo2',...,... FROM 'nome_da_tabela';

Exemplo:
Abaixo temos a exibio somente dos campos especificados aps o SELECT. Caso queira
visualizar todos os dados utilize asteriscos(*) conforme a segunda figura.

ou

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 127

UPDATE
Usado para atualizao dos dados, que altera os valores dos campos em uma tabela especificada com base
em critrios especficos. Sintaxe:
UPDATE nome_da_tabela
SET campo1 = 'novo_valor',campo2 = 'novo_valor',...,...
WHERE critrio;

Exemplo:
Imagine mais de 1000 registros
e voc precise alterar somente 1,
nesse caso usamos o critrio
sendo definido com o id.
ou seja, a alterao feita aonde o id = 1, em nosso exemplo.
DELETE
Remove registros de uma ou mais tabelas listadas na clusula FROM que satisfaz a clusula
WHERE. Sintaxe:
DELETE FROM nome_da_tabela WHERE critrio;

Exemplo:
Foi deletado a informao do id 3;

Obs.: muito cuidado quando usar o comando DELETE. Caso o critrio saia errado por um
erro do programador, poder ser deletado todos os dados da tabela.

COMANDOS ADICIONAIS
Vimos at agora alguns comandos principais, ainda existem outros comando que adicionado nos
comando SELECT,UPDATE, DELETE forma uma conjunto de manipulaes.

Comandos Descrio
DISTINCT Elimina linhas duplicadas na sada.
AS um alis para o nome da coluna.
FROM Lista as tabelas na entrada.
WHERE Critrios da seleo.
ORDER BY Critrio de ordenao das tabelas de sada. ASC ordem ascendente, DESC ordem
descendente.
COUNT(*) Usado no SELECT, conta quantos registros existem na tabela.
AND Usado para dar continuidade a mais de um critrio.

PRIMARY KEY Chave primaria definida na criao da tabela, evitando duplicidade de dados em um
mesmo campo.
FOREIGN KEY Chave estrangeira definida na criao da tabela, usada para fazer ligaes entre tabelas
de um banco de dados relacional.

Dica: Para mais detalhes consulte materiais disponveis na internet, livros, tutoriais,
vdeo aulas e outras apostilas de MYSQL ou SQL.

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 128

13.3. Trabalhando com PhpMyAdmin.

O phpMyadmin basicamente um frontend para administrao de bancos de dados MySQL. Ele


dispe de uma srie de recursos interessantes para administrao do banco de dados. Com essa
ferramenta possvel fazer desde atividades bsicas de administrao como criar, alterar, renomear
tabelas, ou ainda fazer consultas usando SQL, como tambm gerenciar as conexes com o banco.
Vimos a sua instalao no captulo 1.2.4, onde copiamos para a pasta var/www o seu contedo.
Para fazer o login na ferramenta abra o navegador e digite http://localhost/phpmyadmin/, aparecer
a seguinte tela:

Utilize o usurio e a senha que foi


definida na instalao:
Exemplo:
Usurio: root
Senha: 1234

Informaes do
servidor
Aps o login visualizaremos a seguinte tela:

menu

Lista de banco de
Painel de criao de dados
banco de dados

Acima temos a figura da pgina inicial do phpMyAdmin. No frame do lado esquerdo est a lista de
todos os bancos de dados que existem no servidor. Clicando nesses bancos possvel navegar
atravs das tabelas do banco escolhido e chegar at os campos desta tabela. Na pgina inicial do
phpMyAdmin, mostrada acima, ainda possvel ver documentao e existe um box para criao de
um novo banco de dados.
Todas as funcionalidades que utilizamos no Konsole (Terminal), anteriormente pode ser feito de
forma mais simples e prtica usando a interface grficas do PhpMyAdmin.

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 129

Veremos agora algumas funcionalidades.

13.3.1. Manipulando banco de dados no PhpMyadmin.


Podemos observar na tela inicial a opo para criarmos um banco. Insira um nome e clique em
criar:

Aps criarmos o banco de dados podemos observ-lo na lista de bancos ao lado esquerdo. Clique
no banco que acabamos de criar.
Aps clicarmos podemos criar as tabelas com a opo abaixo:

Nome da tabela. Quantidades de campos da tabela.

Aps executarmos a tabela, visualizaremos uma serie de informaes detalhadas dos campos da
tabela criada. Definimos ento, os tipos de dados que a tabela vai suportar e seus respectivos
tamanhos.

A tabela abaixo mostra os campos adicionados.

Campo Tipo tamanho nulo ndice Auto incremento


id int 11 primary x
nome varchar 30 x
rua varchar 40 x
bairro varchar 40 x
cidade varchar 40 x

Em ndice, definimos o id como chave primria, onde os valores no podem ser duplicados, e
tambm auto incremento, onde tem a finalidade de incrementar valores automaticamente sem
precisar inseri-los de forma manual. Nulo significa que ao inserirmos um valor, os demais campos
no tem a obrigao de serem preenchidos, com isso seu valor pode ficar null(nulo). Os demais
itens do campo podem ser deixados do jeito que esto agora s clicar em Salvar.
Professor Renato Almansa da Silva Curso Tcnico em Informtica
PHP e MySQL 130

Dica: observe que a cada procedimento o comando a ser executado exibido.

Tela de comandos:

Aps criarmos a tabela podemos inserir valores em seus campo, para isso entre no banco de dados
criado e escolha a tabela conforme a figura abaixo:

Ao clicar aparecera uma nova tela, escola a opo inserir.


Opo para inserir dados.

Ao entrar na opo inserir, ser exibido a seguinte tela:


Agora basta inserir os
valores e executar em
seguida, lembrando
que no se deve
preencher o campo id,
pois ele auto
incremento.
Para alterar os valores dos campos entre novamente na tabela e observe a seguinte tela:
Temos apenas um registro.

Apaga o registro.

Esta opo edita os valores do campo.

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 131

Ao clicar teremos a seguinte tela:

Agora basta editar os


valores.

At agora colocamos em prtica os seguintes comandos:


INSERT quando inserimos dados.
SELECT quando visualizamos as informaes da tabela.
UPDATE quando editamos os valores adicionados.
DELETE ao apagamos o campo da tabela.
Abaixo temos uma tabelas com algumas das principais funcionalidades do PhpMyAdmin.
Menu Funcionalidade
Visualizar Aqui possvel visualizar os registros da tabela e tambm modificar cada
registro individualmente.
Estrutura Nesta opo possvel ver os campos da tabela, tambm modificar estes
campos e at mesmo exclulos.
SQL A opo SQL permite voc digitar livremente um comando SQL diretamente
numa caixa de texto.
Procurar possvel realizar pesquisas nos registros da tabela. Este recurso muito til
quando se deseja encontrar determinado registro em uma tabela muito extensa.
Inserir Permite inserir um registro na tabela.
Exportar Com a opo Export (Exportar), possvel gerar um arquivo texto com todo o
contedo da tabela, juntamente com sua estrutura.
Importar Importa um arquivo com comandos sql para dentro do banco.
Operaes Igual e do mesmo tipo permite realizar modificaes na tabela, como renomear,
alterar ordem, movla para outra database, alterar seu tipo e outras operaes.
Privilgios rea onde feita a administrao de usurios e suas permisses.
Designer Mostra todas as tabelas e seus relacionamentos em diagramas.

Obs.: No abordamos definies de chave primaria (PRIMARY KEY), e chave


estrangeira (FOREIGN KEY), pois esse assunto mostrado com mais detalhes em
modelagem de banco de dados.

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 132

13.4. EXERCCIOS PROPOSTOS

1) Qual a definio que podemos atribuir ao conceito de banco de dados.

2) Como podemos logar pelo Konsole no MYSQL.

3) O que estrutura de dados em MYSQL.

4) Faa o seguinte exerccio prtico:

a)crie uma tabela com os campos nome e sobrenome.

b)aps criar visualize a tabela.

c)insira alguns valores na tabela, no caso nomes e sobrenomes de pessoas conhecidas.

d)crie um SELECT para visualizar todas as informaes gravadas no banco.

e)agora atualize alguns dos campos com o comando UPDATE.

5)Abra o PhpMyAdmin e visualize a tabela criada na questo 4.

6)Qual a finalidade da ferramenta PhpMyadmin.

7)Pesquise sobre banco de dados relacional e diga porque o MYSQL considerado um bando
de dados relacional.

8)Pesquise e defina o que chave primeira e chave estrangeira em banco de dados relacionais.

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 133

Captulo 14. PHP com Banco de dados MYSQL.


Objetivos
Fazer conexo com o banco de dados usando comandos do PHP; Mostrar aos alunos as principais
interaes como consultar, inserir, atualizar e deletar informaes de um database (banco de dados).

14.1. Criando e Selecionando a Conexo


Para acessar uma base de dados num servidor MySQL, necessrio antes estabelecer uma
conexo. Para isso, deve ser utilizado o comando mysql_connect, ou o mysql_pconnect. A
diferena entre os dois comandos que o mysql_pconnect estabelece uma conexo permanente, ou
seja, que no encerrada ao final da execuo do script. As assinaturas dos dois comandos so
semelhantes, como pode ser verificado na sintaxe abaixo:
mysql_connect
mysql_connect('endereo_do_servidor_mysql':'porta','login','senha');

mysql_pconnect
mysql_pconnect('endereo_do_servidor_mysql':'porta','login','senha');

Ambas as conexes retornam um id que ser usado posteriormente. Tambm podemos colocar
essas funcionalidades dentro de um IF para tratarmos a conexo. Veja o exemplo abaixo:

Utilizamos o @ ignorar o
erro da conexo, porm
caso tenha algum erro ser
tratado de acordo a
programao do
IF.

O endereo do nosso servidor localhost ou o ip 127.0.0.1, mas h casos que o servidor externo e
preciso utilizar o ip ou domnio com a porta, isso vai depender se o servio de banco de dados est
na mesma maquina ou no. Vale ressaltar que o login e a senha so as mesmas utilizada na
instalao do MYSQL, e caso ocorra algum erro o cdigo acima, entrar no else e
exibir a mensagem Erro ao conectar!.
Depois de estabelecida a conexo, preciso selecionar a base de dados a ser utilizada, atravs do
comando mysql_select_db, que segue a seguinte sintaxe:

mysql_select_db('nome_do_banco' , 'id_conexo');

mysql_select_db() define o banco de dados ativo no servidor que associado ao identificador de


conexo especificado. Se nenhum identificador de conexo especificado, a ultima conexo aberta
assumida. Veja um exemplo de seleo de database:
Aps toda execuo do cdigo,
podemos utilizar o comando
mysql_close(); para fechar a
conexo.

Passamos no exemplo o nome do banco que criamos no captulo anterior, caso no exista
crie o banco conforme foi mostrado no capitulo 9.2.2 ou 9.3.1 .

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 134

14.2. Manipulando Dados do Database


Aps a execuo dos dois comandos anteriores, podemos fazer as mesmas manipulaes que
fizermos diretamente no Konsole (Terminal) ou no PhpMyAdmin usando comandos e
funes existentes no PHP.

mysql_query
Esse comando utilizado quando queremos enviar uma query para o banco de dados ativo no
servidor da conexo informada pela conexo. Sintaxe:

mysql_query('comando_SQL','id_conexo');

Podemos utilizar comando SQL dentro dessa funo para manipularmos informao. Veja o
Exemplo:

Resultado em Konsole:
Podemos observar que qualquer comando SQL pode ser executado de
Tabela criada. forma direta na funo mysql_query como se fosse no Konsole, com a
exceo de comandos que retorne resultados como o SELECT,
DESCRIBE (DESC), dentre outros. Essa funo retorna somente o Id da
query, e no a string com valores do banco.

mysql_result
Este comando deve ser utilizado apenas para resultados seletivos onde podemos determinar de qual
linha e coluna da tabela queremos obter o valor. Podemos determinar somente a linha, porm a
coluna tem que ser determinada no comando SQL. Sintaxe:

mysql_result('comando_SQL','numero_da_linha','numero_da_coluna');

Exemplo:

Comando SQL.
Select retorna todos (*)
Resultado do resultados da tabela
dados_pessoais
mysql_query().
Linha 0 Coluna 4
poderamos ter definido somente a linha da seguinte forma:
Observe que o resultado imprime
a linha 0 (primeira linha) da coluna
cidade(coluna 4).
Nota: A string da query no deve terminar com ponto e virgula(;).

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 135

mysql_fetch_array
Esse comando retorna um array de valores contido no bando de dados, muito usado quando
queremos percorrer um conjunto de valores retornado pela query. Dessa forma, possvel obtermos
todas as linhas da tabela especificada, onde cada linha gravada em uma posio do array. Sintaxe:

mysql_fetch_array('id_resultado_query');

Esse comando recebe como parmetro id_resultado_query que o retorno do comando


mysql_query. Dessa forma, ele monta um array com os valores de acordo com o comando SQL.
Veja como chegamos em um resultado usando HTML, PHP e comandos SQL no MYSQL
conforme o exemplo abaixo:
1 Criamos uma tabela cadastro no banco de dados alunos com o PhpMyAdmin com as seguintes
caractersticas:

Obs.: Caso o banco de dados no exista, leia o tpico: Manipulando banco de dados em PHP.
2 Aps isso, insira alguns valores na tabela. No caso alguns nomes e telefones. Exemplo:

Agora podemos trabalhar com cdigos PHP para fazer a consulta de todos os valores e ordenar em
uma tabela HTML.
3 Criamos ento uma conexo e selecionamos o database(banco de dados).

4 Agora criamos um query(comando SQL) para selecionar os valores e gravamos em uma


varivel, lembrando que isso uma string e no tem funcionalidade at ento.

5 Criamos ento um id_resultado_query com o comando mysql_query, recebendo a query e a


conexo como parmetro.

6 Agora usamos o comando


mysql_fetch_array para criar um array de
informaes, porm adicionamos dentro de um
while e criamos a cada loop uma linha
na tabela criada em HTML. Essa a estrutura da
tabela que iremos usar, basta adicionar as tag's
PHP dentro do documento. Lembrando que esse
arquivo se chama index.php e tem que estar
dentro da pasta var/www.

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 136

Com as tags PHP o cdigo fica assim:

A varivel $linha a cada loop,


tornase um array de 3 posies,
e cada posio definida
pelos nomes do campos da
tabela.

Cdigo completo: Resultado:

14.3. Criao de CRUD.


Um dos termos mais comuns quando estamos falando de programao e banco de dados, a criao
de um CRUD(acrnico de Create, Retrieve, Update e Delete em lngua Inglesa) que significa as
quatros operaes bsicas de um banco de dados, que so elas: criar, recuperar, atualizar e
deletar(apagar).
Criaremos ento um aplicativo em PHP onde podemos estabelecer de forma clara essas operaes.
Preste muita ateno, pois trabalharemos com mais cdigo-fonte. Trabalharemos com o banco de
dados criado anteriormente e criaremos quatro arquivos com os seguintes nomes:
index.php arquivo inicial do aplicativo WEB, nele ficar o formulrio de cadastro e os
cdigosde consulta(listagem).
conexao.php arquivo responsvel pela conexo e seleo do banco de dados, no utilize
acentos nas nomenclaturas do arquivos.
editar.php arquivo responsvel pela edio dos dados da tabela.
evento.php Arquivo responsvel por eventos da aplicao, ele possuir cdigos
para cadastrar(INSERT), editar(UPDATE), deletar(DELETE).
Observe uma figura representando o CRUD a ser criado e a relao entre seus arquivos:
Observe que a conexao.php includo nos trs
arquivos, index.php envia informao para editar.php ou
evento.php, editar.php envia informao para
evento.php ou pode voltar para index.php, evento.php
pode voltar para index.php aps executar algum
comando. Vamos agora criar os arquivos e seus cdigos-
fonte.

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 137

1 Criao do arquivo conexao.php, dever conter os cdigos conforme abaixo:


Podemos observar o comando
mysql_close() no final do arquivo,
onde sua funcionalidade fechar a
conexo. Alm disso, podemos
observar cada parmetro sendo
guardado em uma varivel para
facilitar a organizao do cdigo-
fonte. Esse arquivo criado e
depois includo nos demais arquivos.
Isso otimiza o cdigo uma vez que
no precisamos us-lo de forma
repetitiva toda vez que
precisarmos de uma conexo.
2 Trabalharemos agora com o arquivo index.php, o primeiro passo criarmos um formulrio para
envio de informao:
O mtodo usado o post, o
arquivo que receber as
informaes o evento.php
porm alm disso e
passado uma varivel do
tipo GET
chamada cadastro=true, para identificarmos mais adiante qual a ao desejada.
O segundo passo criarmos o cdigo de listagem no mesmo arquivo, onde atravs dele podemos
visualizar as informaes existentes no bando de dados:
Inclu a conexo

Comando SQL.

Dentro do while montamos uma


tabela com os valores obtidos do
bando de dados.
Criamos tambm um link para
deletar e outro para editar.
Tanto o formulrio quanto o
cdigo de listagem, devem estar
no mesmo arquivo.

Para melhor compreenso observe o link de forma detalhada conforme abaixo. Deletar:

Envia para o arquivo evento a varivel do tipo GET com o id obtido no loop, ou seja, cada linha
possui um link para excluir, ele envia a varivel deletar = numero do id obtido.

O link editar muito parecido com o deletar, porm as informaes so mandadas para o arquivo
editar juntamente com uma varivel GET chamada editar, que recebe tambm o id referente a linha
que foi montada.

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 138

3 Criaremos agora o arquivo editar.php conforme o cdigo abaixo:


O primeiro passo criarmos o cdigo que vai retornar um array com os valores dos campos do
database, porm existe uma condio usada no comando SQL. A consulta deve retornar o resultado
quando o id passado via GET pela varivel ?editar for igual ao id existente na tabela. Observe o
cdigofonte responsvel por essa consulta:
Comando SQL compara id gravado no banco
com o id parrado via mtodo GET.

Aqui criamos um array com os valores


referente ao id passado.

Depois temos que criar um formulrio parecido ao de cadastro, mudando os valores do action, e
adicionando tag's PHP para preencher os valores de cada referencia, embaixo adicionamos um link
para voltar ao inicio:

Observe que o action do formulrio envia as informaes para o arquivo evento.php com uma
varivel GET editar= id_passado pela consulta, dessa forma podemos fazer todos os tratamento
no arquivo responsvel pelo evento.
4 E por ultimo criaremos um arquivo responsvel por todas as aes do aplicativo. Todo cdigo
abaixo pertence ao arquivo evento.php:
O primeiro passo incluirmos a conexo:

Criaremos primeiro o cdigo responsvel pelo cadastro (INSERT).

Comando SQL responsvel por


Inserir valores na tabela.

Cada evento diferenciado pelo IF atravs do comando isset, que verifica se determinada varivel
existe ou no. Dessa forma, todas as requisies passada para o arquivo evento.php so
diferenciadas.
Cdigo responsvel por editar (UPDATE) valores no banco de dados.

Outro detalhe a forma de concatenao da string passada para a varivel $sql, pois valores que no
so numricos tem que ser gravados em ' aspas simples, usamos a aspas dupla para separar

Professor Renato Almansa da Silva Curso Tcnico em Informtica


PHP e MySQL 139

os blocos string ex: bloco_string ' .$variavel. ' bloco_string. Veja que a $variavel esta dentro
das aspas simples: ' . ' .
Cdigo responsvel por deletar(DELETE) valores no banco de dados.

Assim encerramos o arquivo evento.php com um link Voltar no final.


Podese notar que, cada bloco de cdigo muito semelhante, mudando apenas o comando SQL e a
verificao isset dentro do IF. Caso determinada varivel GET exista, o IF a ser executado aquele
que tem ligao com evento passado.
Veja os resultados de algumas telas:

14.4. EXERCCIOS PROPOSTOS


1)Como podemos criar uma conexo entre a tecnologia PHP e MYSQL.

2)Escreva uma sequencia de comandos PHP que possa ter a seguinte finalidade:
1- Conectar como o servidor localhost, onde o login usurios e a senha 1526.
2- Selecionar a base de dados chamada dados_site.
3- Executar um comando SQL para visualizar todos os dados. Dica: crie uma string com o
comando SQL, aps passe a varivel como parmetro para a funo mysql_query().
4- Imprimir todo o contedo do banco com o comando print_r.

3)Em linguagem de programao, como podemos definir a termo CRUD.

Professor Renato Almansa da Silva Curso Tcnico em Informtica

S-ar putea să vă placă și