ALGORITMO - AEISTECP

Propaganda
Unidade Curricular: PI e PCI
Ficha-Resumo – 002.01.Algoritmia
ALGORITMO - Um algoritmo representa uma sequência finita e não ambígua de instruções
elementares bem definidas, cuja execução levará à solução de um determinado problema.
Cada uma destas instruções pode ser executada mecanicamente numa quantidade finita de
tempo.
“Dividir para Conquistar” – Abordagem que transforma um problema complexo num
conjunto de subproblemas mais simples para resolver.
A Aproximação Descendente (Top-Down) – Permite estruturar o problema e organizá-lo na
forma de conjunto problema/subproblemas de forma a conduzir à solução.
Exemplo: Fritar Um Ovo
Abordagem Inicial:
1. Escolher um Ovo
2. Fritar o Ovo
3. Servir o Ovo Frito
4. Comer
Abordagem Detalhada:
Escolher um Ovo
Abrir o Frigorifico
Procurar os Ovos
Transportar ovo para o fogão
Fritar o Ovo
Pegar na Frigideira e Colocar no Fogão
Pegar no óleo e espalhar na Frigideira – até ser suficiente
Ligar o fogão
Partir o Ovo e coloca-lo na Frigideira
Enquanto Não Estiver Frito
Deixar Fritar
Desligar o Fogão
Retirar o Ovo da Frigideira
Servir o Ovo Frito
Colocar o Ovo num Prato
Colocar o Prato na Mesa
Pegar numa Faca e num Garfo
Comer
1 | PI / PCI - © 2 0 1 2 / 2 0 1 3 - J o ã o R e b e l o
Unidade Curricular: PI e PCI
Ficha-Resumo – 002.01.Algoritmia
Características de um Algoritmo:
À semelhança de uma fábrica que produz um determinado bem a partir de um conjunto de
operações aplicadas às matérias-primas, um algoritmo produz informação aplicando um conjunto
de operações a dados de entradas (factos isolados que podem nem estar relacionados).
Um ALGORITMO deve sempre considerar:
Uma ou Mais Entradas de Dados – As matérias-primas  Quantidades inicialmente
especificadas (por exemplo, através de instruções de leitura).
Uma ou Mais Saídas – O produto final  Uma ou mais saídas (habitualmente por
instruções de escrita em qualquer suporte, papel, monitor, ficheiro, etc.)
Número Finito de Passos  A execução deve terminar sempre num número finito de
passos. Não é concebível obter um produto final a partir de um processo que não termina
Precisão  Todos os passos do algoritmo devem ter um significado preciso, sem
ambiguidades, indicando exatamente o que deve ser feito.
Eficácia
O processo de um algoritmo, deve conduzir à resolução do problema proposto
Eficiência
Se um algoritmo A para resolver um problema X proposto, demorar menos tempo a executar
ou consumir menos recursos que outro algoritmo B, então o algoritmo A é considerado mais
eficiente que o B embora sejam ambos eficazes (ou seja, ambos resolvem o problema).
2 | PI / PCI - © 2 0 1 2 / 2 0 1 3 - J o ã o R e b e l o
Unidade Curricular: PI e PCI
Ficha-Resumo – 002.01.Algoritmia
Tipos de Dados Utilizados em Algoritmos:
Qualquer linguagem de programação implementa os tipos de dados básicos que são utilizados no
contexto de qualquer algoritmo. Estes consideram a existência de dois tipos fundamentais de
dados:
Primitivos: Tipos dados que são diretamente interpretados e manipulados pelo compilador ou
interpretador. Ex: A Idade do Xico  valor inteiro de 0 a 150  (o xico tem sorte)
Complexos ou não-primitivos: Tipos de dados que são criados pelo programador e que são
constituídos por dois ou mais tipos de dados primitivos. Ex: para guardar uma ficha de aluno do
Xico, preciso aglomerar (juntar) numa mesma estrutura, o Nome (cadeia de caracteres), a Idade
(inteiro), o número de aluno (inteiro) e a média de curso (valor em virgula flutuante).
Tipos de Dados Primitivos mais comuns:
Booleanos (lógicos)
Numéricos
Inteiros
Reais (virgula flutuante)
Caracteres alfanuméricos (1 Caracter ou String  Múltiplos Caracteres)
Ponteiros
Tipos de Estruturas de Dados Não-Primitivos mais comuns:
Comprimento Fixo
Vetor Unidimensional (Array)
Vetor Multidimensional  Matriz
Agregados  Estruturas
Comprimento Variável  Listas (Lineares e não-Lineares)
Ficheiros 
Sequenciais,
Sequenciais Indexados
Diretos
3 | PI / PCI - © 2 0 1 2 / 2 0 1 3 - J o ã o R e b e l o
Unidade Curricular: PI e PCI
Ficha-Resumo – 002.01.Algoritmia
Notação Algorítmica: Um algoritmo deve ter sempre um nome, uma pequena descrição inicial e
comentários sempre que necessário. Exemplo do algoritmo DIVISÃO de Dois Números
Algoritmo DIVISAO: Este algoritmo calcula a divisão de dois números
1.[Inicialização das Variáveis]
vDividendo  0
vDivisor  0
vResultado  0
2.[Leitura dos Valores]
Ler (vDividendo)
Ler (vDivisor)
3.[Verificar Condição de Divisor diferente de 0]
SE (vDivisor diferente de 0) ENTÃO
4.[Efetuar o Processamento]
vResultado  vDividento / vDivisor
5.[Mostrar o Resultado]
SE (vDivisor diferente de 0) ENTÃO
Escrever (vResultado)
SENÃO
Escrever (Divisão por Zero é Impossível)
A reter do exemplo anterior:
A Instrução de Atribuição: coloca sempre no membro da esquerda o valor da expressão à
direita. Exemplo: X  487 Significa, colocar na variável X o valor 487
A Leitura de Dados: coloca sempre na variável entre os parêntesis o valor lido (seja qual for a
origem, teclado, etc.). Exemplo: Ler (V) Significa, colocar na variável V o valor lido da origem
A Saída de Informação: Escreve no suporte considerado (consola, papel, etc.) o valor colocado
entre os parêntesis. Exemplo: Escrever (“Olá”) ou Escrever (V)
4 | PI / PCI - © 2 0 1 2 / 2 0 1 3 - J o ã o R e b e l o
Unidade Curricular: PI e PCI
Ficha-Resumo – 002.01.Algoritmia
Diagrama de Fluxo – o Fluxograma
Representa graficamente o fluxo de execução de um algoritmo. É um auxiliar utilizado em
algoritmia, o qual utilizando um dicionário de símbolos gráficos, permite facilitar a compreensão de
determinado algoritmo.
Dicionário gráfico dos Fluxogramas: conjunto de símbolos e respetivo significado
Símbolo
Significado / Utilização
Representa sempre o ponto único de entrada e ponto único
de saída de um algoritmo
Representa a Leitura de Dados ou Escrita de Informação
Representa uma atribuição ou processamento
Representa uma estrutura de decisão ou condicional
Alternativa para escrita de informação
Exemplo de um teste condicional:
SE C Verdadeiro Então
Executar A
Senão
Executar B
5 | PI / PCI - © 2 0 1 2 / 2 0 1 3 - J o ã o R e b e l o
Download