Você está na página 1de 60

Algoritmos

Prof. Leonardo Minelli


Bibliografia
• Estudo Dirigido de Algoritmos
• Autor: Oliveira, Jayr Figueiredo / Manzano, Jose
Augusto
• Editora: Érica
• ISBN: 857194413X
• Série: Estudo dirigido
• Idioma: Português
• Páginas: 228
• Publicação: 1997
• Edição 1
Algoritmos (Prof. Leonardo Minelli) 2
Bibliografia
• Programação em Matlab para Engenheiros
• Autor: Chapman, Stephen J.
• Editora: Thomson Pioneira
• ISBN: 8522103259
• Idioma: Português
• Páginas: 480
• Publicação: 2003
• Edição 1

Algoritmos (Prof. Leonardo Minelli) 3


Briefing
• Computador
– Dispositivo que recebe, processa e emite sinais

Algoritmos (Prof. Leonardo Minelli) 4


Briefing
• Computador
– Dispositivo que recebe, processa e emite sinais
• Interface de entrada
– USB
– PS2
– Wireless
– Bluetooth
– LPT1

Algoritmos (Prof. Leonardo Minelli) 5


Briefing
• Computador
– Dispositivo que recebe, processa e emite sinais
• CPU

Algoritmos (Prof. Leonardo Minelli) 6


Briefing
• Computador
– Dispositivo que recebe, processa e emite sinais
• Placa-mãe
– Processador
– Memória
– Interfaces
– Conectores

Algoritmos (Prof. Leonardo Minelli) 7


Briefing
• Computador
– Dispositivo que recebe, processa e emite sinais
• Interface de saída
– USB
– Wireless
– LPT1

Algoritmos (Prof. Leonardo Minelli) 8


Lógica
• Muitas pessoas gostam de falar que possuem e sabem
usar o raciocínio lógico
• Quando questionadas, perdem a linha de raciocínio,
pois este depende de muitos fatores para completá-lo
Calma
Experiência
Criatividade
Conhecimento
Vivência
Ponderação
Responsabilidade
Versatilidade

Algoritmos (Prof. Leonardo Minelli) 9


Lógica
• Podemos dizer que lógica é a ciência dos princípios formais do
raciocínio
• Usar a lógica é fundamental para aqueles que desejam programar
um computador
• Devemos lembrá-los que não ensinamos ninguém a pensar, pois
todas as pessoas possuem este "dom"
• Para usar a lógica é necessário: saber pensar

“Como, não é possível ensinar ninguém a pensar o objetivo


é justamente aperfeiçoar este dom.”

Algoritmos (Prof. Leonardo Minelli) 10


Lógica e Algoritmos
• A técnica mais importante no projeto da lógica
de programas é chamada programação
estruturada, a qual consiste em uma
metodologia de projeto
– Agilizar a codificação da escrita da programação
– Permitir a verificação de possíveis falhas
apresentadas pelos programas
– Facilitar as alterações e atualizações dos
programas
Algoritmos (Prof. Leonardo Minelli) 11
Algoritmos
• Definição
– Sequência finita de passos, logicamente ordenada
para a resolução de uma determinada tarefa ou
problema

Algoritmos (Prof. Leonardo Minelli) 12


Algoritmos
• Definição (outros)

– Um conjunto finito de regras que provê uma sequência de


operações para resolver um tipo de problema específico [Knuth]

– Sequê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]

Algoritmos (Prof. Leonardo Minelli) 13


Algoritmos
• Algoritmo
– “Receita de bolo”
– Deve ter passos claros e precisos
– Os processos dos softwares são algoritmos

Algoritmos (Prof. Leonardo Minelli) 14


Algoritmos
• Algoritmo
– Algoritmos estão presentes no nosso cotidiano
• Fazer algum equipamento funcionar
• Seguir uma receita culinária
• Executar tarefas variadas

Algoritmos (Prof. Leonardo Minelli) 15


Algoritmos
• Algoritmo
– Métodos para compreender o procedimento de
executar a tarefa
• Linguagem Natural
– Narrativa
• Diagramas de bloco
– Fluxograma
• Pseudocódigo
– Programa computacional

Algoritmos (Prof. Leonardo Minelli) 16


Algoritmos
• Algoritmo
– Finalidade do estudo
• Melhoria na compreensão dos problemas
• Resolução de problemas que parecem impossíveis
• Compreensão de várias formas de solução para um
mesmo problema
• Otimização da solução de um problema (para
algoritmos mais complexos)

Algoritmos (Prof. Leonardo Minelli) 17


Algoritmos
• Algoritmo
– Processo
• O processo de construção de um algoritmo (ou da
resolução de um problema) é dada a partir da divisão
da tarefa em subtarefas, reduzindo a complexidade da
necessidade em cada momento

Algoritmos (Prof. Leonardo Minelli) 18


Algoritmos
• Algoritmo
– Processo

Problemão!

Algoritmos (Prof. Leonardo Minelli) 19


Algoritmos
• Algoritmo
– Processo

Problema

Algoritmos (Prof. Leonardo Minelli) 20


Algoritmos
• Algoritmo
– Processo

Probleminha...

Algoritmos (Prof. Leonardo Minelli) 21


Algoritmos
• Algoritmo
– Ilustrando
• Você deve fazer um bolo

... e agora, que passos devemos percorrer?

Algoritmos (Prof. Leonardo Minelli) 22


Algoritmos
• Algoritmo
– Ilustrando
• Primeiro
– Qual bolo?
• Segundo
– O que preciso para fazê-lo?
• Terceiro
– Como que devo fazê-lo?

• Uma coisa se sabe: O bolo ficará pronto

Algoritmos (Prof. Leonardo Minelli) 23


Algoritmos P
R
O
• Algoritmo B
L
– Ilustrando E
M
Ã
O

Ovos

Farinha
Bater Assar Bolo
Açúcar

Entradas Algoritmo Saídas

Algoritmos (Prof. Leonardo Minelli) 24


Algoritmos
• Algoritmo
– Todo o algoritmo possuirá entradas
• inputs
– Todo o algoritmo será um processo
– Todo o algoritmo proporcionará saídas
• outputs

Algoritmos (Prof. Leonardo Minelli) 25


Algoritmos
• Algoritmo
– Qualquer processo do dia a dia pode ser
tranquilamente retratado como exemplo de
algoritmo
– Alguns são mais específicos por área
• Matemática
• Habilidades manuais
• Computadores
• Etc.

Algoritmos (Prof. Leonardo Minelli) 26


Algoritmos
• Algoritmo
– Receita de Mousseline de Chocolate
• Saída
– 6 porções de mousseline de chocolate
• Entrada
– 1 xícara de chá de açúcar
– 3 colheres de sopa de chocolate em pó
– 3 gemas
– 2 colheres de sopa de farinha de trigo
– 3 claras em neve
– Margarina para untar

Algoritmos (Prof. Leonardo Minelli) 27


Algoritmos
• Algoritmo
– Receita de Mousseline de Chocolate
• Processo
– Misture o chocolate com o açúcar
– Adicione as gemas, a farinha de trigo e as claras em neve
– Misture bem
– Coloque em uma forma de 30 cm de diâmetro untada
– Leve ao forno baixo, preaquecido, por 15 minutos
– Sirva acompanhado de calda de chocolate e chantilly

Algoritmos (Prof. Leonardo Minelli) 28


Algoritmos
• Algoritmo
– Receita de Mousseline de Chocolate
• Processo
– Misture o chocolate com o açúcar
– Adicione as gemas, a farinha de trigo e as claras em neve
Nível de
– Misture bem
detalhes
– Coloque em uma forma de 30 cm de diâmetro untada
– Leve ao forno baixo, preaquecido, por 15 minutos
– Sirva acompanhado de calda de chocolate e chantilly

Algoritmos (Prof. Leonardo Minelli) 29


Algoritmos
• Algoritmo
– Receita de Mousseline de Chocolate
• Processo
– Misture o chocolate com o açúcar
– Adicione as gemas, a farinha de trigo e as claras em neve
– Misture bem
Nível de – Coloque em uma forma de 30 cm de diâmetro untada
abstração
– Leve ao forno baixo, preaquecido, por 15 minutos
– Sirva acompanhado de calda de chocolate e chantilly

Algoritmos (Prof. Leonardo Minelli) 30


Algoritmos
• Principais características
– Todo algoritmo deve apresentar algumas
características básicas
• Ter fim
• Não dar margem à dupla interpretação (não ambíguo)
• Capacidade de receber dados de entrada
• Poder gerar informações de saída
• Ser efetivo (ou seja, todas as etapas especificadas pelo
algoritmo devem ser alcançáveis em um tempo finito)

Algoritmos (Prof. Leonardo Minelli) 31


Algoritmos
• Diagramas de blocos
– Fluxogramas (flowcharts)
• Substituto para a representação do algoritmo em
linguagem natural
• Muito utilizado para a análise de sistemas e
programação
• Visa descrever o fluxo dos dados, seja ele manual ou
mecânico
• Utiliza símbolos convencionais
• Elaborado após a criação da linguagem natural do
processo

Algoritmos (Prof. Leonardo Minelli) 32


Algoritmos
Grafo Significado
Indica o início ou fim do
programa
Seta de fluxo de dados
Indica cálculos, atribuições de
valores, processos
Utilizado para informar a
leitura de dados
Entrada de dados
manual/natural
Impressão de valores em tela

Conector

Conector para outra página

Algoritmos (Prof. Leonardo Minelli) 33


Algoritmos
• Pseudocódigo
– Antes que um computador resolva um problema,
devemos nós resolvê-lo
• Compreender sua lógica
• Sequenciar seus passos
• Utilizar das operações necessárias para que tenhamos
êxito

Algoritmos (Prof. Leonardo Minelli) 34


Pseudocódigo
• Estrutura

Algoritmos (Prof. Leonardo Minelli) 35


Pseudocódigo
• Variáveis
– As variáveis são espaços criados na memória do
computador para guardar informações
– Estas informações são armazenadas por período
temporário pela aplicação a ser executada
(software)
– Seus valores, diferente das constantes podem
variar

Algoritmos (Prof. Leonardo Minelli) 36


Pseudocódigo
• Variáveis
– Imagine um armário:
38
Idade
1200.00
Salário Cidade
Ijuí
Nº filhos
RS
Estado
3
Nome
Fulano Ciclano
Algoritmos (Prof. Leonardo Minelli) 37
Pseudocódigo
• Variáveis
– Cada “gaveta” armazena um tipo de dado
– Se o valor na gaveta identificada for substituído, o
dado anterior se perderá
– Cada gaveta pode possuir somente UM dado
(valor)

Algoritmos (Prof. Leonardo Minelli) 38


Pseudocódigo
• Variáveis
– Tipos de dados
• Inteiro
– Número sem casas decimais (positivo, negativo ou nulo)
• Real
– Número com casas decimais (positivo, negativo ou nulo)
• Caractere
– Conjunto de caracteres alfanuméricos
• Lógico
– Tipo especial que armazena valores verdadeiros ou falsos

Algoritmos (Prof. Leonardo Minelli) 39


Pseudocódigo
• Variáveis

Algoritmos (Prof. Leonardo Minelli) 40


Pseudocódigo
• Variáveis
– Existem algumas regras a serem seguidas ao
nomearmos uma variável:
• Começar com uma letra
• Os demais caracteres podem ser letras, números ou _
(underline, underscore)
• Não podem ser utilizadas palavras reservadas
• Procure utilizar nomes sugestivos para suas variáveis
• Evite caracteres especiais

Algoritmos (Prof. Leonardo Minelli) 41


Pseudocódigo
• Variáveis

Algoritmos (Prof. Leonardo Minelli) 42


Pseudocódigo
• Operações Básicas
– Na solução da grande maioria dos problemas é
necessário que as variáveis tenham seus valores
consultados ou alterados e, para isto, devemos
definir um conjunto de OPERADORES, sendo eles:

– Atribuição
• NomeDaVariavel  Valor ou Expressão Atribuída

Algoritmos (Prof. Leonardo Minelli) 43


Pseudocódigo
• Operações Básicas
– Operadores aritméticos
Operador Operação
+ Adição
- Subtração
* Multiplicação
/, \ Divisão
+ Manutenção de sinal
- Inversão de sinal
DIV Parte inteira da divisão
MOD, % Resto da divisão
^, Exp (<base, <expoente>)
Exponenciação

Algoritmos (Prof. Leonardo Minelli) 44


Pseudocódigo
• Variáveis
– Tipos de dados
Dado 1 Operador Dado 2 Resultado
Inteiro +, -, * Inteiro = Inteiro
Inteiro +, -, * Real = Real
Real +, -, * Inteiro = Real
Real +, -, * Real = Real
Qualquer / Qualquer = Real
Inteiro DIV Inteiro = Inteiro
Inteiro MOD Inteiro = Inteiro

Algoritmos (Prof. Leonardo Minelli) 45


Pseudocódigo
• Constantes
– Em oposição às variáveis, constantes não alteram
seu valor
• Exemplo:

Variavel  1.20

• Valor 1.20, atribuído para a variável é uma constante

Algoritmos (Prof. Leonardo Minelli) 46


Pseudocódigo
• Expressões matemáticas
X={43.[55:(30+2)]}
X(43*(55/(30+2)))

ÁREA=.RAIO2
AREA3.14159*RAIO*RAIO
ou
AREA3.14159*RAIO^2

Algoritmos (Prof. Leonardo Minelli) 47


Exemplos
• Primeiro
– Deverá ser criado um programa que efetue a
leitura de dois valores numéricos. Faça a operação
de soma entre os dois valores e apresente o
resultado obtido.

Algoritmos (Prof. Leonardo Minelli) 48


Exemplos
• Primeiro
– Deverá ser criado um programa que efetue a
leitura de dois valores numéricos. Faça a operação
de soma entre os dois valores e apresente o
resultado obtido.
• Algoritmo genérico (linguagem natural)
– Obter dois valores, no caso variáveis A e B
– Efetuar a soma das variáveis A e B, implicando o seu
resultado na variável X
– Apresentar o valor da variável X após a operação de soma
dos dois valores fornecidos

Algoritmos (Prof. Leonardo Minelli) 49


Resolução Primeiro Exemplo
• Diagrama de Blocos • Português Estruturado
Início

Qual o valor de A?

Qual o valor de B?

XA+B

Fim Algoritmos (Prof. Leonardo Minelli) 50


Exemplos
• Segundo
– Desenvolver a lógica, o diagrama de blocos e o
programa em português estruturado para resolver
um problema que efetue o cálculo a área de uma
circunferência, apresentando a medida da área
calculada.

Algoritmos (Prof. Leonardo Minelli) 51


Exemplos
• Segundo
– Desenvolver a lógica (algoritmo genérico), o
diagrama de blocos e o programa em português
estruturado para resolver um problema que efetue
o cálculo a área de uma circunferência,
apresentando a medida da área calculada.
• Algoritmo genérico (linguagem natural)
– Obter o valor, no caso variáveis R
– Estabelecer que pi vale 3.14159
– Efetuar o cálculo de A  3.14159*R*R
– Apresentar o valor da variável A

Algoritmos (Prof. Leonardo Minelli) 52


Resolução Segundo Exemplo
• Diagrama de Blocos • Português Estruturado
Início

Qual o valor do Raio?

A3.14159*R*R

Fim

Algoritmos (Prof. Leonardo Minelli) 53


Revisão teórica
• O que são variáveis e no que elas se diferenciam das constantes?

• Escreva 3 exemplos de nomes de variáveis inválidas.

• Qual a relação, se é que existe, entre lógica e algoritmo?

• Cite e comente uma característica que você julga ser indispensável para
um bom algoritmo.

• Qual a diferença entre Diagrama de blocos e fluxograma?

• O que é português estruturado?

• Quais são os tipos de dados mais frequentemente implementados na


maioria das linguagens de programação?

Algoritmos (Prof. Leonardo Minelli) 54


Exercício 1
• A partir de uma temperatura em Graus
Fahrenheit converta-a em Graus Celsius. A
fórmula de conversão é: C  (F-32)*(5/9),
onde F é a temperatura em Graus Fahrenheit
e C é a temperatura em Graus Celsius.

Algoritmos (Prof. Leonardo Minelli) 55


Exercício 2
• Calcular e apresentar o valor do volume de um
barril de óleo utilizando a fórmula:
• VOLUME3.14*R^2*ALTURA

Algoritmos (Prof. Leonardo Minelli) 56


Exercício 3
• Ler quatro números e apresentar dois a dois o
resultado da adição e multiplicação,
baseando-se na propriedade distributiva. Ou
seja, se forem lidas as variáveis A,B,C e D,
deverão ser somadas e multiplicadas A com B,
A com C, A com D. Depois B com C, B com D e
por fim C com D.

Algoritmos (Prof. Leonardo Minelli) 57


Exercício 4
• Ler dois valores para vaiáveis A e B, efetuar a
troca dos valores de forma que a variável A
possa possuir o valor da variável B e que a
variável B passe a possuir o valor o valor da
variável A. Apresentar os valores trocados.

Algoritmos (Prof. Leonardo Minelli) 58


Exercício 5
• Efetuar o cálculo do valor de uma prestação
em atraso utilizando a fórmula:
• PRESTACAOVALOR+(VALOR*(TAXA/100)*TEMPO)

Algoritmos (Prof. Leonardo Minelli) 59


Exercício 6
• Ler dois valores Inteiros A e B e efetuar as
operações de adição, subtração, multiplicação
e divisão de A por B, apresentando no final os
quatro resultados obtidos.

Algoritmos (Prof. Leonardo Minelli) 60

Você também pode gostar