Vous êtes sur la page 1sur 28

Aula 1 - Algoritmos

Disciplina: Algoritmos
Prof. Ms. Robson Antonio Moreira
Considerações Iniciais
Professor;
Plano de Trabalho;
Provas e Trabalhos
Bibliografia
Introdução – O que é Lógica
O homem por si só é um ser lógico, e essa lógica é um
dom que não se aprende de uma hora para outra.
Resulta, em geral, de experiências do dia a dia.
Usamos de lógica quando executamos ordenadamente
uma série de rotinas predeterminadas, tais como:
levantar da cama, pegar os chinelos, ir ao banheiro,
tomar banho, etc. Estas ações são justificadas pela
experiência prévia nestes procedimentos que nos
fazem reconhecê-los como os mais eficazes e
agradáveis para se começar o dia de atividade.
Introdução – O que é Lógica
Não existem meios de se ensinar lógica,
podemos sim, através de um grande esforço,
bastante dedicação e exercícios, aperfeiçoar
a lógica da pessoa para que esta possa
formar sua própria estrutura de
pensamento, a qual é de fundamental
importância para a arte de programar.
Introdução – O que é Lógica
Um conceito de lógica, seria: o
conjunto de leis, princípios ou
métodos que determinam um
raciocínio coerente, induzindo a
uma solução prática e eficaz do
problema.
Algoritmos - Conceitos
O conceito de algoritmo não foi criado para
satisfazer às necessidades da computação.
Pelo contrário, a programação de computadores é
apenas um dos campos de aplicação dos
algoritmos
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.
Algoritmos - Conceitos
Alguns exemplos:
 instruções para se utilizar um aparelho eletrodoméstico;
uma receita para preparo de algum prato;
guia de preenchimento para declaração do imposto de
renda;
a regra para determinação de máximos e mínimos de
funções por derivadas sucessivas;
a maneira como as contas de água, luz e telefone são
calculadas mensalmente; etc.
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]
Algoritmos - Conceitos
A automação é o processo em que uma
tarefa deixa de ser desempenhada pelo
homem e passa a ser realizada por
máquinas, sejam estas dispositivos
mecânicos, eletrônicos (como os
computadores) ou de natureza mista.
Algoritmos - Conceitos
Para que a automação de uma tarefa seja
bem sucedida é necessário que a máquina
que passará a realizá-la seja capaz de
desempenhar cada uma das etapas
constituintes do processo a ser
automatizado com eficiência, de modo a
garantir a repetibilidade
Algoritmos - Conceitos
À especificação da seqüência ordenada de passos
que deve ser seguida para a realização de uma
tarefa, garantindo a sua repetibilidade, dá-se o
nome de algoritmo.
Para que um computador possa desempenhar uma
tarefa é necessário que esta seja detalhada passo a
passo, numa forma compreensível pela máquina,
utilizando que se chama de programa.
Algoritmos - Conceitos
Neste sentido, um programa de
computador nada mais é que um
algoritmo escrito numa forma
compreensível pelo computador
Algoritmos - Conceitos
“A noção de algoritmo é básica para toda a
programação de computadores”.
[KNUTH - Professor da Universidade de Stanford, autor da
coleção “The art of computer programming”]
 
“O conceito central da programação e da ciência da
computação é o conceito de algoritmo”.
[WIRTH - Professor da Universidade de Zurique, autor de
diversos livros na área e responsável pela criação de
linguagens de programação como ALGOL, PASCAL e
MODULA-2]
Algoritmos - Conceitos
A importância do algoritmo está no fato de
termos que especificar uma seqüência de
passos lógicos para que o computador possa
executar uma tarefa qualquer, pois o mesmo
por si só não tem vontade própria, faz
apenas o que mandamos.
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 especificadas no
algoritmo devem ser alcançáveis em um tempo
finito).
Formas de Representação de Algoritmos
Existem diversas formas de representação
de algoritmos, mas não há um consenso com
relação à melhor delas.
O critério usado para classificar
hierarquicamente estas formas está
diretamente ligado ao nível de detalhe ou,
inversamente, ao grau de abstração
oferecido.
Formas de Representação de Algoritmos
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
idéia principal, o algoritmo, dificultando seu
entendimento.
Formas de Representação de Algoritmos
Descrição Narrativa;
Diagrama de Nassi-Shneiderman –
Diagrama de Chapin
Fluxograma Convencional;
Pseudocódigo, também conhecido como
Linguagem Estruturada ou Portugol.
Descrição Narrativa
Faz-se uso do português para descrever algoritmos.
Exemplo:
Receita de Bolo:
Providencie manteiga, ovos, 2 Kg de massa, etc.
Misture os ingredientes
Despeje a mistura na forma de bolo
Leve a forma ao forno
Espere 20 minutos
Retire a forma do forno
Deixe esfriar
Prove
Descrição Narrativa
VANTAGENS:
o português é bastante conhecido por nós;
 
DESVANTAGENS:
imprecisão;
pouca confiabilidade (a imprecisão acarreta a
desconfiança);
extensão (normalmente, escreve-se muito para dizer
pouca coisa).
Descrição Narrativa
Nesta forma de representação os algoritmos
são expressos diretamente em linguagem
natural.
Esta representação é pouco usada na prática
porque o uso da linguagem natural muitas
vezes dá oportunidade a más interpretações,
ambigüidades e imprecisões.
Descrição Narrativa
Por exemplo, uma instrução “afrouxar
ligeiramente os parafusos”, em um algoritmo
da troca de pneu furado, está sujeita
interpretações diferentes por pessoas
distintas. Uma instrução mais precisa seria:
“afrouxar a porca, girando-a 30º no sentido
anti-horário”.
Descrição Narrativa
Exercício: Escreva um algoritmo que apresente a
solução para:

Trocar o pneu de um carro


Sabendo que: o carro já se encontra parado e você é o
motorista.
Exercícios
Resolva os exercícios em Descrição Narrativa

1) Trocar uma lâmpada, considerando que você está com


a escada, a lâmpada para ser trocada e no mesmo
ambiente da lâmpada queimada.
 
2) Efetuar o saque de R$ 50,00 em um caixa eletrônico, a
partir da sua entrada no caixa eletrônico até a sua
saída.
Exercícios
3) Explicar os passos que devem ser seguidos para
encontrar um livro na biblioteca, sendo que você já
sabe o livro que procura e o funcionamento da
biblioteca.
 
4) Um homem precisa atravessar um rio com um barco
que possui capacidade de carregar apenas ele mesmo e
mais uma de suas três cargas que são: um lobo, um
bode e um maço de alfafa. O que o homem deve fazer
para conseguir atravessar o rio sem perder suas
cargas ?
Exercícios
5) Elabore a seqüência necessária para mover três discos
da Torre de Hanói, que consiste em três hastes (a – b –
c), uma das quais serve de suporte para três discos de
tamanhos diferentes (1 – 2 – 3), os menores sobre os
maiores. Pode-se mover um disco de cada vez para
qualquer haste, contanto que nunca seja colocado um
disco maior sobre um menor. O objetivo é transferir os
três discos para outra haste.
Exercícios
5) Continuação
Exercícios
6) Três jesuítas e três canibais precisam atravessar um
rio; para tal, dispõem de um barco com capacidade
para duas pessoas. Por medida de segurança não se
permite que em alguma margem a quantidade de
jesuítas seja inferior à de canibais. Qual a seqüência de
passos que permitiria a travessia com segurança ?

Vous aimerez peut-être aussi