introdução à lógica de programação utilizando...
TRANSCRIPT
Introdução à Lógica de Introdução à Lógica de Programação Utilizando PerlProgramação Utilizando Perl
Thiago Yukio Kikuchi [email protected]
Lógica de ProgramaçãoLó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?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á;
ProgramasProgramas
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 PerlLinguagem 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 PerlUm simples programa em Perl
#!/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";
Arquivo: exemplo.pl
VariáveisVariá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"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áveisDeclarando 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 programaUsando variáveis no programa
#!/usr/bin/perl
# Declarando a variável.my $frase;
$frase = "Olá mundo!\n";print $frase;
Arquivo: exemplo.pl
Exercício 1Exercí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 1Exercí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áveismy $nome;my $idade;
$nome = "Thiago Yukio Kikuchi Oliveira";$idade = 25;
# Mostrando na telaprint $nome;print $idade;
OperadoresOperadores
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éticosOperadores 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:
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)
Operação SímboloAdição +Subtração -Multiplicação *Divisão /Exponenciação **
Usando operadores AritméticosUsando operadores Aritméticos
#!/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”;
Arquivo: calcula_media.pl
Exercício 2Exercí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."
Vm = S2 – S1 t2 - t1
Lembre-se:
Exercício 2Exercí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."
Vm = S2 – S1 t2 - t1
Lembre-se:
#!/usr/bin/perl
# Declarando as variáveis.my ($S1, $S2, $T1, $T2, $velocidade_media);
$S1 = 0;$S2 = 350;$T1 = 0;$T2 = 5;
# Calculando a velocidade média.$velocidade_media = ($S2 - $S1)/($T2 - $T1);
print “A velocidade média é: $velocidade_média Km/h \n”;
Operadores RelacionaisOperadores 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:
Exemplos:
$nota = 6
$nota > 5 (verdadeiro)
$nota < 5 (falso)
Operação==
Diferente de !=Maior que >Menor que <
>=<=
Símbolo p/ números Símbolo p/ textoIgual a eq
neq
Maior ou igual aMenor ou igual a
$nome = “thiago”$nome eq “carlos” (falso)$nome eq “thiago” (verdadeiro)
Condicionais (Se.. senão/If.. else)Condicionais (Se.. senão/If.. else)
.
#!/usr/bin/perl
# Declarando as variáveis.my $media = 9;
if ($media >= 5){print “Aprovado \n”;
}else {
print “Reprovado \n”;}
media = 9
Se (media >= 5) EntãoEscreva “Aprovado”
SenãoEscreva “Reprovado”
FimSe
AlgoritmoAlgoritmo escrito em Perl
SE MEDIA >= 5.0 ENTÃO ALUNO APROVADO SENÃO REPROVADO
Se (condição) Então[ executa instruções]
Senão[ executa outra instruções]
FimSe
Se (condição) Então[ executa instruções]
FimSe
Exercício 3Exercí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 3Exercí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ógicosOperadores 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 !
#!/usr/bin/perl# Declarando as variáveis.my $media = 9;my $faltas = 4;
if (($media >= 5) && ($faltas < 3)){print “Aprovado \n”;
}else {
print “Reprovado \n”;}
media = 9faltas = 4
Se (media >= 5 e faltas < 3) EntãoEscreva “Aprovado”
SenãoEscreva “Reprovado”
FimSe
AlgoritmoAlgoritmo escrito em Perl
SE MEDIA >= 5.0 E FALTAS < 3 ENTÃO ALUNO APROVADO
Exercício 4Exercí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 4Exercí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/ForEstrutura 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 Para contador de 1 até 5
Escreva “Olá”contador = contador + 1
FimPara
Algoritmo
Algoritmo escrito em Perl
Para (inicio; condição;) [ executa instruções]incremento
FimPara
Estrutura de Laço: Para/ForEstrutura 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/ForEstrutura 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:1
Estrutura de Laço: Para/ForEstrutura 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:1 sim
Estrutura de Laço: Para/ForEstrutura 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:1 sim sim Ola!
Estrutura de Laço: Para/ForEstrutura 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:1 sim sim 1+1 = 2 Ola!2
Estrutura de Laço: Para/ForEstrutura 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:1 sim sim 1+1 = 2 Ola!2 sim
Estrutura de Laço: Para/ForEstrutura 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:1 sim sim 1+1 = 2 Ola!2 sim sim Ola!
Estrutura de Laço: Para/ForEstrutura 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:1 sim sim 1+1 = 2 Ola!2 sim sim 2+1 = 3 Ola!
Estrutura de Laço: Para/ForEstrutura 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:1 sim sim 1+1 = 2 Ola!2 sim sim 2+1 = 3 Ola!3
Estrutura de Laço: Para/ForEstrutura 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:1 sim sim 1+1 = 2 Ola!2 sim sim 2+1 = 3 Ola!3 sim
Estrutura de Laço: Para/ForEstrutura 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:1 sim sim 1+1 = 2 Ola!2 sim sim 2+1 = 3 Ola!3 sim sim Ola!
Estrutura de Laço: Para/ForEstrutura 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:1 sim sim 1+1 = 2 Ola!2 sim sim 2+1 = 3 Ola!3 sim sim 3+1 = 4 Ola!
Estrutura de Laço: Para/ForEstrutura 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:1 sim sim 1+1 = 2 Ola!2 sim sim 2+1 = 3 Ola!3 sim sim 3+1 = 4 Ola!4
Estrutura de Laço: Para/ForEstrutura 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:1 sim sim 1+1 = 2 Ola!2 sim sim 2+1 = 3 Ola!3 sim sim 3+1 = 4 Ola!4 sim
Estrutura de Laço: Para/ForEstrutura 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:1 sim sim 1+1 = 2 Ola!2 sim sim 2+1 = 3 Ola!3 sim sim 3+1 = 4 Ola!4 sim sim Ola!
Estrutura de Laço: Para/ForEstrutura 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:1 sim sim 1+1 = 2 Ola!2 sim sim 2+1 = 3 Ola!3 sim sim 3+1 = 4 Ola!4 sim sim 4+1 = 5 Ola!
Estrutura de Laço: Para/ForEstrutura 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:1 sim sim 1+1 = 2 Ola!2 sim sim 2+1 = 3 Ola!3 sim sim 3+1 = 4 Ola!4 sim sim 4+1 = 5 Ola!5
Estrutura de Laço: Para/ForEstrutura 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:1 sim sim 1+1 = 2 Ola!2 sim sim 2+1 = 3 Ola!3 sim sim 3+1 = 4 Ola!4 sim sim 4+1 = 5 Ola!5 sim
Estrutura de Laço: Para/ForEstrutura 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:1 sim sim 1+1 = 2 Ola!2 sim sim 2+1 = 3 Ola!3 sim sim 3+1 = 4 Ola!4 sim sim 4+1 = 5 Ola!5 sim sim Ola!
Estrutura de Laço: Para/ForEstrutura 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:1 sim sim 1+1 = 2 Ola!2 sim sim 2+1 = 3 Ola!3 sim sim 3+1 = 4 Ola!4 sim sim 4+1 = 5 Ola!5 sim sim 5+1 = 6 Ola!
Estrutura de Laço: Para/ForEstrutura 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:1 sim sim 1+1 = 2 Ola!2 sim sim 2+1 = 3 Ola!3 sim sim 3+1 = 4 Ola!4 sim sim 4+1 = 5 Ola!5 sim sim 5+1 = 6 Ola!6
Estrutura de Laço: Para/ForEstrutura 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:1 sim sim 1+1 = 2 Ola!2 sim sim 2+1 = 3 Ola!3 sim sim 3+1 = 4 Ola!4 sim sim 4+1 = 5 Ola!5 sim sim 5+1 = 6 Ola!6 não
Exercício 5Exercício 5
"Escreva um algoritmo em Perl que receba o seu nome e o escreva 20 vezes na tela."
Exercício 5Exercí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 6Exercício 6
"Escreva um algoritmo em Perl que escreva todos os números de 1 a 100 na tela."
Exercício 6Exercí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/WhileEstrutura de Laço: Enquanto/While
#!/usr/bin/perl
# Declarando as variáveis.my $contador = 10;
while ($contador > 1){print “Olá \n”;$contador = $contador - 1;
}
contador = 10 Enquanto (contador > 2)
Escreva “Olá”contador = contador - 1
FimEnquanto
Algoritmo
Algoritmo escrito em Perl
Enquanto (condição) [ executa instruções]
FimEnquanto
Variaveis do tipo “Array”Variaveis do tipo “Array”
Variáveis responsáveis por guardar uma lista (vetor) de informações.
Exemplo:
@frutas = (“abacaxi”, “banana”, “pêra”);
Vetor:
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
0 1 2frutas abacaxi banana pêra
Exercício 7Exercício 7
"Escreva um algoritmo em Perl que receba 4 nomes em um array e escreva-os na tela um a um."
Exercício 7Exercí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 “$nomes[0] \n”;print “$nomes[1] \n”;print “$nomes[2] \n”;print “$nomes[3] \n”;
Exercício 7Exercí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 $contador;my @nomes = (“Maria”, “João”, “José”, “Pedro”);
for ($contador = 0; $contador <=3 ; $contador++) {print “$nomes[$contador] \n”;
}
#!/usr/bin/perl
# Declarando as variáveis my @nomes = (“Maria”, “João”, “José”, “Pedro”);
print “$nomes[0] \n”;print “$nomes[1] \n”;print “$nomes[2] \n”;print “$nomes[3] \n”;
Variaveis do tipo “Hash”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:
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
joãoprofissão estudante médico advogado
thiago josé
Exercício 8Exercí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 8Exercí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”;