Escolar Documentos
Profissional Documentos
Cultura Documentos
Sérgio Rodrigues
sergio.rodrigues@ipt.pt
OBJECTIVOS DA CADEIRA
1
PROGRAMA DA CADEIRA
• Algoritmia
– Identificação e definição do problema
– Estruturação e especialização do algoritmo
– Representação gráfica de algoritmos
• Fluxogramas
• Pseudo-linguagem
• Outras Representações
• Noções Matemáticas
– Bases de representação numérica: decimal, binária, octal e
hexadecimal
– Conversões entre bases
– Operações aritméticas de soma e diminuição na base binária
– Operações lógicas de AND, OR e XOR na base binária
PROGRAMA DA CADEIRA
• Paradigmas da Programação
– Estrutura básica de programa
– Código fonte, Compilação e Linkagem
– Tipos de dados, operadores e expressões
– Instruções de controlo de fluxo
– Tipos de dados derivados
– Funções e procedimentos
– Regras de alcance dos nomes e tempo de vida dos objectos
– Indentação do código fonte
– Normalização das nomenclaturas utilizadas
2
PROGRAMA DA CADEIRA
• Ambiente Aplicacional Matlab
– Ambiente de Trabalho Matlab
– Variáveis
– Funções matemáticas elementares
– Matrizes
– Operadores
– Gráficos 2D e 3D
– Elementos de Controlo de Fluxo
– Tratamento de Erros
– Strings e Funções
– Ficheiros-M
BIBLIOGRAFIA
3
SISTEMAS DE INFORMAÇÃO
Sistema de Informação é um sistema que reúne, guarda, processa e
faculta informação relevante para a organização (...), de modo que a
informação é acessível e útil para aqueles que a querem utilizar, incluíndo
gestores, funcionários, clientes, (...). Um Sistema de Informação é um
sistema de actividade humana (social) que pode envolver ou não, a
utilização de computadores.
[Buckingham, et al. 1978]
TI-TECNOLOGIAS DE INFORMAÇÃO
Tecnologias de Informação, são o conjunto de equipamentos e suportes
lógicos (hardware e software) que permitem executar tarefas como
aquisição, transmissão, armazenamento, recuperação e exposição de
dados.
[Alter 1992]
Exemplos de T I
• Hardware
• Software de sistema
• Software aplicacional
• Comunicações
• Ferramentas de desenvolvimento
4
DADOS VS. INFORMAÇÃO
DADOS TI
INFORMAÇÃO
GESTÃO DA OUTROS
INFORMAÇÃO RECURSOS
5
GESTÃO DO SISTEMA DE INFORMAÇÃO
ARQUITECTURA GERAL DE UM
COMPUTADOR
6
ORGANIZAÇÃO DE UM COMPUTADOR
CPU
ENTRADA SAÍDA
MEMÓRIA
• Memória
• Programas
• Problemas Computacionais
TIPOS DE DADOS
Tipos de Dados
Programas vs Linguagens de Programação
7
ESTRUTURAS DE DADOS
Estruturas de Dados
Localizações da memória onde os dados são armazenados.
TÉCNICAS DE PROGRAMAÇÃO
Metodologia Genérica
Análise do Problema
Verificação/Execução do programa
8
ALGORITMOS
Algoritmo é uma sequência ordenada e finita de operações bem definidas,
que partido de informação fornecida previamente, produz, num tempo finito,
um resultado que é a solução de um determinado problema, ou em
alternativa a indicação de que a solução não pode ser obtida.
• Limitação
• Definição
• Entradas
• Saídas
• Eficiencia
ALGORITMOS-ESTRUTURAS LÓGICAS
Um algoritmo pode ser constítuido por qualquer combinação das seguintes
estruturas lógicas:
Sequêncial
Repetitiva
Selectiva
9
Vantagens – De universal entendimento
FORMAS DE
REPRESENTAÇÃO Desvantagens – Pode gerar Ambiguidades
1. Linguagem Natural
Exemplo:
2. Fluxograma Máquina de calcular simples para a
execução das operações de x, :, + e –
3. Diagrama de Chapin
FORMAS DE
REPRESENTAÇÃO Vantagens – Visual e Simples
1. Linguagem Natural
4. Pseudo-Código
10
Primitivas:
FORMAS DE
REPRESENTAÇÃO Início de fluxograma
2. Fluxograma
Acção Estado sem espera
3. Diagrama de Chapin
4. Pseudo-Código N S
Condição Decisão
Fluxo
Fim de fluxograma
n Elemento de ligação
Exemplo:
FORMAS DE
REPRESENTAÇÃO
Recolher 1º Operando
1. Linguagem Natural
2. Fluxograma
Recolher Operação
Ex.: Implentar calculadora com
as operações +, -, /, x
2. Pseudo-Código
Efectuar Cálculo
Apres. Resultado
11
EXERCÍCIO: FACTORIAL
12
Primitivas (mais comuns):
FORMAS DE
REPRESENTAÇÃO Processo
1. Linguagem Natural
2. Fluxograma
Decisão
3. Diagrama de Chapin
4. Pseudo-Código
Iteração
2. Fluxograma
3. Diagrama de Chapin
4. Pseudo-Código
Decisão Múltipla
13
FORMAS DE Exemplo:
REPRESENTAÇÃO
1. Linguagem Natural
Ligada?
2. Fluxograma SIM NÃO
Recolher Operação
Recolher 2º Operando
Efectuar Cálculo
Apresentar Resultado
FORMAS DE
REPRESENTAÇÃO Vantagens – Permite a representação de
um algoritmo, tanto ao seu
1. Linguagem Natural
nível mais abstracto ou ao
2. Fluxograma
seu nível mais específico.
3. Diagrama de Chapin
Simplicidade, Legibilidade e
4. Pseudo-Código
Exactidão.
14
Primitivas:
FORMAS DE SEQUÊNCIAIS
REPRESENTAÇÃO START
Identificação do ponto inicial do algoritmo
1. Linguagem Natural
END
2. Fluxograma
Identificação do ponto final do algoritmo
3. Diagrama de Chapin
INPUT <string>, <variável>
4. Pseudo-Código
Primitiva para recolha de dados do utilizador
<variável> <expressão>
Atribuição do resultado da expressão à variável
indicada
Primitivas (continuação):
FORMAS DE SELECTIVAS
REPRESENTAÇÃO
IF <condição>
1. Linguagem Natural THEN
<instruções a executar se condição verdadeira>
2. Fluxograma
ELSE
<instruções a executar se condição falsa>
3. Diagrama de Chapin
END IF
4. Pseudo-Código
15
Primitivas (continuação):
FORMAS DE REPETITIVAS
REPRESENTAÇÃO
FOR <valor inicial> TO <valor controlo> [STEP
1. Linguagem Natural <incremento>]
<instruções a executar enquanto não for atingida a
condição limite>
2. Fluxograma
END FOR
3. Diagrama de Chapin
DO
<instruções a executar enquanto a condição for
verdadeira>
WHILE <condição>
Primitivas (continuação):
FORMAS DE FUNÇÕES
REPRESENTAÇÃO
FUNCTION <nome da função> (parâmetros da
1. Linguagem Natural função[,])
<instruções da função>
2. Fluxograma
16
Primitivas (continuação):
FORMAS DE DECLARAÇÕES
REPRESENTAÇÃO
VAR <tipo da variável> <nome da variável> [,]
1. Linguagem Natural <nome da variável>
2. Fluxograma
CONST <tipo da const.> <nome da const.> [,]
3. Diagrama de Chapin <nome da const.>
17
FORMAS DE (...)
REPRESENTAÇÃO
CALL EfectuarCalculo (Op1, Oper, Op2)
4. Pseudo-Código
Ex.: Chamar função
EfectuarCalculo
OUTRAS NOTAÇÕES
for i := 1,...., n do
for j := 1,...., n do
cij := 0
for k := 1,...., n do
cij := cij + aik ⋅ bkj
Szwarcfiter e Markenzon ( [SM94] )
for i ← 1 até n do
for j ← 1 até n do
cij ← 0
for k ← 1 até n do
cij ← cij + aik ⋅ bkj
Terada ( [TER91] )
18
OUTRAS NOTAÇÕES
for i ← 1 to n by 1 do
for j ← 1 to n by 1 do
c(i,j) ← 0
for k ← 1 to n by 1 do
c(i,j) ← c(i,j) + a(i,k) ⋅ b(k,j)
Horowitz e Sahni ( [HS82] )
1 set i ← 1
2 set j ← 1
set c[i,j] ← 0
3 set k ← 1
c[i,j] ← c[i,j] + a[i,k] ⋅ b[
if k <= n then go to 3
if j <= n then go to 2
if i <= n then go to 1
Knuth ( [KNU73] )
n = 2 => S = 2 + 4 = 6
n = 3 => S = 2 + 4 + 6 = 12
n = 4 => S = 2 + 4 + 6 + 8 = 20
n
n = n => S = 2 + 4 + 6 + ... + n = 2i
i 1
19
FLUXOGRAMA:
SOMATÓRIO DE
INTEIROS
Esboço do Algoritmo
2. Repetir n vezes
calcular número par
acumular soma
20