Programação Computacional
Aula 5: Algoritmos
Profa. Madeleine Medrano
[email protected]
Roteiro


Lógica
Algoritmos
 Conceito de Algoritmo
 Partes de um algoritmo
 Características
 Representação de um algoritmo
 Fluxograma
 Pseudocódigo
Lógica

Observe as seguintes afirmações:

O número 4 é menor que o número 7.
O número 9 é maior que o número 7. Logo, o número 4 é menor
que os números 9 e 7.


Um casal com três filhos notou que um vaso estava quebrado,
enquanto duas das crianças estavam na escola. Quem é o
culpado?

Há uma caneta dentro de uma gaveta fechada. Sabemos que,
para pegar a caneta, devemos, antes, abrir a gaveta.
Lógica

Podemos deduzir a partir dessas afirmações, que em
nosso cotidiano, sempre que pensamos, já estamos
utilizando a lógica.

Se consultarmos em um dicionário da língua
portuguesa o verbete "lógica", veremos que se trata
de uma parte da filosofia que estuda as leis do
raciocínio.

É uma ciência que estuda as formas do pensamento.
Lógica

“é uma sequência coerente, regular e necessária de
acontecimentos, de coisas".

Veja, a seguir, uma sequência de passos para comprar um
determinado produto em uma loja. Imagine se seria possível
comprar o produto seguindo os passos dessa sequência:
sair da loja;
pagar pelo produto;
entrar na loja;
retirar o dinheiro da carteira;
dirigir-se ao caixa;
escolher o produto na prateleira.






Lógica

Seria impossível conseguir efetuar a compra, pois
apesar de todas as ações estarem corretas, a
sequência está errada.
 Como você poderia pagar pelo produto após sair da
loja? Ou escolher o produto após pagar por ele?
 A sequência correta, nesse caso, seria:
 entrar na loja;
 escolher o produto na prateleira;
 dirigir-se ao caixa;
 retirar o dinheiro da carteira;
 pagar pelo produto;
 sair da loja.
Lógica




A lógica, dessa forma, é utilizada para conduzir pensamentos ou
ações voltados para a solução de problemas. Assim, a lógica
está correta em determinada situação, se a solução do problema
tiver sido atingida.
Na programação de computadores, o treino dessa habilidade é
fundamental para aprimorarmos a nossa capacidade de resolver
problemas e programar.
Devemos, portanto, aprender a pensar de forma estruturada.
Significa desenvolver e aperfeiçoar a técnica de pensamento,
dentro de um raciocínio lógico e matemático, que é a base de
todo o trabalho na programação de computadores
Algoritmo

Para resolver um problema em um computador, de modo
semelhante ao que fazemos para resolver um problema do nosso
cotidiano, devemos encontrar uma maneira de descrever esse
problema de uma forma clara e precisa, através de uma
sequência de passos a serem seguidos até que se atinja a
solução procurada.

Essa estruturação deve seguir uma determinada lógica. A lógica
aplicada à programação de computadores, deve buscar a melhor
sequência de ações para se resolver um problema. Essa
sequência de ações damos o nome de algoritmo.
Algoritmo

é um conjunto finito de regras que
fornece uma sequência de operações
para resolver um problema específico. É
algo como uma receita, ou uma rotina.
Algoritmo

Para o desenvolvimento de um algoritmo eficiente é necessário
obedecermos algumas premissas básicas no momento de sua
construção:

Definir ações simples e sem ambiguidade;

Organizar as ações de forma ordenada

Estabelecer as ações dentro de uma sequência finita de passos
Algoritmo

O algoritmo 1 é um exemplo simples de algoritmo (sem
condições ou repetições) para troca de um pneu.
Os algoritmos são capazes de realizar tarefas como:

Ler e escrever dados;

Avaliar expressões algébricas, relacionais e lógicas;

Tomar decisões com base nos resultados das expressões
avaliadas;

Repetir um conjunto de ações de acordo com uma condição;

Algoritmo

Um algoritmo quando programado num computador é
constituído pelo menos das 3 partes, sendo elas:

1. Entrada de dados;

2. Processamento de dados;

3. Saída de dados;
Algoritmo

Na parte de entrada, são fornecidas as informações necessárias para
que o algoritmo possa ser executado.
 Estas informações podem ser fornecidas no momento em que o
programa está sendo executado ou podem estar embutidas dentro do
mesmo.

Na parte do processamento são avaliadas todas as expressões
algébricas, relacionais e lógicas, assim como todas as estruturas de
controle existentes no algoritmo (condição e/ou repetição).

Na parte de saída, todos os resultados do processamento (ou parte
deles) são enviados para um ou mais dispositivos de saída, como:
monitor, impressora, ou até mesmo a própria memória do computador.
Algoritmo 1 Troca de pneu do
carro.
Passo 1: desligar o carro
Passo 2: pegar as ferramentas (chave e macaco)
Passo 3: pegar o estepe
Passo 4: suspender o carro com o macaco
Passo 5: desenroscar os 4 parafusos do pneu furado
Passo 6: colocar o estepe
Passo 7: enroscar os 4 parafusos
Passo 8: baixar o carro com o macaco
Passo 9: guardar as ferramentas
Algoritmo: Bolo de Chocolate

Passo1 – Receber os ingredientes:
2 xícaras de açúcar;
3 ovos;
250g de margarina;
3 xícaras de farinha de trigo;
1 e ½ colher de fermento;
1 xícara de leite.
Passo 2: aqueça o forno a 180 graus;

Passo 3: bata as claras em neve e reserve;

Passo 4: em uma travessa, bata o açúcar, a manteiga e as
gemas;







Algoritmo: Bolo de Chocolate

Passo 5: misture a farinha e o leite;

Passo 6: bata bem, até ficar bem homogêneo;

Passo 7: com a ajuda de uma colher, acrescente o fermento;

Passo 8: por último, adicione as claras em neve e mexa
cuidadosamente;
 Passo 9: coloque em uma forma untada com manteiga e farinha de trigo
e leve ao forno médio para assar por aproximadamente 35 minutos ou
até que, ao espetar um palito, esse saia seco;

Passo 10: após assado, desligue o forno e deixe o bolo esfriar;

Passo 11: desenforme e saboreie.
Algoritmo: Características







Podemos observar cinco características inerentes aos
algoritmos:
Finitude – Um algoritmo sempre deve terminar após um número
finito de passos.
Ex. Encerra no momento em que o bolo está pronto.
Definição – Cada passo do algoritmo deve ser bem definido e
sem ambiguidades
Não deve dar margem para uma interpretação dupla.
Entradas – Um algoritmo deve ter uma ou mais entradas, que
são as informações que devem ser fornecidas antes do algoritmo
ser iniciado
No caso da receita de bolo, as entradas são os ingredientes
Algoritmo: Características

Podemos observar cinco características inerentes aos algoritmos

Saídas – Um algoritmo deve ter uma ou mais saídas.
Observando a nossa receita, vemos que os ingredientes
(entradas) são misturados, gerando uma única saída (o bolo).



Efetividade – Todo algoritmo deve ser descrito por operações
básicas e possíveis de ser realizadas de forma precisa, dentro de
um determinado tempo, por qualquer pessoa.
Se na receita víssemos uma instrução do tipo "coloque açúcar à
vontade", isso impossibilitaria a sua execução de uma forma
precisa.
Algoritmo – Utilizando números e
expressões matemáticas

Cálculo da média aritmética de um aluno:

Passo 1: informe a primeira nota;
Passo 2: informe a segunda nota;
Passo 3: some a primeira nota com a segunda
nota;
Passo 4: divida o resultado da soma por dois;
Passo 5: mostre o resultado obtido.




Algoritmo – Utilizando números e
expressões matemáticas









Podemos observar que esse algoritmo têm:
Início e fim
Passos bem definidos
Dados de entrada (primeira nota e segunda nota),
Dados de saída (média)
Instruções de cada passo são precisas
O exemplo reúne as 5 características mencionadas
anteriormente.
Podemos afirmar que a construção de algoritmos é uma
atividade que faz parte do nosso cotidiano
Seguem uma sequência lógica de passos e geram suas
respectivas saídas (que são os resultados alcançados).
Algoritmo – Utilizando números e
expressões matemáticas

É importante lembrar que podem existir várias
maneiras de solucionar um problema.

O importante é chegar à solução. Melhor ainda, se
essa solução for atingida de forma eficiente e eficaz.

A eficiência a capacidade de produzir com maior
qualidade e com os mesmos ou menos recursos

A eficácia caracteriza-se por fazer o que é necessário
para alcançar determinado resultado
Atividade





Escreva o seu algoritmo usual para ir à
Universidade.
Escreva um algoritmo para fritar batatas.
Escreva o seu algoritmo usual para tomar
banho.
Escreva um algoritmo que, dado um número,
exiba o seu antecessor.
Faça o mesmo para exibir o sucessor do
número dado.
Nota:









Antes de fazer a atividade, considere as técnicas para
elaboração de um algoritmo:
Ler atentamente o enunciado
Destacando os pontos mais importantes;
Definir os dados de entrada;
Definir os dados de saída
O que se deseja obter
Definir o processamento
De que maneira será ordenada a sequência de passos
Construir o algoritmo;
Formas de Representação dos
Algoritmos

Descrição narrativa

Fluxogramas

Pseudocódigo
Formas de Representação dos
Algoritmos :Descrição narrativa

Nessa forma de representação, analisamos o enunciado do problema e
descrevemos a sequência de passos em nossa língua nativa (em nosso
caso, o português).

A vantagem de se utilizar esse procedimento é que não precisamos
aprender nenhum conceito novo, pois já temos domínio sobre a nossa
língua nativa.

A desvantagem é que a língua natural pode ser interpretada de
diferentes maneiras. Em comparação com uma linguagem de
programação, a linguagem natural é abstrata, imprecisa e pouco
confiável.

Isso poderia trazer problemas na hora de transcrever o algoritmo para o
programa (em uma linguagem de programação).
Formas de Representação dos
Algoritmos :Descrição narrativa

Considere o algoritmo – Receita de Bolo

Passo 9: coloque em uma forma untada com manteiga e
farinha de trigo e leve ao forno médio para assar por
aproximadamente 35 minutos ou até que, ao espetar um
palito, esse saia seco;
A informação sublinhada é imprecisa e pode ser interpretada de
diferentes.
"aproximadamente 35 minutos" pode ser um pouco menos que
35 minutos pra uma pessoa e um pouco mais que 35 minutos pra
outra pessoa executando a mesma receita.
Não fica clara a quantidade de manteiga e farinha de trigo que
deve ser aplicada na forma.



Formas de Representação dos
Algoritmos : Fluxograma


Fluxograma
Nessa forma de representação, escrevemos o algoritmo
utilizando símbolos gráficos predefinidos, enfatizando os passos
individuais e suas interconexões.
Formas de Representação dos
Algoritmos : Fluxograma






A principal vantagem é que é mais fácil entender o conteúdo
descrito de forma gráfica do que um descrito textualmente.
Além disso, os fluxogramas obedecem a um padrão mundial
quanto à simbologia.
As desvantagens são as seguintes:
Os dados podem não ser suficientemente detalhados,
dificultando a transcrição do algoritmo para o programa a ser
desenvolvido;
É necessário aprender a simbologia dos fluxogramas;
Para algoritmos mais extensos, a construção do fluxograma pode
se tornar mais complicada.
Formas de Representação dos
Algoritmos : Fluxograma


Fluxograma
Exemplo para calcular a nota média de uma aluno
Formas de Representação dos
Algoritmos : Fluxograma









Fluxograma
Exemplo para calcular a nota média de uma aluno:
As entradas para a execução do algoritmo são a primeira e a
segunda nota
Veja, as notas 1 e 2 estão no símbolo de fluxograma
correspondente à entrada de dados.
O cálculo da média é efetuado no símbolo seguinte
Símbolo referente ao processamento, ou seja, os cálculos.
O símbolo de saída de dados do fluxograma exibe o resultado
A média do aluno
Os símbolos de Início e Fim são os delimitadores de execução
Atividade

Caracterize com suas próprias palavras
uma descrição narrativa.

Faça um algoritmo que descreva alguma
situação do seu dia a dia (ex. tomar
banho) e construa um fluxograma
contendo os símbolos já vistos.
Formas de Representação dos
Algoritmos : Pseudocódigo

É uma combinação das melhores características das duas
formas de representação anteriores.

A principal vantagem da utilização do pseudocódigo é que,
mesmo sendo independente de qualquer linguagem de
programação, sua estruturação facilita a transcrição do algoritmo
criado para o código dessas linguagens

A desvantagem é que precisamos aprender as regras dessa
forma de representação. Também figura como desvantagem a
não padronização de sua estruturação. Isso quer dizer que você
encontrará um mesmo termo descrito de formas diferentes em
diferentes literaturas.
Pseudocódigo
Pseudocódigo
Formas de Representação dos
Algoritmos : Pseudocódigo








Vamos chamar as instruções que estão entre as palavras início e fim de
bloco de execução do algoritmo.
Veja que o bloco de execução não está posicionado no mesmo
alinhamento das palavras início e fim.
Chamamos esse recuo de identação.
A identação torna o código mais legível, pois facilita a visualização da
delimitação dos blocos de execução.
As palavras em negrito, são as palavras reservadas da linguagem.
Palavras reservadas são os comandos fornecidos pelas linguagens de
programação que permitem a expressão dos algoritmos.
Alguns exemplos de palavras reservadas são comandos de escrita ou
leitura de dados e a declaração de variáveis
O comentários explicam o algoritmo (em verde)
Formas de Representação dos
Algoritmos : Pseudocódigo

Formas de Representação dos
Algoritmos : Pseudocódigo

Exemplos: comandos de
controle
Exemplos de Algoritmos em
Pseudocódigo

Como exemplo de um algoritmo matemático, vamos a considerar
o problema de resolver uma equação do primeiro grau da forma

Ax+b=0

A solução desta equação é

X=-b/a

Se o valor de a for diferente de 0.
Caso a seja igual a 1, a equação não possui solução, já que não
é possivel dividir por 0.
Exemplos de Algoritmos em
Fluxograma
Exemplos de Algoritmos em
Pseudocódigo
Exemplos de Algoritmos em
Pseudocódigo
Comandos de Repetição

As linguagens de programação normalmente
possuem diversos comandos que permitem que um
trecho de algoritmo seja repetido um numero de
vezes.

Para estes exemplos iniciais iremos apresentar um
comando de repetição que é suficientemente geral
para substituir todos os outros.
Comandos de Repetição



O comando ENQUANTO funciona da seguinte
maneira:
Passo 1: Testar se a condição é verdadeira. Caso
seja verdadeira executar o bloco de comandos
situados entre o inicio do comando e o final do
comando (FIM ENQUANTO).
Passo 2: Executar o bloco de comandos até o fim do
enquanto. Quando chegar ao fim retornar
automaticamente para o inicio do comando e refazer o
passo 1.
Exemplos de Algoritmos em
Pseudocódigo
Exemplos de Algoritmos em
Pseudocódigo
Exemplos de Algoritmos em
Pseudocódigo
Exemplos de Algoritmos em
Pseudocódigo
Exemplos de Algoritmos em
Pseudocódigo
Atividade

1) Identifique os dados de entrada, processamento e saída no
algoritmo abaixo

Receba código do produto

Receba valor do produto

Receba Quantidade de produtos

Calcule o valor total do produto (Quantidade * Valor do produto)


Mostre o código do produto e seu valor total
Fim da apresentação

Obrigada pela atenção
Download

baixar slides