Lógica de programação, algoritmos e big data
-
Upload
rodrigofn -
Category
Technology
-
view
264 -
download
3
Transcript of Lógica de programação, algoritmos e big data
![Page 1: Lógica de programação, algoritmos e big data](https://reader034.fdocument.pub/reader034/viewer/2022051504/58ee7f521a28abb00e8b45d7/html5/thumbnails/1.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051504/58ee7f521a28abb00e8b45d7/html5/thumbnails/2.jpg)
O que é lógica?
![Page 3: Lógica de programação, algoritmos e big data](https://reader034.fdocument.pub/reader034/viewer/2022051504/58ee7f521a28abb00e8b45d7/html5/thumbnails/3.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051504/58ee7f521a28abb00e8b45d7/html5/thumbnails/4.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051504/58ee7f521a28abb00e8b45d7/html5/thumbnails/5.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051504/58ee7f521a28abb00e8b45d7/html5/thumbnails/6.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051504/58ee7f521a28abb00e8b45d7/html5/thumbnails/7.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051504/58ee7f521a28abb00e8b45d7/html5/thumbnails/8.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051504/58ee7f521a28abb00e8b45d7/html5/thumbnails/9.jpg)
Algoritmos
![Page 10: Lógica de programação, algoritmos e big data](https://reader034.fdocument.pub/reader034/viewer/2022051504/58ee7f521a28abb00e8b45d7/html5/thumbnails/10.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051504/58ee7f521a28abb00e8b45d7/html5/thumbnails/11.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051504/58ee7f521a28abb00e8b45d7/html5/thumbnails/12.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051504/58ee7f521a28abb00e8b45d7/html5/thumbnails/13.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051504/58ee7f521a28abb00e8b45d7/html5/thumbnails/14.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051504/58ee7f521a28abb00e8b45d7/html5/thumbnails/15.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051504/58ee7f521a28abb00e8b45d7/html5/thumbnails/16.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051504/58ee7f521a28abb00e8b45d7/html5/thumbnails/17.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051504/58ee7f521a28abb00e8b45d7/html5/thumbnails/18.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051504/58ee7f521a28abb00e8b45d7/html5/thumbnails/19.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051504/58ee7f521a28abb00e8b45d7/html5/thumbnails/20.jpg)
Tabela com alguns fluxogramas
http://www.tiexpert.net/programacao/algoritmo
![Page 21: Lógica de programação, algoritmos e big data](https://reader034.fdocument.pub/reader034/viewer/2022051504/58ee7f521a28abb00e8b45d7/html5/thumbnails/21.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051504/58ee7f521a28abb00e8b45d7/html5/thumbnails/22.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051504/58ee7f521a28abb00e8b45d7/html5/thumbnails/23.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051504/58ee7f521a28abb00e8b45d7/html5/thumbnails/24.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051504/58ee7f521a28abb00e8b45d7/html5/thumbnails/25.jpg)
• 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](https://reader034.fdocument.pub/reader034/viewer/2022051504/58ee7f521a28abb00e8b45d7/html5/thumbnails/26.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051504/58ee7f521a28abb00e8b45d7/html5/thumbnails/27.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051504/58ee7f521a28abb00e8b45d7/html5/thumbnails/28.jpg)
ESTRUTURA DE DADOS
![Page 29: Lógica de programação, algoritmos e big data](https://reader034.fdocument.pub/reader034/viewer/2022051504/58ee7f521a28abb00e8b45d7/html5/thumbnails/29.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051504/58ee7f521a28abb00e8b45d7/html5/thumbnails/30.jpg)
ORGANIZA ALGORITMOS DE FORMA RACIONAL VISANDO EFICIÊNCIA
![Page 31: Lógica de programação, algoritmos e big data](https://reader034.fdocument.pub/reader034/viewer/2022051504/58ee7f521a28abb00e8b45d7/html5/thumbnails/31.jpg)
TIPOS DE DADOS
•TIPOS PRIMITIVOS
DE DADOS
•ESTRUTURAS DE
DADOS
![Page 32: Lógica de programação, algoritmos e big data](https://reader034.fdocument.pub/reader034/viewer/2022051504/58ee7f521a28abb00e8b45d7/html5/thumbnails/32.jpg)
TIPOS PRIMITIVOS DE DADOS
• Inteiro
• Real
• Lógico
• Caracter
• Ponteiro
![Page 33: Lógica de programação, algoritmos e big data](https://reader034.fdocument.pub/reader034/viewer/2022051504/58ee7f521a28abb00e8b45d7/html5/thumbnails/33.jpg)
TIPOS DE ESTRUTURA
• Vetores
• Multidimensionais
• Pilhas
• Filas
• Listas
• Árvores
![Page 34: Lógica de programação, algoritmos e big data](https://reader034.fdocument.pub/reader034/viewer/2022051504/58ee7f521a28abb00e8b45d7/html5/thumbnails/34.jpg)
TIPO ABSTRATO DE DADOS (ADT)
- LEVA EM CONTA O QUE OS USUÁRIOS DESEJAM FAZER
- BASEADO EM MODELO MATEMÁTICO
![Page 35: Lógica de programação, algoritmos e big data](https://reader034.fdocument.pub/reader034/viewer/2022051504/58ee7f521a28abb00e8b45d7/html5/thumbnails/35.jpg)
ALGUNS TIPOS DE ADT
• fila,
• string,
• Fila priorizada,
• tabela de símbolos,
• grafo
![Page 36: Lógica de programação, algoritmos e big data](https://reader034.fdocument.pub/reader034/viewer/2022051504/58ee7f521a28abb00e8b45d7/html5/thumbnails/36.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051504/58ee7f521a28abb00e8b45d7/html5/thumbnails/37.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051504/58ee7f521a28abb00e8b45d7/html5/thumbnails/38.jpg)
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](https://reader034.fdocument.pub/reader034/viewer/2022051504/58ee7f521a28abb00e8b45d7/html5/thumbnails/39.jpg)
![Page 40: Lógica de programação, algoritmos e big data](https://reader034.fdocument.pub/reader034/viewer/2022051504/58ee7f521a28abb00e8b45d7/html5/thumbnails/40.jpg)
![Page 41: Lógica de programação, algoritmos e big data](https://reader034.fdocument.pub/reader034/viewer/2022051504/58ee7f521a28abb00e8b45d7/html5/thumbnails/41.jpg)
![Page 42: Lógica de programação, algoritmos e big data](https://reader034.fdocument.pub/reader034/viewer/2022051504/58ee7f521a28abb00e8b45d7/html5/thumbnails/42.jpg)
![Page 43: Lógica de programação, algoritmos e big data](https://reader034.fdocument.pub/reader034/viewer/2022051504/58ee7f521a28abb00e8b45d7/html5/thumbnails/43.jpg)
![Page 44: Lógica de programação, algoritmos e big data](https://reader034.fdocument.pub/reader034/viewer/2022051504/58ee7f521a28abb00e8b45d7/html5/thumbnails/44.jpg)
![Page 45: Lógica de programação, algoritmos e big data](https://reader034.fdocument.pub/reader034/viewer/2022051504/58ee7f521a28abb00e8b45d7/html5/thumbnails/45.jpg)
![Page 46: Lógica de programação, algoritmos e big data](https://reader034.fdocument.pub/reader034/viewer/2022051504/58ee7f521a28abb00e8b45d7/html5/thumbnails/46.jpg)
![Page 47: Lógica de programação, algoritmos e big data](https://reader034.fdocument.pub/reader034/viewer/2022051504/58ee7f521a28abb00e8b45d7/html5/thumbnails/47.jpg)
![Page 48: Lógica de programação, algoritmos e big data](https://reader034.fdocument.pub/reader034/viewer/2022051504/58ee7f521a28abb00e8b45d7/html5/thumbnails/48.jpg)
![Page 49: Lógica de programação, algoritmos e big data](https://reader034.fdocument.pub/reader034/viewer/2022051504/58ee7f521a28abb00e8b45d7/html5/thumbnails/49.jpg)