introdução à lógica de programação - ufpelógica de programação •uso do encadeamento do...

27
TIAGO SANTOS [email protected] Introdução à Lógica de Programação Introdução

Upload: others

Post on 23-Aug-2021

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introdução à Lógica de Programação - UFPELógica de programação •Uso do encadeamento do raciocínio na programação de computadores, objetivando o desenvolvimento de soluções

TIAGO [email protected]

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

Introdução

Page 2: Introdução à Lógica de Programação - UFPELógica de programação •Uso do encadeamento do raciocínio na programação de computadores, objetivando o desenvolvimento de soluções

Agenda

• Conceitos

• Algoritmo• Concepção

• Representação

• Algoritmo & Programação

Page 3: Introdução à Lógica de Programação - UFPELógica de programação •Uso do encadeamento do raciocínio na programação de computadores, objetivando o desenvolvimento de soluções

Conceitos

Page 4: Introdução à Lógica de Programação - UFPELógica de programação •Uso do encadeamento do raciocínio na programação de computadores, objetivando o desenvolvimento de soluções

Lógica

• Originária do grego logos (linguagem racional)

• Michaelis: “Parte da filosofia que se ocupa das formas do pensamento e das operações intelectuais.”

• Forma – maneira como organizado e apresentado:• Ordem no pensamento

• Encadeamento ordenado de ideias

Page 5: Introdução à Lógica de Programação - UFPELógica de programação •Uso do encadeamento do raciocínio na programação de computadores, objetivando o desenvolvimento de soluções

Lógica

• Exemplos:• Todo mamífero é um animal

• Todo cavalo é um mamífero

• Portanto, todo cavalo é um animal

• Preciso de uma caneta

• Existe uma caneta dentro da gaveta

• A gaveta está fechada

• Preciso primeiro abrir a gaveta para depois pegar a caneta

Page 6: Introdução à Lógica de Programação - UFPELógica de programação •Uso do encadeamento do raciocínio na programação de computadores, objetivando o desenvolvimento de soluções

Lógica de programação

• Uso do encadeamento do raciocínio na programação de computadores, objetivando o desenvolvimento de soluções para resolução de problemas.

• A expressão do raciocínio através de algoritmos

• Objetivo principal do estudo da Lógica de Programação é a construção de algoritmoscoerentes e válidos.

Page 7: Introdução à Lógica de Programação - UFPELógica de programação •Uso do encadeamento do raciocínio na programação de computadores, objetivando o desenvolvimento de soluções

Algoritmo

• Uma sequência de instruções que visam atingir um objetivo bem definido

• Exemplo:• Receita de bolo

• Instruções de como chegar em um local

• Fórmula para cálculo de média aritmética

• Método de ordenação de uma listagem de números

Page 8: Introdução à Lógica de Programação - UFPELógica de programação •Uso do encadeamento do raciocínio na programação de computadores, objetivando o desenvolvimento de soluções

Algoritmo

• Como fazer um algoritmo?• Concepção

• Entrada

• Processamento

• Saída

• Representação• Descrição narrativa

• Fluxograma

• Pseudocódigo

Page 9: Introdução à Lógica de Programação - UFPELógica de programação •Uso do encadeamento do raciocínio na programação de computadores, objetivando o desenvolvimento de soluções

Algoritmo

• Caso de exemplo:• Na UNIBRA, para ser aprovado sem ter que passar por

uma avalição final é necessário obter um valor de média superior ou igual a 7. Lembrando que, no geral, são realizados dois exercícios e um interdisciplinar.

• Como representar um algoritmo que informe se o aluno foi aprovado sem a necessidade de ir para a avaliação final (passar direto)?

Page 10: Introdução à Lógica de Programação - UFPELógica de programação •Uso do encadeamento do raciocínio na programação de computadores, objetivando o desenvolvimento de soluções

AlgoritmoConcepção

Page 11: Introdução à Lógica de Programação - UFPELógica de programação •Uso do encadeamento do raciocínio na programação de computadores, objetivando o desenvolvimento de soluções

Etapas básicas

ProcessamentoEntradaSaída

Page 12: Introdução à Lógica de Programação - UFPELógica de programação •Uso do encadeamento do raciocínio na programação de computadores, objetivando o desenvolvimento de soluções

Etapas básicas

• Entrada• Exemplo: Os valores das notas dos dois exercícios e do

interdisciplinar• Pode não possuir explicitamente uma entrada, mas terá um

estado inicial

• Processamento• Exemplo: Cálculo da média aritmética das notas• Manipulação dos dados de entrada ou ação sobre o estado

inicial

• Saída• Exemplo: A afirmação ou negação de que o aluno passou

direto• Pode não possuir explicitamente uma saída, mas terá um

estado final

Page 13: Introdução à Lógica de Programação - UFPELógica de programação •Uso do encadeamento do raciocínio na programação de computadores, objetivando o desenvolvimento de soluções

AlgoritmoRepresentação

Page 14: Introdução à Lógica de Programação - UFPELógica de programação •Uso do encadeamento do raciocínio na programação de computadores, objetivando o desenvolvimento de soluções

Descrição narrativa

• Uso da linguagem (português, inglês ...) para descrever os passos a serem seguidos para obtenção da solução:

1. Obter as notas das avaliações 1, 2 e 3

2. Calcular a média aritmética das três notas

3. Verificar o valor da média. 1. Se o valor for maior ou igual a 7: o aluno passou direto.

2. Senão: o aluno não passou direto.

Page 15: Introdução à Lógica de Programação - UFPELógica de programação •Uso do encadeamento do raciocínio na programação de computadores, objetivando o desenvolvimento de soluções

Fluxograma

• Uso de símbolos com significados definidos:

Início ou fim do fluxograma

Operação de cálculo, de atribuição e chamada ou retorno de funções

Operação de entrada e dados

Operação de saída de dados

Decisão

Page 16: Introdução à Lógica de Programação - UFPELógica de programação •Uso do encadeamento do raciocínio na programação de computadores, objetivando o desenvolvimento de soluções

Fluxograma

media = (n1 + n2 + n3) / 3

n1, n2, n3

media ≥ 7

FIM

“Não passou direto”

“Passou direto”

INÍCIO

Falso

Verdadeiro

Page 17: Introdução à Lógica de Programação - UFPELógica de programação •Uso do encadeamento do raciocínio na programação de computadores, objetivando o desenvolvimento de soluções

Pseudocódigo

algoritmo "Nota Media"var

n1, n2, n3, media: realinicio

escreval("Informe as notas das avaliações 1, 2 e 3: ")leia(n1, n2, n3)

media <- (n1 + n2 + n3) / 3

se (media >= 7) entaoescreva("Passou direto")

senaoescreva("Não passou direto")

fimse

fimalgoritmo

Page 18: Introdução à Lógica de Programação - UFPELógica de programação •Uso do encadeamento do raciocínio na programação de computadores, objetivando o desenvolvimento de soluções

Vantagens e desvantagens

Vantagens Desvantagens

Descrição NarrativaSabendo falar, ao menos na forma falada conseguimos descrever.

Cada pessoa descreve da sua forma, podendo ser impreciso.

FluxogramaUma figura “fala muito mais”. Obedece a um certo padrão.

De análise complicada se o algoritmo for grande. Não possui suporte a definição de tipo de dado.

Pseudocódigo

Possui maior poder de representação. Linguagem natural. Parecido com uma linguagem de programação.

Tem várias versões e, mesmo parecido, ainda não é uma linguagem de programação.

Page 19: Introdução à Lógica de Programação - UFPELógica de programação •Uso do encadeamento do raciocínio na programação de computadores, objetivando o desenvolvimento de soluções

Algoritmo & Programação

Page 20: Introdução à Lógica de Programação - UFPELógica de programação •Uso do encadeamento do raciocínio na programação de computadores, objetivando o desenvolvimento de soluções

Programação

• A implementação de um algoritmo em uma linguagem de programação

• Linguagem de programação é um método com um conjunto bem definido de regras sintáticas e semânticas utilizados na implementação de um programa

C C++ C# Java Matlab

Python JavaScript PHP Fortran R

Pascal Assembly Ruby Erlang Lua

Scala Go Kotlin Swift Haskell

Page 21: Introdução à Lógica de Programação - UFPELógica de programação •Uso do encadeamento do raciocínio na programação de computadores, objetivando o desenvolvimento de soluções

Linguagem de programação

• As linguagem de programação podem ser classificadas em relação:• Grau de abstração

• Compilada X Interpretada

• Entre outros

Page 22: Introdução à Lógica de Programação - UFPELógica de programação •Uso do encadeamento do raciocínio na programação de computadores, objetivando o desenvolvimento de soluções

Grau de abstração

• Linguagem de máquina• Instruções nativas do processador

• Linguagem de baixo nível• Não é linguagem nativa do processador, mas abstrai

diretamente as instruções

• Linguagem de nível médio• Classificação contraditória entre autores

• Linguagem de alto nível• Símbolos de abstração elevada

• Mais próximo da linguagem humana

Page 23: Introdução à Lógica de Programação - UFPELógica de programação •Uso do encadeamento do raciocínio na programação de computadores, objetivando o desenvolvimento de soluções

Grau de abstração

• Linguagem de máquina• 0001 0000 1010 1111

• Linguagem de baixo nível• Assembly

• Linguagem de nível médio• C/C++

• Linguagem de alto nível• PHP

Page 24: Introdução à Lógica de Programação - UFPELógica de programação •Uso do encadeamento do raciocínio na programação de computadores, objetivando o desenvolvimento de soluções

Compilada X Interpretada

• Tradução linguagem de programação:

• Opções:• Compilação

• O texto é traduzido por completo para ser lido

• Interpretação• O texto é traduzido e lido linha a linha

Linguagem de alto nívelmedia = (n1 + n2 + n3) / 3;

Linguagem de máquina0001 0000 1010 1111

Tradução

Page 25: Introdução à Lógica de Programação - UFPELógica de programação •Uso do encadeamento do raciocínio na programação de computadores, objetivando o desenvolvimento de soluções

Resumindo ...

Page 26: Introdução à Lógica de Programação - UFPELógica de programação •Uso do encadeamento do raciocínio na programação de computadores, objetivando o desenvolvimento de soluções

• Conceitos• Lógica• Lógica de programação• Algoritmo

• Algoritmo• Concepção

• Entrada• Processamento• Saída

• Representação• Descrição narrativa• Fluxograma• Pseudocódigo

• Algoritmo & Programação• Programação• Linguagem de programação

• Grau de abstração• Compilação X Interpretação

Page 27: Introdução à Lógica de Programação - UFPELógica de programação •Uso do encadeamento do raciocínio na programação de computadores, objetivando o desenvolvimento de soluções

TIAGO [email protected]

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

Introdução