• Nenhum resultado encontrado

Engenharia de resolução de problemas

N/A
N/A
Protected

Academic year: 2021

Share "Engenharia de resolução de problemas"

Copied!
13
0
0

Texto

(1)

PC-I © MAP’2019 Algoritmos e Fluxogramas

Engenharia de resolução de problemas

O processo de resolução de um problema pode ser visto como uma seqüência de passos que devem ser definidos e aprimorados, até que o modelo escolhido para sua representação forneça resultados satisfatórios.

Uma boa modelagem exige alto nível de abstração e conhecimentos

acadêmicos (teoria) e/ou empíricos (prática) sobre o problema em

questão.

25

PROBLEMA análise MODELO síntese SOLUÇÃO

- teoria - dados - condições

- etapas - métodos

Algoritmo (definição for dummies)

“Receita” para resolver um problema.

Como fazer arroz (versão du chef)

1. Lave uma medida de arroz. 2. Ferva duas medidas de água. 3. Adicione óleo na panela. 4. Frite os temperos. 5. Adicione o arroz. 6. Adicione a água. 7. Adicione o sal.

8. Deixe cozinhar até secar.

Como fazer arroz (versão preguiça)

(2)

PC-I © MAP’2019 Algoritmos e Fluxogramas

Algoritmo (outro exemplo)

27

Preparação para a balada

1. Escove os dentes.

2. Se for homem, faça a barba. Senão, depile as pernas. 3. Tome banho.

4. Aplique desodorante.

5. Se for mulher, aplique perfume. Senão, aplique colônia.

6. Vista uma roupa adequada.

Escovar os dentes

1. Pegue a escova de dentes. 2. Coloque creme dental na escova. 3. Enxague a boca. 4. Escove os dentes. 5. Escove a língua. 6. Lave a escova. 7. Enxague a boca. 8. Seque o rosto.

Algoritmo (definição formal)

Um algoritmo é uma seqüência finita de instruções, com uma ou mais operações capazes de serem executadas por um computador em

tempo finito, para a realização de uma tarefa específica.

Características de um bom algoritmo: • Finitude

• Exatidão

• Entradas e saídas bem determinadas • Efetividade

(3)

PC-I © MAP’2019 Algoritmos e Fluxogramas

Algoritmo: finitude

o Um algoritmo sempre deve terminar após um número finito de passos. o Um algoritmo sempre deve terminar após uma quantidade finita de

tempo.

o Um algoritmo deve ser executado com uma quantidade finita de recursos.

29

Algoritmo: exatidão

o Cada passo de um algoritmo deve ser definido com precisão. o A seqüência dos passos deve ser claramente determinada. o As instruções não podem admitir ambigüidade.

• O homem viu o menino com o telescópio. (quem está com o telescópio?)

• João e Maria moram juntos.

(4)

PC-I © MAP’2019 Algoritmos e Fluxogramas

Algoritmo: entradas e saídas

Entradas

o Um algoritmo deve operar sobre um ou mais valores externos.

• Os valores correspondem aos dados necessários para iniciar a execução do algoritmo.

o Em alguns casos, os dados de entrada são parte integrante do algoritmo.

Saídas

o Um algoritmo deve produzir alguma informação.

• Algum resultado deve ser produzido até a execução da última instrução do algoritmo, de acordo com a entrada fornecida.

31

Algoritmo: efetividade

o Um algoritmo deve ser realizável. o Todas as instruções devem ser:

• Tão simples quanto possível.

• Suficientes para resolver o problema. • Executáveis com lápis e papel.

(5)

PC-I © MAP’2019 Algoritmos e Fluxogramas

Fluxograma

33 • Representação gráfica,

estruturada e simplificada. • Ilustra o fluxo (seqüência) de

operações.

• Símbolos padronizados. • Sintaxe e semântica bem

definidos.

• Fácil de traduzir para qualquer linguagem de programação.

Fluxograma: semântica e sintaxe

o A semântica de um fluxograma corresponde ao significado dos símbolos utilizados.

• Cada instrução possui um símbolo gráfico específico.

• A instrução deve ser escrita dentro do símbolo de forma clara.

o A sintaxe de um fluxograma corresponde ao emprego correto de seus elementos.

• Cada símbolo admite um conjunto de expressões próprias.

(6)

PC-I © MAP’2019 Algoritmos e Fluxogramas

Fluxograma: principais símbolos usados em Computação

35

Símbolo Nome Função

terminador Determina o início ou o fim do processamento.

fluxo Indica o sentido da execução do algoritmo.

conector Indica ligações com outras partes de um fluxograma.

atribuição Armazenamento temporário do resultado de um processamento.

processo Realiza o cálculo de expressões e/ ou a execução de funções.

leitura Entrada manual de dados, em tempo de execução.

exibição Apresentação dos resultados do processamento.

decisão Avaliação de uma expressão relacional ou lógica.

sub-rotina Processamento de funções ou chamada a procedimentos.

Fluxograma: regras

o Um fluxograma deve ser claro, simples e de fácil leitura. Não deve haver ambigüidade na interpretação de um fluxograma.

o A direção de descrição do fluxo de um sistema é de cima para baixo ou da esquerda para a direita.

o Apenas uma linha de fluxo deve partir de ou chegar a um terminador. Início

(7)

PC-I © MAP’2019 Algoritmos e Fluxogramas

Fluxograma: regras

o O símbolo de processo admite apenas uma linha de saída de fluxo.

o O símbolo de decisão admite apenas uma linha de entrada de fluxo, mas duas ou três linhas de saída são possíveis:

37

V F <0 >0

=0

Fluxograma: regras

o O texto dentro de cada símbolo deve ser adequado à instrução a ser executada.

o Use conectores para reduzir o número de linhas do fluxograma. o Evite cruzar linhas, para não comprometer o entendimento do

fluxograma.

o A validação de um algoritmo descrito por um fluxograma pode ser feita através da execução de um conjunto de dados de teste.

(8)

PC-I © MAP’2019 Algoritmos e Fluxogramas

Operadores

Os seguintes símbolos são utilizados como operadores na linguagem C:

39 Aritméticos Símbolo Operação + adição subtração * multiplicação / divisão % módulo Relacionais Símbolo Significado < menor que > maior que <= menor ou igual à >= maior ou igual à == igual != diferente Lógicos Símbolo Operação && AND || OR ! NOT

Atribuição

A atribuição é um comando utilizado para armazenamento temporário de valores.

O resultado do processamento descrito no lado direito do símbolo ← será atribuído para a variável discriminada no lado esquerdo.

Atenção

A atribuição é um comando destrutivo, ou seja, o valor anterior será substituído pelo novo valor. A ! 100 A ! 100 B ! 3.14*A A ! 100 B ! 3.14*A A ! sin(B)

(9)

PC-I © MAP’2019 Algoritmos e Fluxogramas

Estruturas básicas de programação

No paradigma de programação estruturada, os programas são escritos considerando apenas combinações adequadas de três estruturas básicas: • seqüência

• seleção • repetição.

Cada estrutura tem um único ponto de entrada e um único ponto de saída, representado pelo símbolo conector.

Nessas estruturas, o símbolo de processo (retângulo) pode ser utilizado para representar qualquer ação, incluindo leitura de dados e exibição de resultados.

41

Estruturas básicas de programação: seqüência

Seqüência: o fluxo de execução das instruções ocorre de modo

linear, uma após a outra.

Deve existir apenas um caminho possível no conjunto de instruções de um algoritmo.

(10)

PC-I © MAP’2019 Algoritmos e Fluxogramas

Exemplo: seqüência

Ler e exibir dois valores numéricos A e B. Depois, trocar o valores entre si e exibir novamente.

43 Sejam:

A: um valor numérico. B: outro valor numérico.

Devido ao caráter destrutivo do comando de atribuição, é necessário definir uma variável K que desempenha um papel de variável de armazenamento temporário, guardando o valor inicial da variável A, que será atualizada com o valor inicial da variável B. A, B A, B A, B Início K ! A A ! B B ! K Fim início do algoritmo ler os dois valores, que serão atribuídos à A e B exibir os valores originais atribuir o valor de A à variável K (cópia) atribuir valor de B à variável A atribuir o valor de K à variável B

exibir os valores após a troca

fim do algoritmo

Exemplo: seqüência

Determinar o saldo de uma aplicação financeira, com investimento inicial de R$ 100,00 e juros de 1% ao mês, ao final do 3º mês.

Sejam:

I: o valor do investimento inicial. J: a taxa de juros.

P: o saldo ao final do primeiro mês. S: o saldo ao final do segundo mês. T: o saldo ao final do terceiro mês.

Início I ! 100 J ! 0.01 P ! I + J*I S ! P + J*P T ! S + J*S T Fim início do algoritmo o valor 100 é atribuído à variável I o valor 0.01 é atribuído à variável J

cálculo do saldo ao final do primeiro mês (P) cálculo do saldo ao final do segundo mês (S) cálculo do saldo ao final do terceiro mês (T) informa o saldo final T fim do algoritmo

(11)

PC-I © MAP’2019 Algoritmos e Fluxogramas

Seleção: execução seletiva de um grupo de instruções baseada em

alguma condição, representada por uma expressão lógica ou relacional.

Criam alternativas no fluxo de execução das instruções do algoritmo. Em tempo de execução, apenas uma das alternativas será escolhida.

Estruturas básicas de programação: seleção

45 Seleção simples F V F V Seleção composta

Exemplo: seleção

Ler dois valores numéricos, compará-los e exibir o maior valor.

Sejam:

A: um valor numérico. B: outro valor numérico.

V F Início Fim A, B A > B B A início do algoritmo ler A e B comparar A e B exibir o maior valor

(12)

PC-I © MAP’2019 Algoritmos e Fluxogramas

Estruturas básicas de programação: repetição

Repetição: execução seletiva de um grupo de instruções até que

alguma condição seja satisfeita. O fluxo da execução pode realizar várias repetições de um mesmo conjunto de comandos, antes de prosseguir para a etapa seguinte.

47 Iteração com teste no fim F V F V Iteração com teste no início

Exemplo: iteração

Calcular o resto da divisão inteira entre dois números inteiros positivos. Sejam: A: o valor do dividendo. B: o valor do divisor. Q: o valor do quociente. R: o valor do resto. início do algoritmo ler A e B inicializar o valor do quociente Q exibir o valor do resto R fim do algoritmo V F Início Fim A, B A >= B Q ! 0 A ! A – B Q ! Q + 1 R ! A R atualizar o valor do resto R comparar A e B atualizar o valor do dividendo A atualizar o valor do quociente Q e retornar

(13)

PC-I © MAP’2019 Algoritmos e Fluxogramas

Fluxogramas estruturados

As estruturas básicas podem ser combinadas entre si, utilizando apenas duas regras:

• Regra do empilhamento: o ponto de saída de uma estrutura pode ser conectado ao ponto de entrada de outra estrutura.

• Regra do aninhamento: Um retângulo de uma estrutura pode ser substituído por uma outra estrutura qualquer.

Essas regras podem ser aplicadas quantas vezes forem necessárias, e em qualquer ordem.

Os fluxogramas resultantes da aplicação dessas regras constituem o conjunto de todos os fluxogramas estruturados possíveis.

49

Referências

Documentos relacionados

Objeto: Pregão Eletrônico - Re- gistro de Preços para a eventual aquisição de materiais de audiovisual e tecnologia da informação para atender ao Campus Blumenau da

[r]

Promovido pelo Sindifisco Nacio- nal em parceria com o Mosap (Mo- vimento Nacional de Aposentados e Pensionistas), o Encontro ocorreu no dia 20 de março, data em que também

Apesar de o mercado acionário brasileiro ter se tornado mais importante para a economia brasileira, sobretudo entre o período de 2002 para 2005 (Tabela 3), sua repre- sentatividade

O objetivo do curso foi oportunizar aos participantes, um contato direto com as plantas nativas do Cerrado para identificação de espécies com potencial

Para análise da susceptibilidade à erosão dos solos que compunham as paredes da voçoroca, foram realizados ensaios de Pinhole (Furo de Agulha), Desagregação e Dispersão

A assistência da equipe de enfermagem para a pessoa portadora de Diabetes Mellitus deve ser desenvolvida para um processo de educação em saúde que contribua para que a

Ninguém quer essa vida assim não Zambi.. Eu não quero as crianças