Lógica de Programação – Forbellone / Eberspacher Lógica de Programação Capítulo 6 Modularizando Algoritmos.

Slides:



Advertisements
Apresentações semelhantes
Programação em Java Prof. Maurício Braga
Advertisements

Linguagem PASCAL Subprogramas
INTRODUÇÃO – LOGICA E ALGORITMOS
Algoritmos e Estrutura de Dados I
Capítulo 2 Tópicos Preliminares
Conteúdo: - Modularização.
Análise Projeto de Algoritmos
Lógica de Programação Módulo II
FACENS – Engenharia da Computação Lógica Computacional II
Ordenação Facilitar e aumentar a eficiência das operações de pesquisa sobre esses dados Pode ser crescente ou decrescente A seqüência de entrada, normalmente,
Ordenação Facilitar e aumentar a eficiência das operações de pesquisa sobre esses dados Pode ser crescente ou decrescente A seqüência de entrada, normalmente,
PROGRAMAÇÃO MODULAR (com uso de subprogramas)
Algoritmos Escher.
Estruturas de Controle
O Portal do Estudante de Computação
Introdução a Programação
Algoritmos e Estruturas de Dados I – Estruturas de Dados
Estruturas de Controle
Algoritmos e Estruturas de Dados I – Estruturas de Controle de Fluxo
Aux a fim início Simulação da execução de um algoritmo que troca o conteúdo de duas variáveis recebidas e apresenta o resultado da inversão: leia a,b a.
Sub-programas. Mecanismo de composição de programas Sub-programa está para peça de LEGO assim como um programa está para a construção.
Introdução à Programação
Paradigma de Divisão e Conquista
Capítulo 3 Estruturas de Controle
Capítulo 2 Tópicos Preliminares
Introdução Capítulo 1 Lógica de Programação
CEPMAT Curso Técnico em Informática
INTRODUÇÃO – LOGICA E ALGORITMOS
Análise Estruturada.
Estruturas de Repetição
Introdução a Programação
LINGUAGENS DE PROGRAMAÇÃO PROF. DANIELA PIRES
PROGRAMAÇÃO ESTRUTURADA (MODULARIZAÇÃO/SUBPROGRAMAÇÃO)
Instituto Federal de Santa Catarina
Controle de concorrência
Técnicas de Desenvolvimento de Programas
Prof: Leandro Maranim Dei Santi Prof. Eduardo Rossit Paiossin
BC-0505 Processamento da Informação
ALGORITMOS Intensivo Janeiro e Fevereiro de 2011
Algoritmos e Estruturas de Dados I – Estruturas de Dados
Programação de PIC em C Exposição das funções básicas para
Algoritmos e Estruturas de Dados I – Estruturas de Controle de Fluxo
Algoritmos e Estruturas de Dados I – Modularização
Algoritmos e Estruturas de Dados I – Estrutura de Repetição
Aula01 – Técnicas de Programação II
Algoritmo e Programação
Algoritmo e Estrutura de Dados
Fundamentos de linguagens de programação
Algoritmos e Estruturas de Dados I – Estruturas de Dados
Algoritmos.
Algoritmos e Estruturas de Dados I – Estruturas de Controle de Fluxo
Lógica de Programação EAGS SIN – Módulo II
Exercícios (Algoritmo Narrativo, Fluxograma e Pseudocódigo) RESOLVIDO
Etapas : Algoritmo é uma sequência lógica de instruções que podem ser executadas. É importante destacar que qualquer tarefa que siga um certo padrão.
Programação Computacional Aula 9: Meu primeiro programa em C
Linguagem de Programação I Parte IV
Exercícios Faça um algoritmos para trocar uma lampada queimada.
Algoritmos – Aula 04 Comandos de repetição.
PCI- Funções e Procedimentos Profa. Mercedes Gonzales Márquez.
11 Revisão da Linguagem C Prof. Kariston Pereira Adaptado de Material gentilmente fornecido pelo Prof. Rui Tramontin (DCC/UDESC)
Importância do orçamento de capital
Módulo I Capítulo 7: Funções e Procedimentos William Ivanski Curso de Programação C#
PRE 1002 Éverlin Marques 2015/1.
Adriano A. Ribeiro. Variáveis Compostas Homogêneas Variáveis indexadas. A declaração de uma variável indexada corresponde, na verdade, à declaração de.
Arquivos Capítulo 5 Lógica de Programação
Lógica de programação Introdução à lógica de programação
Lógica de Programação – Forbellone / Eberspacher Lógica de Programação Capítulo 4 Estruturas de Dados.
Lógica de Programação Aula 06 Prof. Marcelo Marcony.
Algoritmos com matrizes e vetores
Transcrição da apresentação:

Lógica de Programação – Forbellone / Eberspacher Lógica de Programação Capítulo 6 Modularizando Algoritmos

Lógica de Programação – Forbellone / Eberspacher – Capítulo 6 Modularizando Algoritmos Neste capítulo Decomposição de Problemas Construção de Módulos Parametrização de Módulos Tipos de Módulos

Lógica de Programação – Forbellone / Eberspacher – Capítulo 6 Decomposição de problemas Complexidade = Variedade Um problema matemático é tão mais complexo quanto maior for a quantidade de variáveis a serem tratadas Um problema algorítmico é tão mais complexo quanto maior for a quantidade de situações diferentes que precisam ser tratadas Como reduzir a Complexidade? Reduzindo a Variedade Como reduzir a Variedade? Dividindo problemas maiores em problemas pequenos A divisão precisa acontecer de forma metódica

Lógica de Programação – Forbellone / Eberspacher – Capítulo 6 Decomposição de problemas Refinamentos Sucessivos É uma técnica que orienta o processo de divisão de problemas. Funciona assim: 1.Divida o problema em suas partes principais 2.Analise a divisão obtida para garantir coerência 3.Se alguma parte ainda estiver complexa, voltar para 1 4.Analise o resultado para garantir entendimento e coerência Essa técnica é comumente chamada de Top-Dowm

Lógica de Programação – Forbellone / Eberspacher – Capítulo 6 Decomposição de problemas Problema Exemplo: Cartão Ponto A partir dos horários de entrada e saída de um funcionário, calcular o total de horas trabalhadas, o total de atraso, a média diária de horas trabalhadas e de atraso Cartão Ponto EntradaSaídaCálculo ManhãTarde Minutos Entrada Minutos Saída Atraso Minutos Entrada Minutos Saída Atraso

Lógica de Programação – Forbellone / Eberspacher – Capítulo 6 Construção de Módulos Cada divisão obtida com a técnica de Refinamentos Sucessivos pode ser convertida numa parte do Algoritmo Cada uma dessas partes são conhecidas como Módulos ou Subalgoritmos Declaração: módulo Entrada comando1; comando2;... fimmódulo; Onde : Entrada : Identificador do módulo que está sendo construído comando1, comando2 : Algoritmo do módulo

Lógica de Programação – Forbellone / Eberspacher – Capítulo 6 Construção de Módulos Manipulação: Um módulo pode ser acionado de qualquer ponto do algoritmo principal ou de outro módulo O acionamento de um módulo também é conhecido por chamada ou ativação do módulo Quando ocorre uma chamada o fluxo de execução, passa para o módulo chamado Quando se conclui a execução do módulo chamado, o controle retorna para o módulo chamador

Lógica de Programação – Forbellone / Eberspacher – Capítulo 6 Construção de Módulos Algoritmo início Primeiro; módulo Primeiro; fimmódulo; Segundo; módulo Segundo; fimmódulo; fim. Ativação de Módulos:

Lógica de Programação – Forbellone / Eberspacher – Capítulo 6 Construção de Módulos Vantagens: Clareza e legibilidade no algoritmo Construção independente Testes individualizados Simplificação da manutenção Reaproveitamento de algoritmos

Lógica de Programação – Forbellone / Eberspacher – Capítulo 6 Parametrização de Módulos É possível tornar um módulo mais genérico e portanto mais reutilizável Isso pode ser feito através de Parâmetros P.ex.: um módulo que imprime a tabuada do 7 tem alguma aplicabilidade. Porém, se o módulo fosse capaz de imprimir qualquer tabuada, seria mais genérico. Então, bastaria ativar o módulo indicando por parâmetro qual a tabuada desejada.

Lógica de Programação – Forbellone / Eberspacher – Capítulo 6 Parametrização de Módulos Parâmetros são os valores que um módulo pode receber do chamador antes de iniciar sua execução A ativação do módulo precisa indicar os argumentos (valores constantes ou variáveis) que serão passados para o módulo A passagem dos valores ocorre a partir da correspondência (ordem) argumento x parâmetro

Lógica de Programação – Forbellone / Eberspacher – Capítulo 6 Parametrização de Módulos módulo Troca (inteiro: X, Y) inteiro: aux; aux  X; X  Y; Y  aux; fimmódulo; Algoritmo 6.7 – Módulo Troca Se quiséssemos trocar o valor de duas variáveis quaisquer em dado algoritmo, poderíamos fazer: a  7; b  15; Troca (a, b); escreva (a, b); O valor de a (7) é transferido para seu respectivo parâmetro : X, enquanto b é transferido para Y Quando o módulo termina, ocorre o inverso

Lógica de Programação – Forbellone / Eberspacher – Capítulo 6 Tipos de Módulos Podemos classificar os módulos quanto ao seu objetivo principal em dois contextos: Ação e Resultado Contexto de Ação Quando o módulo simplesmente executa coisas Contexto de Resultado Quando o módulo calcula coisas e retorna um resultado

Lógica de Programação – Forbellone / Eberspacher – Capítulo 6 Tipos de Módulos Contexto de Ação módulo Inverte (VET: VI) inteiro: i, aux; para i de 1 até 10 faça aux  VI [ i ]; VI [ i ]  VI [ 11 - i ]; VI [ 11 - i ]  aux; fimpara; fimmódulo; Algoritmo 6.9 – Inverte VetorAlgoritmo 6.9 – versão 2 módulo Inverte (VET: VI) inteiro: i, aux; para i de 1 até 10 faça Troca (VI [ i ], VI [ 11 - i ]); fimpara; fimmódulo;

Lógica de Programação – Forbellone / Eberspacher – Capítulo 6 Tipos de Módulos Contexto de Resultado Para que um módulo seja de Resultado, é preciso retornar para o chamador o resultado do cálculo Isso pode ser feito com o comando retorne Ex : retorne ( 5 ); retorne ( a ); Algoritmo 6.12 – Módulo Par módulo Par (inteiro: N) se (N mod 2) = 0 então retorne ( V ); senão retorne ( F ); fimse; fimmódulo;