Você está na página 1de 26

UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL BACHARELADO EM CINCIA DA COMPUTAO

Disciplina: AEDI Modularizao

Professor: Dr. Nilton Czar de Paula E-mail: nilton@comp.uems.br

Modularizao
Problemas complexos exigem algoritmos extensos. Dividindo o problema em problemas menores, pode-se achar a soluo de cada um dos sub-problemas de forma mais simples. A diviso chama-se modularizao.
2

Modularizao

Algoritmo principal
inicia a execuo e pode chamar subalgoritmos.

Sub-algoritmos
um algoritmo que resolve, na maioria das vezes, um problema menor. chamado pelo algoritmo principal ou por outros sub-algoritmos.

Tudo mdulo !
3

Modularizao: vantagens
O problema solucionado atravs de problemas menores de baixa complexidade
Quantidade reduzida de instrues e variveis

Reuso de cdigo Facilita os testes Dividir o desenvolvimento em uma equipe Melhora o controle de manuteno

Como modularizar
Identificar a tarefa de cada mdulo
se a tarefa continua ainda complexa, dividi-la em outras tarefas (refinamentos sucessivos)

Determinar o tipo de mdulo


procedimento ou funo

Determinar os parmetros de um mdulo


Entrada e sada

Determinar a ligao entre os mdulos

Um exemplo
Dadas as coordenadas (X1,Y1), (X2,Y2) e (X3,Y3) de um tringulo, determine sua rea. Imprimir as coordenadas lidas e a rea calculada. Identificando as principais tarefas
1. 2. 3. 4. Leitura das coordenadas dos pontos Clculo das medidas dos lados do tringulo Clculo da rea Escrever as coordenadas lidas e a rea calculada

Refinando a tarefa 2
Um lado do tringulo calculado aplicando-se o clculo da distncia entre dois pontos: L=P1 e P2

Tipos de mdulos
Funo
um bloco de instrues (sub-algoritmo) que realiza uma tarefa e retorna um valor para o bloco que a chamou.

Procedimento
um bloco de instrues (sub-algoritmo) que realiza uma tarefa e volta ao bloco chamador sem devolver algum valor especfico.

Tipos de variveis
Varivel Global
tem visibilidade para o mdulo principal e quaisquer outros mdulos existentes

Varivel Local
Tem visibilidade apenas no mdulo no qual foi declarada

Tipos de variveis
escopo

Criando uma funo:

sintaxe

10

Criando uma funo:

exemplo

11

Criando uma funo:

exemplo C/C++

12

Criando uma funo:

exemplo

Escreva um algoritmo que leia as medidas das arestas a, b e c de um paraleleppedo, calcule e escreva o valor de sua diagonal. Use as seguintes frmulas.

13

Exerccios usando funes


1- Fazer uma funo para calcular o fatorial de um nmero qualquer. 2- Fazer uma funo para calcular a seguinte expresso:

3- Fazer uma funo que verifica se um nmero par. 4- Escreva um algoritmo que encontre a soma dos nmeros pares de um conjunto de 1000 nmeros inteiros positivos. Use a funo criada do exerccio 3.

14

Exerccios usando funes


5- Faa um algoritmo que determine o dobro de um nmero se for par e seu triplo se for mpar. Crie o mximo de mdulos que voc achar conveniente. 6- Fazer uma funo que verifique se uma senha digitada pelo usurio vlida. A senha vlida ASDFG.

15

Criando um procedimento:

sintaxe

16

Criando um procedimento:

exemplo

17

Criando um procedimento:

exemplo

18

Criando um procedimento:

exemplo C/C++

19

Exerccios usando procedimentos


1- Faa um procedimento que coloque trs valores em ordem crescente. 2- Faa um procedimento para mostrar um menu de opes ao usurio, como abaixo: (a) inserir (b) remover (c) pesquisar por nome (d) pesquisar por idade (e) sair 3- Faa uma funo para ler a opo desejada pelo usurio para o exerccio 2.

20

Exerccios gerais
1-Faa um algoritmo que dada uma matriz MxM de nmeros positivos mostre: A - O trao da matriz; B - Os elementos da diagonal secundria; C - A mdia do trao encontrado no item A; D - Os nmeros pertencentes ao trao maiores que a mdia; E - O maior nmero em cada linha, considerando a inexistncia de empates; F - O maior nmero em cada coluna, considerando a inexistncia de empates; G - A mdia de cada coluna e linha; H - Os nmeros pares; I - Os nmeros mpares; J - A matriz simtrica. O algoritmo dever dispor de um menu de opes para o usurio e para cada item (A, B, ...) crie uma ou mais rotinas (funo/procedimento).

21

Exerccios gerais
2- Construir um algoritmo que contenha trs rotinas (clculo do quadrado, clculo do cubo e mltiplo). Na rotina principal leia um intervalo [A, B] e imprima entre o intervalo A e B: O quadrado de X, se X for mltiplo de 3; O cubo de X, se X for mltiplo de 5; O prprio X, se X no for mltiplo de 3 e 5. 3- Escrever uma rotina que tenha como parmetros horas, minutos e segundos e devolva o nmero total de segundos. Escreva o algoritmo que teste a rotina, ou seja, dever ler os valores, chamar a rotina e mostrar o resultado.

22

Exerccios gerais
4- Faa rotinas: Uma rotina para calcular a subtrao de dois nmeros reais (X e Y). A rotina deve receber, como parmetros, os valores de X e Y e retornar o resultado (X-Y). Uma rotina para calcular a multiplicao de dois nmeros reais (X e Y). A rotina deve receber, como parmetros, os valores de X e Y e retornar o resultado (X*Y). Uma rotina para calcular a diviso de dois nmeros reais (X e Y). A rotina deve receber, como parmetros, os valores de X e Y e retornar o resultado (X/Y). Uma rotina para calcular o fatorial de um nmero inteiro X. A rotina deve receber, como parmetro, o valor de X e retornar o clculo do fatorial.

23

Exerccios gerais
5- Escreva um algoritmo que deve ler dois nmeros inteiros positivos (M e P), calcular (usando algumas rotinas do exerccio anterior e construindo outras) e escrever o nmero de arranjos e combinaes de M elementos P a P, dado pelas frmulas:

24

Exerccios gerais
6- Faa as rotinas: Uma rotina para ler funo ler_ano():inteiro; um ano correto, usando o prottipo:

(considere que o valor vlido para ano est entre 1984 e 2009)

Uma rotina para ler um funo ler_mes():inteiro;

ms

correto,

usando

prottipo:

Uma rotina para ler um dia correto, funo ler_dia(ms, ano:inteiro):inteiro;

usando

prottipo:

25

Exerccios gerais
7- A avaliao de aproveitamento de uma certa disciplina feita atravs de 2 provas mensais no valor de 30 pontos cada e uma prova final no valor de 40 pontos. A nota final obtida somando-se as notas das provas. O conceito final dado atendendo-se ao seguinte critrio: De 90 a 100 pontos conceito A De 80 a 89 pontos conceito B De 70 a 79 pontos conceito C De 60 a 69 pontos conceito D De 40 a 59 pontos conceito E De 0 a 39 pontos conceito F Fazer uma rotina que, recebendo como parmetros as notas das trs provas, devolva o conceito calculado como explicado acima.

26

Você também pode gostar