lógica de programação em ppt
DESCRIPTION
Desenvolver o raciocínio lógico; Familiarizar o aluno com o modelo sequencial de computação; Apresentar técnicas e linguagens para representação e construção de algoritmos simples; Apresentar conceitos básicos de linguagens de programação;TRANSCRIPT
Lógica de Programação
Andrei Bastos
UFES – LABIC
VITÓRIA, ES - 2014
Universidade Federal do Espírito Santo -
UFES - LABIC 1
OBJETIVOS
• Desenvolver o raciocínio lógico;
• Familiarizar o aluno com o modelo sequencial de computação;
• Apresentar técnicas e linguagens para representação e construção de algoritmos simples;
• Apresentar conceitos básicos de linguagens de programação;
Universidade Federal do Espírito Santo - UFES - LABIC
2
Bibliografia
• Lógica de Programação – A Construção de Algoritmos e Estruturas de Dados – São Paulo
• Paulo Sérgio de Moraes, Apostila de Lógica de Programação.
Universidade Federal do Espírito Santo - UFES - LABIC
3
Conceito
São vários os conceitos para algoritmo. Escolhemos alguns para serem apresentados
• “Um conjunto finito de regras que provê uma sequência de operações para resolver um tipo de problema específico” [KNUTH]
• “Sequência ordenada, e não ambígua, de passos que levam à solução de um dado problema” [TREMBLAY]
Universidade Federal do Espírito Santo - UFES - LABIC
4
Conceito
Um algoritmo é formalmente uma sequência finita de passos que levam a execução de uma tarefa.
Podemos pensar em algoritmo como uma receita, uma sequê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.
Universidade Federal do Espírito Santo - UFES - LABIC
5
Formas de Representação
DESCRIÇÃO NARRATIVA Faz-se uso do português para descrever algoritmos VANTAGENS: • o português é bastante conhecido por nós;
DESVANTAGENS: • imprecisão; • pouca confiabilidade (a imprecisão acarreta a
desconfiança); • extensão (normalmente, escreve-se muito para dizer pouca
coisa).
Universidade Federal do Espírito Santo - UFES - LABIC
6
Exemplos
“Chupar uma bala”.
• Pegar a bala
• Retirar o papel
• Chupar a bala
• Jogar o papel no lixo
Universidade Federal do Espírito Santo - UFES - LABIC
7
Exemplos
“Somar dois números quaisquer”. • Escreva o primeiro número no retângulo A
• Escreva o segundo número no retângulo B
• Some o número do retângulo A com número do retângulo B e coloque o resultado no retângulo C
Universidade Federal do Espírito Santo - UFES - LABIC
8
Faça um algoritmo:
• para trocar uma lâmpada.
• para comprar um teclado.
• para colocar um tênis.
• Para somar dois números e multiplicar o resultado pelo primeiro número.
Exercícios
Universidade Federal do Espírito Santo - UFES - LABIC
9
Programas
Os programas de computadores nada mais são do que algoritmos escritos numa linguagem de
computador (Pascal, C, Cobol, Fortran, Visual Basic entre outras) e que são interpretados e
executados por uma máquina
Universidade Federal do Espírito Santo - UFES - LABIC
10
Desenvolvendo algoritmos
Para escrever um algoritmo precisamos descrever a sequência de instruções, de maneira
• simples e objetiva. Para isso utilizaremos algumas técnicas:
• Usar somente um verbo por frase
• Usar frases curtas e simples
• Ser objetivo
• Procurar usar palavras que não tenham sentido dúbio
Universidade Federal do Espírito Santo - UFES - LABIC
11
Fases
Vimos que ALGORITMO é uma sequência lógica de instruções que podem ser executadas. É importante ressaltar que qualquer tarefa que siga determinado padrão pode ser descrita por um algoritmo, como por exemplo: COMO FAZER ARROZ DOCE ou então CALCULAR O SALDO FINANCEIRO DE UM ESTOQUE
Universidade Federal do Espírito Santo - UFES - LABIC
12
Fases
Entretanto ao montar um algoritmo, precisamos primeiro dividir o problema apresentado em três fases fundamentais.
Universidade Federal do Espírito Santo - UFES - LABIC
13
Onde temos: ENTRADA: São os dados de entrada do algoritmo PROCESSAMENTO: São os procedimentos utilizados para chegar ao resultado final SAÍDA: São os dados já processados
Fases
Universidade Federal do Espírito Santo - UFES - LABIC
14
Analogia com o Humano:
Exemplo
• Imagine o seguinte problema: Calcular a média final dos alunos de uma turma da UFES. Os alunos realizarão três provas: P1, P2, P3.
Onde Média Final = (P1+P2+P3)/3. Para montar o algoritmo proposto, faremos três perguntas: a) Quais são os dados de entrada? R: Os dados de entrada são P1, P2, P3 e P4. b) Qual será o processamento a ser utilizado? R: O procedimento será somar todos os dados de entrada e dividi-los por 3 (três). c) Quais serão os dados de saída? R: O dado de saída será a média final.
Universidade Federal do Espírito Santo - UFES - LABIC
15
Exemplo
Algoritmo Calcular Média Final:
• Receba a nota da prova1
• Receba a nota de prova2
• Receba a nota de prova3
• Some todas as notas e divida o resultado por 3
• Mostre o resultado da divisão
Universidade Federal do Espírito Santo - UFES - LABIC
16
Teste de Mesa
• Após desenvolver um algoritmo ele deverá sempre ser testado. Este teste é chamado de TESTE DE MESA, que significa, seguir as instruções do algoritmo de maneira precisa para verificar se o procedimento utilizado está correto ou não.
Veja o exemplo:
• Nota da Prova 1
• Nota da Prova 2
• Nota da Prova 3
• Utilize a tabela ao lado:
Universidade Federal do Espírito Santo - UFES - LABIC
17
P1 P2 P3 Média Final
EXERCÍCIOS
1) Identifique os dados de entrada, processamento e saída no algoritmo abaixo
– Receba código da peça – Receba valor da peça – Receba Quantidade de peças – Calcule o valor total da peça (Quantidade * Valor da peça) – Mostre o código da peça e seu valor total
2) Faça um algoritmo para “Calcular o estoque médio de uma peça”, sendo que
– ESTOQUEMÉDIO = (QUANTIDADE MÍNIMA + QUANTIDADE MÁXIMA) /2
3) Teste o algoritmo anterior com dados definidos por você.
Universidade Federal do Espírito Santo - UFES - LABIC
18
Formas de Representação
FLUXOGRAMA OU DIAGRAMA DE BLOCOS O diagrama de blocos é uma forma padronizada e eficaz para representar os passos lógicos de um determinado processamento. Com o diagrama podemos definir uma sequência de símbolos, com significado bem definido, portanto, sua principal função é a de facilitar a visualização dos passos de um processamento. VANTAGENS: • Uma das ferramentas mais conhecidas; • Figuras dizem muito mais que palavras; • Padrão mundial
DESVANTAGENS: • Pouca atenção aos dados, não oferecendo recursos para descrevê-los ou
representá-los; • Complica-se à medida que o algoritmo cresce.
Universidade Federal do Espírito Santo - UFES - LABIC
19
SIMBOLOGIA Existem diversos símbolos em um diagrama de bloco. Veja no quadro abaixo alguns dos símbolos mais utilizados.
Universidade Federal do Espírito Santo - UFES - LABIC
20
Exemplos • Dentro do símbolo sempre terá algo escrito, pois somente os símbolos não
nos dizem nada. Veja no exemplo a seguir:
Universidade Federal do Espírito Santo - UFES - LABIC
21
Exemplos
Universidade Federal do Espírito Santo - UFES - LABIC
22
Constantes, Variáveis e Tipos de Dados
• Variáveis e constantes são os elementos básicos que um programa manipula.
• Uma variável é um espaço reservado na memória do computador para armazenar um tipo de dado determinado.
• Variáveis devem receber nomes para poderem ser referenciadas e modificadas quando necessário.
• Um programa deve conter declarações que especificam de que tipo são as variáveis que ele utilizará e as vezes um valor inicial.
• Tipos podem ser por exemplo: inteiros, reais, caracteres, etc. As expressões combinam variáveis e constantes para calcular novos valores
Universidade Federal do Espírito Santo - UFES - LABIC
23
Constantes
Constante é um determinado valor fixo que não se modifica ao longo do tempo, durante a execução de um programa. Conforme o seu tipo, a constante é classificada como sendo numérica,
lógica e literal.
Universidade Federal do Espírito Santo - UFES - LABIC
24
Exemplo de constantes:
Variáveis • Variável é a representação simbólica dos elementos de um
certo conjunto. Cada variável corresponde a uma posição de memória, cujo conteúdo pode se alterado ao longo do tempo durante a execução de um programa. Embora uma variável possa assumir diferentes valores, ela só pode armazenar um valor a cada instante
Universidade Federal do Espírito Santo - UFES - LABIC
25
Exemplos de variáveis
Tipos de Variáveis
Universidade Federal do Espírito Santo - UFES - LABIC
26
As variáveis e as constantes podem ser basicamente de quatro tipos: Numéricas, caracteres, Alfanuméricas ou lógicas.
Numéricas Específicas para armazenamento de números, que posteriormente poderão ser utilizados para cálculos. Podem ser ainda classificadas como Inteiras ou Reais. Caracteres Específicas para armazenamento de conjunto de caracteres que não contenham números (literais). Ex: nomes. Alfanuméricas Específicas para dados que contenham letras e/ou números. Pode em determinados momentos conter somente dados numéricos ou somente literais. Se usado somente para armazenamento de números, não poderá ser utilizada para operações matemáticas. Lógicas Armazenam somente dados lógicos que podem ser Verdadeiro ou Falso.
Declaração de Variáveis
Universidade Federal do Espírito Santo - UFES - LABIC
27
As variáveis só podem armazenar valores de um mesmo tipo, de maneira que também são classificadas como sendo numéricas, lógicas e literais.
EXERCÍCIOS
• O que é uma constante? Dê dois exemplos.
• O que é uma variável? Dê dois exemplos.
• Faça um teste de mesa no diagrama de bloco abaixo e preencha a tabela ao lado com os dados do teste:
Universidade Federal do Espírito Santo - UFES - LABIC
28
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
Universidade Federal do Espírito Santo - UFES - LABIC
29
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 exponencial. Os símbolos para os operadores aritméticos são:
Universidade Federal do Espírito Santo - UFES - LABIC
30
OPERAÇÃO SÍMBOLO
Adição +
Subtração -
Multiplicação *
Divisão /
Exponencial ** ou ^
Operadores Aritméticos
Universidade Federal do Espírito Santo - UFES - LABIC
31
Hierarquia das Operações Aritméticas 1 º ( ) Parênteses 2 º Exponencial 3 º Multiplicação, divisão (o que aparecer primeiro) 4 º + ou – (o que aparecer primeiro)
Exemplos
TOTAL = PRECO * QUANTIDADE 1 + 7 * 2 ** 2 –1 = 28 3 * (1 – 2) + 4 * 2 = 5
Operadores Relacionais
Universidade Federal do Espírito Santo - UFES - LABIC
32
Os operadores relacionais são utilizados para comparar variáveis. Os valores a serem comparados podem ser caracteres, numéricos ou lógicos.
Estes operadores sempre retornam valores lógicos (verdadeiro ou falso/ True ou False) Para estabelecer prioridades no que diz respeito a qual operação executar primeiro, utilize os parênteses. Os operadores relacionais são:
Descrição Resultado
Igual a ==
Diferente de != ou <>
Maior que >
Menor que <
Maior ou igual a =>
Menor ou igual a <=
Exemplos
Universidade Federal do Espírito Santo - UFES - LABIC
33
Tendo duas variáveis A = 5 e B = 3 Os resultados das expressões seriam:
Expressão Resultado
A == B Falso
A <> B Verdadeiro
A > B Verdadeiro
A < B Falso
A >= B Verdadeiro
A <= B Falso
Operadores Lógicos
Universidade Federal do Espírito Santo - UFES - LABIC
34
Os operadores lógicos servem para combinar resultados de expressões, retornando se o resultado final é verdadeiro ou falso. Os operadores lógicos são:
E AND
OU OR
NÃO NOT
E / AND: Uma expressão AND (E) é verdadeira se todas as condições forem Verdadeiras OR/OU: Uma expressão OR (OU) é verdadeira se pelo menos uma condição for Verdadeira NOT: Um expressão NOT (NÃO) inverte o valor da expressão ou condição, se verdadeira inverte para falsa e vice-versa.
Exemplo
Universidade Federal do Espírito Santo - UFES - LABIC
35
A tabela abaixo mostra todos os valores possíveis criados pelos três operadores lógicos (AND, OR e NOT)
1º Valor Operador 2º Valor Resultado
True AND True True
True AND False False
False AND True False
False AND False False
True OR True True
True OR False True
False OR True True
False OR False False
True NOT False
False NOT True
Exemplo
Universidade Federal do Espírito Santo - UFES - LABIC
36
Suponha que temos três variáveis A = 5, B = 8 e C =1 Os resultados das expressões seriam:
Expressões Resultado
A == B AND B > C False
A <> B OR B < C True
A > B NOT True
A < B AND B > C True
A >= B OR B == C False
A <= B NOT False
EXERCÍCIOS
1) Tendo as variáveis SALARIO, IR e SALLIQ, e considerando os valores abaixo. Informe se as expressões são verdadeiras ou falsas.
Universidade Federal do Espírito Santo - UFES - LABIC
37
Salário IR SALLIQ EXPRESSÃO V OU F
100,00 0,00 100 (SALLIQ >= 100,00)
200,00 10,00 190,00 (SALLIQ < 190,00)
300,00 15,00 285,00 SALLIQ = SALARIO - IR
2) Sabendo que A=3, B=7 e C=4, informe se as expressões abaixo são verdadeiras ou falsas.
a) (A+C) > B ( ) b) B >= (A + 2) ( ) c) C = (B –A) ( ) d) (B + A) <= C ( ) e) (C+A) > B ( )
EXERCÍCIOS
Universidade Federal do Espírito Santo - UFES - LABIC
38
3) Sabendo que A=5, B=4 e C=3 e D=6, informe se as expressões abaixo são verdadeiras ou falsas. a) (A > C) AND (C <= D) ( ) b) (A+B) > 10 OR (A+B) = (C+D) ( ) c) (A>=C) AND (D >= C) ( )
Operações Lógicas
Universidade Federal do Espírito Santo - UFES - LABIC
39
Operações Lógicas são utilizadas quando se torna necessário tomar decisões em um diagrama de bloco. Num diagrama de bloco, toda decisão terá sempre como resposta o resultado VERDADEIRO ou FALSO. Como no exemplo do algoritmo “CHUPAR UMA BALA”. Imaginemos que algumas pessoas não gostem de chupar bala de Morango, neste caso teremos que modificar o algoritmo para: “Chupar uma bala”. · Pegar a bala · A bala é de morango? · Se sim, não chupe a bala · Se não, continue com o algoritmo · Retirar o papel · Chupar a bala · Jogar o papel no lixo
Exemplo Exemplo: Algoritmo “Chupar Bala” utilizando diagrama de Blocos
Universidade Federal do Espírito Santo - UFES - LABIC
40
Estrutura de Decisão e Repetição
Universidade Federal do Espírito Santo - UFES - LABIC
41
Como vimos no capítulo anterior em “Operações Lógicas”, verificamos que na maioria das vezes necessitamos tomar decisões no andamento do algoritmo. Essas decisões interferem diretamente no andamento do programa. Trabalharemos com dois tipos de estrutura. A estrutura de Decisão e a estrutura de Repetição
Comandos de Decisão
Os comandos de decisão ou desvio fazem parte das técnicas de programação que conduzem a estruturas de programas que não são totalmente sequenciais. Com as instruções de SALTO ou DESVIO pode-se fazer com que o programa proceda de uma ou outra maneira, de acordo com as decisões lógicas tomadas em função dos dados ou resultados anteriores. As principais estruturas de decisão são: “Se Então”, “Se então Senão” e “Caso Selecione”
SE ENTÃO / IF ... THEN
Universidade Federal do Espírito Santo - UFES - LABIC
42
A estrutura de decisão “SE/IF” normalmente vem acompanhada de um comando, ou seja, se determinada condição for satisfeita pelo comando SE/IF então execute determinado comando.
Imagine um algoritmo que determinado aluno somente estará aprovado se sua média for maior ou igual a 5.0, veja no exemplo de algoritmo como ficaria. SE (MEDIA >= 5.0 ) ENTÃO ALUNO APROVADO
Em diagrama de blocos ficaria assim:
Na linguagem C, Ficaria:
If(Media>=5.0) { Texto = “APROVADO”; }
SE ENTÃO SENÃO / IF ... THEN ... ELSE
Universidade Federal do Espírito Santo - UFES - LABIC
43
A estrutura de decisão “SE/ENTÃO/SENÃO”, funciona exatamente como a estrutura “SE”, com apenas uma diferença, em “SE” somente podemos executar comandos caso a condição seja verdadeira, diferente de “SE/SENÃO” pois sempre um comando será executado independente da condição, ou seja, caso a condição seja “verdadeira” o comando da condição será executado, caso contrário o comando da condição “falsa” será executado Em algoritmo ficaria assim: SE MÉDIA >= 5.0 ENTÃO ALUNO APROVADO SENÃO ALUNO REPROVADO
Em diagrama:
Em Linguagem C:
If (MEDIA>=5.0) { Texto = “APROVADO”; } else { Texto = “REPROVADO”; }
Exercício
• Escreva uma Algoritmo que envolva:
– Uma condição com Se então (if)
– Uma condição com Se então (if .. Else)
Universidade Federal do Espírito Santo - UFES - LABIC
44
Comandos de Repetição
Universidade Federal do Espírito Santo - UFES - LABIC
45
Utilizamos os comandos de repetição quando desejamos que um determinado conjunto de instruções ou comandos sejam executados um número definido ou indefinido de vezes, ou enquanto um determinado estado de coisas prevalecer ou até que seja alcançado.
São eles os comandos: Para (valores Iniciais; Condições; Conjunto de comandos) (for) Enquanto (Condições forem satisfeitas) (while) Faça (conjunto de comandos) Enquanto (conjunto condições forem satisfeitas) (do while)
Para/for
• Nessa estrutura, você determina valores iniciais as variáveis, impõem condições e comandos para serem realizados caso as condições forem satisfeitas.
• Mais utilizados em contadores, quando você quer fazer uma escala de variação
Exemplo:
Imagina que você queira ler 100 valores e calcular a média aritmética deles
Bastaria você declarar uma variável inteira que começasse com o valor 0, fizesse uma condição lógica para contar os 100 valores e incrementar +1 a cada passagem.
Vejamos na prática...
Universidade Federal do Espírito Santo - UFES - LABIC
46
Exemplo
• Exemplo de para/for para o caso anterior: int i, soma, valor; double media_final ; for(i=0,soma=0, i<100; i++) { leia valor; soma = soma + valor ; } media_final = soma/100; imprima (media_final);
Universidade Federal do Espírito Santo - UFES - LABIC
47
Enquanto/while
• Nessa estrutura você impõem condições e comandos para serem realizados caso as condições forem satisfeitas.
• As condições serão avaliadas antes dos comandos • Geralmente utilizados quando você não sabe o número de
vezes que irá se repetir. Exemplo: Imagina que você queira ler valores até que a soma de todos valores lidos seja maior que 100 e exiba a cada alteração; Vejamos na prática...
Universidade Federal do Espírito Santo - UFES - LABIC
48
Enquanto/While
int i, soma, valor;
soma = 0;
while (soma<100) {
Leia valor;
Soma = soma + valor;
Imprima Soma;
}
Universidade Federal do Espírito Santo - UFES - LABIC
49
Faça... Enquanto /do.. while
• Nessa estrutura você impõem condições e comandos para serem realizados caso as condições forem satisfeitas.
• As condições serão avaliadas depois dos comandos • Geralmente utilizados quando você não sabe o número de
vezes que irá se repetir e precisa que o começo seja lido. Exemplo: se o utilizador introduzir um valor menor que 10 para o raio, o programa volta a pedir um valor para o raio. Vejamos na prática...
Universidade Federal do Espírito Santo - UFES - LABIC
50
Faça Enquanto/do While
Universidade Federal do Espírito Santo - UFES - LABIC
51
double area, raio, Pi; Pi = 3.1415; do { Leia raio; } while( raio < 10 ); area = PI * raio * raio; Imprima area;
Exercícios
• Faça uma algoritmo que leia valores enquanto forem menores que 20;
• Faça um algoritmo que leia 10 valores e imprima no final a multiplicação de todos eles;
Universidade Federal do Espírito Santo - UFES - LABIC
52