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

Post on 22-Jan-2018

263 views 3 download

Transcript of 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

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

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