Programação Estruturada e Desenho de Algoritmos Flashcards
Solução de um problema
Definição do problema
Modelação matemática
(construção do modelo)
Determinação da solução
Análise dos resultados
- validação do modelo
- análise da solução
Definição do problema
Definir/descrever o problema real que se pretende resolver
Modelação matemática(Construção do modelo)
- O problema real é transformado num problema matemático, por uma
formulação matemática denominada modelo matemático - Geralmente, o modelo matemático possui mais soluções que o problema real
Determinação da solução
*Escolha do método
*Elaboração do algoritmo
*Implementação do algoritmo
*Obtenção da solução
Escolha do método mais apropriado
Devemos ter em conta:
*precisão desejada para os resultados
*capacidade do método em conduzir aos resultados desejados
*esforço computacional despendido (tempo de processamento e memória)
Elaboração do algoritmo
A descrição do algoritmo é feita por um conjunto de comandos que, quanto
ativados (executados), resultam numa sucessão finita de ações (acontecimentos)
- Em vez de se implementar um método diretamente numa linguagem de programação, é
preferível descrevê-lo por uma notação algorítmica
*é possível abstrair-se dos detalhes da linguagem de programação do computador e
concentrar-se apenas nos aspetos matemáticos do método (raciocínio matemático)
*melhora o entendimento do algoritmo, facilitando assim a implementação do método
em qualquer linguagem de programação
Implementação do algoritmo(codificação do programa)
*O algoritmo é implementado na linguagem de programação escolhida
*Uma vez que os aspetos matemáticos do método já foram pensados na fase de
elaboração do algoritmo, agora apenas é necessário preocupar-se com os detalhes de
implementação na linguagem adotada
Obtenção da solução(Execução do programa)
- O código obtido da implementação do algoritmo deve ser executado pelo computador
- Se for detetado algum erro lógico na fase de processamento (a execução do programa
produzir resultados inesperados), então deve-se regressar à fase de elaboração do
algoritmo para o corrigir - Se não for detetado qualquer erro lógico na fase de processamento, então foram
obtidos os resultados do modelo matemático (a solução)
Análise dos dados
*Verificar a consciência da solução obtida
*Validação do modelo
*Análise da solução
Verificar a consciência da solução obtida
para o modelo matemático (validação do modelo), e
- a sua adequação ao problema real (análise da solução)
Validação do mundo
Se a solução não for satisfatória para o modelo (modelo
não válido), então deve-se
* construir um novo modelo matemático (uma nova formulação matemática), e
* determinar as soluções do novo modelo matemático
Análise da solução
Alguns modelos matemáticos podem
* produzir várias soluções (e não apenas uma), e
* algumas delas (ou todas) não terem sentido (ex: tempo negativo, …)
Um dos objetivos desta etapa é identificar qual a solução válida para o problema real
entre as várias obtidas para o modelo matemático (se existirem)
Programação estruturada
*Define um conjunto de regras para elaboração de programas/algoritmos,
*baseia-se no desenho modular dos programas/algoritmos (programação modular), e
*baseia-se no refinamento gradual do topo para a base (método descendente)
*Segundo este paradigma um programa pode ser definido da seguinte forma:
Programa = Estrutura de Dados + Algoritmo
* um algoritmo manipula os dados, que podem ser de diversos tipos
* a estrutura de dados é o modo como os dados são organizados, acedidos e alterados
*A Programação Estruturada permite o desenvolvimento de algoritmos usando um
número restrito de estruturas básicas de controle, para a construção da lógica de
um programa
* qualquer algoritmo, independentemente da área de aplicação, da sua complexidade e da linguagem de programação usada na sua codificação, pode ser descrito através destas
estruturas básicas de controlo
Goto
Comando de desvio incondicional (saltos)
técnica independente da linguagem de programação usada, que tem como
objetivo construir programas claros, legíveis, eficientes e de fácil manutenção
- Programa escrito com indentação (realce), espaços em branco e comentários para
facilitar a leitura do mesmo
- Desenho descendente e segmentação em módulos (subprogramas/funções)
- Construção de módulos (subprogramas/funções) de tamanho adequado
- Declaração do domínio de ação das variáveis locais (dentro das funções) e
globais (no programa inteiro)
- Documentação do programa
Programação Linear
Usa desvios incondicionais (saltos) para construir a lógica do programa
- a instrução goto era usada para implementar tais desvios incondicionais e o seu uso foi
descontinuado com o aparecimento da programação estruturada
- dependendo do tamanho do programa, esta abordagem podia tornar muito difícil a
manutenção do programa para correção de erros ou simples evolução do programa
- linguagens que usam este paradigma: “FORTRAN”
Algoritmo
Descrição detalhada (passo a passo) do método escolhido
para determinar a solução do modelo matemático que representa o problema real
- o problema real tem dados que têm que ser tratados computacionalmente
- o modelo matemático que foi construído para representar matematicamente o problema
real, tem que definir os dados e os resultados do problema real matematicamente
- o método que foi criado para resolver o modelo matemático, é definido através de
expressões aritméticas e lógicas para tratar os dados e os resultados (solução)