contador

Propaganda
Introdução à Lógica de
Programação Utilizando Perl
Thiago Yukio Kikuchi Oliveira
[email protected]
Lógica de Programação
A lógica de programação é necessária para pessoas que
desejam trabalhar com desenvolvimento de sistemas e
programas, ela permite definir a seqüência lógica para o
desenvolvimento.
Então o que é lógica?
Lógica de programação é a técnica de encadear
pensamentos para atingir determinado objetivo.
O que é um algoritmo?
Um algoritmo é formalmente uma seqüência finita de passos que
levam a execução de uma tarefa. Podemos pensar em algoritmo
como uma receita, uma seqüência de instruções que dão cabo de
uma meta específica. Estas tarefas não podem ser redundantes nem
subjetivas na sua definição, devem ser claras e precisas.
Exemplo de um algoritmo:
Faça um algoritmo que mostre como buscar uma garrafa de água na
geladeira partindo do sofá da sala.
Levantar do sofá;
Andar até a porta da cozinha;
Andar até a geladeira;
Abrir a porta da geladeira;
Retirar a garrafa d'água da geladeira;
Fechar a porta da geladeira;
Andar até o sofá;
Sentar-se no sofá;
Programas
Os programas de computadores nada mais são do que
algoritmos escritos numa linguagem de computador
(Perl, Pascal, C, Cobol, Fortran, Java entre outras) e que
são interpretados e executados por uma máquina, no
caso um computador.
Notem que dada esta interpretação rigorosa, um
programa é por natureza muito específico e rígido em
relação aos algoritmos da vida real.
Linguagem Perl
Perl: The Practical Extraction and Report
Language
Desenvolvida em 1987 por Larry Wall
Características:
Linguagem script
Disponível sob a GPL
Perl tira as melhores características de
linguagens como C, awk, sed, sh, e BASIC, entre
outras.
Sua interface de integração com base de dados
(DBI) suporta muitos bancos de dados
Perl é extensível (+ de 5.000 modulos).
Portada para mais de 100 diferentes plataformas
Ultilizada para criação de conteúdo dinâmico na
Web
Larry Wall
Um simples programa em Perl
Arquivo: exemplo.pl
#!/usr/bin/perl
# O simbolo "#" indica um comentário no código
# Meu primeiro programa em perl
# O "\n" ao final indica uma quebra de linha no
terminal do linux.
print "Olá mundo!\n";
Variáveis
Na matemática:
X=1
Y=2
Então:
X+Y=3
Nos algoritmos, as variáveis podem guardar textos além de números.
X=4
X = "Linux"
Em Perl, existem 3 tipos de variáveis:
- Escalares (sempre começam com o simbolo "$")
- "Arrays" (sempre começam com o simbolo "@")
- "Hashes" (sempre começam com o simbolo "%")
Variaveis do tipo "Escalar"
Guardam somente uma informação. Essa
informação pode ser um número ou um texto.
Identificadas com o símbolo "$" no início.
Exemplos:
$valor = 10;
$nome = "Thiago";
$nome2 = $nome;
$frase = "Hoje é dia 14 de Fevereiro";
Declarando Variáveis
Declarando uma variavel em Perl:
my $[NOME DA VARIAVEL];
Exemplo:
my $idade;
my $nome;
$idade = 11;
$nome = “Rafael”;
OBS: A declaração de variáveis em perl não é obrigatória, mas é
uma boa prática de programação!
Usando variáveis no programa
Arquivo: exemplo.pl
#!/usr/bin/perl
# Declarando a variável.
my $frase;
$frase = "Olá mundo!\n";
print $frase;
Exercício 1
"Escreva um algoritmo em Perl com duas
variáveis que recebam, respectivamente, o
seu nome e a sua idade e escreva o conteúdo
das variáveis na tela."
Exercício 1
"Escreva um algoritmo em Perl com duas
variáveis que recebam, respectivamente, o
seu nome e a sua idade e escreva o conteúdo
das variáveis na tela."
#!/usr/bin/perl
# Declarando as variáveis
my $nome;
my $idade;
$nome = "Thiago Yukio Kikuchi Oliveira";
$idade = 25;
# Mostrando na tela
print $nome;
print $idade;
Operadores
Os operadores são meios pelo qual incrementamos,
decrementamos, comparamos e avaliamos dados
dentro do computador. Temos três tipos de
operadores:
Operadores Aritméticos
Operadores Relacionais
Operadores Lógicos
Operadores Aritméticos
Os operadores aritméticos são os utilizados para obter resultados
numéricos. Além da adição, subtração, multiplicação e divisão, podem
utilizar também o operador para exponenciação.
Os símbolos para os operadores aritméticos, em Perl, são:
Operação
Adição
Subtração
Multiplicação
Divisão
Exponenciação
Símbolo
+
*
/
**
Hierarquia das Operações Aritméticas
1 º ( ) Parênteses
2 º Exponenciação
3 º Multiplicação, divisão (o que aparecer primeiro)
4 º + ou – (o que aparecer primeiro)
Usando operadores Aritméticos
Arquivo: calcula_media.pl
#!/usr/bin/perl
# Script que calcula a nota média de duas provas.
# Declarando as variáveis.
my $nota_1;
my $nota_2;
my $media;
$nota_1 = 9;
$nota_2 = 7;
# Calculando a média.
$media = ($nota_1 + $nota_2)/2;
print “A média das notas é: $media \n”;
Exercício 2
"Escreva um algoritmo em Perl que receba a distância inicial, a
distância final, o tempo inicial, o tempo final, calcule a velocidade
média e mostre na tela."
Lembre-se: Vm = S2 – S1
t2 - t1
Exercício 2
"Escreva um algoritmo em Perl que receba a distância inicial, a
distância final, o tempo inicial, o tempo final, calcule a velocidade
média e mostre na tela."
Lembre-se: Vm = S2 – S1
t2 - t1
#!/usr/bin/perl
# Declarando as variáveis.
my ($S1, $S2, $T1, $T2, $velocidade_media);
$S1
$S2
$T1
$T2
=
=
=
=
0;
350;
0;
5;
# Calculando a velocidade média.
$velocidade_media = ($S2 - $S1)/($T2 - $T1);
print “A velocidade média é: $velocidade_média Km/h \n”;
Operadores Relacionais
Os operadores relacionais são utilizados para comparar caracteres (texto)
e números. Os valores a serem comparados podem ser caracteres ou
variáveis.
Os símbolos para os operadores relacionais, em Perl, são:
Operação
Símbolo p/ números Símbolo p/ texto
Igual a
==
eq
Diferente de
!=
neq
Maior que
>
Menor que
<
Maior ou igual a
>=
Menor ou igual a
<=
Exemplos:
$nota = 6
$nota > 5 (verdadeiro)
$nota < 5 (falso)
$nome = “thiago”
$nome eq “carlos” (falso)
$nome eq “thiago” (verdadeiro)
Condicionais (Se.. senão/If.. else)
Se (condição) Então
[ executa instruções]
FimSe
.
Se (condição) Então
[ executa instruções]
Senão
[ executa outra instruções]
FimSe
SE MEDIA >= 5.0 ENTÃO ALUNO APROVADO SENÃO REPROVADO
Algoritmo escrito em Perl
Algoritmo
#!/usr/bin/perl
media = 9
Se (media >= 5) Então
Escreva “Aprovado”
Senão
Escreva “Reprovado”
FimSe
# Declarando as variáveis.
my $media = 9;
if ($media >= 5){
print “Aprovado \n”;
}
else {
print “Reprovado \n”;
}
Exercício 3
"Escreva um algoritmo em Perl que receba dois valores quaisquer,
some-os e mostre na tela se a soma deles é maior ou menor que
10."
Exercício 3
"Escreva um algoritmo em Perl que receba dois valores quaisquer,
some-os e mostre na tela se a soma deles é maior ou menor que
10."
#!/usr/bin/perl
# Declarando as variáveis
my ($valor1, $valor2, $soma);
# Atribuindo os valores.
$valor1 = 20;
$valor2 = 30;
# Somando
$soma = $valor1 + $valor2;
If ($soma > 10) {
print “A soma é maior que 10 \n”;
}
else {
print “A soma é menor que 10 \n”;
}
Operadores Lógicos
Os operadores lógicos servem para combinar resultados de expressões,
retornando se o resultado final é verdadeiro ou falso.
Os símbolos para os operadores lógicos, em Perl, são:
Operação
Símbolo
E
&&
Ou
||
Negação
!
SE MEDIA >= 5.0 E FALTAS < 3 ENTÃO ALUNO APROVADO
Algoritmo escrito em Perl
Algoritmo
#!/usr/bin/perl
media = 9
faltas = 4
Se (media >= 5 e faltas < 3) Então
Escreva “Aprovado”
Senão
Escreva “Reprovado”
FimSe
# Declarando as variáveis.
my $media = 9;
my $faltas = 4;
if (($media >= 5) && ($faltas < 3)){
print “Aprovado \n”;
}
else {
print “Reprovado \n”;
}
Exercício 4
"Escreva um algoritmo em Perl que receba o peso e a idade de uma
pessoa. Se a pessoa tiver mais de 10 anos ou pesar mais de 50kg
escreva que ela pode andar na montanha russa."
Exercício 4
"Escreva um algoritmo em Perl que receba o peso e a idade de uma
pessoa. Se a pessoa tiver mais de 10 anos ou pesar mais de 50kg
escreva que ela pode andar na montanha russa."
#!/usr/bin/perl
# Declarando as variáveis
my ($idade, $peso);
# Atribuindo os valores.
$idade = 15;
$peso = 60;
If (($idade > 10) || ($peso > 50)) {
print “Você pode andar na montanha russa!\n”;
}
Estrutura de Laço: Para/For
Para (inicio; condição;)
[ executa instruções]
incremento
FimPara
Algoritmo
contador
Para contador de 1 até 5
Escreva “Olá”
contador = contador + 1
FimPara
Algoritmo escrito em Perl
#!/usr/bin/perl
# Declarando as variáveis.
my $contador;
for ($contador=1; $contador<=5;){
print “Olá \n”;
$contador = $contador + 1;
}
Estrutura de Laço: Para/For
#!/usr/bin/perl
# Declarando as variáveis.
my $contador;
for ($contador=1; $contador<=5;){
print “Olá \n”;
$contador = $contador + 1;
}
Contador
Contador <= 5
Print “Olá!” Contador++
Tela do computador:
Estrutura de Laço: Para/For
#!/usr/bin/perl
# Declarando as variáveis.
my $contador;
for ($contador=1; $contador<=5;){
print “Olá \n”;
$contador = $contador + 1;
}
Contador
1
Contador <= 5
Print “Olá!” Contador++
Tela do computador:
Estrutura de Laço: Para/For
#!/usr/bin/perl
# Declarando as variáveis.
my $contador;
for ($contador=1; $contador<=5;){
print “Olá \n”;
$contador = $contador + 1;
}
Contador
1
Contador <= 5
sim
Print “Olá!” Contador++
Tela do computador:
Estrutura de Laço: Para/For
#!/usr/bin/perl
# Declarando as variáveis.
my $contador;
for ($contador=1; $contador<=5;){
print “Olá \n”;
$contador = $contador + 1;
}
Contador
1
Contador <= 5
sim
Print “Olá!” Contador++
sim
Tela do computador:
Ola!
Estrutura de Laço: Para/For
#!/usr/bin/perl
# Declarando as variáveis.
my $contador;
for ($contador=1; $contador<=5;){
print “Olá \n”;
$contador = $contador + 1;
}
Contador
1
2
Contador <= 5
sim
Print “Olá!” Contador++
sim
1+1 = 2
Tela do computador:
Ola!
Estrutura de Laço: Para/For
#!/usr/bin/perl
# Declarando as variáveis.
my $contador;
for ($contador=1; $contador<=5;){
print “Olá \n”;
$contador = $contador + 1;
}
Contador
1
2
Contador <= 5
sim
sim
Print “Olá!” Contador++
sim
1+1 = 2
Tela do computador:
Ola!
Estrutura de Laço: Para/For
#!/usr/bin/perl
# Declarando as variáveis.
my $contador;
for ($contador=1; $contador<=5;){
print “Olá \n”;
$contador = $contador + 1;
}
Contador
1
2
Contador <= 5
sim
sim
Print “Olá!” Contador++
sim
1+1 = 2
sim
Tela do computador:
Ola!
Ola!
Estrutura de Laço: Para/For
#!/usr/bin/perl
# Declarando as variáveis.
my $contador;
for ($contador=1; $contador<=5;){
print “Olá \n”;
$contador = $contador + 1;
}
Contador
1
2
Contador <= 5
sim
sim
Print “Olá!” Contador++
sim
1+1 = 2
sim
2+1 = 3
Tela do computador:
Ola!
Ola!
Estrutura de Laço: Para/For
#!/usr/bin/perl
# Declarando as variáveis.
my $contador;
for ($contador=1; $contador<=5;){
print “Olá \n”;
$contador = $contador + 1;
}
Contador
1
2
3
Contador <= 5
sim
sim
Print “Olá!” Contador++
sim
1+1 = 2
sim
2+1 = 3
Tela do computador:
Ola!
Ola!
Estrutura de Laço: Para/For
#!/usr/bin/perl
# Declarando as variáveis.
my $contador;
for ($contador=1; $contador<=5;){
print “Olá \n”;
$contador = $contador + 1;
}
Contador
1
2
3
Contador <= 5
sim
sim
sim
Print “Olá!” Contador++
sim
1+1 = 2
sim
2+1 = 3
Tela do computador:
Ola!
Ola!
Estrutura de Laço: Para/For
#!/usr/bin/perl
# Declarando as variáveis.
my $contador;
for ($contador=1; $contador<=5;){
print “Olá \n”;
$contador = $contador + 1;
}
Contador
1
2
3
Contador <= 5
sim
sim
sim
Print “Olá!” Contador++
sim
1+1 = 2
sim
2+1 = 3
sim
Tela do computador:
Ola!
Ola!
Ola!
Estrutura de Laço: Para/For
#!/usr/bin/perl
# Declarando as variáveis.
my $contador;
for ($contador=1; $contador<=5;){
print “Olá \n”;
$contador = $contador + 1;
}
Contador
1
2
3
Contador <= 5
sim
sim
sim
Print “Olá!” Contador++
sim
1+1 = 2
sim
2+1 = 3
sim
3+1 = 4
Tela do computador:
Ola!
Ola!
Ola!
Estrutura de Laço: Para/For
#!/usr/bin/perl
# Declarando as variáveis.
my $contador;
for ($contador=1; $contador<=5;){
print “Olá \n”;
$contador = $contador + 1;
}
Contador
1
2
3
4
Contador <= 5
sim
sim
sim
Print “Olá!” Contador++
sim
1+1 = 2
sim
2+1 = 3
sim
3+1 = 4
Tela do computador:
Ola!
Ola!
Ola!
Estrutura de Laço: Para/For
#!/usr/bin/perl
# Declarando as variáveis.
my $contador;
for ($contador=1; $contador<=5;){
print “Olá \n”;
$contador = $contador + 1;
}
Contador
1
2
3
4
Contador <= 5
sim
sim
sim
sim
Print “Olá!” Contador++
sim
1+1 = 2
sim
2+1 = 3
sim
3+1 = 4
Tela do computador:
Ola!
Ola!
Ola!
Estrutura de Laço: Para/For
#!/usr/bin/perl
# Declarando as variáveis.
my $contador;
for ($contador=1; $contador<=5;){
print “Olá \n”;
$contador = $contador + 1;
}
Contador
1
2
3
4
Contador <= 5
sim
sim
sim
sim
Print “Olá!” Contador++
sim
1+1 = 2
sim
2+1 = 3
sim
3+1 = 4
sim
Tela do computador:
Ola!
Ola!
Ola!
Ola!
Estrutura de Laço: Para/For
#!/usr/bin/perl
# Declarando as variáveis.
my $contador;
for ($contador=1; $contador<=5;){
print “Olá \n”;
$contador = $contador + 1;
}
Contador
1
2
3
4
Contador <= 5
sim
sim
sim
sim
Print “Olá!” Contador++
sim
1+1 = 2
sim
2+1 = 3
sim
3+1 = 4
sim
4+1 = 5
Tela do computador:
Ola!
Ola!
Ola!
Ola!
Estrutura de Laço: Para/For
#!/usr/bin/perl
# Declarando as variáveis.
my $contador;
for ($contador=1; $contador<=5;){
print “Olá \n”;
$contador = $contador + 1;
}
Contador
1
2
3
4
5
Contador <= 5
sim
sim
sim
sim
Print “Olá!” Contador++
sim
1+1 = 2
sim
2+1 = 3
sim
3+1 = 4
sim
4+1 = 5
Tela do computador:
Ola!
Ola!
Ola!
Ola!
Estrutura de Laço: Para/For
#!/usr/bin/perl
# Declarando as variáveis.
my $contador;
for ($contador=1; $contador<=5;){
print “Olá \n”;
$contador = $contador + 1;
}
Contador
1
2
3
4
5
Contador <= 5
sim
sim
sim
sim
sim
Print “Olá!” Contador++
sim
1+1 = 2
sim
2+1 = 3
sim
3+1 = 4
sim
4+1 = 5
Tela do computador:
Ola!
Ola!
Ola!
Ola!
Estrutura de Laço: Para/For
#!/usr/bin/perl
# Declarando as variáveis.
my $contador;
for ($contador=1; $contador<=5;){
print “Olá \n”;
$contador = $contador + 1;
}
Contador
1
2
3
4
5
Contador <= 5
sim
sim
sim
sim
sim
Print “Olá!” Contador++
sim
1+1 = 2
sim
2+1 = 3
sim
3+1 = 4
sim
4+1 = 5
sim
Tela do computador:
Ola!
Ola!
Ola!
Ola!
Ola!
Estrutura de Laço: Para/For
#!/usr/bin/perl
# Declarando as variáveis.
my $contador;
for ($contador=1; $contador<=5;){
print “Olá \n”;
$contador = $contador + 1;
}
Contador
1
2
3
4
5
Contador <= 5
sim
sim
sim
sim
sim
Print “Olá!” Contador++
sim
1+1 = 2
sim
2+1 = 3
sim
3+1 = 4
sim
4+1 = 5
sim
5+1 = 6
Tela do computador:
Ola!
Ola!
Ola!
Ola!
Ola!
Estrutura de Laço: Para/For
#!/usr/bin/perl
# Declarando as variáveis.
my $contador;
for ($contador=1; $contador<=5;){
print “Olá \n”;
$contador = $contador + 1;
}
Contador
1
2
3
4
5
6
Contador <= 5
sim
sim
sim
sim
sim
Print “Olá!” Contador++
sim
1+1 = 2
sim
2+1 = 3
sim
3+1 = 4
sim
4+1 = 5
sim
5+1 = 6
Tela do computador:
Ola!
Ola!
Ola!
Ola!
Ola!
Estrutura de Laço: Para/For
#!/usr/bin/perl
# Declarando as variáveis.
my $contador;
for ($contador=1; $contador<=5;){
print “Olá \n”;
$contador = $contador + 1;
}
Contador
1
2
3
4
5
6
Contador <= 5
sim
sim
sim
sim
sim
não
Print “Olá!” Contador++
sim
1+1 = 2
sim
2+1 = 3
sim
3+1 = 4
sim
4+1 = 5
sim
5+1 = 6
Tela do computador:
Ola!
Ola!
Ola!
Ola!
Ola!
Exercício 5
"Escreva um algoritmo em Perl que receba o seu nome e o escreva
20 vezes na tela."
Exercício 5
"Escreva um algoritmo em Perl que receba o seu nome e o escreva
20 vezes na tela."
#!/usr/bin/perl
# Declarando as variáveis
my $contador;
my $nome;
# Atribuindo os valores.
$nome = “Thiago”;
for ($contador = 1; $contador <= 20;) {
print “$nome \n”;
$contador++;
}
Exercício 6
"Escreva um algoritmo em Perl que escreva todos os números de 1
a 100 na tela."
Exercício 6
"Escreva um algoritmo em Perl que escreva todos os números de 1
a 100 na tela."
#!/usr/bin/perl
# Declarando as variáveis
my $contador;
for ($contador = 1; $contador <= 100; $contador++) {
print “$contador \n”;
}
Estrutura de Laço: Enquanto/While
Enquanto (condição)
[ executa instruções]
FimEnquanto
Algoritmo escrito em Perl
Algoritmo
#!/usr/bin/perl
contador = 10
Enquanto (contador > 2)
Escreva “Olá”
contador = contador - 1
FimEnquanto
# Declarando as variáveis.
my $contador = 10;
while ($contador > 1){
print “Olá \n”;
$contador = $contador - 1;
}
Variaveis do tipo “Array”
Variáveis responsáveis
informações.
por
guardar
uma
lista
(vetor)
de
Exemplo:
@frutas = (“abacaxi”, “banana”, “pêra”);
Vetor:
frutas
0
1
2
abacaxi
banana
pêra
Para acessar um valor específico na lista devemos dar o nome da
variável seguido pelo índice do vetor:
print $frutas[0]; # Escreve “abacaxi” na tela
print $frutas[2]; # Escreve “pêra” na tela
print $frutas[1]; # Escreve “banana” na tela
print @frutas; # Escreve “abacaxibananapêra” na tela
Exercício 7
"Escreva um algoritmo em Perl que receba 4 nomes em um array e
escreva-os na tela um a um."
Exercício 7
"Escreva um algoritmo em Perl que receba 4 nomes em um array e
escreva-os na tela um a um."
#!/usr/bin/perl
# Declarando as variáveis
my @nomes = (“Maria”, “João”, “José”, “Pedro”);
print
print
print
print
“$nomes[0]
“$nomes[1]
“$nomes[2]
“$nomes[3]
\n”;
\n”;
\n”;
\n”;
Exercício 7
"Escreva um algoritmo em Perl que receba 4 nomes em um array e
escreva-os na tela um a um."
#!/usr/bin/perl
# Declarando as variáveis
my @nomes = (“Maria”, “João”, “José”, “Pedro”);
print
print
print
print
“$nomes[0]
“$nomes[1]
“$nomes[2]
“$nomes[3]
\n”;
\n”;
\n”;
\n”;
#!/usr/bin/perl
# Declarando as variáveis
my $contador;
my @nomes = (“Maria”, “João”, “José”, “Pedro”);
for ($contador = 0; $contador <=3 ; $contador++) {
print “$nomes[$contador] \n”;
}
Variaveis do tipo “Hash”
Também conhecido como Array Associativo. Também guardar uma lista, mas
utiliza texto como índice ao invés de números.
Exemplo:
%profissao = (“thiago” => “estudante”, “joao” => “médico”, “josé” => “advogado”);
Vetor:
profissão
thiago
estudante
joão
médico
josé
advogado
Para acessar um valor específico na lista devemos dar o nome da variável
seguido pelo índice textual entre “{ }” do vetor:
print $profissao{“thiago”}; # Escreve “estudante” na tela
print $profissao{“joão”}; # Escreve “médico” na tela
print $profissao{“josé”}; # Escreve “advogado” na tela
Exercício 8
"Escreva um algoritmo em Perl que receba o nome de 3 colegas do
seu lado e sua respectiva idade. Armazene essas informações em
um hash usando o nome como índice. Mostre a idade de cada um
na tela."
Exercício 8
"Escreva um algoritmo em Perl que receba o nome de 3 colegas do
seu lado e sua respectiva idade. Armazene essas informações em
um hash usando o nome como índice. Mostre a idade de cada um
na tela."
#!/usr/bin/perl
# Declarando as variáveis
my %colegas = (
“Maria” => 20,
“João” => 23,
“José” => 30
);
print “$colegas{“Maria”} \n”;
print “$colegas{“João”} \n”;
print “$colegas{“José”} \n”;
Download