lógica de programação - adrianobenigno.com.br 3 algoritmo.pdf · conceitos e exemplos de...

32
Lógica de Programação Introdução

Upload: vobao

Post on 10-Nov-2018

252 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Lógica de Programação - adrianobenigno.com.br 3 Algoritmo.pdf · Conceitos e Exemplos de Algoritmos Noções de Fluxo de Controle Introdução. Lógica de Programação

Lógica de Programação

Introdução

Page 2: Lógica de Programação - adrianobenigno.com.br 3 Algoritmo.pdf · Conceitos e Exemplos de Algoritmos Noções de Fluxo de Controle Introdução. Lógica de Programação

Neste capítulo

Introdução à Lógica de ProgramaçãoAlgoritmizando a LógicaConceitos e Exemplos de AlgoritmosNoções de Fluxo de Controle

Introdução

Page 3: Lógica de Programação - adrianobenigno.com.br 3 Algoritmo.pdf · Conceitos e Exemplos de Algoritmos Noções de Fluxo de Controle Introdução. Lógica de Programação

Lógica de ProgramaçãoLógica:

A palavra lógica vem do grego Logos e significa razão, pensamento. O pai da lógica é o filósofo Aristóteles, ele chamou sua lógica de “silogismo”, que significa ligação. Ele deu esse nome porque a lógica trata da ligação formal dos juízos feito pelo pensamento. Seus textos sobre lógica foram escritos em sua obra “Primeiros Analíticos”. O silogismo é uma forma de análise que procura decompor em partes os argumentos e as proposições de um argumento e seus termos. Mais tarde o conjunto de seus escritos silogísticos foi chamado de Organon, palavra grega que significa “instrumento”. A lógica, portanto, é um instrumento para se pensar corretamente.

Ciência que estuda as formas do pensamento, Correção do pensamento ou correção do raciocínio,

Arte do bem pensar,Ordem no pensamento.

Page 4: Lógica de Programação - adrianobenigno.com.br 3 Algoritmo.pdf · Conceitos e Exemplos de Algoritmos Noções de Fluxo de Controle Introdução. Lógica de Programação

Lógica de ProgramaçãoSempre que pensamos a lógica nos acompanha

Um bebê sabe que precisa chorar para receber atençãoUm casal com 3 filhos notou que um vaso estava quebrado, enquanto 2 das

crianças estavam na escola. Quem é o culpado?A gaveta está fechada. A caneta está dentro da gaveta. Precisamos primeiro

abrir a gaveta para depois pegar a caneta.

O pensamento (e a lógica) pode ser expresso através da palavra falada ou da palavra escrita

Um mesmo pensamento pode ser expresso em inúmeros idiomas, tanto oralmente quanto por escrito

Vamos estudar uma forma única de representação

Page 5: Lógica de Programação - adrianobenigno.com.br 3 Algoritmo.pdf · Conceitos e Exemplos de Algoritmos Noções de Fluxo de Controle Introdução. Lógica de Programação

ExercícioEm um torneio de atletismo, Barnabé, Gumercindo e Teodoroparticiparam das provas de 100 metros rasos, salto emdistância e arremesso de dardo. Cada um deles conseguiu umprimeiro lugar, um segundo lugar e um terceiro. Descubra o quecada um conquistou, sabendo que:

Gumercindo venceu Barnabé no salto em distância;

Teodoro chegou atrás de Gumercindo no arremesso de dardo;

Barnabé não chegou em primeiro nos 100 metros rasos.

Page 6: Lógica de Programação - adrianobenigno.com.br 3 Algoritmo.pdf · Conceitos e Exemplos de Algoritmos Noções de Fluxo de Controle Introdução. Lógica de Programação

ALGORITMOÉ o pensamento descrito como uma sequência de passos

que visam atingir um objetivo

Algoritmos no dia-a-dia: Receita de bolo, orientação para se chegar em algum endereço

Qual sua importância na programação?

Representar o raciocínio, independentemente de detalhes computacionais, que podem ser acrescentados mais tardeFocalizar primeiro na resolução algorítmica do problema, possibilitando depois codificá-la em qualquer linguagem

Page 7: Lógica de Programação - adrianobenigno.com.br 3 Algoritmo.pdf · Conceitos e Exemplos de Algoritmos Noções de Fluxo de Controle Introdução. Lógica de Programação

Importância dos Algoritmos

Problema

Solução como programa de computador

Solução em forma de algoritmoPasso difícil

Fase de resolução do problema

Fase de resolução do problema

Page 8: Lógica de Programação - adrianobenigno.com.br 3 Algoritmo.pdf · Conceitos e Exemplos de Algoritmos Noções de Fluxo de Controle Introdução. Lógica de Programação

Descrição Narrativa

Um método direto, simplesmente especificarseus passos verbalmente. Porém a linguagemnatural é prolixa, imprecisa, pouco confiável. Porisso não é adequada.

Page 9: Lógica de Programação - adrianobenigno.com.br 3 Algoritmo.pdf · Conceitos e Exemplos de Algoritmos Noções de Fluxo de Controle Introdução. Lógica de Programação

Nome Símbolo Descrição

Fluxo Indica o sentido do fluxo de operações

Terminal Indica início, fim ou ponto de parada de um programa

Entrada x,yIndica operação de entrada de dados para os locais chamados de x e y na memória

Saída x,y Indica operação de saída ou de impressão dos valores x e y

DecisãoIndica a possibilidade de desvio para mais de um ponto do programa

Cálculo x=y+z Indica operação aritmética

ConectorIndica conexão entre dois pontos de um algoritmo que estejam na mesma página

ConectorIndica conexão entre dois pontos de um algoritmo que estejam em página diferentes

Diagrama de bloco

Início

n1,n2,n3

M=(n1,n2,n3)/3

M>=60?

Você foi aprovado

Você foi reprovado

Fim

N

S

Início do algoritmo

O valor de cada nota é armazenado nas variáveis n1,n2 e n3

O valor da média é calculado e armazenado na variável M

É verificado se o valor de M é maior ou igual a 60. Se sim(S), é exibida a mensagem Você foi aprovado. Caso Contrário (N), é exibida a mensagem Você foi reprovado

Fim do algoritmo

Page 10: Lógica de Programação - adrianobenigno.com.br 3 Algoritmo.pdf · Conceitos e Exemplos de Algoritmos Noções de Fluxo de Controle Introdução. Lógica de Programação

Pseudo Linguagem

Consiste em representar textualmente ospassos envolvidos na resolução do problema.Para evitar ambiguidade, utiliza-se de umconjunto de regras que visam restringir eestruturar o uso do português na representaçãodos algoritmos. Aproxima-se muito do códigofonte de linguagens de programação reais.

Page 11: Lógica de Programação - adrianobenigno.com.br 3 Algoritmo.pdf · Conceitos e Exemplos de Algoritmos Noções de Fluxo de Controle Introdução. Lógica de Programação

Exemplo de um AlgoritmoInício

inteiro: n1,n2,n3,m;escreva(“Informe a primeira nota”);leia(n1);escreva(“Informe a segunda nota”);leia(n2);escreva(“Informe a segunda nota”);leia(n3);m (n1 + n2 + n3)/3;se(m>=60)

entãoescreva(“Você foi Aprovado”);

senãoescreva(“Você foi Reprovado”);

fimse;Fim.

// Início do algoritmo// Declaração das variáveis// Mensagem para o usuário// Leitura da primeira nota// Mensagem para o usuário// Leitura da segunda nota// Mensagem para o usuário// Leitura da terceira nota// Atribuição de valor através de operação// Teste de seleção// Se a condição for verdadeira// Mensagem para o usuário “Aprovado”// caso contrario, (se condição falsa).// Mensagem para o usuário// Final do teste de seleção// Fim do algoritmo

Page 12: Lógica de Programação - adrianobenigno.com.br 3 Algoritmo.pdf · Conceitos e Exemplos de Algoritmos Noções de Fluxo de Controle Introdução. Lógica de Programação

Tipos de DadosExistem quatro tipos de dados utilizados na construção de algoritmos.

Inteiro: informação numérica que pertença ao conjunto dos números inteiros

Exemplo: 8, -5, 10, 0, 1, etc.

Real: Informação numérica que pertença ao conjunto dos números reais

Exemplo: 0.15, -5.14, 10. 2, 2E23, etc.

Caracter: Informação composta por um caracter, ou conjunto de caracteres

Exemplo: “Ciência da Computação”, “A”, “US$”, etc

Lógico: Informação que possa assumir apenas duas situações.

Exemplo: V ou F

Page 13: Lógica de Programação - adrianobenigno.com.br 3 Algoritmo.pdf · Conceitos e Exemplos de Algoritmos Noções de Fluxo de Controle Introdução. Lógica de Programação

IdentificadoresUm identificador é o nome dado às informações de caráter variável. Existem

algumas regras de formação de identificadores que devem ser obedecidas.

1. Devem começar com um caracter alfabético

2. Podem ser seguidos por mais caracteres alfabéticos ou numéricos

3. Não devem ser usados caracteres especiais ou símbolos deoperadores aritméticas

4. Não podem ser palavras reservadas.

Identificadores válido: ano, idade, U2, nota1, nota_2

Identificadores inválidos: C&A, 4x, nota 1, nota 2, a/b, a#b, A+B

Page 14: Lógica de Programação - adrianobenigno.com.br 3 Algoritmo.pdf · Conceitos e Exemplos de Algoritmos Noções de Fluxo de Controle Introdução. Lógica de Programação

Declaração de variáveisNo ambiente computacional, as informações variáveis são guardadas em

dispositivos eletrônicos denominados memória. Para diferenciar cada uma destasvariáveis utilizamos os identificadores.

Exemplo:

Inteiro: x;

real: salario;

logico: resposta;

caracter: endereco;

Page 15: Lógica de Programação - adrianobenigno.com.br 3 Algoritmo.pdf · Conceitos e Exemplos de Algoritmos Noções de Fluxo de Controle Introdução. Lógica de Programação

Comandos BásicosDeclaração de Variáveis

Ex.

caracter: nome;

inteiro: x,idade,soma;

real: y,salario;

logico: val1;

Comandos de entrada de dados

Ex.

leia (nome);

leia (x,idade);

leia (y,salario);

Comando de saída de dados

Ex.

escreva(“Hello Word!”);

escreva(nome);

escreva(“Seu nome e”,nome);

escreva(“Seu salario e: ”,salario);

Comandos de atribuição

Ex.

soma y * salario;

val1 1 > 4+3;

Page 16: Lógica de Programação - adrianobenigno.com.br 3 Algoritmo.pdf · Conceitos e Exemplos de Algoritmos Noções de Fluxo de Controle Introdução. Lógica de Programação

Exemplo de um Algoritmo

Início

inteiro: val1, val2, soma;

escreva(“Digite o 1 números a ser somado”);

leia(val1);

escreva(“Digite o 2 números a ser somado”);

leia(val2);

soma (val1+val2);

escreva(“O valor total é:”,soma);

fim.

// Início do algoritmo

// Declaração das variáveis

// Mensagem para o usuário

// Leitura da variáveis val1

// Mensagem para o usuário

// Leitura da variáveis val2

// Calculo da soma

// Mensagem com valor da soma

// Fim do algoritmo

Page 17: Lógica de Programação - adrianobenigno.com.br 3 Algoritmo.pdf · Conceitos e Exemplos de Algoritmos Noções de Fluxo de Controle Introdução. Lógica de Programação

Operadores

Operador aritmético Função Exemplos

+ soma 2+3; x+y; z+2

- Subtração 4-6; g-k; u-4

* Multiplicação 8*6; x*y; 2*x

/ Divisão 2/7; x/z; z/2

pot(x,y) Potenciação (xy) pot(2,4); pot(z,3)rad(x) Radiciação rad(4); rad(x)

mod Resto da divisão 13 mod 2(resulta em 1)

div Quociente da divisão 9 div 4(resulta em 2)

)( x

Page 18: Lógica de Programação - adrianobenigno.com.br 3 Algoritmo.pdf · Conceitos e Exemplos de Algoritmos Noções de Fluxo de Controle Introdução. Lógica de Programação

Hierarquia

Parênteses mais internos

pot rad

* / div mod

+ -

Para operações de mesma prioridade, resolvemos os operadores da esquerda para a direita. A prioridade pode ser alterada com o uso de parêntese

Page 19: Lógica de Programação - adrianobenigno.com.br 3 Algoritmo.pdf · Conceitos e Exemplos de Algoritmos Noções de Fluxo de Controle Introdução. Lógica de Programação

Operadores

Operador relacional Função Exemplos

= Igual x=y; x=z

> Maior que 3>2; x>y

< Menor que x<y; 2<x

>= Maior ou igual a 8>=7; x>=z; z>=2

<= Menor ou igual a 5<=6; x<=6<> Diferente de 4<>3; x<>z

Page 20: Lógica de Programação - adrianobenigno.com.br 3 Algoritmo.pdf · Conceitos e Exemplos de Algoritmos Noções de Fluxo de Controle Introdução. Lógica de Programação

OperadoresOperador lógico Função

não Negação

e Conjunção

ou Disjunção

não

e

ou

O resultado obtido de uma expressão envolvendo operadores relacionais e/ou lógicos relação é sempre um valor lógico. As expressões lógicas devem ser solucionadas respeitando a seguinte procedência

Page 21: Lógica de Programação - adrianobenigno.com.br 3 Algoritmo.pdf · Conceitos e Exemplos de Algoritmos Noções de Fluxo de Controle Introdução. Lógica de Programação

Prioridade

As expressões envolvendo os operadores aritméticos, relacionais e lógicos, devem ser solucionadas respeitando a seguinte ordem de prioridade.

1. Parênteses mais internos

2. Operadores aritméticos

3. Operadores relacionais

4. Operadores lógicos

Page 22: Lógica de Programação - adrianobenigno.com.br 3 Algoritmo.pdf · Conceitos e Exemplos de Algoritmos Noções de Fluxo de Controle Introdução. Lógica de Programação

Estrutura de seleçãose (expressão logica)

entao

acao

fimse;

Iníciointeiro: val1;escreva(“Digite um número”);leia(val1);se (val1<100)

entaoescreva(“O numero digitado e menor que 100”);

fimse;fim.

Page 23: Lógica de Programação - adrianobenigno.com.br 3 Algoritmo.pdf · Conceitos e Exemplos de Algoritmos Noções de Fluxo de Controle Introdução. Lógica de Programação

Estrutura de seleção

se (expressão logica)

entao

acao 1;

senao

acao 2;

fimse;

Iníciointeiro: val1;escreva(“Digite um número”);leia(val1);se (val1<100)

entaoinicio

escreva(“Atencao”);escreva(“O numero digitado e menor que 100”);

fim;senao

inicioescreva(“Atencao”);escreva(“O numero digitado e igual ou maior que 100”);

fim;fimse;

fim.

Page 24: Lógica de Programação - adrianobenigno.com.br 3 Algoritmo.pdf · Conceitos e Exemplos de Algoritmos Noções de Fluxo de Controle Introdução. Lógica de Programação

Estrutura de seleção – Exercício, exemplo I

Iníciointeiro: idade;caracter: nome;escreva(“Digite seu nome:”);leia(nome);escreva(“Informe sua idade:”);leia(idade);se (idade<13)

entaoescreva(nome,“Você é uma criança”);

senaose (idade > 12 e idade<20)

entaoescreva(nome,“Você é um adolescente”);

senaoescreva(nome,“Você é um adulto”);

fimse;fimse;

fim.

Erradose (12<idade<20)

Page 25: Lógica de Programação - adrianobenigno.com.br 3 Algoritmo.pdf · Conceitos e Exemplos de Algoritmos Noções de Fluxo de Controle Introdução. Lógica de Programação

Estrutura de seleção – Exercício, exemplo II

Iníciointeiro: idade;caracter: nome;escreva(“Digite seu nome:”);leia(nome);escreva(“Informe sua idade:”);leia(idade);se (idade<13)

entaoescreva(nome,“Você é uma criança”);

senaose (idade >12 e idade<20)

entaoescreva(nome,“Você é um adolescente”);

senaose (idade>19)

entaoescreva(nome,“Você é um adulto”);

fimse;fimse;

fimse;fim.

Erradose (12<idade<20)

Page 26: Lógica de Programação - adrianobenigno.com.br 3 Algoritmo.pdf · Conceitos e Exemplos de Algoritmos Noções de Fluxo de Controle Introdução. Lógica de Programação

Estrutura de seleção – Exercício, exemplo III

Iníciointeiro: idade;caracter: nome;escreva(“Digite seu nome:”);leia(nome);escreva(“Informe sua idade:”);leia(idade);se (idade<13)

entaoescreva(nome,“Você é uma criança”);

fimse;se (idade >12 e idade<20)

entaoescreva(nome,“Você é um adolescente”);

fimse;se (idade>19)

entaoescreva(nome,“Você é um adulto”);

fimse;fim.

Erradose (12<idade<20)

Page 27: Lógica de Programação - adrianobenigno.com.br 3 Algoritmo.pdf · Conceitos e Exemplos de Algoritmos Noções de Fluxo de Controle Introdução. Lógica de Programação

Estrutura de seleção de múltipla escolha

escolha(x)caso v1: acao1;caso vn: acaon;caso contrario: acaopadrao;

fim escolha

Page 28: Lógica de Programação - adrianobenigno.com.br 3 Algoritmo.pdf · Conceitos e Exemplos de Algoritmos Noções de Fluxo de Controle Introdução. Lógica de Programação

Estrutura de seleção de múltipla escolha

iniciocaracter:tipo;escreva(“Selecione o sabor de pizza Muzzarela(M), Quatro queijos (Q), ou Presunto(P). ”);leia (tipo);escolha(tipo)

caso ‘M’:escreva(“A sua pizza de muzzarela esta sendo preparada... ”);escreva(“Aguarde...”);

caso ‘Q’:escreva(“A sua pizza de quatro queijos esta sendo preparada... ”);escreva(“Aguarde...”);

caso ‘P’:escreva(“A sua pizza de presunto esta sendo preparada... ”);escreva(“Aguarde...”);

caso contrario:escreva(“Opcao não disponivel ”);

fimescolha;Fim.

escolha(x)caso v1: acao1;caso vn: acaon;caso contrario: acaopadrao;

fim escolha

Page 29: Lógica de Programação - adrianobenigno.com.br 3 Algoritmo.pdf · Conceitos e Exemplos de Algoritmos Noções de Fluxo de Controle Introdução. Lógica de Programação

Estrutura de repetição - com teste no início

enquanto(expressao logica) façaacao1;acao2;acao3;

fimenquanto;

iniciocaracter:nome;inteiro: contador;contador 1;escreva(“Informe o seu nome”);leia(nome);enquanto (contador<=3) faça

escreva(nome);contadorcontador + 1;

fimenquanto;fim;

// Início do algoritmo// Declaração de variável nome// Declaração de variável contador// Inicializando a variável contador// Exibindo a mensagem na tela// Armazena o nome informado na variável nome// Início do laço// Imprimindo o conteúdo da variável nome na tela// Incrementando o contador em uma unidade// Fim do laço// Fim do algoritmo

Page 30: Lógica de Programação - adrianobenigno.com.br 3 Algoritmo.pdf · Conceitos e Exemplos de Algoritmos Noções de Fluxo de Controle Introdução. Lógica de Programação

Estrutura de repetição - com teste no início

inicioreal: num,soma;soma 0;escreva(“Informe o numero a ser somado”);leia(num);enquanto (num<>0) faça

soma soma+num;escreva(“Informe o número a ser somado”);leia(num);

fimenquanto;escreva(“A soma vale;”soma);

fim;

Page 31: Lógica de Programação - adrianobenigno.com.br 3 Algoritmo.pdf · Conceitos e Exemplos de Algoritmos Noções de Fluxo de Controle Introdução. Lógica de Programação

Estrutura de repetição - com teste no fim

repitaacao1;acao2;acao3;

ate(expressão lógica)

iniciointeiro: num;real: soma;soma 0;repita

escreva(“Informe o numero a ser somado: ”);leia(num);soma soma+num;

ate(num=0);escreva(“A soma vale;”soma);

fim;

Page 32: Lógica de Programação - adrianobenigno.com.br 3 Algoritmo.pdf · Conceitos e Exemplos de Algoritmos Noções de Fluxo de Controle Introdução. Lógica de Programação

Estrutura de repetição – com variável de controle

Para v de vi até vf passo p façaação 1;ação 2;ação n;

fimpara

iniciointeiro: controle;para controle de 0 até 10 passo 1 faça

escreva(“Este e o numero: ”, controle);fim para;

fim;

// Início do laço

// Fim do laço