Anda di halaman 1dari 25

UNIVERSIDADE FEDERAL DO PAR CAMPUS UNIVERSITRIO DE SANTARM FACULDADE DE SISTEMAS DE INFORMAO

PROGRAMAO BSICA ALGORITMOS

Prof: Cssio D. B. Pinheiro

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.

2 - CONCEITOS BSICOS E TERMINOLOGIAS


2.1 - COMPUTADOR O computador uma mquina que transforma dados de entrada, em informaes de sada. A idia de entrada / processamento / sada, a definio mais elementar que podemos dar ao computador. 2.2 - TIPOS DE COMPUTADORES Microcomputadores: so os menores computadores, largamente utilizados em trabalhos individuais - PCs. Minicomputadores: de tamanho moderado. So utilizados microcomputador no pode suprir as necessidades do trabalho. quando um

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 - CONCEITOS BSICOS DE PROGRAMAO


Antes que possamos entrar no processo de construo de um programa, necessrio que tenhamos em mente alguns conceitos bsicos, os quais, iro dar um embasamento para uma boa aprendizagem da programao. Estes conceitos so: PROGRAMA - Seqncia de comandos e / ou instrues em uma linguagem qualquer, as quais fazem o computador realizar uma tarefa determinada por um programador. COMANDO - Qualquer ordem em linguagem de computador, ou seja, sinais que controlam operaes, em geral, de entrada e sada de dados. INSTRUO - Uma nica ordem para o computador realizar determinada operao. Uma coleo de instrues formam um programa. DADOS - informao, elemento conhecido que serve de base soluo de problemas, ou utilizando um termo mais tcnico, qualquer representao a qual pode ser atribudo um significado.

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"

Tabela Verdade (V = Verdadeiro, F = Falso) X V V F F Y V F V F AND V F F F OR V V V F XOR F V V F

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)

Ob.: Quando a prioridade a mesma, os operadores so avaliados da esquerda para direita.

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

6 - CONTROLES DE FLUXO DE COMANDOS


6.1 - SEQUNCIA SIMPLES Estrutura de Controle onde os comandos so executados sequencialmente, um aps o outro, e no existe a possibilidade de um comando no ser executado. Ex: Algoritmo onde feita uma leitura de cinco valores e aps esta leitura, calculada e impressa a mdia aritmtica dos valores lidos. leia( VAL_A ) leia( VAL_B ) leia( VAL_C ) leia( VAL_D ) leia( VAL_E ) MEDIA <-- ( VAL_A + VAL_B + VAL_C + VAL_D + VAL_E ) / 5 imprima( MEDIA ) 6.2 - CONDICIONAL SIMPLES Estrutura de Controle onde, dependendo de uma condio, existiro comandos que sero ou no executados. Ex: Algoritmo onde feita uma leitura de um valor, e dependendo de uma condio, feita ou no a impresso deste valor. leia( VALOR ) se VALOR > 30 imprima( "O valor lido maior que 30" ) imprima( VALOR ) fim se 6.3 - CONDICIONAL COMPLETA Estrutura de Controle onde, dependendo de uma condio, haver a escolha de um ou outro bloco de comandos ser executado. Ex: Algoritmo onde feita a leitura de dois valores e aps esta leitura ser impresso o maior valor lido. leia( VALOR_A ) leia( VALOR_B ) se VALOR_A > VALOR_B imprima( "O Valor A igual a " + VALOR_A ) seno imprima( "O Valor B igual a " + VALOR_B ) 13

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

8 - PROGRAMAS E LINGUAGENS DE PROGRAMAO


8.1 - PROGRAMAS E SUB-ROTINAS Sries de instrues de computador so chamadas programas. Partes contidas do programa so chamadas sub-rotinas. As sub-rotinas podem ser procedures, se realizarem apenas algum trabalho, ou funes, se tambm resultarem em algum valor. "Abra a porta" semelhante a uma procedure, "Diga-me seu nome" semelhante uma funo. As sub-rotinas tambm so chamadas subprogramas e rotinas. Muitas sub-rotinas usam parmetros para especificarem exatamente que trabalho deve ser feito; por exemplo, uma sub-rotina que calcule uma raiz quadrada precisa de um parmetro para especificar um nmero ser usado. Muitas sub-rotinas indicaro se sua operao foi bem sucedida, por meio de um cdigo de retorno. 8.2 - LINGUAGENS DE PROGRAMAO E TRADUTORES Os computadores s podem executar programas que aparecem na forma detalhada conhecida como linguagem de mquina. Entretanto, para a convenincia das pessoas, os programas podem ser representados em outras formas. O conjunto de todas as instrues de mquina diferentes que um processador pode executar chamado conjunto de instrues. Se os detalhes de um programa em linguagem de mquina forem substitudos por smbolos significativos (como os termos ADD ou MOVE), ento a linguagem de programao conhecida como linguagem assembly (tambm chamada assembler, assembler simblico ou macro assembler). Assembly chamada uma linguagem de baixo nvel, pois os programas em assembly so escritos numa forma prxima a linguagem de mquina. Outras formas de linguagem de programao so mais abstratas, e produzem muitas instrues de mquina para cada comando escrito pelo programador. Estas so chamadas linguagens de alto nvel; exemplos so: BASIC, Pascal, FORTRAN, COBOL, PL/I, C e FORTH. Os programas que traduzem os programas em linguagem de alto nvel para uma forma utilizvel pelo computador so chamados tradutores; para linguagens de baixo nvel, os tradutores so chamados assemblers. No existe uma diferena real entre um tradutor e um assembler - ambos produzem de uma linguagem de programao orientada para os humanos para uma forma em linguagem de mquina. Um tradutor que executa cada instruo da linguagem, uma por uma, enquanto a traduz, chamado interpretador. Enquanto que, um tradutor que traduz todo o programa e somente aps esta traduo que o mesmo executado, normalmente chamado de compilador. Quando uma pessoa escreve uma programa de computador, a forma utilizada chamada cdigo-fonte, ou simplesmente fonte. Quando o cdigo-fonte traduzido (por um assembler ou compilador), o resultado chamado cdigo-objeto. O cdigo-objeto est quase pronto para ser

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.

ALGORITMO VETOR 2 - Verso Modular Inicio L_Vetor[ PRIMEIRO ] 24

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

Anda mungkin juga menyukai