Universidade Federal Fluminense
Faculdade de Administração, Ciências Contábeis
e Turismo
Pós-Graduação em Gestão de Negócios
Capacitação dos Servidores Municipais de Maricá
- RJ
Conteúdo
Sobre o PHP História do PHP
Frameworks em PHP CMS em PHP
PHP estruturado e orientado a objetos Livros, comunidades, códigos e sites
Como funciona uma linguagem de servidor
Instalação manual do Apache, PHP 5 e do MySQL Testando a instalação do PHP
Conteúdo
Definindo variáveis Tipos de dados
Constantes
Saída de texto (echo e print) Comentários Operadores matemáticos Operadores lógicos Condicionais Loops Manipulação de strings Funções matemáticas A estrutura de um formulário Recebendo valores no PHP Testando variáveis
Sobre o PHP
PHP (um acrônimo recursivo para "PHP: Hypertext
Preprocessor", originalmente Personal Home Page) é uma linguagem interpretada livre e utilizada para gerar conteúdo dinâmico na World Wide Web.
História do PHP
A linguagem surgiu por volta de 1994, como um pacote de programas CGI criados por Rasmus Lerdorf, com o nome Personal Home Page Tools, para substituir um conjunto de scripts Perl que ele usava no desenvolvimento de sua página pessoal. Em 1997 foi lançado o novo pacote da linguagem com o nome de PHP/FI, trazendo a ferramenta Forms Interpreter, um interpretador de comandos SQL. Mais tarde, Zeev Suraski
desenvolveu o analisador do PHP 3 que contava com o primeiro recurso de orientação a objetos, que dava poder de alcançar alguns pacotes, tinha herança e dava aos desenvolvedores somente a possibilidade de implementar propriedades e métodos.
História do PHP
Pouco depois, Zeev e Andi Gutmans, escreveram o PHP 4, abandonando por completo o PHP 3, dando mais poder à máquina da linguagem e maior número de recursos de
orientação a objetos. O problema sério que apresentou o PHP 4 foi a criação de cópias de objetos, pois a linguagem ainda não trabalhava com apontadores ou handlers, como são as
linguagens Java, Ruby e outras. O problema fora resolvido na versão atual do PHP, a versão 5, que já trabalha com handlers. Caso se copie um objeto, na verdade copiaremos um
apontador, pois, caso haja alguma mudança na versão original do objeto, todas as outras também sofrem a alteração, o que não acontecia na PHP 4.
História do PHP
Trata-se de uma linguagem extremamente modularizada, o que a torna ideal para instalação e uso em servidores web. Diversos módulos são criados no repositório de extensões PECL (PHP
Extension Community Library) e alguns destes módulos são introduzidos como padrão em novas versões da linguagem. É muito parecida, em tipos de dados, sintaxe e mesmo funções, com a linguagem C e com a C++. Pode ser, dependendo da configuração do servidor, embarcada no código HTML. Existem versões do PHP disponíveis para os seguintes sistemas
operacionais: Windows, Linux, FreeBSD, Mac OS, OS/2, AS/400, Novell Netware, RISC OS, AIX, IRIX e Solaris.
História do PHP
Construir uma página dinâmica baseada em bases de dados é simples com PHP, (em parte, vale lembrar), este provê suporte a um grande número de bases de dados: Oracle, Sybase,
PostgreSQL, InterBase, MySQL, SQLite, MSSQL, Firebird, etc., podendo abstrair o banco com a biblioteca ADOdb, entre
outras. A Wikipédia funciona sobre um software inteiramente escrito em PHP, usando bases de dados MySQL: o MediaWiki.[4] PHP tem suporte aos protocolos: IMAP, SNMP, NNTP, POP3,
HTTP, LDAP, XML-RPC, SOAP. É possível abrir sockets e interagir com outros protocolos. E as bibliotecas de terceiros expandem ainda mais estas funcionalidades. Existem iniciativas para
Frameworks em PHP
O que é Framework?No desenvolvimento de software e websites, um framework é uma estrutura de suporte onde o projeto pode ser organizado visando tirar proveito de bibliotecas e outros recursos
disponíveis. Assim proporcionando uma Produtividade maior.
Um framework pode incluir programas de suporte, bibliotecas de código, linguagens de script e outros softwares para ajudar a desenvolver diferentes componentes de um projeto de software e website. Na maioria das vezes são baseados no padrão MVC.
Frameworks em PHP
Através de um framework, qualquer pessoa ou programador pode gerar sua aplicação de forma rápida, fácil e com baixo custo, sem precisar programa toda sua funcionalidade já que a maioria dos framework disponibilizam bibliotecas com muitos recursos.
Como funciona?
O primeiro passo é compreender a funcionalidade da estrutura escolhida no caso ” framework” O segundo passo é definir as características do sistema a ser projetado.
Frameworks em PHP
Vantagens:Visando difundir o uso de framework ou arquitetura de desenvolvimento listo aqui algumas vantagens:
- Produtividade: menos código para digitar.
- Menor possibilidade de erros (Soluções já testadas em grande escala), o que implica em mais produtividade.
- Maior abstração da solução. Você se preocupa mais com o por quê, ao invés do como. E isso também implica em maior produtividade.
- Eficiência. Código feito por experts muitas vezes são mais eficientes do que os feito por nós, pobre mortais.
Frameworks em PHP
Opções de frameworks para PHP
Nós programadores php contamos com alguns framework, entre eles estão:
- Symphony - Prado
- Code Igniter
- Zend Framework - CakePHP
CMS em PHP
O WordPress é o sistema de gerenciamento de Conteúdo mais popular que existe. Por causa das inúmeras ferramentas
existentes e facilidade de uso, o WordPress conquista fãs por todo o mundo. Porém, há outros bons CMS que utilizam a
linguagem PHP (a mesma do WordPress).
Geeklog: trata-se de um CMS muito completo. Ele pode
trabalhar com o mySQL, PostgreSQL ou Microsoft SQL como base para os bancos de dados. Com o Geeklog, é possível
trabalhar com fóruns, calendários, enquetes e também conta com ferramentas para administração de sites como exclusão de conteúdo em massa. Muito interessante para quem deseja ter um site complexo. Como desvantagem apresenta a limitação
CMS em PHP
Concrete5: Este Sistema de gerenciamento de conteúdo
trabalha com código aberto em seu conteúdo. Ou seja, ele é gratuito e desenvolvido por uma comunidade (tal qual o
WordPress). Como grande vantagem, ele apresenta a
simplicidade de se trabalhar com as ferramentas. Só para ter uma ideia, é possível editar as imagens diretamente na
interface do programa. Além disso, conta com boas
ferramentas de SEO e também alguns recursos interessantes como a criação de pontos de restauração.
CMS em PHP
Drupal: já apresentamos aqui no Dicas de Hospedagem uma
postagem completa sobre o Drupal. O CMS já conquistou
muitos clientes como os governos dos EUA e do Reino Unido. Um dos grandes trunfos do sistema é a possibilidade de
executar diversos módulos. Só para ter uma ideia, o Drupal conta com cerca de 11 mil módulos para serem utilizados. Isto faz este CMS ser um dos prediletos para uso em e-commerces e sites mais elaborados.
CMS em PHP
Joomla: outro sistema que também tem alcançado grande
popularidade. Dos citados nesta postagem é o mais similar ao WordPress. É indicado para sites com grande quantidade de atualizações, principalmente em se tratando de conteúdo jornalístico. Também conta com uma grande quantidade de
desenvolvedores, o que faz o CMS ser sempre bem cotado para a escolha na construção de sites.
PHP estruturado e
orientado a objetos
Um sistema orientado a objetos é dividido em componentes e não mais em processos. Imagine um sistema financeiro, onde faríamos toda a administração de uma empresa. Teríamos as seguintes diferenças:
POO: Teríamos um objeto de fornecedores, por exemplo, onde
todas as funções estariam agrupadas no objeto e em nenhum outro lugar.
Estruturada: As rotinas e funções de fornecedores estaria
espalhada em todo o sistema, como em contas a pagar, contas a receber, cadastro, etc.
Imagine agora o cadastro de fornecedores, com todas as suas rotinas e funções:
PHP estruturado e
orientado a objetos
Estruturada: Se você futuramente precisar alterar algum
dado, função ou propriedade, o que em seu programa será afetado? O que terá que ser reestruturado? Imagine a você voltando a fase de testes e analisando todo o seu sistema até ter certeza que a alteração que você fez não desencadeou um finita listas de alterações que você terá que fazer em todo o sistema...
POO: as propriedades, funções e rotinas do objeto
fornecedores estão todas em um único objeto, encapsulados, facilitando essa necessidade futura de alterações e
Nome da Disciplina
Reutilização de código:
Estruturada: É possivel a reutilização de código na
programação estruturada porém, em muitos casos você será obrigado a utilizar o famoso "copiar e colar".
POO: Com a POO você é capaz de elaborar um relacionamento
entre diversos componentes, estabelecendo comunicação entre eles e facilitando assim, e muito a reutilização de código, além da facilidade de se poder herdar atributos e comportamentos de outros objetos.
Livros, comunidades,
códigos e sites
PHPBrasil.com PHP.net PHPrio.org #php #phpavancado @freenode PHPms.org PHPSP.Como funciona uma
linguagem de servidor
A linguagem de servidor, ou server-side scripting, é a linguagem que vai rodar "por trás dos panos", fornecendo a lógica principal da aplicação. Funciona da seguinte maneira:
sempre que o usuário faz um HTTP request (entra numa página, clica num link, etc), o pedido é enviado pro servidor. A
linguagem server-side recebe o requerimento (resquest) e faz o processamento. Depois, transforma o resultado final em um
XHTML e envia pro navegador. É a linguagem server-side que vai verificar se o usuário está logado, vai buscar informações no banco de dados e etc.
Como funciona uma
linguagem de servidor
Como a linguagem server-side processa as coisas antes de enviar para o navegador, isso significa que uma vez que a página foi enviada ao navegador do usuário, não há mais nada
que a linguagem server-side possa fazer até um novo request seja enviado. Ou seja, não é possível usar estas linguagens
Instalação manual do
Apache, PHP 5 e do MySQL
No Linux via:
- apt - synaptic
Testando a instalação
do PHP
Devemos usar a seguinte função:
Como inserir o PHP na
página
PHP é sensível a maiúsculas
Como se coloca na pagina?
<?PHP ... ?>
recomendado, sempre disponível
<?= expressão ?>
equivale a <? echo expressão ?>
Definindo variáveis
<HTML> <HEAD> <TITLE>PHP</TITLE> </HEAD> <BODY> <?PHPprint (“<P>Ola mundo</P>”); ?>
</BODY>
<h1>Exemplo</h1> <?php
$firstvar = "Hello World"; echo $firstvar;
Tipos de dados
PHP suporta 8 tipos de dados primitivos:
- Tipos escalares: boolean, integer, double, string - Tipos compostos: array, object
- Tipos especiais: resource, NULL
Não podemos definir um tipo de variável Se decide ao longo da execução em função do contexto.
Tipos de dados
Funções importantes:
- gettype() devolve o tipo de variável
- is_type() comprova se a variável e do seguinte tipo: is_array(), is_bool(), is_float(), is_integer(), is_null(), is_numeric(), is_object(), is_resource(), is_scalar(), is_string()
- var_dump() mostra o tipo e o valor da variável, importante quando usamos em arrays.
Tipos de dados
Integer (27, -5, 0)
Double (1.234, -5.33)
Boolean (True, verdadeiro ou False,
falso)
Tipos de dados
String:
- As cadeias se encerram com aspas simples e dupla.
Simples: admite os caracteres de escape \’ e \\ (barra).
As variáveis NAO se expandem.
Duplas: admite mais caracteres de escape, como "\n, \r, \t, \\, \
$, \".
Tipos de dados
Exemplos:
$a = 9;
print ‘a vale $a\n’; // mostra a vale $a\n print “a vale $a\n”;
// mostra a vale 9 e pula uma linha print “<IMG SRC=‘logo.gif’>”;
// mostra <IMG SRC=‘logo.gif’> print “<IMG SRC=\”logo.gif\”>”; // mostra <IMG SRC=“logo.gif”>
Constantes
Definição de constantes:
define (“CONSTANTE”, “ola”); print CONSTANTE;
Não levam $ antes.
Somente podemos definir constantes com: boolean, integer,
Saída de texto (echo e print)
echo — Exibe uma ou mais strings<?php
echo "Hello World"; echo "This spans
multiple lines. The newlines will be output as well";
echo "This spans\nmultiple lines. The newlines will be\noutput as well.";
echo "Escaping characters is done \"Like this\"."; ?>
Saída de texto (echo e print)
print — Mostra uma string<?php
print("Alô Mundo");
print "print() também funciona sem parênteses."; print "Isto divide
em múltiplas linhas. As quebras de linha serão mostradas também";
print "Isto divide\nem múltiplas linhas. As quebras de linha serão\nmostradas também";
Comentários
Comentários: como no C, /* ... */ (varias linhas ) e // (uma linha)
/* Comentário de varias linhas */
Operadores matemáticos
Um operador é algo que você alimenta com um ou mais valores (ou expressões, no jargão de programação) e que devolve outro valor (e
por isso os próprios construtores se tornam expressões). Assim, você pode pensar que as funções e os construtores que
retornam valores (como o print) são operadores e os outros que não retornam nada (como echo) como uma outra coisa.
Operadores matemáticos
Há três tipos de operadores. Primeiramente, os operadores unários, que operam em apenas um valor. Por exemplo, ! (operador de negação) ou o ++ (operador de incremento).
No segundo grupo estão os operadores binários, o o grupo que contém a maioria dos operadores que o PHP suporta
Operadores matemáticos
O terceiro grupo é do operador ternário: ?:. Ele pode ser usado para selecionar entre dois valores dependendo de uma terceira, em vez de selecionar duas sentenças ou encadeamentos de
execução. Englobar expressões ternárias com parênteses é uma boa idéia.
A precedência de um operador especifica quem tem mais prioridade quando há duas delas juntas. Por exemplo, na expressão, 1 + 5 * 3, a resposta é 16 e não 18 porque o
operador de multiplicação ("*") tem prioridade de precedência que o operador de adição ("+").
Operadores matemáticos
O operador de divisão ("/") sempre retorna um valor com ponto flutuante, a não ser que os dois operados seja inteiros (ou
strings que são convertidas para inteiros) e números
inteiramente divisíveis, em outro caso um inteiro é retornado. Operandos de módulo são convertidos para inteiros
(removendo a parte decimal) antes de processar.
-$a Negação (Oposto de $a).
$a + $b Adição (Soma de $a e $b).
$a - $b Subtração (Diferença entre $a e $b). $a * $b Multiplicação (Produto de $a e $b). $a / $b Divisão (Quociente de $a por $b).
Operadores lógicos
Operadores bit-a-bit permitem que você acione ou desligue bits específicos dentro de um inteiro. Se ambos os parâmetros da esquerda e da direita forem strings, esses operadores irão trabalhar nos valores ASCII dos caracteres.
Comparam dois números bit a bit. <?php
echo 12 ^ 9; // Imprime '5'
echo "12" ^ "9"; // Imprime o caracter de volta (backspace - ASCII 8)
// ('1' (ASCII 49)) ^ ('9' (ASCII 57)) = #8
Operadores lógicos
Operador Operação & “e” lógico
| “ou” lógico ^ ou exclusivo ~ não (inversão) << shift left >> shift right Operador Operação & “e” lógico
| “ou” lógico ^ ou exclusivo ~ não (inversão) << shift left
>> shift right
$a & $b E Os bits que estão ativos tanto em $a quanto em $b são ativados.
$a | $b OU Os bits que estão ativos em $a ou em $b são ativados.
$a ^ $b XOR Os bits que estão ativos em $a ou em $b, mas não em ambos, são ativados. ~ $a NÃO Os bits que estão ativos em $a
Condicionais
Operadores de comparação, como os seus nomes implicam, permitem que você compare dois valores. Você pode se
interessar em ver as tabelas de comparação de tipos, que tem exemplo das várias comparações entre tipos relacionadas.
$a == $b Igual Verdadeiro (TRUE) se $a é igual a $b.
$a === $b Idêntico Verdadeiro (TRUE) se $a é igual a $b, e eles são do mesmo tipo
(introduzido no PHP4). $a != $b
Condicionais
$a !== $b Não idêntico Verdadeiro de $a não é igual a $b, ou eles não são do mesmo tipo (introduzido no PHP4).
$a < $b Menor que Verdadeiro se $a é estritamente menor que $b.
$a > $b Maior que Verdadeiro se $a é estritamente maior que $b.
$a <= $b Menor ou igual Verdadeiro se $a é menor ou igual a $b.
$a >= $b Maior ou igual Verdadeiro se $a é maior ou igual a $b.
Loops
While:Os Loops do while são o mais simples do PHP. Eles se comportam como no C.
A forma básica e:
while (expressao) Comandos
Loops
<?php
/* exemplo 1 */ $i = 1;
while ($i <= 10) {
echo $i++; /* the printed value would be $i before the increment
(post-increment) */ } /* exemplo 2 */ $i = 1; while ($i <= 10): echo $i;
Loops
For:Os Loops do for são os mais complexos no PHP. Eles tem o mesmo comportamento do C.
for (expressão1; expressão2; expressão3) comandos
Loops
<?php
/* exemplo 1 */
for ($i = 1; $i <= 10; $i++) { echo $i;
}
/* exemplo 2 */
for ($i = 1; ; $i++) { if ($i > 10) {
Loops
/* exemplo 3 */ $i = 1; for (; ; ) { if ($i > 10) { break; } echo $i; $i++; }Loops
Foreach
O loop foreach prove uma forma fácil de interagir com vetores (array) e objetos. Ele mostra erro quando você tenta usar uma variável de um tipo diferente ou não inicializada
Existem 2 sintaxes:
foreach (array_expressão as $valor) comandos
foreach (array_expressão as $chave => $valor) comandos
Loops
<?php
$arr = array(1, 2, 3, 4);
foreach ($arr as &$value) { $value = $value * 2;
}
// $arr agora e` array(2, 4, 6, 8)
unset($value); // quebra a referência com o ultimo elemento ?>
<?php
$arr = array("um", "dois", "tres"); reset($arr);
while (list(, $value) = each($arr)) { echo "Valor: $value<br />\n";
Manipulação de strings
Há dois operadores de string. O primeiro é o operador de concatenação ('.'), que retorna a concatenação dos seus argumentos direito e esquerdo. O segundo é o operador de
atribuição de concatenação ('.='), que acrescenta o argumento do lado direito no argumento do lado esquerdo.
<?php
$a = "Olá ";
$b = $a . "mundo!"; // agora $b contém "Olá mundo!"
$a = "Olá ";
Funções matemáticas
abs — Valor absoluto
acos — Cosseno Inverso (arco cosseno) acosh — Cosseno Hiperbólico Inverso asin — Seno Inverso (arco seno)
asinh — Seno Hiperbólico Inverso
atan2 — Tangente inversa de duas variáveis atan — Tangente Inversa (arco tangente) atanh — Tangente hiperbólica inversa
base_convert — Converte um número entre bases arbitrárias bindec — Binário para decimal
Funções matemáticas
cos — Coseno
cosh — Cosseno hiperbólico decbin — Decimal para binário
dechex — Decimal para hexadecimal decoct — Decimal para octal
deg2rad — Converte o número em graus ao equivalente em radianos
exp — Calcula o expoente de e
expm1 — Retorna exp(numero) - 1, computado de forma que é preciso mesmo quando o valor do número é perto de zero.
floor — Arredonda frações para baixo
Nome da Disciplina
hexdec — Hexadecimal para decimal
hypot — Calcula o tamanho da hipotenusa de um ângulo reto do triângulo Retorna a raiz quadrada de (num1*num1 +
num2*num2)
is_finite — Verifica se um valor é um número finito
is_infinite — Verifica se um valor é um número infinito is_nan — Verifica se um valor não é um número
lcg_value — Gerador congruente linear combinado log10 — Logaritmo Base-10
log1p — Retorna o log(1 + numero), calculado de forma que o valor do número seja próximo de zero.
Funções matemáticas
mt_getrandmax — Retorna o maior valor aletório possível mt_rand — Gerador melhorado de números aleatórios
mt_srand — Semeia o gerador melhorado de números aleatórios
octdec — Octal para decimal
pi — Obtém o valor de pi pow — Potência
rad2deg — Converte o número em radianos para o equivalente em graus
rand — Gera um inteiro aleatório
round — Arredonda um número sin — Seno
A estrutura de um formulário
O formulário no PHP se faz da seguinte maneira:
<form action="Busca.php" method="post"> (1) <input type="text" name="palavra" />
<select name="categoria">
<option value="cadeiras">Cadeiras</option> <option value="mesa">Mesas</option>
<option value="bancos">Bancos</option> </select>
Recebendo valores no PHP
Por que preciso do PHP para fazer isso? Como se sabe o HTTP (protocolo) propriamente dito não armazena informações de estado, por isso se faz necessário o uso do PHP.
Vamos citar alguns casos onde eu posso compartilhar essas informações: No uso de session, usando métodos GET e POST, cookies e outras.
O método GET funciona da seguinte maneira - seus argumentos são passados em forma de string pela URI (Uniform Resource Indicator) também conhecido por muitos como URL. Certo, como sabemos a URL tem comprimento máximo de 255 caracteres então aqui está a limitação do GET!
Recebendo valores no PHP
Como usar um método GET:
Como já foi dito o GET sempre acompanha a URI logo o que vocês costumam ver nos links assim deste jeito,
http://www.métodoget.br/usandoget.php?ID=10, são os
argumentos GET, que neste caso sempre o primeiro argumento é precedido de uma interrogação "?" e os demais de um & para separá-los. O argumento em questão é o ID e seu valor é 10;
Recebendo valores no PHP
Outro exemplo: http://www.métodoget.br/usandoget.php? ID=10&CH=Texto
Argumentos: ID e CH com valores 10 e Texto respectivamente
Você poderá utilizar o método GET nos seus link ou em
formulários lembrando sempre da limitação e que estes dados serão visivéis pelos usuários pois ele sempre fica junto a URI.
Em links use:
<a href="http://www.metodoget.br/pagina.php? argumento=valor">meu link get</a>
Recebendo valores no PHP
Em formulários use:
<form action="http://www.metodoget.br/pagina.php" method="GET">
<input name="argumento" type="text" value="valor"> <input name="enviar" type="submit" value="enviar"> </form>
Os argumentos GET podem ser recuperados pelo PHP através das seguintes variáveis:
Recebendo valores no PHP
As vantagens do POST em relação ao GET:
- É mais seguro que o GET porque as informações passadas pelos usuários nunca é visivel na URI.
- Limite muito maior, uns 2 kbytes de informação, podem ser passadas.
Recebendo valores no PHP
Como usar o POST:
O POST é mais utilizado para tratamento de formulários. Usa-se de forma muito semelhante ao GET em formulários, por
exemplo:
<form action="http://www.metodoget.br/pagina.php" method="POST">
<input name="argumento" type="text" value="valor"> <input name="enviar" type="submit" value="enviar">
Recebendo valores no PHP
Os argumentos POST podem ser recuperados pelo PHP através das seguintes variáveis:
<?php
echo $HTTP_POST_VARS['nome_do_argumento']; echo $_POST['nome_do_argumento'];
?>
A dica mais importante: Nunca utilize o metodo GET para
formulários de login, ou para quaisquer dados sigilosos, pois os mesmos serão visíveis pela URL.
Recebendo valores no PHP
<html> <body> <?php if (isset($HTTP_GET_VARS['enviar'])) { $texto = $HTTP_GET_VARS['argumento'];// será impresso o que for digitado no campo echo($texto);
} else { ?>
<form action="http://www.metodoget.br/pagina.php" method="GET">
<input name="argumento" type="text">
<input name="enviar" type="submit" value="enviar"> </form>
Recebendo valores no PHP
<html> <body> <?php if (isset($HTTP_POST_VARS['enviar'])) { $texto = $HTTP_POST_VARS['argumento']; // será impresso o que for digitado no campo echo($texto);} else { ?>
<form action="http://www.metodoget.br/pagina.php" method="POST">
<input name="argumento" type="text">
<input name="enviar" type="submit" value="enviar"> </form>
<?php }
Testando variáveis
isset — Informa se a variável foi iniciada
<?php $var = '';
// Será interpretado como TRUE imprimindo o texto. if (isset($var)) {
echo "Essa variável existe."; }
// No próximo exemplo será usado var_dump para mostrar // o valor de retorno de isset().
$a = "teste";
$b = "outrotest";
var_dump( isset($a) ); // TRUE var_dump( isset ($a, $b) ); // TRUE unset ($a);
Validando dados
Vamos verificar se a senha passada esta correta.
Se não for s3nh4, o PHP nos joga de volta ao site do Google.
<?php
$senha = $_POST['senha'];
if ($senha != "s3nh4"){
Entendendo lógica de
programação
Lógica de Programação é a técnica de desenvolver algoritmos (sequências lógicas) para atingir determinados objetivos dentro de certos regras baseadas na Lógica matemática e que depois são adaptados para a Linguagem de Programação utilizada pelo programador para construir seu software.
Um algoritmo é uma sequência não ambígua de instruções que é executada até que determinada condição se verifique. Mais especificamente, em matemática, constitui o conjunto de
processos (e símbolos que os representam) para efetuar um cálculo.
O conceito de algoritmo é frequentemente ilustrado pelo
Entendendo lógica de
programação
Um algoritmo não representa, necessariamente, um programa de computador, e sim os passos necessários para realizar uma tarefa. Sua implementação pode ser feita por um computador, por outro tipo de autômato ou mesmo por um ser humano.
Diferentes algoritmos podem realizar a mesma tarefa usando um conjunto diferenciado de instruções em mais ou menos
tempo, espaço ou esforço do que outros. Tal diferença pode ser reflexo da complexidade computacional aplicada, que depende de estruturas de dados adequadas ao algoritmo.
Por exemplo, um algoritmo para se vestir pode especificar que você vista primeiro as meias e os sapatos antes de vestir a
Como criar um bom
algorítimo
Alguns autores restringem a definição de algoritmo para
procedimentos que eventualmente terminam. Minksy constatou que se o tamanho de um procedimento não conhecido de
antemão, tentar descobri-lo é problema indecidível já que o procedimento pode ser executado infinitamente, de forma que nunca se terá a resposta. Alan Turing provou em 1936 que não existe máquina de Turing para realizar tal análise para todos os casos, logo não há algoritmo para realizar tal tarefa para todos os casos. Tal condição é conhecida atualmente como problema da parada.
Para algoritmos intermináveis o sucesso não pode ser determinado pela interpretação da resposta e sim por
Duvidas?
oscarbm@gmail.com
Oscar.marques@serpro.gov.br www.dunkelheit.com.br