P. 1
Notas de aula - Aspectos Teóricos da computação e Paradigmas

Notas de aula - Aspectos Teóricos da computação e Paradigmas

|Views: 975|Likes:
Publicado porreverton
Notas de aula do módulo 1 da disciplina, Aspectos Teóricos da computação.
Prof. Reverton
Notas de aula do módulo 1 da disciplina, Aspectos Teóricos da computação.
Prof. Reverton

More info:

Published by: reverton on Feb 24, 2010
Direitos Autorais:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

02/18/2011

pdf

text

original

ATC – Aspectos Teóricos da Computação

Respeitar o professor é respeitar a si mesmo

ATC – Aspectos Teóricos da Computação

MÓDULO 1: Programação de Computadores

TEORIA DA COMPUTAÇÃO A teoria da computação teve início nos primeiros anos do século XX, antes da invenção dos modernos computadores eletrônicos. Naquela época, os matemáticos estavam tentando descobrir quais problemas matemáticos poderiam ser resolvidos por um método simples, e quais não poderiam. O primeiro passo estava em definir o significado de um "método simples" para resolver o problema. Em outras palavras, eles precisavam de um modelo formal da computação. Prof. Reverton 2

ATC – Aspectos Teóricos da Computação

MÓDULO 1: Programação de Computadores

TEORIA DA COMPUTAÇÃO Diversos modelos diferentes da computação foram propostos pelos primeiros pesquisadores. Um modelo, conhecido como Máquina de Turing, propunha a construção de uma máquina universal, capaz de operar com uma sequência de instruções e dados entremeados em uma fita de comprimento infinito; a máquina poderia operar em um ponto da fita de cada vez utilizando um cabeçote de leitura e escrita, executando assim a programação que lhe for passada.
Prof. Reverton 3

ATC – Aspectos Teóricos da Computação

MÓDULO 1: Programação de Computadores

TEORIA DA COMPUTAÇÃO Poder computacional Qualquer computação que Qualquer computação que modelo pode ser realizada modelo pode ser realizada modelos. modelos. possa ser realizada com um possa ser realizada com um com qualquer um dos outros com qualquer um dos outros

A teoria da computação estuda os modelos de computação genéricos, assim como os limites da computação:

Quais problemas jamais poderão ser resolvidos por um computador, independente da sua velocidade ou memória?

Quais problemas podem ser resolvidos por um computador, mas requerem um período tão extenso de tempo para completar a ponto de tornar a solucão impraticável? Prof. Reverton 4

ATC – Aspectos Teóricos da Computação

MÓDULO 1: Programação de Computadores

TEORIA DA COMPUTAÇÃO Poder computacional Qualquer computação que Qualquer computação que modelo pode ser realizada modelo pode ser realizada modelos. modelos. possa ser realizada com um possa ser realizada com um com qualquer um dos outros com qualquer um dos outros

A teoria da computação estuda os modelos de computação genéricos, assim como os limites da computação:

Em que situações pode ser mais difícil resolver um problema do que verificar cada uma das soluções manualmente?

Prof. Reverton

5

ATC – Aspectos Teóricos da Computação

MÓDULO 1: Programação de Computadores

TEORIA DA COMPUTAÇÃO Teoria da complexidade computacional
é a parte da teoria da computação que estuda os recursos necessários durante o cálculo para resolver um problema.

Os recursos comumente estudados são: Os recursos comumente estudados são: O tempo (número de passos de execução de um algoritmo O tempo (número de passos de execução de um algoritmo para resolver um problema) para resolver um problema)
● ●

O espaço (quantidade de memória utilizada para resolver O espaço (quantidade de memória utilizada para resolver um problema) um problema)
● ●

Prof. Reverton

6

ATC – Aspectos Teóricos da Computação

MÓDULO 1: Programação de Computadores

TEORIA DA COMPUTAÇÃO Teoria da complexidade computacional
importância da complexidade

Pode ser observada no exemplo abaixo, que mostra 5 algoritmos A1 a A5 para resolver um mesmo problema, de complexidades diferentes.
Supomos que uma operação leva 1 milisegundo para ser efetuada. A tabela seguinte dá o tempo necessário por cada um dos algoritmos. Tk(n) é a complexidade do algoritmo
Prof. Reverton 7

ATC – Aspectos Teóricos da Computação

MÓDULO 1: Programação de Computadores

PARTE A – PROGRAMAÇÃO DE COMPUTADORES
MÓDULO 1 – PROGRAMAÇÃO DE COMPUTADORES E INDUÇÃO MATEMÁTICA

Introdução  Procedimentos e algoritmos  Programas e linguagens de programação  Interação e Recursão

Prof. Reverton

8

ATC – Aspectos Teóricos da Computação

MÓDULO 1: Programação de Computadores

PARTE A – PROGRAMAÇÃO DE COMPUTADORES
MÓDULO 1 – PROGRAMAÇÃO DE COMPUTADORES E INDUÇÃO MATEMÁTICA

Introdução Programação é o processo de escrita, teste e manutenção de um programa de computador.
algoritmo "idéia" algoritmo "idéia" var var nome : caracter nome : caracter inicio inicio escreva("Informe seu nome : ") escreva("Informe seu nome : ") leia(nome) leia(nome) escreva("Olá ",nome," tudo bem !") escreva("Olá ",nome," tudo bem !") fimalgoritmo fimalgoritmo
Prof. Reverton 9

ATC – Aspectos Teóricos da Computação

MÓDULO 1: Programação de Computadores

PARTE A – PROGRAMAÇÃO DE COMPUTADORES
MÓDULO 1 – PROGRAMAÇÃO DE COMPUTADORES E INDUÇÃO MATEMÁTICA

Introdução
program idéia; program idéia; uses Crt; uses Crt; var var nome : string; nome : string; begin begin write('Informe seu nome : '); write('Informe seu nome : '); readln(nome); readln(nome); write('Olá ',nome,' tudo bem !'); write('Olá ',nome,' tudo bem !'); end. end.
Linguagem Pascal
Prof. Reverton 10

ATC – Aspectos Teóricos da Computação

MÓDULO 1: Programação de Computadores

PARTE A – PROGRAMAÇÃO DE COMPUTADORES
MÓDULO 1 – PROGRAMAÇÃO DE COMPUTADORES E INDUÇÃO MATEMÁTICA

As linguagens de programação podem ser classificadas e sub-classificadas de várias formas

Técnica de Programação Linear Em matemática, problemas de Programação Linear são problemas de otimização nos quais a função objetivo e as restrições são todas lineares.
Entrada de dados | Processamento | Saída

Início
Prof. Reverton

Fim
11

ATC – Aspectos Teóricos da Computação

MÓDULO 1: Programação de Computadores

PARTE A – PROGRAMAÇÃO DE COMPUTADORES
MÓDULO 1 – PROGRAMAÇÃO DE COMPUTADORES E INDUÇÃO MATEMÁTICA

As linguagens de programação podem ser classificadas e sub-classificadas de várias formas

Técnica de Programação Modular Programação modular é um paradigma de programação no qual o desenvolvimento das rotinas de programação é feito através de módulos, que são interligados entre si através de uma interface comum.
Calcula CNPJ Calcula CPF Cadastro
Prof. Reverton 12

Function calcula_CPF(cpf)

ATC – Aspectos Teóricos da Computação

MÓDULO 1: Programação de Computadores

PARTE A – PROGRAMAÇÃO DE COMPUTADORES
MÓDULO 1 – PROGRAMAÇÃO DE COMPUTADORES E INDUÇÃO MATEMÁTICA

As linguagens de programação podem ser classificadas e sub-classificadas de várias formas

Técnica de Programação Estruturada Programação estruturada é uma forma de programação de computadores que preconiza que todos os programas possíveis podem ser reduzidos a apenas três estruturas: sequência, decisão e iteração.

Prof. Reverton

13

ATC – Aspectos Teóricos da Computação

MÓDULO 1: Programação de Computadores

PARTE A – PROGRAMAÇÃO DE COMPUTADORES
MÓDULO 1 – PROGRAMAÇÃO DE COMPUTADORES E INDUÇÃO MATEMÁTICA

As linguagens de programação podem ser classificadas e sub-classificadas de várias formas

Técnica de Programação Orientada a Objeto É um paradigma de análise, projeto e programação de sistemas de software baseado na composição e interação entre diversas unidades de software chamadas de objetos.

Prof. Reverton

14

ATC – Aspectos Teóricos da Computação

MÓDULO 1: Programação de Computadores

PARTE A – PROGRAMAÇÃO DE COMPUTADORES
MÓDULO 1 – PROGRAMAÇÃO DE COMPUTADORES E INDUÇÃO MATEMÁTICA

Procedimentos e algoritmos Procedimento é uma seqüência finita de instruções que podem ser executadas por um agente computacional.
➔ ➔

Podem ser do tipo: Receita, Roteiro, Método

Prof. Reverton

15

ATC – Aspectos Teóricos da Computação

MÓDULO 1: Programação de Computadores

PARTE A – PROGRAMAÇÃO DE COMPUTADORES
MÓDULO 1 – PROGRAMAÇÃO DE COMPUTADORES E INDUÇÃO MATEMÁTICA

Algoritmo de Euclides Especifica como calcular o MDC (Máximo Divisor Comum) de dois números inteiros positivos m e n.
➔ ➔ ➔ ➔ ➔

P1: P2: P3: P4:

x,y (adotam) m,n r (resto da divisão) de x mod y x <- y e y <- r Se r = nulo então x (MDC procurado)

Prof. Reverton

16

ATC – Aspectos Teóricos da Computação

MÓDULO 1: Programação de Computadores

Algoritmo de Euclides
algoritmo "MDC" algoritmo "MDC" var var x,y,m,n,r : inteiro x,y,m,n,r : inteiro inicio inicio leia(m) leia(m) x <- m x <- m leia(n) leia(n) y <- n y <- n repita repita r <- x mod y r <- x mod y x <- y x <- y y <- r y <- r ate r = 0 ate r = 0 escreva("MDC = ", x) escreva("MDC = ", x) fimalgoritmo fimalgoritmo
Prof. Reverton 17

ATC – Aspectos Teóricos da Computação

MÓDULO 1: Programação de Computadores

Algoritmo de Euclides

Private Sub Command1_Click() Private Sub Command1_Click() Dim m, n, r As Integer Dim m, n, r As Integer m = Int(num1.Text) m = Int(num1.Text) n = Int(num2.Text) n = Int(num2.Text) r = mdc.calcula(m, n) r = mdc.calcula(m, n) MsgBox r, vbInformation, "MDC de MsgBox r, vbInformation, "MDC de " & m & " e " & n " & m & " e " & n End Sub End Sub
Prof. Reverton 18

ATC – Aspectos Teóricos da Computação

MÓDULO 1: Programação de Computadores

Algoritmo de Euclides
Function calcula(ByVal x As Integer, ByVal y As Function calcula(ByVal x As Integer, ByVal y As Integer) As Integer Integer) As Integer On Error GoTo erro On Error GoTo erro Dim r As Integer Dim r As Integer Do Do r = x Mod y r = x Mod y x = y x = y Interface y = r y = r Loop Until r = 0 Loop Until r = 0 calcula = x calcula = x Exit Function Exit Function erro: erro: MsgBox Err.Description MsgBox Err.Description Exit Function Exit Function End Function End Function
Prof. Reverton 19

ATC – Aspectos Teóricos da Computação

MÓDULO 1: Programação de Computadores

Procedimentos e algoritmos
Propriedades de um Procedimento (algoritmo)(programa)(função)(método)

A descrição da propriedade deve ser finita (início e fim). Utilizamos uma seqüência finita de palavras e simbolos para descrever o procedimento.

Todo procedimento parte de um certo número de dados pertencentes a conjuntos específicos de objetos.

m,n ∈ {conjunto dos inteiros positivos}

r ∈ {conjunto dos dados de saída}
Prof. Reverton 20

ATC – Aspectos Teóricos da Computação

MÓDULO 1: Programação de Computadores

Procedimentos e algoritmos
Propriedades de um Procedimento (algoritmo)(programa)(função)(método)

Supõe-se que exista um agente computacional responsável (humano, eletrônico, mecânico), que execute as instruções do procedimento. Este agente deverá ter uma maneira de guardar e recuperar as informações durante o procedimento.

Cada instrução especificada deve estar bem definida, não deixando dúvidas quanto ao seu resultado.

x,y e z são inteiros positivos, e o agente computacional sabe calcular o resto da divisão de x por y.

Prof. Reverton

21

ATC – Aspectos Teóricos da Computação

MÓDULO 1: Programação de Computadores

Procedimentos e algoritmos
Propriedades de um Procedimento (algoritmo)(programa)(função)(método)

As instruções devem ser efetivas, isto é, SIMPLES a tal ponto de uma pessoa com papel e lápis também poder executar.

Ex. No cálculo do MDC se os valores de x,y,z forem do tipo real, não há possibilidade de prosseguir o cálculo.

Prof. Reverton

22

ATC – Aspectos Teóricos da Computação

MÓDULO 1: Programação de Computadores

CONJUNTO, RELAÇÕES E FUNÇÕES
Conceitos Básicos

1

um conjunto é qualquer coleção, dentro de um todo de objetos definidos e distinguíveis, chamados elementos, de nossa intuição ou pensamento. É uma coleção de zero ou mais objetos distintos, denominados elementos do conjunto.
Prof. Reverton 23

2

ATC – Aspectos Teóricos da Computação

MÓDULO 1: Programação de Computadores

CONJUNTO, RELAÇÕES E FUNÇÕES
Conceitos Básicos

Esta definição intuitiva de um conjunto foi dada primeiramente por Georg Cantor (1845| 1918), que criou a teoria dos conjuntos em 1895.

Prof. Reverton

24

ATC – Aspectos Teóricos da Computação

MÓDULO 1: Programação de Computadores

CONJUNTO, RELAÇÕES E FUNÇÕES
Conceitos Básicos

Exemplos: ✔ O conjunto de todas as cadeiras na sala de aula de Teoria dos Conjuntos. ✔ O conjunto de todos os estudantes desta universidade. ✔ O conjunto das letras a, b, c e d. ✔ O conjunto das regras de uso do laboratório de informática. ✔ O conjunto de todos os núumeros racionais cujo quadrado é 2. ✔ O conjunto de todos os números naturais. ✔ O conjunto de todos os números reais entre 0 e 1.
Prof. Reverton 25

ATC – Aspectos Teóricos da Computação

MÓDULO 1: Programação de Computadores

CONJUNTO, RELAÇÕES E FUNÇÕES
Conceitos Básicos

Video-aula sobre conjuntos........... Conceito. Diagrama de Ven-Euler. Operações

● ● ●

Prof. Reverton

26

ATC – Aspectos Teóricos da Computação

MÓDULO 1: Programação de Computadores

EXERCÍCIOS PROPOSTOS

Depois de n dias de férias, um estudante observa que: a) choveu 7 vezes, de manhã ou à tarde; b) quando chove de manhã não chove à tarde; c) houve 5 tardes sem chuva; d) houve 6 manhãs sem chuva. Podemos afirmar então que n é igual a: a)7 b)8 c)9 d)10 e)11
Prof. Reverton 27

ATC – Aspectos Teóricos da Computação

MÓDULO 1: Programação de Computadores

EXERCÍCIOS PROPOSTOS

Após um jantar, foram servidas as sobremesas X e Y. Sabese que das 10 pessoas presentes, 5 comeram a sobremesa X, 7 comeram a sobremesa Y e 3 comeram as duas. Quantas não comeram nenhuma ? a) 1 b) 2 c) 3 d) 4 e) 0

Prof. Reverton

28

ATC – Aspectos Teóricos da Computação

MÓDULO 1: Programação de Computadores

VAMOS RECAPITULAR – ALGORITMOS E ESTRUTURA DE DADOS. Você vai precisar de: - Visualg. - Pascalzim.

Prof. Reverton

29

ATC – Aspectos Teóricos da Computação

MÓDULO 1: Programação de Computadores

Prof. Reverton

30

ATC – Aspectos Teóricos da Computação

MÓDULO 1: Programação de Computadores

Prof. Reverton

31

ATC – Aspectos Teóricos da Computação

MÓDULO 1: Programação de Computadores

Prof. Reverton

32

ATC – Aspectos Teóricos da Computação

MÓDULO 1: Programação de Computadores

CONCEITOS FUNDAMENTAIS Linguagem
Conceito

É um conceito fundamental no estudo da teoria da computação, pois trata-se de uma forma precisa de expressar problemas, permitindo um desenvolvimento formal adequado ao estudo da computabilidade.

Prof. Reverton

33

You're Reading a Free Preview

Descarregar
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->