Você está na página 1de 33

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
Qualquer computação
computação que que possa
possa ser
ser realizada
realizada com
com umum
modelo
modelo pode
pode ser
ser realizada
realizada com
com qualquer
qualquer umum dos
dos outros
outros
modelos.
modelos.
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
Qualquer computação
computação que que possa
possa ser
ser realizada
realizada com
com umum
modelo
modelo pode
pode ser
ser realizada
realizada com
com qualquer
qualquer umum dos
dos outros
outros
modelos.
modelos.
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
Osrecursos
recursoscomumente
comumenteestudados
estudadossão:
são:

●OOtempo
tempo(número
(númerode
depassos
passosde
deexecução
execuçãode
deum
umalgoritmo
algoritmo
para
pararesolver
resolverum
umproblema)
problema)

●OOespaço
espaço(quantidade
(quantidadede
dememória
memóriautilizada
utilizadapara
pararesolver
resolver
um
umproblema)
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
algoritmo "idéia"
"idéia"
var
var
nome
nome :: caracter
caracter
inicio
inicio
escreva("Informe
escreva("Informe seu
seu nome
nome :: ")
")
leia(nome)
leia(nome)
escreva("Olá
escreva("Olá ",nome,"
",nome," tudo
tudo bem
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
program idéia;
idéia;
uses
uses Crt;
Crt;
var
var
nome
nome :: string;
string;
begin
begin
write('Informe
write('Informe seu
seu nome
nome :: ');
');
readln(nome);
readln(nome);
write('Olá
write('Olá ',nome,'
',nome,' tudo
tudo bem
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 Fim

Prof. Reverton 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
CPF Function calcula_CPF(cpf)
Calcula
CNPJ
Cadastro

Prof. Reverton 12
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: x,y (adotam) m,n


➔ P2: r (resto da divisão) de x mod y
➔ P3: x <- y e y <- r

P4: 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
algoritmo "MDC"
"MDC"
var
var
x,y,m,n,r
x,y,m,n,r :: inteiro
inteiro
inicio
inicio
leia(m)
leia(m)
xx <-
<- mm
leia(n)
leia(n)
yy <-
<- nn
repita
repita
rr <-
<- xx mod
mod yy
xx <-
<- yy
yy <-
<- rr
ate
ate rr == 00
escreva("MDC
escreva("MDC == ", ", x)
x)
fimalgoritmo
fimalgoritmo
Prof. Reverton 17
ATC – Aspectos Teóricos da Computação MÓDULO 1: Programação de Computadores

Algoritmo de Euclides

Private
Private Sub Sub Command1_Click()
Command1_Click()
Dim
Dim m,m, n,
n, rr AsAs Integer
Integer
mm == Int(num1.Text)
Int(num1.Text)
nn == Int(num2.Text)
Int(num2.Text)
rr == mdc.calcula(m,
mdc.calcula(m, n) n)
MsgBox
MsgBox r, r, vbInformation,
vbInformation, "MDC
"MDC de
de
"" && mm && "" ee "" && nn
End
End Sub
Sub

Prof. Reverton 18
ATC – Aspectos Teóricos da Computação MÓDULO 1: Programação de Computadores

Algoritmo de Euclides

Function
Function calcula(ByVal
calcula(ByVal xx As As Integer,
Integer, ByVal
ByVal yy As
As
Integer)
Integer) As As Integer
Integer
On
On Error
Error GoTo
GoTo erro
erro
Dim
Dim rr AsAs Integer
Integer
Do
Do
rr == xx Mod
Mod yy
xx == yy Interface
yy == rr
Loop
Loop Until
Until rr == 00
calcula
calcula == xx
Exit
Exit Function
Function
erro:
erro:
MsgBox
MsgBox Err.Description
Err.Description
Exit
Exit Function
Function
End
End Function
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

um conjunto é qualquer coleção, dentro de um todo


1 de objetos definidos e distinguíveis, chamados
elementos, de nossa intuição ou pensamento.

2 É uma coleção de zero ou mais objetos distintos,


denominados elementos do conjunto.

Prof. Reverton 23
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. Sabe-


se 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

Você também pode gostar