Universidade do Estado de Santa Catarina – CCT/UDESC
INTRODUÇÃO
THOBER CORADI DETOFENO, MSC.
Aula 01
JOINVILLE
2015
Apresentação
Doutorando em Engenharia de
Software pela PUC-PR, Mestre em
Métodos Numéricos pela UFPR com
formação superior em Ciência da
Computação pela UDESC. Com mais
de 15 anos de experiência
profissional atuando como
programador, analista de sistemas,
consultor e professor.
Calendário
T-08/09 – Aula 01 - Introdução aos conceitos
Q-09/09 – Aula 02 - Introdução aos conceitos
T-15/09 – Aula 03 - Métodos de pesquisa
Q-16/09 – Aula 04 - Métodos de ordenação
T-22/09 – Métodos de ordenação – Selection sort
Q-23/09 - Métodos de ordenação - Quick sort
T-29/09 - Métodos de ordenação - Merge sort
Q-30/09 - Métodos de ordenação - Insert sort
T-06/10 - Ordenação em tempo linear
Q-07/10 - Ordenação em tempo linear
T-13/10 - Tabelas Hash
Q-14/10 – Tabelas Hash
T-20/10 - Tabelas Hash
Q-21/10 - Tabelas Hash
T-27/10 – 1ª Prova
Q-28/10 – Correção da Prova
T-03/11 - Árvores
Q-04/11 - Árvores
T-10/11 - Árvores
Q-11/11 - Árvores
T-17/11 - Árvores
Q-18/11 - Árvores
T-24/11 - Árvores
Q-25/11 – 2ª Prova
T-01/12 – Seminário
Q-02/12 – Seminário
T-08/12 - Defesa dos Trabalhos
Q-09/12 - Defesa dos Trabalhos
T-15/12 - Exame
Método de Avaliação
•
•
•
•
25% - Seminário (Individual)
25% - Projeto (Individual)
25% - Prova 1 (Individual)
25% - Prova 2 (Individual)
Algoritmo (Dijkstra)
Um algoritmo pode ser visto como uma sequência de
ações executáveis para a obtenção de uma solução
para um determinado tipo de problema
 Corresponde a uma descrição de um padrão de
comportamento, expresso em termos de um conjunto
finito de ações.


É, em geral, uma descrição passo a passo
de como um problema é solucionável. A
descrição deve ser finita, e os passos bem
definidos, sem ambiguidades, e
executáveis computacionalmente.
Algoritmo


Conceito de algoritmo: originado como um meio
para representar procedimentos para resolver
problemas matemáticos;
Um algoritmo pode ser visto como uma seqüência
de ações expressas em termos de uma linguagem
de programação, constituindo parte da solução de
um tipo determinado de problema.
Algoritmo
ALGORITMO: conjunto finito de instruções bem definidas
que, se seguidas, realizam uma determinada tarefa;
Critérios para “ser” um algoritmo:
Dado


Representação formalizada de fatos ou
idéias, capaz de ser comunicada ou
manipulada por algum processo;
Representação em uma linguagem precisa e
formalizada de alguns fatos ou conceitos,
freqüentemente valores numéricos ou
alfabéticos, de uma forma tal que possam
ser manipulados por um método
computacional [Knuth, 1997].
Tipo de Dado




Especificação de como o dado representado por cadeia de bits
é interpretado. Exemplos de tipos de dados: Variáveis;
Constantes; Expressões; Funções.
Tipos simples de dados são grupos de valores indivisíveis
(como os tipos básicos integer, boolean, char e real do Pascal).
Referem-se ao conjunto de valores que estes podem assumir
ou gerar. Em linguagens de programação o tipo de dado de
uma variável, constante ou função define o conjunto de
valores que a variável, constante ou função podem assumir.
ex., variável boolean pode assumir valores true ou false
Programador pode definir novos tipos de dados em termos de
outros ja definidos Tipos estruturados, p.ex., arrays, records
Estrutura de Dados
Um tipo estruturado é um exemplo de estrutura de
dados
 Tipos estruturados são estruturas de dados já prédefinidas na linguagem de programação
 O programador pode definir outras estruturas de
dados para armazenar as informações que seu
programa precisa manipular
 Vetores, registros, listas encadeadas, pilhas, filas,
arvores, grafos, são exemplos de estruturas de dados
típicas utilizadas para armazenar informação em
memoria principal
Programa






Programar é basicamente estruturar dados e construir algoritmos.
Programas são formulações concretas de algoritmos abstratos,
baseados em representações e estruturas específicas de dados.
Programas representam uma classe especial de algoritmos
capazes de serem seguidos por computadores.
Um computador só é capaz de seguir programas em linguagem de
máquina (sequência de instruções obscuras e desconfortáveis).
É necessário construir linguagens mais adequadas, que facilitem a
tarefa de programar um computador.
Uma linguagem de programação é uma técnica de notação para
programar, com a intenção de servir de veículo tanto para a
expressão do raciocínio algorítmico quanto para a execução
automática de um algoritmo por um computador.
Tipo de Dados Abstrato (TAD)



Agrupa a estrutura de dados juntamente
com as operações que podem ser feitas
sobre esses dados
O TAD encapsula a estrutura de dados. Os
usuários do TAD só tem acesso a algumas
operações disponibilizadas sobre esses
dados
Usuário do TAD x Programador do TAD
– Usuário só “enxerga” a interface, não a
implementação
Tipo de Dados Abstrato (TAD)



Dessa forma, o usuário pode abstrair da
implementação específica.
Qualquer modificação nessa implementação
fica restrita ao TAD
A escolha de uma representação específica é
fortemente influenciada pelas operações a
serem executadas
Tipo de Dados Abstrato (TAD)
Exercício
Implemente um TAD ContaBancaria, com os
campos número e saldo onde os clientes podem
fazer as seguintes operações:
– Iniciar uma conta com um número e saldo inicial
– Depositar um valor
– Sacar um valor
– Imprimir o saldo
Faça um pequeno programa para testar o seu TAD
ContaBancaria.h
Download

T-08/09 – Aula 01