Algoritmos e Lógica de Programação
Formas de representar um algoritmo
„
Como representar um algoritmo?
ƒ Algoritmos podem ser representados, dentre outras
Construção de
Algoritmos
maneiras, por:
• DESCRIÇÃO NARRATIVA
– Utiliza
Utili uma linguagem
li
de
d escrita
it natural
t l para descrever
d
algoritmos
l it
• FLUXOGRAMA (DIAGRAMA DE MÓDULOS)
– Utiliza uma linguagem de representação gráfica para descrever
algoritmos
Conceitos Introdutórios
• LINGUAGEM ALGORÍTMICA (PSEUDO-CÓDIGO)
– Utiliza uma linguagem de escrita artificial para descrever algoritmos
Reinaldo Gomes
[email protected]
Formas de representar um algoritmo
„
Exemplo: Algoritmo para converter uma temperatura
em Fahrenheit para Celsius
„
Descrição narrativa do algoritmo Fahrenheit
Fahrenheit-Celsius
Celsius
Formas de representar um algoritmo
Exemplo: Algoritmo para converter uma temperatura
em Fahrenheit para Celsius
„ Fluxograma
„
ƒ Solicite a temperatura em Fahrenheit
ƒ Transforme a temperatura em Fahrenheit para Celsius
ƒ Informe a temperatura em Celsius
Formas de representar um algoritmo
Formas de representar um algoritmo
Exemplo: Algoritmo para converter uma temperatura
em Fahrenheit para Celsius
„ Linguagem Algorítmica (Pseudo-Código)
„
„
Algoritmo Fahrenheit-Celsius
Fahrenheit Celsius
Real: Fahrenheit, Celsius;
Início
Ler (Fahrenheit);
Celsius -> 5/9 * (Fahrenheit – 32);
Escrever (Celsius);
Fim
Ferramentas – Fluxograma (Principais Símbolos)
Início
Indica o ponto onde começa o algoritmo. Não
é codificado em forma de comando.
Ler X, ... Y
Indica operação de leitura ou entrada dos
dados para os locais chamados X, ..., Y na
memória do computador.
Z = Expressão
Indica operação aritmética ou cálculo de uma
fórmula.
1
Formas de representar um algoritmo
„
Ferramentas - Fluxograma (Principais Símbolos)
<
>
Comparar
Z com W
Formas de representar um algoritmo
„
Indica comparação de um valor com outro.
Conforme o resultado desta comparação, um
dos três caminhos diferentes será seguido
nesse algoritmo.
algoritmo
Ferramentas - Fluxograma (Principais Símbolos)
N
Conectivo que indica o local para onde o
fluxo do algoritmo deve ser desviado, onde
N é um número natural seqüencial, iniciando
)
com o valor 1 ((um).
=
Z :: W ?
Sim
Não
Indica verificação ou comparação em forma
de pergunta, podem ocorrer uma das
respostas ‘Sim’ ou ‘Não’. O sinal ‘::’ pode ser
‘=’, ‘<>’, ‘>’, ‘<’, etc.
Formas de representar um algoritmo
„
Ferramentas – Linguagem Algorítmica
(Pseudo-Código)
„
Ferramentas – Linguagem Algorítmica
(Pseudo-Código)
ƒ [<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
Pare ou Fim
Indica o ponto onde o algoritmo suspende a
execução de comando(s) ou seu fim.
Ferramentas – Linguagem Algorítmica
(Pseudo-Código)
ƒ Algoritmo
• Indica o início da definição do algoritmo
Algoritmo <nome_do_algoritmo>
[<declaração_de_variáveis>]
[<sub-algoritmos>]
Início
<corpo_do_algoritmo>
Fim.
„
Indica operação de saída ou impressão do
valor Z numa linha da impressora.
Formas de representar um algoritmo
ƒ A forma geral de um algoritmo em pseudo-código :
Formas de representar um algoritmo
Escrever Z
ƒ <nome_do_algoritmo>
• Nome dado ao algoritmo para distinguí-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
subalgoritmos
Formas de representar um algoritmo
„
Comparação
Descrição
Narrativa
Solicite a
temperatura em
Fahrenheit.
Transforme de
Fahrenheit para
Celsius.
Informe a
temperatura em
Celsius
Fluxograma
Linguagem Algorítmica
Algoritmo Fahrenheit-Celsius
R l Fahrenheit,
Real:
F h h i C
Celsius;
l i
Início
Ler (Fahrenheit);
Celsius 5/9 * (Fahrenheit – 32);
Escrever (Celsius);
Fim
2
Formas de representar um algoritmo
„
Comparação
Vantagens
Desvantagens
Descrição
Narrativa
O português é bastante conhecido
por nós.
Imprecisão;
Pouca confiabilidade (a imprecisão
acarreta a desconfiança);
Extensão (normalmente, escreve-se
muito para dizer pouca coisa).
coisa)
Fluxograma
Padrão mundial;
Ferramenta bem conhecida;
Figuras dizem muito mais que palavras;
Complica-se à medida que o
algoritmo cresce;
Pouca atenção aos dados, não
oferecendo recursos para declará-los
Linguagem
Algorítmica
Exige a definição de uma linguagem
Independência de linguagem de
não real para trabalho;
programação;
Não é padronizada.
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.
Construindo Algoritmos
„
No algoritmo Fahrenheit-Celsius temos
Construindo Algoritmos
„
Uma boa prática para construir algoritmos é dividir o
problema em 3 fases (Entrada, Processamento e
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
„
Dividir o problema em Entrada, Processamento e
Saída irá ajudá-lo a ordenar corretamente as
instruções do seus algoritmos
„
Por isso, antes de construir um algoritmo, pare para
pensar e identificar:
ƒ 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
ƒ Quais dados preciso para começar? – Entrada
ƒ ENTRADA: Base e Altura do triângulo
ƒ Quais são os cálculos e decisões? – Processamento
ƒ PROCESSAMENTO: Área = (Base * Altura)/2
ƒ Quais dados devem ser exibidos? – Saída
ƒ SAÍDA: Área
Programação Estruturada
„
Problema:
ƒ Nos primórdios da programação os programas eram
desenvolvidos de forma intuitiva
ƒ Neste tipo de abordagem era comum o uso de desvios
incondicionais (vá para/goto) para codificação das
soluções
ƒ Porém a abordagem intuitiva falha quando os programas
são grandes e complicados
Programação Estruturada
„
Problema:
ƒ Nos primórdios da programação os programas eram
desenvolvidos de forma intuitiva
ƒ Neste tipo de abordagem era comum o uso de desvios
incondicionais (vá para/goto) para codificação das
soluções
ƒ Porém a abordagem intuitiva falha quando os programas
são grandes e complicados
3
Programação Estruturada
Programação Estruturada
Algoritmo UmExemploNãoEstruturado;
Inicio
Escreva( “Início do programa”);
Vá Para Marca; {ou GOTO Marca}
//Isso nunca será executado!
Escreva( “Meio do programa”);
Marca; {continua a partir daqui}
Escreva (“Fim do programa”);
Fim.
„
ƒ Nos anos 70 surgiu a programação estruturada como
solução destes problemas
Desvio
Incondicional
Exercício
„
Identifique a entrada, o processamento e a saída dos
problemas abaixo
ƒ Calcular e exibir a média ponderada de 2 notas dadas.
ƒ
ƒ
ƒ
ƒ
Como resolver esse tipo de problema?
(nota1= peso 6 e nota2= peso 4)
Reajustar um salário em 17,75%
Calcular o desconto de 23% sobre o preço de um produto
Dada uma taxa de câmbio, transformar um valor em
Dólar para Reais
Dada uma taxa de câmbio, transformar um valor em
Reais para Dólar
ƒ Programação estruturada (Algoritmo Estruturado)
• “É a arte
t ou té
técnica
i dde construir
t i e fformular
l algoritmos
l it
dde fforma
sistemática ". Niklaus Wirth (Pai do PASCAL)
ƒ Objetivos:
• Facilitar a escrita, leitura e compreensão dos programas;
• Permitir a verificação/testes a priori dos programas;
• Facilitar a manutenção dos programas.
• Possibilitar o desenvolvimento em equipe
• Reduzir a complexidade
Algoritmos e Lógica de Programação
Construção de
Algoritmos
Conceitos Introdutórios
Reinaldo Gomes
[email protected]
4
Download

Construção de Algoritmos Algoritmos