Post on 22-Jan-2018
Introdução à Lógica de Programação
http://ead.al.senai.br:81/portal/images/logicadeprogramacao.jpg
O que é lógica?
Lógica
● Ciência que estuda as leis do raciocínio.
● Correção/validação do pensamento.
● Arte do bem pensar.
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
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
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.
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.
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.
Algoritmos
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
Um algoritmo não representa,
necessariamente, um programa
de computador, e sim os passos
necessários para realizar
determinada tarefa.
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.
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
Um programa de computador é essencialmente
um algoritmo que diz ao computador os passos
específicos e em que ordem eles devem ser
executados.
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
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.
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.
Exemplo de um pseudocódigo
https://dougllass.files.wordpress.com/2011/08/soma_portugol.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
Tabela com alguns fluxogramas
http://www.tiexpert.net/programacao/algoritmo
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.
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
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
Classificação
As linguagens de programação
podem ser classificadas e sub-
classificadas de várias formas.
• 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)
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.
Linguagens de programação mais usadas atualmente
http://www.tiobe.com/tiobe-index
http://www.google.com/images
ESTRUTURA DE DADOS
CONCEITO
• É o ramo da computação que estuda os diversos mecanismos
de organização de dados para atender aos diferentes requisitos
de processamento.
ORGANIZA ALGORITMOS DE FORMA RACIONAL VISANDO EFICIÊNCIA
TIPOS DE DADOS
•TIPOS PRIMITIVOS
DE DADOS
•ESTRUTURAS DE
DADOS
TIPOS PRIMITIVOS DE DADOS
• Inteiro
• Real
• Lógico
• Caracter
• Ponteiro
TIPOS DE ESTRUTURA
• Vetores
• Multidimensionais
• Pilhas
• Filas
• Listas
• Árvores
TIPO ABSTRATO DE DADOS (ADT)
- LEVA EM CONTA O QUE OS USUÁRIOS DESEJAM FAZER
- BASEADO EM MODELO MATEMÁTICO
ALGUNS TIPOS DE ADT
• fila,
• string,
• Fila priorizada,
• tabela de símbolos,
• grafo
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.
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.
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