Anda di halaman 1dari 43

Algoritmos

Objectivos

• Identificar os elementos de um algoritmo e utilizá-los


correctamente na solução de um problema
• Construir algoritmos
• Transcrever algoritmos para uma linguagem de
programação (C#)
Comunicação

Para que exista comunicação é necessário estabelecer


padrões e regras que podem ser:

• falados, escritos, desenhados, representação de


símbolos, etc.
Comunicação

A comunicação com o computador também é feita através


de um conjunto de regras, originando:

Linguagens de Programação

Exemplos: C#, C++, Basic, Pascal, Cobol, etc.


Lógica de Programação

Para se programar é necessário possuir / usar Lógica de


Programação!
Lógica de Programação

Técnica de encadear instruções para atingir determinado


objectivo, permite definir a sequência lógica para o
desenvolvimento.

Esta matéria é essencial para a formação de um bom


programador, servindo como base para a aprendizagem
de todas as linguagens de programação.
Instrução

Na linguagem comum, entende-se por instruções “um


conjunto de regras ou normas definidas para a realização
ou utilização de algo”. Na informática, porém, instrução é a
informação que indica a um computador uma acção
elementar a executar.
Instrução

Uma instrução isolada não constitui um processo, para


isso é necessário um conjunto de instruções colocadas
numa ordem sequencial lógica.

Por exemplo, se quisermos fazer uma omelete de batatas,


é necessário colocar em prática uma série de instruções:
descascar as batatas, bater os ovos, fritar as batatas,
etc...
Instrução

É evidente que estas instruções têm que ser executadas


numa ordem adequada – não se pode descascar as
batatas depois de fritá-las.

Dessa forma, uma instrução isolada não tem muito


sentido; para obtermos o resultado pretendido, é
necessário colocar em prática o conjunto de todas as
instruções, na ordem correcta.
Algoritmo

Programar é construir
algoritmos!
Algoritmo

Algoritmo é a descrição de um conjunto de comandos


(tarefas/instruções) ordenados que, executados, resultam
numa sucessão finita de acções.

Destina-se a resolver um problema: fixa um padrão de


comportamento a ser seguido, uma norma de execução,
para se atingir, como resultado final, a resolução de um
problema.
Algoritmo

Os comandos (tarefas) não podem ser redundantes nem


subjectivos na sua definição, devem ser claros e precisos.

Ao contrário do que se pode pensar, o conceito de


algoritmo não foi criado para satisfazer às necessidades
da informática. Pelo contrário, a programação de
computadores é apenas um dos campos de aplicação dos
algoritmos.
Algoritmo

Na verdade, há inúmeros casos que podem exemplificar o


uso (involuntário ou não) de algoritmos para a
padronização do exercício de tarefas rotineiras.

Exemplos: instruções para a utilização de um


electrodoméstico, uma receita de culinária, as instruções
de preenchimento do IRS, a regra para a determinação de
máximos e mínimos de funções por derivadas sucessivas,
um programa de computador, etc.
Algoritmo

Algoritmo não é a solução de um problema, pois, se assim


fosse, cada problema teria um único algoritmo.

Algoritmo é um caminho para a solução de um problema,


e em geral, os caminhos que levam a uma solução são
muitos.
Algoritmo

A aprendizagem de algoritmos não se consegue a não ser


através de muitos exercícios.

A Algoritmia não se aprende:

Copiando Algoritmos
Algoritmo

A Algoritmia só se aprende:

Construindo Algoritmos
Testando Algoritmos
Algoritmo

Um algoritmo correcto deve possuir as seguintes três


qualidades:

Cada passo no algoritmo deve corresponder a uma


instrução que possa ser realizada;

A ordem dos passos deve ser precisamente


determinada;

O algoritmo deve ter fim.


Algoritmo

Para ajudar à resolução destes problemas existem


técnicas que pretendem:

Facilitar o desenvolvimento de algoritmos;


Facilitar o seu entendimento;
Antecipar a comprovação da sua correcção;
Facilitar a sua manutenção e modificação;
Permitir o desenvolvimento por equipas de trabalho.
Algoritmos: Exemplo 1

• Escreva um algoritmo que descreve a sequência de passos para


pôr um carro a trabalhar:

ALGORITMO
Abrir a porta do condutor
entrar no carro
fechar a porta do condutor
por o cinto de segurança
introduzir a chave na ignição
repete
carregar no acelerador
rodar a chave
até o motor começar a trabalhar

11
Algoritmos: Exemplo 2

• Trocar lâmpada fundida

• Posicionar escada por debaixo da lâmpada


• Escolher lâmpada igual à lâmpada fundida
• Subir a escada até atingir a lâmpada fundida
• Girar a lâmpada no sentido anti-horário até que ela se solte
• Posicionar a nova lâmpada no casquilho
• Girar a lâmpada no sentido horário até que ela se fixe
• Descer da escada
• Guardar a escada

12
Algoritmos: Exemplo 3

• Problema: Na margem esquerda de um rio estão:


• 1 Pastor
• 1 Lobo
• 1 Cabra
• 1 Couve
• Objectivo: Passar todos para amargem direita do rio, tendo em
atenção que:
• O pastor só pode atravessar um passageiro de cada vez
• Um passageiro que devora o outro nunca podem estar no
mesmo local sem a presença do pastor

12
Automação

As instruções possuem regras e uma Sintaxe própria,


como uma linguagem tipo português ou inglês. Um
programa de computador é um algoritmo escrito numa
forma compreensível pelo computador.

Este algoritmo tem que ser transmitido ao computador e


armazenado na sua memória, para, em seguida, ser
executado e conduzir o computador para a solução
desejada.
Formas Representação

Existem diversas formas de representação de algoritmos,


mas não há um consenso com relação à melhor delas.

Algumas formas de representação de algoritmos tratam os


problemas apenas em nível lógico, abstraindo-se de
detalhes de implementação muitas vezes relacionados
com alguma linguagem de programação específica.

Por outro lado, existem formas de representação de


algoritmos que possuem uma maior riqueza de detalhes e
muitas vezes acabam por obscurecer a ideia principal, o
algoritmo, dificultando seu entendimento.
Formas Representação

Das várias formas de representação de algoritmos


mais conhecidas ressaltam as seguintes:

O Fluxograma;
O Pseudocódigo;
Fluxogramas

Para se obter uma melhor clareza dos algoritmos,


costuma-se desenvolvê-los e ilustrá-los com o auxilio de
um fluxograma.

Algumas figuras geométricas e dizeres são utilizados para


representar as diversas acções do computador, ligadas
por setas, para indicar a sequência da sua execução.
Fluxogramas

Um fluxograma constitui uma representação gráfica de


algoritmos onde formas geométricas diferentes implicam
acções (instruções, comandos) distintos.

Esta representação facilita o entendimento das ideias


contidas nos algoritmos e justifica sua popularidade.
Fluxogramas
Fluxogramas

Início / Fim

Input / Output

Processamento

Decisão

Símbolos utilizados
Pseudocódigo

Antes de utilizarmos uma linguagem de computador, é


necessário organizar as acções a serem tomadas pela
máquina de uma forma organizada e lógica, sem nos
determos com as regras rígidas da Sintaxe de uma
linguagem de programação.

Para tal, utilizaremos uma forma de escrever as instruções


conhecida como pseudocódigo.
Pseudocódigo

Esta forma de representação de algoritmos é rica em


detalhes, como a definição dos tipos das variáveis usadas
no algoritmo e, por assemelhar-se bastante à forma em
que os programas são escritos, encontra muita aceitação.

Na verdade, esta representação é suficientemente geral,


para permitir que a tradução de um algoritmo, nela
representada, para uma linguagem de programação
específica seja praticamente directa.
Pseudocódigo

Para escrever um algoritmo em pseudocódigo precisamos


descrever a sequência de instruções, de maneira simples
e objectiva. Assim, utilizam-se as seguintes técnicas:

Usar somente um verbo por frase


Imaginar que se está a desenvolver um algoritmo
para pessoas que não trabalham com informática
Usar frases curtas e simples
Ser objectivo
Procurar usar palavras que não tenham sentido dúbio
Pseudocódigo
Estruturas

Estrutura Sequencial

Estrutura de Decisão

Estrutura de Repetição
Estrutura Sequencial
Estrutura de Decisão
Estrutura de Repetição
Variáveis

Nos algoritmos a cada variável corresponde uma posição


de memória, cujo conteúdo pode variar ao longo do tempo
durante a execução de um programa.

Embora uma variável possa assumir diferentes valores,


ela só pode armazenar um único valor a cada instante.
Toda a variável é identificada por um nome ou
identificador.
Variáveis

Em resumo, o conceito de variável foi criado para facilitar


a vida dos programadores, permitindo o acesso à
informação existente na memória do computador por meio
de um nome, em vez da utilização do endereço de uma
célula de memória.
Variáveis

O conceito de expressão em termos informáticos está


intimamente ligado ao conceito de expressão (ou fórmula)
matemática, onde um conjunto de variáveis e constantes
numéricas relacionam-se por meio de operadores
aritméticos compondo uma fórmula que, uma vez
avaliada, resulta num valor.
Operadores

Temos três tipos de operadores:

Operadores Aritméticos
Operadores Relacionais
Operadores Lógicos
Operadores Aritméticos
Operadores Relacionais
Operadores Lógicos