49
Introdução à Lógica de Programação http://ead.al.senai.br:81/portal/images/logicadeprogramacao.jpg

Lógica de programação, algoritmos e big data

Embed Size (px)

Citation preview

Page 1: Lógica de programação, algoritmos e big data

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

http://ead.al.senai.br:81/portal/images/logicadeprogramacao.jpg

Page 2: Lógica de programação, algoritmos e big data

O que é lógica?

Page 3: Lógica de programação, algoritmos e big data

Lógica

● Ciência que estuda as leis do raciocínio.

● Correção/validação do pensamento.

● Arte do bem pensar.

Page 4: Lógica de programação, algoritmos e big data

Lógica é considerada uma ciência formal, é o

estudo formal sistemático dos princípios da

inferência válida e do pensamento correto.

https://pt.wikipedia.org/wiki/Logica

Conceito de Lógica

Page 5: Lógica de programação, algoritmos e big data

A Programação Lógica tem como objetivo

realizar funções ou esquemas lógicos por

meio de parâmetros e metas. É a técnica de

desenvolver algoritmos (sequências

lógicas) para atingir determinados objetivos

dentro de certas regras baseadas na Lógica

matemática e em outras teorias básicas

da Ciência da Computação

Programação Lógica

Page 6: Lógica de programação, algoritmos e big data

Base na lógica matemática

O sentido da programação lógica é trazer o

estilo da lógica matemática à programação de

computadores.

Page 7: Lógica de programação, algoritmos e big data

A lógica é a base de todas as linguagens

de programação que são usadas para a

comunicação com o computador. Estas

linguagens são constituídas de

comandos, que quando utilizados

corretamente, executam determinadas

ações.

Page 8: Lógica de programação, algoritmos e big data

Lógica de programação pode ser definida

simplesmente como a definição de um

código a ser escrito em qualquer

Linguagem de Programação, ou seja, é a

definição dos recursos da linguagem que

serão utilizados e como serão utilizados.

Page 9: Lógica de programação, algoritmos e big data

Algoritmos

Page 10: Lógica de programação, algoritmos e big data

Algoritmos

Algoritmo é uma sequência finita de

instruções bem definidas e não

ambíguas, cada uma das quais

devendo ser executadas mecânica ou

eletronicamente em um intervalo de

tempo finito e com uma quantidade de

esforço finita

https://www.pt.wikipedia.org/wiki/Algoritmo

Page 11: Lógica de programação, algoritmos e big data

Um algoritmo não representa,

necessariamente, um programa

de computador, e sim os passos

necessários para realizar

determinada tarefa.

Page 12: Lógica de programação, algoritmos e big data

Sua implementação pode ser feita por um computador, por outro tipo de autômato ou mesmo por um ser humano. Diferentes algoritmos podem realizar a mesma tarefa usando um conjunto diferenciado de instruções em mais ou menos tempo, espaço ou esforço do que outros.

Page 13: Lógica de programação, algoritmos e big data

Todas as tarefas executadas pelo

computador, são baseadas em Algoritmos.

Logo, um algoritmo deve ser bem definido,

pois é uma máquina que o executará. Uma

calculadora por exemplo, para executar a

operação de multiplicação, executa um

algoritmo que calcula somas até um

determinado número de vezes.

Algoritmos na computação

http://www.dicasdeprogramacao.com.br/o-que-e-algoritmo

Page 14: Lógica de programação, algoritmos e big data

Um programa de computador é essencialmente

um algoritmo que diz ao computador os passos

específicos e em que ordem eles devem ser

executados.

Page 15: Lógica de programação, algoritmos e big data

Pseudocódigo e Fluxograma

Pseudocódigos e Fluxogramas são formas

simples e diagramadas de um código

pronto. O objetivo de um fluxograma ou

pseudocódigo é mostrar de antemão a

lógica usada na solução de um problema

(algoritmo).

http://www.tiexpert.net/programacao/algoritmo

Page 16: Lógica de programação, algoritmos e big data

Pseudocódigo

O pseudocódigo é um código simplório, ou

seja, não é um código real, mas um código

imaginário que lembra o código de

programação.

O pseudocódigo é muito utilizado em cursos

de programação para apresentar a lógica

algorítmica de forma mais simples, sem ter

que se preocupar muito com o aspecto

técnico das linguagens reais.

Page 17: Lógica de programação, algoritmos e big data

O pseudocódigo não segue um

padrão definido, portanto,

qualquer um pode escrever seu

pseudocódigo da forma que bem

entender desde que ele transmita

a ideia central da lógica da

programação.

Page 18: Lógica de programação, algoritmos e big data

Exemplo de um pseudocódigo

https://dougllass.files.wordpress.com/2011/08/soma_portugol.jpg

Page 19: Lógica de programação, algoritmos e big data

Fluxograma

Fluxogramas têm o mesmo objetivo dos

pseudocódigos, a única diferença é que os

fluxogramas são representações gráficas.

A vantagem principal dos fluxogramas é que,

diferentemente dos pseudocódigos, eles são

padronizados. Ou seja, cada símbolo representa

uma ação específica e sempre representará.

Um fluxograma usa linhas para ligar seus

elementos, criando assim, um caminho que deve

ser seguido.

http://www.tiexpert.net/programacao/algoritmo

Page 20: Lógica de programação, algoritmos e big data

Tabela com alguns fluxogramas

http://www.tiexpert.net/programacao/algoritmo

Page 21: Lógica de programação, algoritmos e big data

Apesar do número de representações assustar à

princípio, a maior parte das representações não

são utilizadas.

Raramente utilizaremos o símbolo fita perfurada,

porque não são mais utilizadas aplicações que

realmente necessitem de entrada de dados por

fita perfurada como ocorria há 20 ou 30 anos

atrás. Porém, outros são utilizados com muito

mais frequência como o exibir, entrada manual,

processo e assim por diante.

Page 22: Lógica de programação, algoritmos e big data

Linguagem de Programação

Uma linguagem de programação é um método padronizado para comunicar instruções para um computador. É um conjunto de regras sintáticas e semânticas usadas para definir um programa de computador.

https://www.wikipedia.org/wiki/Linguagem_de_programacao

Page 23: Lógica de programação, algoritmos e big data

Conceitos

Programação estruturada é uma forma de programação que preconiza que todos os programas possíveis podem ser reduzidos a apenas três estruturas:

• Sequência

• Decisão

• Repetição

Page 24: Lógica de programação, algoritmos e big data

Classificação

As linguagens de programação

podem ser classificadas e sub-

classificadas de várias formas.

Page 25: Lógica de programação, algoritmos e big data

• Linguagens de aplicação.

• Linguagens concorrentes, distribuídas e paralelas.

• Linguagens de fluxo de dados.

• Linguagens de projeto.

• Linguagens extensíveis.

• Linguagens de montagem e de macro.

• Linguagens de microprogramação.

• Linguagens não determinísticas.

• Linguagens não procedurais.

• Linguagens orientadas a objeto.

• Linguagens de aplicação especializada.

• Linguagens de altíssimo nível.

https://www.wikipedia.org/wiki/Linguagem_de_programacao

Classificação da ACM(Association for Computing Machinery)

Page 26: Lógica de programação, algoritmos e big data

Programação orientada a objetos

Orientação à objetos, também conhecida

como Programação Orientada à Objetos

(POO), é um paradigma de análise, projeto

e programação de sistemas de software

baseado na composição e interação entre

diversas unidades do software chamadas

de objetos.

Page 27: Lógica de programação, algoritmos e big data

Linguagens de programação mais usadas atualmente

http://www.tiobe.com/tiobe-index

http://www.google.com/images

Page 28: Lógica de programação, algoritmos e big data

ESTRUTURA DE DADOS

Page 29: Lógica de programação, algoritmos e big data

CONCEITO

• É o ramo da computação que estuda os diversos mecanismos

de organização de dados para atender aos diferentes requisitos

de processamento.

Page 30: Lógica de programação, algoritmos e big data

ORGANIZA ALGORITMOS DE FORMA RACIONAL VISANDO EFICIÊNCIA

Page 31: Lógica de programação, algoritmos e big data

TIPOS DE DADOS

•TIPOS PRIMITIVOS

DE DADOS

•ESTRUTURAS DE

DADOS

Page 32: Lógica de programação, algoritmos e big data

TIPOS PRIMITIVOS DE DADOS

• Inteiro

• Real

• Lógico

• Caracter

• Ponteiro

Page 33: Lógica de programação, algoritmos e big data

TIPOS DE ESTRUTURA

• Vetores

• Multidimensionais

• Pilhas

• Filas

• Listas

• Árvores

Page 34: Lógica de programação, algoritmos e big data

TIPO ABSTRATO DE DADOS (ADT)

- LEVA EM CONTA O QUE OS USUÁRIOS DESEJAM FAZER

- BASEADO EM MODELO MATEMÁTICO

Page 36: Lógica de programação, algoritmos e big data

MÉTODOS DE IMPLEMENTAÇÃO DE ADT

• de classe, ou estático, se vale para todas as instâncias da

classe;

• de instância, ou não-estático, se cada instância da classe tem

sua própria cópia do método.

Page 37: Lógica de programação, algoritmos e big data

TABELA DE SÍMBOLOS (TSS)

• Um tabela de símbolos é uma tabela com duas colunas: uma

coluna de chaves (= keys) e uma de valores(= values). Dizemos

que cada linha da tabela é um item. Cada item associa um

valor a uma chave.

Page 38: Lógica de programação, algoritmos e big data

BIBLIOGRAFIA

• http://www.ime.usp.br/~pf/estruturas-de-dados/

• http://www.dca.fee.unicamp.br/cursos/EA876/apostila/HTML/node10.html

• http://www.ft.unicamp.br/liag/siteEd/

• http://www.inf.puc-rio.br/~inf1620/material.html

• https://pt.wikibooks.org/wiki/Algoritmos_e_Estruturas_de_Dados/O_que_s

%C3%A3o_estruturas_de_dados%3F

• http://www.cos.ufrj.br/~rfarias/cos121/filas.html

• http://pt.slideshare.net/fabriciolopessanchez/estrutura-de-dados-

conceitos-fundamentais

• http://pt.slideshare.net/MarceloAndrade32/estruturas-de-dados

Page 39: Lógica de programação, algoritmos e big data
Page 40: Lógica de programação, algoritmos e big data
Page 41: Lógica de programação, algoritmos e big data
Page 42: Lógica de programação, algoritmos e big data
Page 43: Lógica de programação, algoritmos e big data
Page 44: Lógica de programação, algoritmos e big data
Page 45: Lógica de programação, algoritmos e big data
Page 46: Lógica de programação, algoritmos e big data
Page 47: Lógica de programação, algoritmos e big data
Page 48: Lógica de programação, algoritmos e big data
Page 49: Lógica de programação, algoritmos e big data