21
Igor Steinmacher, MSc. [email protected] O maravilhoso mundo da Lógica de Programação

Igor Steinmacher, MSc. [email protected] O maravilhoso mundo da Lógica de Programação

Embed Size (px)

Citation preview

Page 1: Igor Steinmacher, MSc. igorfs@utfpr.edu.br O maravilhoso mundo da Lógica de Programação

Igor Steinmacher, MSc.

[email protected]

O maravilhoso mundo daLógica de Programação

Page 2: Igor Steinmacher, MSc. igorfs@utfpr.edu.br O maravilhoso mundo da Lógica de Programação

Igor Steinmacher [email protected]

Agenda

• Conceitos • Instruções• Algoritmos

Page 3: Igor Steinmacher, MSc. igorfs@utfpr.edu.br O maravilhoso mundo da Lógica de Programação

Igor Steinmacher [email protected]

Conceitos...

• Lógica: estudo filosófico-matemático da validade formal dos raciocínios;

• Lógica de programação é a técnica de encadear pensamentos para atingir determinado objetivo

• Sequência Lógica são passos executados até atingir um objetivo ou solução de um problema.

Page 4: Igor Steinmacher, MSc. igorfs@utfpr.edu.br O maravilhoso mundo da Lógica de Programação

Igor Steinmacher [email protected]

Conceitos...

• Instruções: um conjunto de regras ou normas definidas para a realização ou emprego de algo

– Em informática, porém, instrução é a informação que indica a um computador uma ação elementar a executar

• “Algoritmo é um,a sequencia de passos que visa atingir um objetivo bem definido” (Forbellone, 1999)

• “Algoritmo é a descrição de uma sequencia de passos que deve ser seguida para a realização de uma tarefa” (Ascencio, 1999)

• “Algoritmo são regras formais para obtenção de um resultado de um problema, englobando fórmulas e expressões aritméticas” (Manzano, 1997)

Page 5: Igor Steinmacher, MSc. igorfs@utfpr.edu.br O maravilhoso mundo da Lógica de Programação

Igor Steinmacher [email protected]

Algoritmos

• Exemplos:– Operações básicas matemáticas decimais– Manuais de aparelhos eletrônicos (Como ligar,

como executar a função X)– Outras coisas simples

• Chupar uma bala• Somar dois números• Fazer um sanduiche• Sacar dinheiro no caixa rápido

Page 6: Igor Steinmacher, MSc. igorfs@utfpr.edu.br O maravilhoso mundo da Lógica de Programação

Igor Steinmacher [email protected]

Exercícios

Crie uma sequência lógica para ir para a balada

Faça um algoritmo para somar dois números e multiplicar o resultado pelo primeiro número

Faça um algoritmo para trocar uma lâmpada (com certo nível de detalhes)

Page 7: Igor Steinmacher, MSc. igorfs@utfpr.edu.br O maravilhoso mundo da Lógica de Programação

Igor Steinmacher [email protected]

Construção de um algoritmo

Page 8: Igor Steinmacher, MSc. igorfs@utfpr.edu.br O maravilhoso mundo da Lógica de Programação

Igor Steinmacher [email protected]

Passos para a construção de algoritmos

• Compreender completamente o problema a ser resolvido destacando os pontos mais importantes

• Definir os dados de entrada, ou seja, quais dados serão fornecidos para a solução do problema

• Definir o processamento, ou seja, quais cálculos serão efetuados e quais as restrições para esses cálculos

• Definir os dados de saída, ou seja, quais dados serão gerados após o processamento

• Construir o algoritmo de alguma maneira• Testar o algoritmo utilizando simulações

Page 9: Igor Steinmacher, MSc. igorfs@utfpr.edu.br O maravilhoso mundo da Lógica de Programação

Igor Steinmacher [email protected]

Vamos pensar

• Imagine o seguinte problema: Calcular a média final dos alunos da 3ª Série. Os alunos realizarão quatro provas: P1, P2, P3 e P4.

• Em que:– Média Final = (P1 + P2 + P3 + P4)/4

Page 10: Igor Steinmacher, MSc. igorfs@utfpr.edu.br O maravilhoso mundo da Lógica de Programação

Igor Steinmacher [email protected]

E o teste?

• Teste de Mesa– seguir as instruções do algoritmo de maneira

precisa para verificar se o procedimento utilizado está correto ou não

– Para o exemplo, faríamos a seguinte tabela de valores:

P1 P2 P3 P4 Média

Page 11: Igor Steinmacher, MSc. igorfs@utfpr.edu.br O maravilhoso mundo da Lógica de Programação

Igor Steinmacher [email protected]

Exercícios

1) Identifique os dados de entrada, processamento e saída no algoritmo abaixo

Receba código da peçaReceba valor da peçaReceba Quantidade de peçasCalcule o valor total da peça (Quantidade * Valor da peça)Mostre o código da peça e seu valor total2) Faça um algoritmo para “Calcular o estoque médio de

uma peça”, sendo queESTOQUEMÉDIO = (QTDE MÍNIMA + QTDE MÁXIMA) /23) Teste o algoritmo anterior com dados definidos por você.

Page 12: Igor Steinmacher, MSc. igorfs@utfpr.edu.br O maravilhoso mundo da Lógica de Programação

Igor Steinmacher [email protected]

Como representar os algoritmos?

• Linguagem Natural• Fluxograma• Linguagem Estruturada• Linguagem de Programação

Page 13: Igor Steinmacher, MSc. igorfs@utfpr.edu.br O maravilhoso mundo da Lógica de Programação

Igor Steinmacher [email protected]

Linguagem Natural

• É o que estamos fazendo• Descrevemos os passos utilizando nosso modo de

escrever no dia-a-dia• Ponto positivo:

– Fácil de utilizar pois já é bem conhecida

• Pontos negativos:– Ambiguidade– Dificuldade de interpretação única– Dificuldade de transcrever para uma linguagem

formal

Page 14: Igor Steinmacher, MSc. igorfs@utfpr.edu.br O maravilhoso mundo da Lógica de Programação

Igor Steinmacher [email protected]

Fluxograma

• Utiliza um conjunto limitado de símbolos gráficos para descrever a solução

• Pontos positivos– Entendimento mais simples– Menor ambiguidade

• Pontos negativos– Necessidade de aprender os símbolos– Menor riqueza de detalhes

Page 15: Igor Steinmacher, MSc. igorfs@utfpr.edu.br O maravilhoso mundo da Lógica de Programação

Igor Steinmacher [email protected]

Fluxograma

Indica o início e o fim de um algoritmo

Indica o sentido do fluxo,dentro do algoritmo

Indica processamento; cálculos e atribuição de valores

Indica a entrada de dados

Indica saída de dados

Indica uma tomada de decisão, possível desvio

Page 16: Igor Steinmacher, MSc. igorfs@utfpr.edu.br O maravilhoso mundo da Lógica de Programação

Igor Steinmacher [email protected]

Exemplo de Fluxograma

• Chupar bala

Início

Chupar a bala

Pegar a bala

Tirar o papel

Jogar o papel no lixo

Fim

Page 17: Igor Steinmacher, MSc. igorfs@utfpr.edu.br O maravilhoso mundo da Lógica de Programação

Igor Steinmacher [email protected]

E para o exemplo da média?

Início

Media = (P1 + P2 + P3 + P4) 4

P1, P2, P3, P4

Media Fim

Page 18: Igor Steinmacher, MSc. igorfs@utfpr.edu.br O maravilhoso mundo da Lógica de Programação

Igor Steinmacher [email protected]

Exemplo

• Crie um fluxograma que: – Solicite o nome de um funcionário, seu salário e a

valor das vendas– Calcule o valor de sua comissão, sabendo que

esta é de 10% do valor de suas vendas– Calcule o salário final do funcionário – Apresente o nome do funcionário e o valor de seu

salário final

Page 19: Igor Steinmacher, MSc. igorfs@utfpr.edu.br O maravilhoso mundo da Lógica de Programação

Igor Steinmacher [email protected]

Vamos pensar

1) Construa um fluxograma que:

• Leia a cotação do dólar• Leia um valor em dólares• Converta o valor para

Real• Mostre o resultado2) Crie um fluxograma que:• Leia 4 (quatro) números• Calcule o dobro de cada

um• Somem todos os dobros• Mostre o resultado

3) Construa um algoritmo para pagamento de comissão de vendedores de peças, levando em consideração que sua comissão será de 5% do total da venda e que você tem os seguintes dados:

• Nome do vendedor• Código da peça• Preço unitário da peça• Quantidade vendida

Page 20: Igor Steinmacher, MSc. igorfs@utfpr.edu.br O maravilhoso mundo da Lógica de Programação

Igor Steinmacher [email protected]

Fluxograma com decisão

• Dados dois números, mostrar o maior

Início N1, N2

N1

Fim

N1 > N2?

N2

Page 21: Igor Steinmacher, MSc. igorfs@utfpr.edu.br O maravilhoso mundo da Lógica de Programação

Igor Steinmacher [email protected]

Salário Desconto

até R$ 1. 500,00 Isento

de R$ 1.500,01 até R$ 3.000,00 15%

acima de R$ 3.000,00 27,5%

Fluxograma com decisão

• Crie um fluxograma que, dado um número, escreva se ele é par ou ímpar.

• Faça um fluxograma que receba dois números (N1 e N2) e faça a divisão entre eles e mostre o resultado. Caso N2 seja igual a 0, mostre “Impossível dividir”.

• Faça um fluxograma para indicar o valor de desconto do imposto de renda para o usuário que informar seu salário, de acordo com a tabela abaixo: