Escolar Documentos
Profissional Documentos
Cultura Documentos
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)
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
sintaxe
10
exemplo
11
exemplo C/C++
12
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
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
15
Criando um procedimento:
sintaxe
16
Criando um procedimento:
exemplo
17
Criando um procedimento:
exemplo
18
Criando um procedimento:
exemplo C/C++
19
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)
ms
correto,
usando
prottipo:
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