Santarm-PA Maro/2008
1
1 - HISTRICO DO COMPUTADOR
Embora o nosso objetivo seja o estudo de um sistema eletrnico de processamento de dados, ou seja, um computador eletrnico, temos que retornar ao passado e explicar no somente o momento em que foi criado esse sistema, mais tambm a poca em que o homem teve a necessidade de fazer clculos e os meios que foram sendo desenvolvidos para resolver o problema e para acelerar a obteno do resultado. O primeiro sistema que o homem usou para representar quantidades, foram os seus dedos, e ao mesmo tempo criou o problema de clculo: representao do resultado. Tal problema foi resolvido, representando-se a quantidade obtida por pedras, gravetos, ns em barbantes, etc. Todavia, essa representao no era suficiente para os comerciantes e mercadores, e para tanto, eles passaram a utilizar placas de argila para seus clculos. Os egpcios estabeleceram um grande progresso com o uso do papiro, j com os romanos nasceram os primeiros sistemas bancrios e oramentrios, assim como a contabilidade. Com o desenvolvimento do intelecto humano atravs dos sculos, esses elementos rudimentares tornaram-se fundamentais nas operaes de clculo sobre dados numricos. Surgiram ento, figuras ou smbolos para represent-los. Os rabes foram mais felizes, pois desenvolveram figuras grficas representativas que consagraram o sistema numrico decimal. Os algarismos arbicos, a partir de ento, passaram a ser utilizados por toda a humanidade. As tcnicas desenvolveram-se e, com os algarismos, as operaes de clculo sobre dados numricos tornaram-se rpidas e mais precisas. O que se busca at os dias de hoje a rapidez e a preciso, o que possibilita cada vez mais, o avano do conhecimento humano. A consolidao do conhecimento matemtico, permitiu o desenvolvimento de todas as demais cincias exatas e estas, abriram caminho e deram base ao aperfeioamento das atividades tecnolgicas, trazendo ao mundo o computador como ferramenta de utilizao geral na sociedade.
Mainframes: Computadores de grande porte que trabalham com grande velocidade de processamento e podem acessar muitos dados. Muito utilizado na rea comercial. Supercomputadores: Utilizados em aplicaes de grande complexidade na rea cientfica. 2.3 - O QUE O PROCESSAMENTO DE DADOS Processamento de dados consiste, em uma srie de atividades ordenadamente realizadas, com o objetivo de produzir um arranjo determinado de informaes a partir de outras obtidas inicialmente. Quando o processamento feito atravs de uma mquina, geralmente composta de circuitos eletrnicos, o mesmo dito Processamento Eletrnico de Dados. Dentre as mais diversas vantagens do processamento eletrnico, podemos citar: Alta velocidade; Confiabilidade (imune ao erro humano); Preciso. 2.4 - SISTEMA DE PROCESSAMENTO DE DADOS a reunio de hardware e software usados para processamento de informaes. Hardware - A parte fsica do computador. Como exemplo podemos citar: C.P.U, cabos, perifricos, componentes mecnicos, etc. Software - A parte lgica que compe o computador. Como exemplo podemos citar: Sistemas aplicativos, instrues de controle, programas utilitrios, etc.
3 - O COMPUTADOR
3.1 - FUNCIONAMENTO BSICO - FASES DE UM PROCESSO COMPUTACIONAL Entrada de dados - o envio de qualquer tipo de dados ou informaes para uma rea de processamento. Processamento - a execuo de determinadas tarefas que envolvem operaes como: soma de dois nmeros, movimentao de informaes e registro de informaes, isto , qualquer ao ou operao feita com um ou mais dados ou informaes. Sada de dados - qualquer resultado obtido aps ter sido efetuado o processamento. A execuo de uma tarefa pelo computador controlada por PROGRAMAS, cujas INSTRUES determinam as operaes a serem executadas. Instruo: um comando que, alm de definir a operao a ser realizada pelo computador, identifica os dados necessrios sua execuo. Programa: um conjunto de instrues ordenadas logicamente, visando a execuo de uma determinada tarefa. 3.2 - ESTRUTURA DE UM COMPUTADOR E SEUS COMPONENTES
CPU - GABINETE UC DE CA MR DS
MA
C.P.U. (Central Processing Unit) - Unidade Central de Processamento. C.A. - Circuitos de Apoio. U.C. - Unidade de Controle - Microprocessador ("Crebro"). M.R. - Memria Residente (Principal)
R.O.M. (Read Only Memory) - Memria Apenas de Leitura. R.A.M. (Random Access Memory) - Memria de Gravao e Leitura. D.E. - Dispositivos de Entrada. D.S. - Dispositivos de Sada M.A. - Memria Auxiliar (Secundria).
4.1 - CLASSES DE DADOS 4.1.1 - CONSTANTES Constantes so classes de dados imutveis utilizadas durante a execuo de um programa escrito em uma linguagem de programao. Existem dois tipos de constantes: numricas e alfanumricas. CONSTANTES NUMRICAS - Os nmeros so representados basicamente de trs formas: nmeros inteiros, nmeros reais de ponto fixo e nmeros reais em ponto flutuante. Exemplos: 17, 13.45, 1.2453x10-3 CONSTANTES ALFANUMRICAS OU STRING - alfanumricos, normalmente colocados entre aspas. uma seqncia de caracteres
Exemplos: "NOME DO EMPREGADO", "SALRIO HORA", "123" 4.1.2 - VARIVEIS Variveis so classes de dados utilizados para representar os valores que podem ser alterados ou modificados durante a execuo de programas escritos em uma linguagem de programao. O valor de uma varivel pode ser fornecido pelo operador do programa ou advir de clculos efetuados dentro do programa. As variveis representam os valores numricos (variveis numricas) e os alfanumricos (strings). Exemplos: A = 5.31 6
B = 14 C=X+8-3 D = "TCNICAS DE PROGRAMAO" Em um conceito mais aprofundado, podemos dizer que VARIVEL uma denominao e indicao um local na memria de um computador. VARIVEIS NUMRICAS - As variveis numricas so aquelas que recebem dados ou constantes numricas para seu contedo. Exemplos: A=8 B = 14.53 C = X - 1 + 39
VARIVEIS ALFANUMRICAS - As variveis alfanumricas so aquelas que recebem dados ou constantes alfanumricas para seu contedo. Exemplos: A = "NMERO DE FILHOS" B = "1 - DVIDA / MS"
4.1.3 - REGRA PARA FORMAO DE NOMES DE VARIVEIS Basicamente, nomes de variveis podem ter qualquer tamanho, podendo aceitar letras e nmeros e caracter de sublinhar, sendo que, o primeiro deve ser uma letra. Os nomes de variveis devem ser criados de acordo com os dados que iro fornecer as caractersticas da mesma, ou seja, o dado armazenado na varivel que deve fornecer subsdios para a formao de seu nome. Exemplos: A B1 NOME IMPOSTO_DE_RENDA cData nNr_itens
4.2 - OPERADORES Em processamento de dados, normalmente trabalhamos com processos de clculos numricos, comparaes, decises e etc. Estes processos so chamados de operaes, isto , aes definidas por uma instruo de computador. Uma operao composta de operando (dado que ser operado) e operador (indicao da ao a ser executada sobre operandos). 4.2.1 - TIPOS DE OPERADORES
OPERADORES MATEMTICOS OPERADOR ^ * / + SIGNIFICADO exponenciao Menos Unrio (negao) multiplicao diviso adio subtrao
OPERADORES LGICOS OPERADOR AND OR NOT XOR SIGNIFICADO Condicional "E" Condicional "OU" Condicional "NO" Condicional "OU Exclusivo"
OPERADORES RELACIONAIS OPERADOR = <> ou >< < > <= ou =< SIGNIFICADO Igualdade Desigualdade Menor que Maior que Maior ou igual
4.2.2 - PRECEDNCIA ENTRE OPERADORES OPERADOR ^ * / SIGNIFICADO Menos Unrio (NEGAO) Exponenciao Multiplicao Diviso PRECEDNCIA 9 (Maior) 8 7 7
+ = <> ou >< < > <= ou =< >= ou => NOT AND OR XOR
Adio Subtrao Igualdade Desigualdade Menor que Maior que Menor ou igual Maior ou igual NO E OU OU Exclusivo
6 6 5 5 5 5 5 5 4 3 2 1 (Menor)
5 - ALGORITMO
Algoritmo poderia ser definido como a organizao sequencial dos passos necessrios para se chegar soluo completa de um determinado problema. O conceito central da programao e da cincia da computao o do algoritmo. Programao basicamente construir algoritmos. Normalmente a programao estruturada apresentada como a arte ou tcnica de construir e formular algoritmos de uma forma sistemtica. Num algoritmo devemos distinguir claramente dois aspectos complementares: um aspecto esttico e um aspecto dinmico. A formulao de um algoritmo geralmente consiste em um texto contendo comandos que devem ser executados numa ordem prescrita. Esse texto uma representao concreta do algoritmo e tem um carter evidentemente esttico, atemporal, expandido somente no espao (da folha de papel). Este texto somente nos interessa pelos efeitos que ele pode explicitar na sua execuo em um determinado perodo de tempo. Dado um conjunto de "valores iniciais" cada execuo de um algoritmo um evento dinmico, evoluindo no tempo. 5.1 - METODOLOGIA DE DESENVOLVIMENTO DE ALGORITMOS 1. Algoritmos devem ser feitos para serem lidos por seres humanos. Tenha em mente que seus algoritmos devero ser lidos e entendidos por outras pessoas (e por voc mesmo) de tal forma que possam ser corrigidos, receber manuteno e ser modificados. 2. Escreva comentrios no momento em que estiver escrevendo o algoritmo. Um algoritmo no documentado um dos piores erros que um programador pode cometer e sinal de amadorismo (mesmo com muitos anos de experincia). Como o objetivo de se escrever comentrios facilitar o entendimento do algoritmo, eles devem ser to bem concebidos quanto o prprio algoritmo. A melhor maneira de se conseguir isso escrev-lo nos momentos de maior intimidade com os detalhes, ou seja, durante a resoluo dos problemas. 3. Os comentrios devero acrescentar alguma coisa e no apenas frasear os comandos. O conjunto de comandos nos diz o que est sendo feito; os comentrios nos dizem porque. 4. Use comentrios no prlogo. Todo algoritmo ou procedimento dever ter comentrios no seu prlogo para explicar o que ele faz e fornecer instrues para seu uso. Alguns destes comentrios seriam: Uma descrio do que faz o algoritmo; Como utiliz-lo; Explicao do significado das variveis mais importantes; Estruturas de dados utilizadas;
10
Os nomes de quaisquer mtodos especiais utilizados, juntamente com referncias nas quais mais informaes possam ser encontradas; Autor; Data de escrita e da ltima atualizao. 5. Utilize espaos em branco para melhorar a legibilidade. Espaos em branco, inclusive linhas em branco, so muito valiosos para melhorar a aparncia de um algoritmo. Normalmente, o programador deve: Deixar uma linha em branco entre as declaraes e o corpo do algoritmo; Deixar uma linha em branco antes e outra depois de um comentrio. 6. Uma das dificuldades naturais de um iniciante em programao como comear a desenvolver um algoritmo. Os passos seguintes, se seguidos, podem auxiliar nesta tarefa: Cada algoritmo identificado por um nome (incio do algoritmo); Cada passo possui uma definio da ao a ser executada ou de uma deciso a ser tomada; Ocasionalmente h um comentrio, que includo como uma explicao para auxiliar a compreenso; Utilize sempre formas para destacar linhas que sero ou no executadas, ou que sero repetidas (estilo na programao); Sempre tornar explcito o fim do algoritmo. 7. Algoritmos devem ser feitos observando o constante refinamento das operaes. Isto significa que o programador deve, primeiramente, escrever os passos bsicos e aumentar o nvel de detalhamento de cada passo escrito, continuando o detalhamento at o ponto em que no haja mais a necessidade ou possibilidade de maiores detalhes. 8. Sempre que possvel, utilizar os operadores lgicos para melhor visualizao da lgica de programao utilizada para resolver o problema. 5.2 - LGICA DE PROGRAMAO Quando o computador testa uma condio, ele s "decide algo" com base no resultado, que pode ser verdadeiro ou falso. Desta forma, podemos realizar qualquer tarefa contando apenas com estes dois resultados, bastando para isso manipular os testes de condies de forma a chegarem a resultado satisfatrio. Por exemplo, observe o seguinte problema: O algoritmo abaixo permite que somente pessoas maiores de 10 anos e scias entrem em um clube. Algoritmo Clube Verso 1.0 A idade maior que 10? 11
Se for, continue; caso contrrio, proiba a entrada; scio do clube? Se for, permita entrada; caso contrrio, proba. Fim algoritmo Na emisso do resultado, foi necessrio o teste de mais de uma condio, em linhas separadas, uma verificando a idade e outra verificando se scia ou no. Para permitir o teste de mais de uma condio em uma mesma linha, com resultado verdadeiro ou falso, existem os operadores lgicos. Tais operadores apresentam um resultado de acordo com a combinao das condies a serem testadas. Utilizando operadores lgicos, o algoritmo descrito acima seria escrito da seguinte forma. Algoritmo Clube Verso 1.1 A idade maior que 10 e scio do clube? Se for, permita entrada; caso contrrio, proba. Fim Algoritmo A utilizao dos operadores lgicos, alm de melhorar a compreenso do algoritmo, permite que o mesmo se torne mais compacto, melhorando assim a sua visualizao, a qual tornar mais fcil os possveis adendos e alteraes. Os operadores lgicos so a base das operao dos atuais computadores, regendo o funcionamento de todas as operaes realizadas.
12
fim se 6.4 - LAO CONTROLADO POR VARIVEL Estrutura de Controle onde ocorre uma repetio de um determinado bloco de comandos, e o nmero de vezes que o bloco de comandos ser repetido controlado pelo valor de uma varivel qualquer. Ex: Algoritmo onde feita uma leitura de cinco valores e aps esta leitura, calculada e impressa a mdia aritmtica dos valores lidos. CONTROLE <-- 0 MDIA <-- 0 faa enquanto CONTROLE < 5 leia( VALOR_LIDO ) MDIA <-- MDIA + VALOR_LIDO CONTROLE <-- CONTROLE + 1 fim faa MDIA <-- MDIA / 5 imprima( MDIA ) 6.5 - LAO CONTROLADO POR OPERADOR Tipo de Fluxo onde ocorre uma repetio de um determinado bloco de comandos, e o nmero de vezes que o bloco de comandos ser repetido controlado pelo valor de uma varivel lida atravs do teclado ou qualque outro dispositivo de entrada. Ex: Algoritmo onde feita uma leitura de N valores e aps esta leitura, calculada e impressa a mdia aritmtica dos valores lidos. NMERO_LEITURAS <-- 0 MDIA <-- 0 leia( VALOR_LIDO ) faa enquanto VALOR_LIDO <> 0 MDIA <-- MDIA + VALOR_LIDO NMERO_LEITURAS <-- NMERO_LEITURAS + 1 leia( VALOR_LIDO ) fim faa MDIA <-- MDIA / NMERO_LEITURAS imprima( MDIA ) 6.6 - EXEMPLOS DE ALGORITMOS Exemplo 01: Faa um algoritmo que leia 3 (Trs) nmeros e imprima o maior entre eles. Soluo: Comentrios:
14
leia( NR_1, NR_2, NR_3 ) se NR_1 > NR_2 se NR_1 > NR_3 imprima( NR_1 ) seno imprima( NR_3 ) fim se seno se NR_2 > NR_3 imprima( NR_2 ) seno imprima( NR_3 ) fim se fim se
Leitura dos Valores dos Nmeros Comparao do 1 com o 2 Comparao do 1 com o 3 Impresso se o maior for o 1 Impresso se o maior for o 3 Comparao do 2 com o 3 Impresso se o maior for o 2 Impresso se o maior for o 3
Exemplo 02: Faa um algoritmo que leia N nmeros maiores que 0 (zero) e imprima o maior e o menor entre eles. Soluo: Comentrios: leia( NMERO ) Primeira leitura do Nmero MAIOR <-- NMERO Varivel MAIOR recebe o N lido MENOR <-- NMERO Varivel MENOR recebe o N lido faa enquanto NMERO <> 0 Controle do N de repeties se NMERO > MAIOR Comparao do N lido com MAIOR MAIOR <-- NMERO Atribuio do novo Maior Valor seno se NMERO < MENOR Comparao do N lido com MENOR MENOR <-- NMERO fim se fim se leia( NMERO ) Prxima Leitura do Nmero fim faa imprima( "Maior : "+MAIOR ) Impresso do Maior Valor imprima( "Menor : "+MENOR ) Impresso do Menor Valor 6.7 - EXERCCIOS Escreva um algoritmo que, sendo informadas as coordenadas de dois pontos, seja mostrado no vdeo a coordenada do ponto mdio entre eles. Frmulas: xp=(x1+x2)/2 e yp=(y2+y1)/2 Escreva um algoritmo que, sendo informados 3 valores (a, b, e c), o mesmo calcule a mdia aritmtica (m) entre os valores e compare com o valor de b informando se a mdia maior, menor ou igual a este valor. 15
Escreva um algoritmo que, sendo informados os valores de Juros (j), Capital (c) e Tempo (t), seja mostrado no vdeo o valor da Taxa (i). Frmula: i=(j*100)/(c*t) Escrever algoritmos que, sendo fornecidos os valores de a, b e c, mostre no vdeo o valor das seguintes expresses: a) w=(15+a)/(2-b/c) b) x=b+a/(raiz(6-c)) c) y=(raiz(9-c))/(b-a+c) d) z=raiz(b/a)/raiz(3-c) Escreva um algoritmo que, sendo informados trs nmeros para o computador, seja impresso o menor entre eles. Sendo que todos os nmeros informados devem ser de valores diferentes. Escrever um algoritmo que, sendo fornecidos, o nome e o salrio de um funcionrio de uma empresa, o algoritmo calcula e imprime os dados acima e o valor do imposto de renda, utilizando as seguintes regras: a) 5 % quando o salrio for menor que R$ 800,00; b) 10 % quando o salrio for maior ou igual a R$ 800,00 e menor que R$ 1.500,00; c) 15 % quando o salrio for maior ou igual a R$ 1.500,00 e menor que R$ 2.500,00; d) 20 % quando o salrio for maior ou igual a R$ 2.500,00. Escrever um algoritmo que imprime todos os nmeros pares entre 50 e 80. Escrever um algoritmo que calcule a somatria entre os cinco primeiros nmeros mltiplos de 3, maiores que 100. Escreva um algoritmo que imprima todos os nmeros mltiplos de 7 situados entre 350 e 500, inclusive. Escreva um algoritmo que imprima todos os nmeros mltiplos de 4 situados entre 100 e 200, e ao fim desta impresso, o mesmo dever imprimir a mdia aritmtica dos 8 primeiros nmeros encontrados, que obedeam as condies determinadas acima.
Ob.: Mensagens devem ser impressas, no caso da ocorrncia de "diviso por zero" ou "raiz quadrada de nmero negativo"
16
7 - LISTAS OU VETORES
Uma lista ou vetor, em processamento de dados, um grupo de informaes de mesmo tipo. Cada informao representada na memria do computador por uma varivel. Por serem todas as variveis do mesmo tipo, uma lista tambm conhecida como "varivel compostas homogneas". O nome de qualquer varivel de uma lista composto do nome da lista acrescido de um indicador de posio. Os nmeros que indicam a posio de uma varivel em uma lista so chamados de "ndice". Exemplo: Seja VET uma lista que possui doze variveis do tipo inteiro. Os nomes das variveis que formam esta lista so: VET( 1 ), VET( 2 ), ..., VET( 12 ) 7.1 - OPERAES MAIS IMPORTANTES SOBRE LISTAS a) Acesso ao K-simo elemento da lista Esta operao relativamente fcil, temos somente que nos preocupar em saber se o elemento desejado pertence a lista. - Lista VET - Lista com N elementos - Acesso ao K-simo elemento Incio Se K > 0 e K <= N ento VAR <-- VET( K ) Imprima VAR Fim se Fim b) Inserir um novo elemento na lista Neste caso temos que saber em que posio desejamos inserir o novo elemento. - Lista VET - Tamanho da lista N - Inserir elemento VALOR antes do K-simo elemento. Incio Se K > 0 e K <= N ento Faa para I = N - 1 at K passo -1 VET( I+1 ) <-- VET ( I ) Fim para 17
VET( K ) <-- VALOR Fim se Fim c) Remover o K-simo elemento da lista Neste caso temos duas situaes distintas: 1 - Queremos remover o elemento de ndice igual a K, onde o valor de K conhecido. - Lista VET - Tamanho da lista N - Elemento a ser removido de ndice K Incio Se K > 0 e K < N ento Faa para I = K at N - 1 VET( I ) <-- VET( I + 1 ) Fim para N <-- N - 1 Seno Se K = N ento N <-- N - 1 Fim se Fim se Fim 2 - Queremos remover o elemento de ndice igual a K, onde K um valor qualquer e s conhecemos o contedo da varivel. - Lista VET - Tamanho da lista N - Elemento a ser removido de valor VALOR Incio Leia VALOR I <-- 1 Faa enquanto VET( I ) <> VALOR e I <= N I <-- I + 1 Fim faa Se I <= N ento Se I < N ento Faa para J = I at N - 1 VET( J ) <-- VET( J + 1 ) Fim para Fim se N <-- N - 1 Seno 18
Imprima "Valor no pertence a lista" Fim se Fim d) Leitura da lista Nos exemplos anteriores consideramos as listas na memria. Neste caso desejamos ler a lista de um dispositivo externo para a memria. - Lista VET - Tamanho da lista N - Dispositivo externo: Teclado Incio Faa para I = 1 at N Leia VALOR VET( I ) <-- VALOR Fim para Fim e) Gravao da lista Neste caso desejamos gravar a lista que est na memria em um dispositivo externo. - Lista VET - Tamanho da lista N - Dispositivo externo: Arquivo Incio Abrir arquivo Faa para I = 1 at N Criar registro VALOR <-- VET( I ) Fim para fechar arquivo Fim f) Soma dos elementos de uma lista - Lista VET - Tamanho da lista N - Acumulador SOMA Incio SOMA <-- 0 Faa para I = 1 at N SOMA <-- SOMA + VET( I ) Fim para 19
Imprima SOMA Fim g) Soma de listas - Listas: VET1, VET2 e VET3 - Tamanho das listas: N, M e N+M respectivamente - Concatenar as listas VET1 e VET2 em VET3 Incio Faa para I = 1 at N VET3( I ) <-- VET1( I ) Fim para I <-- I - 1 Faa para J = 1 at M VET3( J + I ) <-- VET2( J ) Fim para Fim h) Determinao do maior e menor elemento - Lista VET - Tamanho da lista N Incio MAIOR <-- VET( 1 ) MENOR <-- VET( 1 ) Faa para J = 2 at N Se VET( I ) > MAIOR MAIOR <-- VET( Fim se Se VET( I ) < MENOR MENOR <-- VET( Fim se Fim para Imprima MAIOR, MENOR Fim
ento I ) ento I )
20
21
usado, mas ele deve passar por uma pequena transformao, realizada por um linkeditor ou linker, para produzir um mdulo de carga, que um programa terminado, pronto para o uso. Costuma-se dizer que um erro em um programa um bug, e o processo de tentar encontrar erros ou tentar consert-los, chamado debugging ou depurao. Em geral existem muitas formas de realizar um objetivo com um programa de computador. O esquema, frmula ou mtodo que um programa usa o seu algoritmo. Para muitas tarefas - mesmo as mais simples como ordenar dados em ordem alfabtica - existem diferenas incrveis na eficincia de diferentes algoritmos, e continua-se pesquisando mtodos cada vez melhores.
22
9 - PROGRAMAO MODULAR
Programao Modular um sistema para projetar programas como um conjunto de unidades individuais inter-relacionadas (chamadas mdulos), que podem mais tarde ser agrupadas para formar um programa completo. 9.1 - VANTAGENS DA PROGRAMAO MODULAR - Qualidade dos Programas - Flexibilidade - Padronizao - Planejamento - Controle e Manuteno - Utilizao A Programao Modular uma tcnica de programao que tem por objetivo simplificar o desenvolvimento de programas atravs de sua diviso em "partes". Cada uma dessas partes pode ser facilmente entendida, programada, testada e modificada, pois o problema que est sendo resolvido menor. O ponto bsico para a Programao Modular a abordagem de resoluo de problemas atravs de sua decomposio, ou seja, no desenvolvimento de um "Sistema" podemos dividi-lo em vrios "Programas", e os "Programas" podemos dividir em varias "Sub-rotinas" ou simplesmente "Rotinas". Um problema deve ser subdividido at o ponto em que, se fizermos uma nova subdiviso, cada mdulo tenha que ser descrito atravs de seus comandos elementares, e no mais por chamadas a outros mdulos. Um Mdulo uma "parte" de um algoritmo, e pode ser um programa completo que faz parte de um sistema, ou um procedimento de auxlio a um programa ou at mesmo uma funo. Procedimento - Mdulo que, a partir de informaes de entrada, executa uma tarefa e gera informaes de sada. A chamada (execuo) a um Procedimento feita atravs de seu nome. Funo - Mdulo que, a partir de informaes de entrada gera apenas uma informao de sada. A informao de sada devolvida pela funo na prpria posio em que foi chamada. 9.2 - UM EXEMPLO DE ALGORITMO NO MODULAR O algoritmo l um vetor inicial de 10 elementos e, em seguida l vrios vetores de 10 elementos cada. Para cada vetor lido mostra cada elemento que possui contedo idntico ao do elemento que est na mesma posio no primeiro vetor. O fim dos vetores indicado por um vetor no qual a soma dos seus dois primeiros elementos igual a 10. ALGORITMO VETOR 1 - Verso no Modular
23
Inicio Dimensione PRIMEIRO[ 10 ], OUTRO[ 10 ] Para IND = 1 at 10 faa Leia PRIMEIRO[ IND ] Fim para Para IND = 1 at 10 faa Leia OUTRO[ IND ] Fim para SOMAVET <- OUTRO[ 1 ] + OUTRO[ 2 ] Enquanto SOMAVET <> 10 faa Para IND = 1 at 10 faa Se OUTRO[ IND ] = PRIMEIRO[ IND ] Ento Escreva ( OUTRO[ IND ] ) Fim se Fim para Para IND = 1 at 10 faa Leia( OUTRO[ IND ] ) Fim para SOMAVET <- OUTRO[ 1 ] + OUTRO[ 2 ] Fim enquanto Fim 9.3 - UM EXEMPLO DE ALGORITMO MODULAR Agora temos o algoritmo descrito anteriormente, sendo que, o mesmo ser apresentado utilizando o recurso da programao modular. Neste exemplo utilizamos a tcnica de programao modular, na qual criamos os mdulos: L_vetor, Soma_vetor e Mostra_Igual. Este mdulos so inter-dependentes, pois cada um deles, pode ser analisado independentemente um do outro, mas o programa s ser executados com a utilizao de todos os mdulos. O organograma do algoritmo Vetor 2, nos mostra que o mesmo, atravs do seu mdulo principal, gerncia os trs mdulos. Isto , os mdulos secundrios so executados (chamados) atravs do mdulo principal.
L_Vetor[ OUTRO ] SOMAVET <- Soma_Vetor( OUTRO[ 1 ], OUTRO[ 2 ] ) Enquanto SOMAVET <> 10 faa Mostra_Igual L_Vetor( OUTRO ) SOMAVET <- Soma_Vetor( OUTRO[ 1 ], OUTRO[ 2 ] ) Fim enquanto Fim PROCEDIMENTO L_Vetor( VETOR ) Inicio Para IND = 1 at 10 faa Leia VETOR[ IND ] Fim para Fim FUNO Soma_Vetor( NUM1, NUM2 ) Inicio SOMA <- NUM1 + NUM2 Retorne SOMA Fim PROCEDIMENTO Mostra_Igual Inicio Para IND = 1 at 10 faa Se OUTRO[ IND ] = PRIMEIRO[ IND ] Ento Escreva OUTRO[ IND ] Fim se Fim para Fim
25