Post on 27-Jul-2015
Algoritmos e Estruturas de Dados I (AEDS I)
Prof. Olga N. Goussevskaia olga@dcc.ufmg.br
2
Aula 2: Lógica de Programação
1. Lógica de Programação
2. Instruções 3. Algoritmo
4. Debugging 5. Teste 6. Elementos do algoritmo
– Variáveis
– Atribução – Operadores
Obs: Alguns slides por Profa Mirella M. Moro
3
1. LÓGICA DE PROGRAMAÇÃO
• Técnica de encadear pensamentos para aQngir determinado objeQvo
• Necessária para desenvolver programas e sistemas, pois permite definir a seqüência lógica para a solução de um problema
• SEQÜÊNCIA LÓGICA – ? → 1 → 2 → 3 → ! – Estes pensamentos podem ser descritos como uma seqüência de instruções, que devem ser seguidas para se cumprir uma determinada tarefa
– Passos executados até se aQngir um objeQvo ou solução de um problema
4
2. INSTRUÇÕES
• Cada um dos passos, cada uma das ações a tomar (obedecendo a seqüência lógica) para ir resolvendo o problema, ou para ir executando a tarefa
• É a instrução que indica a um computador uma operação elementar a executar – Ex.: “somar”, “subtrair”, “comparar se é maior”, etc
• Uma só instrução não resolve problemas
• Executar um conjunto de instruções • Executar em uma seqüência lógica
5
Instruções
• EXEMPLO: para “fazer omelete” – Instruções: “quebrar ovos”, “bater ovos”, “pôr sal”, “ligar fogão”, “pôr óleo na frigideira”, “pôr frigideira no fogo”, “fritar ovos baQdos”, etc...
• Quanto às instruções isoladas: – Só “quebrar ovos”, ou só “pôr óleo na frigideira”, não é suficiente para cumprir a tarefa “fazer omelete”
• Quanto à seqüência lógica: – Se executarmos “fritar ovos baQdos” antes de “bater ovos”, ou pior, antes de “quebrar ovos”, não iremos cumprir a tarefa “fazer omelete”
6
3. ALGORITMO
• Seqüência finita de passos que levam à execução de uma tarefa
• Claro e preciso. Ex. “somar dois números”: – Escrever primeiro número no retângulo A – Escrever segundo número no retângulo B
– Somar o número do retângulo A com o número do retângulo B e escrever o resultado no retângulo C
A B C
+ =
7
Exemplo de algoritmo
Trocar o um pneu furado: uma roQna para realizar essa tarefa
1. Verifica qual pneu está furado 2. Posiciona o macaco para levantar o carro 3. Pega o estepe 4. Solta os parafusos 5. Substitui o pneu furado 6. Recoloca os parafusos 7. Desce o carro 8. Guarda o macaco e o pneu furado
8
Programa
• Algoritmo escrito em uma linguagem de computador – linguagem de programação: C, Pascal, COBOL, Fortran, Basic, Java, entre outras
• Interpretado e executado por um computador • Interpretação rigorosa, exata, do computador
Escrita do algoritmo na linguagem de prog. tem que seguir regras mais rigorosas
Programa
• Sequência de instruções que especifica como realizar uma computação – Exemplos: achar as raízes de um polinômio, achar uma sequência de caracteres em um documento
• Conjunto básico de instruções: • Entrada e saída (E/S) de dados • Movimentação de dados (transferência) • AritméQca: adição, mulQplicação, etc. • Testes: verificação de certas condições (comparação) • RepeQção de ações, em geral, com algumas variações
Debugging
• Programação é um processo complexo que, por ser feito por seres humanos, frequentemente leva a erros (bugs): – Erros de compilação = erros de sintaxe, detectados pelo compilador. (essa frase contém erros de sintaxe)
– Erros em tempo de execução
– Erros de lógica e semânQca • O programa que você escreveu não é o programa que você queria escrever. O computador não consegue detectar tais erros.
Debugging
• Uma das habilidade mais importante que você deverá adquirir é a depuração experimental
• Debugar é parecido com o trabalho de um deteQve e envolve:
• Análise de pistas e eventos • Infererência de causas que levam aos resultados do seu programa
• Trabalho experimental: ao ter uma idéia sobre o erro, modifique o seu programa e tente executar novamente. Se sua hipótese estava correta, você chegou mais perto de um programa correto. Senão, invente outra hipótese! 12
Tipos de Algoritmos
• Pseudocódigo – Facilita descrever o algoritmo antes de passá-‐lo para uma ling. de programação
– Intermediária: linguagem natural – linguagem de programação
– Pseudocódigo = “códigofalso” • Fluxograma
– Forma universal de representação – UQliza figuras geométricas para ilustrar passos a serem seguidos para a resolução de problemas
13
Pseudocódigo
• Descrição do algoritmo, menos rigorosa que na linguagem de programação (código fonte)
• Fácil de entender e fácil de codificar depois • Independente da linguagem de programação • Simples e objeQvo • Técnica
– Um verbo por frase – Não escrever “para informatas” – Frases curtas e simples – Ser objeQvo – Usar palavras sem duplo senQdo
14
Escrevendo Pseudocódigo
• FASES para desenvolver o algoritmo – Determinar o problema, definí-‐lo bem – Dividir a solução nas três fases
• Exemplo: – Problema: calcular a média de quatro números – Dados de entrada: os números, N1, N2, N3 e N4 – Processamento: somar os quatro números e dividir a soma por 4
– Dados de saída: a média final
ENTRADA PROCESSAMENTO SAÍDA
N1 + N2 + N3 + N4 4
15
Escrevendo Pseudocódigos
• Algoritmo – Receber o primeiro número
– Receber o segundo número – Receber o terceiro número
– Receber o quarto número – Somar todos os números
– Dividir a soma por 4 – Mostrar o resultado da divisão
N1 + N2 + N3 + N4 4
16
Fluxograma – Representação gráfica padronizada dos passos de um algoritmo
– Principais símbolos
Terminal: INÍCIO ou FIM do algoritmo
Processamento (ação, operação)
Entrada de dado manual (“ler”, “receber”)
Exibir (“mostrar”, saída de dado)
Decisão (teste) S
N
Fluxograma
17
N1 + N2 + N3 + N4 4
INÍCIO
Calcular MEDIA= (N1+N2+N3+N4) / 4
Receber N1
Mostrar MEDIA
Receber N2
Receber N3
Receber N4
FIM 18
4. TESTE
• Todo algoritmo deve ser testado – Usar dados e resultados previamente calculados
– Seguir precisamente as instruções do algoritmo – Verificar se o procedimento está correto
• Exemplo: Fazer teste de mesa para o algoritmo da média
5. ELEMENTOS
• Variável • Atribuição • Operadores
19 20
Variável
• Representa uma posição na memória, onde pode ser armazenado um dado
• Possui um nome e um valor • Durante a execução do algoritmo, pode ter seu valor alterado (seu valor pode variar)
• Mudanças no valor das variáveis: – Por entrada de dados (“Ler N1”) – Por atribuição (“MEDIA = <um certo valor>”)
21
Variável: exemplo seqüencial
“Calcular a média de quatro números”
Pseudocódigo: – Ler N1 – Ler N2 – Ler N3 – Ler N4 – MEDIA = (N1+N2+N3+N4) / 4
– Mostrar MEDIA 22
Variável: exemplo seqüencial
“Calcular a média de quatro números” – PSEUDOCÓDIGO:
• Ler N1 • Ler N2 • Ler N3 • Ler N4
• MEDIA = (N1+N2+N3+N4) / 4 • Mostrar MEDIA
VARIÁVEIS: mais clareza no pseudocódigo
VARIÁVEL
23
Atribuição
• Atribui o valor da direita à variável da esquerda • O valor pode ser uma constante, uma variável ou uma expressão
MEDIA = (N1+N2+N3+N4) / 4 (Lê-‐se media recebe N1+...)
– Neste caso, estamos atribuindo o resultado da fórmula à variável média, ou seja, a variável média está recebendo como valor o resultado da fórmula
• Outros Exemplos – a = 3; – a = x;
24
Operadores
• São operações básicas em processamento de dados
• Usados para incrementar, decrementar, comparar e avaliar dados
• Tipos: – AritméQcos (+, -‐, *, /, ** ou ^)
• Resultados numéricos
– Relacionais (>, <, >=, <=, =, <> ou #) • Resultados lógicos (V ou F)
– Lógicos (e, ou, não) • Combinam resultados lógicos
25
Operadores AritméQcos
Hierarquia das Ops. Aritméticas Parênteses Exponenciação Multiplicação ou Divisão Adição ou Subtração
TOTAL = PREÇO * QUANTIDADE
1 + 7 * 2 ** 2 – 1 = 28
3 * (1- 2) + 4 * 2 = 5
Média = (N1 + N2 + N3 + N4) / 4
26
Operadores Relacionais
• Muito usados para tomar decisões nos algoritmos
• Usados para: testes, comparações, que resultam em valores lógicos (verdadeiro ou falso)
Exemplo: Duas variáveis, A = 5 e B = 3
Expressão Resultado A = B Falso A <> B Verdadeiro A > B Verdadeiro A < B Falso A >= B Verdadeiro A <= B falso
27
Exercícios
• Tendo as variáveis SALARIO, IR e SALLIQ, e considerando os valores abaixo. Informe se as expressões são verdadeiras ou falsas
• Sabendo que A=3, B=7 e C=4, informe se as expressões abaixo são verdadeiras ou falsas. – (A+C) > B ( ) – B >= (A + 2) ( ) – C = (B –A) ( ) – (B + A) <= C ( ) – (C+A) > B ( )
28
Operadores Lógicos • Combinam resultados lógicos
• Geram novos valores lógicos (T ou F)
• A “tabela-‐verdade” mostra todos os valores possíveis de se obter com oper. lógicos
T = Verdad. F = Falso AND = E OR = OU NOT = NÃO
A op B T/F? T AND T T
T AND F F F AND T F
F AND F F T OR T T T OR F T
F OR T T F OR F F
NOT T F NOT F T
29
Operações Lógicas
• Operadores relacionais + operadores lógicos = operações lógicas
• Produzem resultados lógicos (T/F)
• Para A = 5, B = 8 e C = 1: • (A = B) AND (B > C) • (A <> B) OR (B < C) • NOT (A > B) • (A < B) AND (B > C) • (A >= B) OR (B = C) • NOT (A <= B)
• São usadas em decisões nos algoritmos... 30
Operações Lógicas
• Operadores relacionais + operadores lógicos = operações lógicas
• Produzem resultados lógicos (T/F)
• Para A = 5, B = 8 e C = 1: • (A = B) AND (B > C) • (A <> B) OR (B < C) • NOT (A > B) • (A < B) AND (B > C) • (A >= B) OR (B = C) • NOT (A <= B)
• São usadas em decisões nos algoritmos...
F ( V AND F ) V ( V OR F ) V ( NOT F ) V ( V AND V ) F ( F OR F ) F ( NOT V )
31
Exercícios
• Escreva os passos necessários para uma pessoa efetuar um saque em um caixa eletrônico
• Escreva a seqüência de passos para que uma pessoa abra um arquivo armazenado em um pen-‐drive uQlizando o Word do Windows
32
Exercícios
• IdenQfique os dados de entrada, processamento e saída no algoritmo abaixo – Receba código da peça – Receba valor da peça – Receba QuanQdade de peças (Qtde) – Calcule o valor total da peça (Qtde * Valor) – Mostre o código da peça e seu valor total
• Faça um algoritmo para “Calcular o estoque médio de uma peça”, sendo que
estoquemédio = (quanQdade mínima + quanQdade máxima) /2
33
Exercício
Considere a seguinte atribuição de valores para as variáveis: A=3, B=4, C=8. Avalie as expressões indicando o resultado final: T / F
• A > 3 AND C = 8 • A <> 2 OR B <= 5 • A = 3 OR B >= 2 AND C = 8 • A = 3 AND NOT B <= 4 AND C = 8 • A <> 8 OR B = 4 AND C > 2 • B > A AND C <> A • A > B OR B < 5 • A <> B AND B = C • C > 2 OR A < B • A > B OR B > A AND C <> B