Algoritmo - AF Tecnologia

Propaganda
Estrutura de Dados
Algoritmos
Antonio Felicio Netto
[email protected]
Algoritmo
O que é um algoritmo?
– Processo sistemático para computar um resultado a partir de dados de
entrada
O que são estruturas de dados?
– Maneira de organizar dados e operar sobre eles
Algoritmos + estruturas de dados = programas
– Um programa é a expressão em linguagem formal (inteligível por um
computador) de um algoritmo
Formas de Representar Algoritmo
–
DESCRIÇÃO NARRATIVA
Utiliza uma linguagem de escrita natural para descrever
algoritmos.
–
FLUXOGRAMA (DIAGRAMA DE MÓDULOS)
Utiliza uma linguagem de representação gráfica para descrever
algoritmos.
–
LINGUAGEM ALGORÍTMICA (PSEUDO-CÓDIGO)
Utiliza uma linguagem de escrita artificial para descrever
algoritmos.
Exemplo de representação
Um algoritmo para converter Fahrenheit e Celsius
Descrição Narrativa
1 - solicite a temperatura em Fahrenheit;
2 - transforme a temperatura em Fahrenheit para Celsius;
3- informe a temperatura em Celsius.
Fluxograma
Seus principais símbolos gráficos são:
= Início e final do fluxograma
= Operação de entrada de dados
= Operação de saída de dados em impressora
= Operação de saída de dados em vídeo
= Operações de processamento
= Decisão
= Seta de Fluxo de Dados
Fluxograma do algoritmo
Início
Início do algoritmo
Fahrenheit
Entrada da temperatura (F)
Celsius = 5/9 * (Fahrenheit – 32)
Cálculo da temperatura (C)
Apresentação do resultado
Celsius
Fim do algoritmo
Fim
Linguagem Algorítmica
A forma geral de um algoritmo em pseudo-código:
Algoritmo <nome_do_algoritmo>
[<declaração_de_variáveis>]
[<sub-algoritmos>]
Início
<corpo_do_algoritmo>
Fim
Linguagem Algorítmica
Onde:
–
Algoritmo
Indica o início da definição do algoritmo.
–
<nome_do_algoritmo>
Nome dado ao algoritmo para distingui-lo dos demais.
–
[<declaração_de_variáveis>]
Parte opcional onde são declaradas as variáveis globais usadas no
algoritmo principal e, eventualmente, nos sub-algoritmos.
Linguagem Algorítmica
Onde:
–
[<subalgoritmos>]
Parte opcional onde são definidos os sub-algoritmos.
–
Início
Palavra que delimita o início do corpo do algoritmo.
–
<corpo_do_algoritmo>
Conjunto de instruções do algoritmo.
–
Fim
Palavra que delimita o término do corpo do algoritmo.
Pseudo-código do Algoritmo
Algoritmo Fahrenheit-Celsius
Real: Fahrenheit, Celsius;
Início
Leia (Fahrenheit);
Celsius
5/9 * (Fahrenheit – 32);
Escreva (Celsius);
Fim
Formas de representar o algoritmo
Desc. Narrativa
1- Solicite a
temperatura em
Fahrenheit.
2- Transforme de
Fahrenheit para
Celsius.
3- Informe a
temperatura em
Celsius.
Fluxograma
Início
Fahrenheit
Celsius = 5/9 *
(Fahrenheit – 32)
Celsius
Fim
Ling. Algorítmica
Algoritmo Fahrenheit-Celsius
Real: Fahrenheit, Celsius;
Início
Leia (Fahrenheit);
Celsius
5/9 * (Fahrenheit – 32);
Escreva (Celsius);
Fim
Formas de representar o algoritmo
Vantagens
Desvantagens
Descrição
Narrativa
• O português é bastante conhecido • Imprecisão.
Fluxograma
• Padrão mundial.
• Ferramenta bem conhecida.
• Figuras dizem muito mais que
palavras.
• Independência de linguagem de
programação.
• Usa o português como base.
• Define-se melhor quais e como os
dados vão estar estruturados.
• Passagem quase imediata do
algoritmo para uma linguagem de
programação qualquer.
Linguagem
Algorítmica
por nós.
• Pouca confiabilidade (a imprecisão
acarreta a desconfiança).
• Extensão (normalmente, escreve-se
muito para dizer pouca coisa).
• Complica-se à medida que o
algoritmo cresce.
• Pouca atenção aos dados, não
oferecendo recursos para declará-los.
• Exige a definição de uma linguagem
não real para trabalho.
• Não é padronizada.
Construindo Algoritmos
Uma boa prática para construir algoritmos é dividir o problema em 3 fases
(Entrada, Processamento e Saída).
Entrada
–
–
–
Processamento
Saída
ENTRADA: São os dados de entrada do algoritmo.
PROCESSAMENTO: São os procedimentos utilizados para chegar ao
resultado final.
SAÍDA: São os dados já processados.
Construindo Algoritmos
No algoritmo Fahrenheit-Celsius temos:
–
ENTRADA: Temperatura em Fahrenheit
–
PROCESSAMENTO: Celsius = 5/9 *(Fahrenheit – 32)
–
SAÍDA: Temperatura em Celsius
Num algoritmo para calcular a área de um triângulo temos:
–
ENTRADA: Base e Altura do triângulo
–
PROCESSAMENTO: Área = (Base * Altura)/2
–
SAÍDA: Área
Construindo Algoritmos
Dividir o problema poderá ajudá-lo na solução (divisão e conquista);
Por isso, antes de começar a elaborar o algoritmo divida o problema em:
Entrada
Que dados preciso para começar?
Quais são os cálculos e decisões?
Processamento
Que dados devem ser exibidos
Saída
Exercícios
Identifique a entrada, o processamento e a saída dos problemas abaixo:
1. Calcular e exibir a média ponderada de 2 notas dadas. (nota1= peso
6 e nota2= peso 4)
2. Reajustar um salário em 17,75%.
3. Calcular o desconto de 23% sobre o preço de um produto.
4. Dada uma taxa de câmbio, transformar um valor em Dólar para
Reais.
5. Dada uma taxa de câmbio, transformar um valor em Reais para
Dólar.
Respostas
1 - Calcular e exibir a média ponderada de 2 notas dadas. (nota1= peso 6 e
nota2= peso 4)
–
ENTRADA: nota1 e nota2
–
PROCESSAMENTO: médiaP=((nota1 * 6)+(nota2 * 4))/(6+4)
–
SAÍDA: médiaP
2 - Reajustar um salário em 17,75%.
–
ENTRADA: salário
–
PROCESSAMENTO: salárioR = salário+(salário*0,1775)
–
SAÍDA: salárioR
Respostas
3- Calcular o desconto de 23% sobre o preço de um produto.
–
ENTRADA: preço
–
PROCESSAMENTO: desconto = preço*0,23
–
SAÍDA: desconto
4 - Dada uma taxa de câmbio, transformar um valor em Dólar para Reais.
–
ENTRADA: câmbio e dólar
–
PROCESSAMENTO: real = dólar * câmbio
–
SAÍDA: real
Respostas
5- Dada uma taxa de câmbio, transformar um valor em Reais para Dólar.
–
ENTRADA: câmbio e real
–
PROCESSAMENTO: dólar = real/câmbio
–
SAÍDA: dólar
Respostas
5- Dada uma taxa de câmbio, transformar um valor em Reais para Dólar.
–
ENTRADA: câmbio e real
–
PROCESSAMENTO: dólar = real/câmbio
–
SAÍDA: dólar
Linguagem Algorítmica
Adotaremos a seguinte sintaxe
Algoritmo <nome_do_algoritmo>
[<declaração_de_variáveis>] tipo: <nome>
[<sub-algoritmos>] função <nome> <argumentos> : <retorno>
Início
<corpo_do_algoritmo>
Fim
Linguagem Algorítmica
Comandos:
Condição : Se <comparação> então ; senão; fimse
Laços: Enquanto <comparação> faça; fimenquanto
Para <variável> até <valor> passo <incremento> faça; fimpara
Atribuição:
Entrada de dados : Leia (<variável>)
Saída de dados : Escreva (“Texto”<variavel)
Exercícios
Elabore os algoritmos dos problemas abaixo:
1. Calcular e exibir a média ponderada de 2 notas dadas. (nota1= peso
6 e nota2= peso 4)
2. Reajustar um salário em 17,75%.
3. Calcular o desconto de 23% sobre o preço de um produto.
4. Dada uma taxa de câmbio, transformar um valor em Dólar para
Reais.
Respostas
Calcular e exibir a média ponderada de 2 notas dadas. (nota1= peso 6 e
nota2= peso 4)
Algoritmo CalculaNota
Real: nota1, nota2, mediaP
Início
Escreva (“Digite a Nota 1”)
Leia (nota1)
Escreva (“Digite a Nota 2”)
Leia (nota2)
mediaP
((nota1 * 6)+(nota2 * 4))/(6+4)
Escreva ( “A média das notas é: “, mediaP)
Fim
Respostas
Reajustar um salário em 17,75%.
Algoritmo ReajusteSalario
Real: salario, salarioR
Início
Escreva (“Digite o salário atual”)
Leia (salario)
salarioR
salario+(salario*0,1775)
Escreva ( “O salário reajustado é: “, salarioR)
Fim
Respostas
Calcular o desconto de 23% sobre o preço de um produto
Algoritmo Desconto
Real: desconto, preco
Início
Escreva (“Digite o preço do produto”)
Leia (preco)
desconto
preco * 0,23
Escreva ( “O desconto do preço do produto é de : “, desconto )
Fim
Respostas
Dada uma taxa de câmbio, transformar um valor em Dólar para Reais
Algoritmo Cambio
Real: vlrreal, vlrdolar, txcambio
Início
Escreva (“Digite o valor em Dólar”)
Leia (vlrdolar)
Escreva (“Digite a taxa de câmbio”)
Leia (txcambio)
vlrreal
vlrdolar * txcambio
Escreva ( “O Valor em Reais é de R$”, vlrreal)
Fim
Respostas
Dada uma taxa de câmbio, transformar um valor em Dólar para Reais
Algoritmo Cambio
Real: vlrreal, vlrdolar, txcambio
Início
Escreva (“Digite o valor em Dólar”)
Leia (vlrreal)
Escreva (“Digite a taxa de câmbio”)
Leia (txcambio)
vlrreal
vlrdolar * txcambio
Escreva ( “O Valor em Reais é de R$”, vlrreal)
Fim
Download