lógica de programação - adrianobenigno.com.br 3 algoritmo.pdf · conceitos e exemplos de...
TRANSCRIPT
Lógica de Programação
Introduçã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
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.
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
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.
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
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
Descrição Narrativa
Um método direto, simplesmente especificarseus passos verbalmente. Porém a linguagemnatural é prolixa, imprecisa, pouco confiável. Porisso não é adequada.
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
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.
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
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
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
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;
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;
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
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
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
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
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
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
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.
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.
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)
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)
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)
Estrutura de seleção de múltipla escolha
escolha(x)caso v1: acao1;caso vn: acaon;caso contrario: acaopadrao;
fim escolha
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
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
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;
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;
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