Buscar

ALG01 Conceitos

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 51 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 51 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 51 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Algoritmos
ALG01 - CONCEITOS 
BÁSICOS
Algoritmos 
Universidade CEUMA
2
LÓGICA
 É a arte de bem pensar.
 Ciência das formas de pensamento – estuda a
correção do raciocínio (forma mais complexa do
pensamento).
 Visa a ordem da razão - Coloca ordem no
pensamento.
 É a ciência que estuda as leis e critérios de validade
que regem o pensamento e a demonstração, ou
seja, ciência dos princípios formais do raciocínio.
 Pode ser utilizada em diferentes situações no dia-a-
dia.
3
LÓGICA
 Exemplos:
1) Todo mamífero é um animal. (premissa 1)
Todo cavalo é um mamífero. (premissa 2)
Portanto todo cavalo é um animal. (conclusão)
2) A gaveta está fechada. (premissa 1)
A caneta está dentro da gaveta. (premissa 2)
Precisamos primeiro abrir a gaveta, para depois
pegar a caneta. (conclusão)
4
LÓGICA
 Fatores que influenciam a lógica:
– calma
– conhecimento
– vivência
– versatilidade
– experiência
– criatividade
– ponderação
– responsabilidade e etc.
5
LÓGICA
 Aplicação na programação Lógica de Programação
 Isto significa o uso correto das leis do pensamento, da
ordem da razão e de processos de raciocínio e
simbolização formais na programação de computadores,
objetivando a racionalidade e o desenvolvimento de
técnicas que cooperem para a produção de soluções
logicamente válidas e coerentes, que resolvam com
qualidade os problemas que se deseja programar.
 O objetivo principal da Lógica de Programação é a
construção de algoritmos.
6
ALGORITMOS
É o conceito central da lógica de programação. Pois, 
ela consiste basicamente da construção de 
algoritmos.
7
ALGORITMOS
• Estão presentes no dia-a-dia. Ex.:
– Tomar banho;
– Instruções para o uso de um aparelho 
eletrodoméstico;
– Receita de preparo de algum prato;
– Trocar pneu de um carro;
– Sacar dinheiro de um caixa eletrônico;
Como???
8
ALGORITMOS – Conceitos
• “Um conjunto finito de regras que provê uma seqüência de
operações para resolver um tipo de problema específico”
[KNUTH]
• “Seqüência ordenada, e não ambígua, de passos que levam
à solução de um dado problema”
[TREMBLAY]
• “Processo de cálculo, ou de resolução de um grupo de
problemas semelhantes, em que se estipulam, com
generalidade e sem restrições, as regras formais para a
obtenção do resultado ou da solução do problema”
[AURÉLIO]
• Um dos princípios da computação é a divisão dos sistemas
computacionais em:
• Hardware – parte física (unidades de entrada, saída e
armazenamento.
• Software – parte lógica (softwares básico e utilitários).
9
ALGORITMOS – Importância
– É necessária fazer a especificação de uma seqüência
de passos lógicos para que o computador possa
executar uma determinada tarefa;
– O computador não possui vontade própria, faz
apenas o que foi programado;
– Com uma ferramenta algorítmica, é possível
conceber uma solução para um dado problema,
independente da linguagem específica e até mesmo
do próprio computador.
10
ALGORITMOS –
Características
– ter fim;
– não dar margem à dupla interpretação (não
ambíguo);
– capacidade de receber dado(s) de entrada do
mundo exterior;
– poder gerar informações de saída para o mundo
externo ao do ambiente do algoritmo;
– ser efetivo (todas as etapas devem ser
alcançáveis em um tempo finito).
ALGORITMOS – Conclusões
- o algoritmo corresponde a uma descrição de um
padrão de comportamento, expresso em termos de
um conjunto finito, ordenado e não ambíguo de
ações, para resolver um problema.
- Para resolver um problema é necessário escolher
uma abstração da realidade, ou seja interpretá-la,
usando para isso a definição de um conjunto de
dados que representa essa situação real.
- A abstração da realidade é a captura do que existe
de mais relevante em uma situação real, tornando
possível a construção de modelos que podem ser
implementados nos computadores, por meio de
uma Linguagem de Programação (LP).
11
12
ALGORITMOS – Conclusões
É o Frajola???
É um gatinho???
É um mamífero???
O que é isto???
É um animal peludo???
É um felino???
Abstração
“a beleza está nos 
olhos de quem a vê”
O resultado de uma operação mental de abstração
depende não tanto do fenômeno observado, mas do
interesse do observador.12
ALGORITMOS – Conclusões
- dados a serem processados pelo computador
representam uma abstração da parte da realidade,
ou seja, representam algumas características
selecionadas das entidades do mundo real,
necessárias para a solução de um determinado
problema.
• Um dos princípios do funcionamento do computador é:
13
14
 Aplicação 01:
Um senhor, bastante gordo, esta numa das margens de 
um rio com uma raposa, uma duzia de galinhas e um 
saco de milho. O senhor pretende atravessar o rio com 
suas cargas, num barco a remo que só comporta o 
senhor e uma das cargas.
 o senhor não pode deixar em uma das margens, 
sozinhos, a raposa e a galinha, nem a galinha e o 
milho.
Como resolver este problema? Como escrever um 
algoritmo que oriente este senhor a realizar o seu 
intento?
Escreva as instruções na sequencia em que elas 
devem ser executada.
ALGORITMOS
15
 Solução:
1. Atravesse as galinhas.
2. Retorne sozinho.
3. Atravesse a raposa.
4. Retorne com as galinhas.
5. Atravesse o milho.
6. Retorne sozinho.
7. Atravesse as galinhas.
Como saber que a primeira instrução deve ser a 
travessia das galinhas?
ALGORITMOS
16
 Para definir qual seria a primeira instrução, existem
apenas três possibilidades. Verifica-se o que aconteceria
ao se escolher determinada instrução:
se o homem atravessasse primeiro o milho, a
raposa devoraria as galinhas;
se o homem atravessasse primeiro a raposa, as
galinhas comeriam o milho;
 se o homem atravesse primeiro as galinhas, a 
raposa não comeria o milho. 
Neste caso, foi utilizada a técnica da exaustão: como o 
número de alternativas era pequeno, todas elas foram 
analisadas uma a uma.
ALGORITMOS
17
 Aplicação 02:
Como obter exatamente 4 litros de agua dispondo de dois 
recipientes com capacidades de 3 litros e 5 litros?
ALGORITMOS
18
 Solução:
1. Encha o recipiente de 3 litros.
2. Transfira o conteúdo do recipiente de 3 litros para o recipiente 
de 5 litros.
3. Encha o recipiente de 3 litros.
4. Com o conteúdo do recipiente de 3 litros, complete o recipiente 
de 5 litros.
5. Esvazie o recipiente de 5 litros.
6. Transfira o conteúdo do recipiente de três litros para o 
recipiente de 5 litros.
7. Encha o recipiente de 3 litros.
8. Transfira o conteúdo do recipiente de 3 litros para o recipiente 
de 5 litros.
 Essa é uma outra técnica que consiste em tentar resolver casos 
particulares da questão ou resolver a questão para dados menores 
do que os dados que foram fixados. Como: 4 = 3 + 1 ou 4 = 5 – 1
Há outras soluções? Existe alguma solução que realize
a mesma tarefa com uma quantidade menor de instruções?
ALGORITMOS
19
ALGORITMOS – Exemplo
– Vamos nos colocar na situação de um cozinheiro que 
para fazer certos pratos, precisa seguir uma receita.
• Exemplo: Receita de Bolo
– Providencie manteiga, ovos, 2 Kg de massa, 
etc.
– Misture os ingredientes
– Unte a fôrma
– Despeje a mistura na fôrma de bolo
– Leve a fôrma ao forno
– Espere 20 minutos
– Retire a fôrma do forno
– Deixe esfriar
– Experimente
20
ALGORITMOS 
– Mas o que um cozinheiro tem a ver com
algoritmo e com programação?
A receita deve ser seguida exatamente da maneira
como se apresenta.
Você poderia imaginar que o cozinheiro pudesse
despejar a mistura na fôrma antes de juntar os
ingredientes? É impossível, concorda? Logo a
seqüência das ações precisaser respeitada para
obtermos um produto final.
21
ALGORITMOS 
Então:
 Na medida em que precisamos especificar
uma seqüência de passos, é necessário
utilizar ordem,ou seja, “pensar com ordem”,
portanto precisamos utilizar lógica.
22
ALGORITMOS 
 Um algoritmo tem por objetivo representar
mais fielmente o raciocínio envolvido na
lógica de programação e, dessa forma,
permitir abstrair de uma série de detalhes
computacionais, que podem ser
acrescentados mais tarde.
 Foco no que é importante: a lógica da
construção de algoritmos.
23
ALGORITMOS - Princípios 
– São formas de resolução de um problema,
através da especificação passo-a-passo de
como resolvê-lo.
– A noção de algoritmo é básica em
computação, mas pode ser aplicada a vários
contextos. Como o exemplo do cozinheiro.
24
ALGORITMOS - Princípios 
– Contexto Administrativo
Verifique preenchimento do formulário
Se (preenchimento correto) então
Arquive o documento
Forneça o protocolo
Se não
Lamente
Peça que o cliente compre outro formulário
Despeça-se educadamente do cliente
25
ALGORITMOS - Princípios 
– Logo, percebe-se que o conceito de algoritmo
associado ‘a área de computação, pode ser
entendido, no seu sentido mais amplo, como
sinônimo de processo, rotina ou procedimento, e
nesse sentido, ele se insere em qualquer
contexto.
– E mais, algoritmos só se aprende:
• construindo algoritmos
• testando algoritmos
26
• A sintaxe: é um conjunto de regras que define a 
forma de uma linguagem, estabelecendo como são 
compostas as suas estruturas básicas (palavras).
• A semântica: descreve o significado de
construções sintáticas válidas. Geralmente uma LP
é descrita informalmente, utilizando-se linguagem
natural (inglês, português, etc).
Sintaxe e Semântica
27
• A sintaxe de uma LP é formada por regras léxicas e 
regras sintáticas:
– As regras léxicas descrevem as combinações
válidas de caracteres que formam os tokens da LP 
palavras reservadas, identificadores, operadores, 
etc). 
– Exemplo de regras léxicas para a linguagem Pascal:
Sintaxe e Semântica
28
– Já as regras sintáticas descrevem como os tokens
podem ser combinados para formar instruções 
válidas (comandos, expressões, subrotinas, etc).
– Exemplo de regras sintáticas para a linguagem 
Pascal:
Sintaxe e Semântica
29
– Narrativa (Textual):
• Faz-se uso do português para descrever
algoritmos.
• Exemplo: Trocar uma lâmpada
Pegue uma escada
Posicione-a embaixo da lâmpada
Busque uma lâmpada nova
Suba na escada
Retire a lâmpada velha
Coloque a lâmpada nova
ALGORITMOS – Representação
30
– Vantagem:
• Fácil utilização e fácil entendimento por utilizar a
própria língua.
– Desvantagem:
• Falta de padronização;
ALGORITMOS – Representação
31
– Fluxograma. Exemplo:
ALGORITMOS – Representação
32
– Fluxograma
• Vantagens:
– Uma das ferramentas mais conhecidas;
– Figuras dizem muito mais que palavras;
– Padrão mundial.
– Aproxima-se mais de uma linguagem de
programação.
• Desvantagens:
– É preciso que todos os envolvidos entendam a
simbologia;
– Pouca atenção aos dados, não oferecendo
recursos para descrevê-los ou representá-los;
– Complica-se à medida que o algoritmo cresce.
ALGORITMOS – Representação
33
– Linguagem Algorítmica
• Consiste na definição de uma pseudolinguagem
de programação, cujos comandos são em
português, para representar algoritmos;
• Exemplo
Algoritmo CALCULA_DOBRO
Início
Leia NUM
DOBRO = 2 * NUM
Escreva DOBRO
Fim
ALGORITMOS – Representação
34
– Linguagem Algorítmica: possui uma estrutura, onde
há áreas delimitadas por marcadores (ou
delimitadores) que sinalizam o que pode ser
realizado.
• Estrutura geral:
Algoritmo Nome do algoritmo
Declaração de constantes, tipos e variáveis 
(dados)
Início
atribuições
seqüências de comandos
estruturas de controle
comandos de E/S
Fim
ALGORITMOS – Representação
35
– Linguagem Algorítmica
• Vantagens:
– Independência física da solução (solução lógica 
apenas);
– Usa o português como base;
– Pode-se definir quais e como os dados vão estar 
estruturados;
– Passagem quase imediata do algoritmo para uma 
linguagem de programação qualquer.
• Desvantagens:
– Exige a definição de uma linguagem não real para 
trabalho;
– Não padronizado.
ALGORITMOS – Representação
36
Algoritmo "<nome do algoritmo>"
var
< declaração de variáveis>
inicio
< lista de comandos>
fimalgoritmo
ALGORITMOS – Representação: 
Visual G
37
1.O algoritmo sempre deve possuir um nome.
2.É importante descrever o objetivo do algoritmo.
3.Iniciar o algoritmo com a palavra Início.
4.Descrever a entrada de dados.
5.Para facilitar a leitura e compreensão, utilizar espaços de 
tabulações (identação) nos blocos de instruções.
6.Utilizar somente um verbo por instrução.
7.Utilizar frases (instruções) simples e curtas para facilitar o 
entendimento.
8.Enumerar cada uma das instruções.
9.Inserir comentários explicativos para as instruções, 
principalmente quando estiver programando.
10.Destacar as palavras que indicam ações ou condições a serem 
executadas ou seguidas, como por exempro: Ler, escrever, se, 
enquanto, faça e outras.
11.Descrever a saída de dados.
12.Encerrar o algoritmo com a palavra Fim.
Representação: regras importantes
38
Nome: Média
Objetivo: Calcular a média de um aluno e apresentar a mensagem 
“aprovado” ou “reprovado”.
Entrada de dados: Notas do 1º e 2º bimestre (Nota1 e Nota2)
Saída de dados: Exibir a média e resultado “aprovado” ou 
“reprovado”
Início
1. Ler a nota do primeiro bimestre (Nota1)
2. Ler a nota do segundo bimestre (Nota2)
3. Calcular a média Media = (Nota1 + Nota2)/2
4. Se Media >= 6,0 então
4.1 imprimir “aprovado”
senão
4.2 imprimir “reprovado”
fim se
5. Imprimir o valor da Media
Fim
ALGORITMOS – aplicando as 
regras importantes
39
ALGORITMOS
– ESTRUTURAS CHAVES DA CONSTRUÇÃO DE 
ALGORITMOS
• Existem 3 estruturas básicas de controle nas 
quais se baseiam os algoritmos:
– Sequênciação;
– Decisão;e,
– Repetição.
40
ALGORITMOS – Sequênciação 
– Os comandos do algoritmo fazem parte de uma
sequência;
– é relevante a ordem na qual se encontram os
mesmos;
– serão executados um de cada vez, estritamente, de
acordo com essa ordem.
Comando-1
Comando-2
Comando-3
:
Comando-n
41
ALGORITMOS – Sequênciação 
– Todo algoritmo é uma sequência;
– Tem-se uma sequênciação de n comandos na qual
os comandos serão executados na ordem em que
aparecem;
– o comando de ordem i+1 só será executado após a
execução do de ordem i (o 3º só será executado após
o 2º);
– A sequenciação é aplicada quando a solução do
problema pode ser decomposta em passos
individuais.
42
ALGORITMOS – Decisão 
– Também conhecida por seleção ou estrutura
condicional;
– Há a subordinação da execução de um ou mais
comandos à veracidade de uma condição;
Se <condição> Então
<comando-1>
Senão
<comando-2>
43
ALGORITMOS – Decisão 
– Se a <condição> for verdadeira será executado o
<comando-1>;
– caso contrário, teremos a execução do <comando-2>;
– A decisão deve ser sempre usada quando há a
necessidade de testar alguma condição e em função da
mesma tomar uma atitude;
– No dia-a-dia, estamos sempre tomando decisões.
Exemplos:
• Se tiver dinheiro suficiente, então vou almoçar em um
bom restaurante.
• Caso contrário (senão), vou comer um sanduíche na
lanchonete da esquina.
44
ALGORITMOS – Repetição 
– Também conhecida por “looping” ou laço;
– Permite que tarefas individuais sejamrepetidas um
número determinado de vezes ou tantas vezes
quantas uma condição lógica permita;
– Exemplos:
a) vou atirar pedras na vidraça até quebrá-la;
b) baterei cinco pênaltis;
c) enquanto tiver saúde e dinheiro, vou desfrutar a 
vida.
45
ALGORITMOS – Repetição 
– No exemplo (a), vai-se repetir a ação de atirar pedras na 
janela até que seja satisfeita a condição de quebrar a 
janela.
– No exemplo (b), haverá a repetição da atitude de bater um 
pênalti um número determinado de vezes (cinco).
– No exemplo (c), a condição que me permitirá continuar 
desfrutando a vida é ter dinheiro e saúde.
– A utilização combinada dessas 3 estruturas descritas vai 
permitir expressar, usando qualquer que seja a 
ferramenta, a solução para uma gama muito grande de 
problemas.
– Todas as linguagens de programação oferecem 
representantes dessas estruturas.
46
– Um algoritmo é considerado completo se os seus
comandos forem do entendimento do seu
destinatário;
– Caso um comando não seja do entendimento do
destinatário, ele terá que ser desdobrado em novos
comandos;
– Estes novos comandos constituirão um refinamento
do comando inicial, e assim sucessivamente, até que
os comandos sejam entendidos pelo destinatário.
ALGORITMOS – Refinamentos 
Sucessivos
47
– Por exemplo, o algoritmo para calcular a média aritmética de 
dois números pode ser escrito da seguinte forma:
Algoritmo CALCULA_MÉDIA
Início
Receba os dois números
Calcule a média dos dois números
Exiba o resultado
Fim
– Desdobrando o comando “Calcule a média dos dois números”:
Soma os dois números
Divida o resultado por 2
ALGORITMOS – refinamentos 
sucessivos
48
– Após esse refinamento, o algoritmo pode ser
considerado completo;
– a menos que: o destinatário não saiba fazer as
operações de adição e divisão, ou não seja capaz de
entender diretamente algum comando.
Algoritmo CALCULA_MÉDIA
Início
Receba os dois números
Soma os dois números
Divida o resultado por 2
Exiba o resultado
Fim
ALGORITMOS – Refinamentos 
Sucessivos
49
– Um algoritmo completo, com os refinamentos
sucessivos inseridos nos seus devidos lugares permite:
• ter uma visão global de como o algoritmo deve ser
executado
– À medida que o algoritmo passa a ser maior e mais
complexo, esta visão global torna-se menos clara;
– Neste caso, um algoritmo apresentado com os
refinamentos sucessivos separados oferece uma
melhor abordagem para quem precisar entendê-lo.
ALGORITMOS – Refinamentos 
Sucessivos
50
ALGORITMOS – Resolvendo
– Suponha que se queira resolver o seguinte problema:
• a partir de dois números que serão informados, 
calcular a soma dos mesmos.
– Se você fosse encarregado de efetuar essa tarefa, 
seria bem provável que utilizasse os passos a seguir:
1. Identificar as variáveis que afetam o problema. 
Neste caso, são os números;
2. Identificar as relações, regras e validações 
sobre as variáveis. Neste caso, a soma dos 
números;
3. Realizar o processamento necessário;
4. Apresentar o resultado.
51
ALGORITMOS – Exercícios
– Cite alguns algoritmos que podemos encontrar na
vida quotidiana.
– Suponha que temos um robô a nossa disposição.
Esse robô precisa ser ensinado a fazer determinadas
tarefas. Para ensiná-lo, vamos fazer uso do
português para passar-lhe as instruções necessárias
à execução de cada atividade. Escreva os passos
necessários para o robô:
a) encher uma bacia com água;
b) Fazer uma ligação de um telefone fixo;
c) calcular a sua idade daqui a 20 anos;
d) calcular a média de um aluno com 3 notas;
e) Fazer um suco de laranja.

Outros materiais