Introdução à Lógica de Programação Utilizando...

Preview:

Citation preview

Introdução à Lógica de Introdução à Lógica de Programação Utilizando PerlProgramação Utilizando Perl

Thiago Yukio Kikuchi Oliveirastratus@lgmb.fmrp.usp.br

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”;

Recommended