You are on page 1of 21

APOSTILA DE CONSTRUO DE ALGORITMOS

ndice
1- ALGORITMO........................................................................................................3 1.1- Refinamentos Sucessivos..................... ................................ ..............................4 1.2- Programa ............................................................................................................5 2- ESTRUTURAS DE DADOS ........................................................ ........................5 2.1- Tipos Primitivos de Dados.................... . ............................................................5 2.1. 1 Tipo Inteiro .......................... ................................................. .......................6 2.1.2- Tipo Real. ........................................................................................................6 2.1.3Tipo Literal ............................................................... ......................................6 2.1.4- Tipo Lgico......................................................................................................6 2.2- Tipos Estruturados de Dados ..............................................................................7 3- OPERAES ..................... .................................................................................7 3.1- Operaes Aritmticas........................................................................................7 3.2- Prioridade na execuo........................................................................................8 3.3- Operadores Lgicos........................................................ ....................................8 3.3.1- Operaes Lgicas............................................. ..............................................9 3.4Operadores Relacionais .................... ..................................................................9 4- FUES................................................................................................................9 4.1Principais Funes Prdefinidas........................................................................10 5- OPERAES MISTAS............................... ................................ ......................10 6- PRIORIDADE NAS OPERAES MISTAS .................................. ..................10 7 - VARIVEIS.......................................................... ............................................10 7.1- Regra para nomear variveis .............................................................................11 7.2- Declarao de Variveis ...................................................................................11 8- TIPOS DE PALAVRAS ENCONTRADAS EM UM ALGORITMO ..................12 9- COMANDOS BSICOS.......................... ..........................................................12 9.1.1- Atribuio ....... ................... ... .....................................................................12 9.1.2- Comandos de Entrada e Sada de Dados ........................................................13 9.1.2.1- Sada ( escreva ) .........................................................................................13 9. I .2.2- Entrada ( Leia ) ........................................................................................13 10- COMENTRIOS ..............................................................................................13 11- TIPOS DE ESTRUTURAS EM ALGORITMOS .................... .........................14 11.1- Estrutura Seqencial .......................................................................................14 11.2- Estrutura Condicional .....................................................................................15 11.2.1- Alternativa Simples..... .................................................................................15 11.2.2- Alternativa Composta..... .... ................................................................... ....16 11.3- Estruturas de Repetio ..................................................................................16 11.3.1- Repetio com Teste da Condio de Trmino no Incio...............................17 11.3.2- Repetio com Teste da Condio de Trmino no Final.................................17 11.3.3- Repetio com Varivel de Controle..............................................................18 12- INTERRUPO FORADA DO LAO DE REPETIO...............................19 13- ALTERNATIVA DE MLTIPLA ESCOLHA ..................................................20 14- METODOLOGIA DE DESENVOLVIMENTO DE ALGORITMOS.................21 15- Regras prticas para a construo de Algoritmos Legveis...................................22 16- EXERCCIOS....................................................................................................23

1- ALGORITMO " o conjunto de instrues ordenadas e no ambguas que quando executadas levam a soluo de um determinado problema." "Conjunto de aes que devem ser executadas para produzir um resultado pr-definido." Obs.: Embora parea complicado, o conceito de algoritmo nos bastante familiar-. Todos os dias estamos executando algoritmos. Isto significa que a palavra se aplica no apenas a computadores, mas tambm a procedimentos humanos. Exemplos: - Receita Culinria Misture os ingredientes. Unte o tabuleiro com manteiga. Despeje a mistura no tabuleiro. Se (h queijo parmezon) ento Espalhe sobre a mistura. Leve o tabuleiro ao forno. Enquanto (no corar) Deixe o tabuleiro no forno Deixe esfriar. Experimente antes de servir. - Rotina Administrativa Verifique preenchimento do formulrio. Se o preenchimento estiver correto ento Arquive o documento. Fornea o protocolo. Seno Lamente. Torne a lamentar. Pea para a pessoa comprar outro formulrio. Despea-se educadamente

Podemos citar vrios exemplos de algoritmos familiares a todos, como bulas de remdios, esquemas de montagens, manuais de instrues e operaes, etc.

Sempre que formos construir um algoritmo necessrio que saibamos exatamente todos os passos do problema a ser resolvido e em que seqncia as aes devero ser desenvolvidas; que sejam previstas todas as situaes que podero ocorrer no desenrolar da questo e o que fazer em decorrncia de cada uma delas. Alm disso as instrues que compem o algoritmo devem ser absolutamente claras e objetivas no podendo haver nenhuma ambigidade.

1.1- Refinamentos Sucessivos Como vimos antes, na vida quotidiana os algoritmos so encontrados freqentemente: instrues para uso de aparelhos eletrodomsticos, guia de preenchimento de declarao de imposto de renda, etc. Um algoritmo considerado completo se os seus comandos forem de entendimento do seu destinatrio. Num algoritmo, um comando que no for do entendimento do destinatrio ter de ser desdobrado em novos comandos, que constitui um refinamento do comando inicial. Como exemplo vejamos o algoritmo abaixo: Algoritmo para trocar uma lmpada queimada. INCIO PASSO 1: Remova a lmpada queimada. PASSO 2: Coloque a nova lmpada. FIM Como ilustrao, poderamos reescrever o algoritmo anterior refinando alguns passos, e teramos como resultado o seguinte algoritmo: INCIO PASSO l: Posicione a escada debaixo da lmpada queimada. PASSO 2: Escolha uma nova lmpada da mesma potncia da queimada. PASSO 3: Suba na escada at que a lmpada possa ser alcanada. PASSO 4: Gire a lmpada queimada no sentido anti-horrio at que ela se solte. PASSO 5: Posicione a nova lmpada no soquete. PASSO 6: Gire-a no sentido horrio at que ela se firme. PASSO 7: Desa da escada. FIM Aps o novo detalhamento, esse algoritmo ficou bastante modificado, porm no perdeu o seu objetivo que de trocar uma lmpada queimada por uma nova. Poderamos inserir novos passos para que ficasse ainda mais claro a seqncia de ordens que devem ser executadas para se alcanar o objetivo final. O detalhamento do algoritmo poderia continuar indefinidamente. E funo da pessoa que est desenvolvendo-o finaliz-lo no momento que achar mais indicado.

Construir algoritmos voltados para programao de computadores exige um cuidado bem maior do que escrev-los para seres humanos devido ao fato dos computadores no serem (ainda) capazes de tirar concluses prprias, nem mesmo as mais bvias. Um computador no consegue formar uma nova idia a partir de outras, no faz experimentaes, no raciocina. A inteligncia artificial ainda um sonho a ser concretizado. A aparente inteligncia dos computadores vm justamente dos homens que esto por trs das mquinas, vm dos programadores. Outra coisa importante de se salientar que apesar dos computadores no errarem (na sua quase totalidade quando ocorre algum problema tcnico h interrupo do trabalho e no um processamento errado), eles no tm senso critico e por mais absurda que seja uma instruo se estiver correta em termos de sintaxe, ela executada. Por exemplo um computador recebe uma instruo para aumentar o salrio de todos os funcionrios de uma empresa em 5000%, ao contrrio de qualquer contador que certamente desconfiaria deste valor e iria apurar se no havia nenhum erro, o computador cumprir esta instruo sem questionamentos (a no ser que tenha sido programado para faz-lo). Devido a este fato de vital importncia que o programador faa revises detalhadas em seus algoritmos antes de dar o programa por encerrado. Um programa que "roda" no significa de maneira alguma que o mesmo esteja livre de erros. A grande vantagem do computador reside na verdade na sua grande capacidade de memria e na velocidade com que processa informaes. Antes de nos aprofundarmos na construo de algoritmos fundamental rever e levantar alguns conceitos, como faremos a seguir. 1.2 - Programa o Algortmo traduzido para uma linguagem que o computador capaz de reconhecer atravs de um interpretador ou compilador (Basic, Cobol, Dbase, Fortran, Pascal, etc). 2 - ESTRUTURAS DE DADOS Ao desenvolvermos um algoritmo, devemos pensar, tambm, em uma estrutura para armazenar as informaes que sero fornecidas pelo usurio. Alguns algoritmos utilizam uma grande massa de informaes que devem estar relacionadas de alguma forma, como por exemplo um algoritmo de consulta a uma lista telefnica que deve conter o nome, endereo e telefone de uma pessoa. Percebe-se que essas trs informaes tem natureza diferente porm, devem estar relacionadas, pois dizem respeito a mesma pessoa. So utilizadas para a armazenagem desses dados TIPOS PRIMITIVOS de dados 2.1- Tipos Primitivos de Dados

Os tipos primitivos de dados so aqueles que foram definidos previamente, ou seja, que existem independentemente da existncia de outros tipos. So tipos simples. Os tipos primitivos de dados utilizados so: INTEIRO, REAL, LITERAL e LGICO.
2.1.1- Tipo Inteiro Representa todos os nmeros positivos e negativos, incluindo o zero (0),contidos no conjunto dos inteiros, com intervalo definido pela capacidade (em bits) do computador. Para o computador de 16 bits (os utilizados em nossos laboratrios), os limites para nmeros do tipo inteiro so: 216 = 65536 nmeros possveis ( -32768,...,0,...,32767 ) 2.1.2 - Tipo Real Representa todos os nmeros positivos e negativos, incluindo o zero (0), contidos no conjunto dos reais. O limite dado pela capacidade (em bits) do computador. comum a utilizao da Letra "E" seguida do sinal de "+" ou "-" e de dois dgitos aps o nmero do tipo real. Este conjunto (E+nn ou E-nn) simboliza a utilizao do exponencial, ou seja, multiplicao do nmero pelo valor correspondente a 10+nn ou 10nn. Essa notao utilizada para facilitar a escrita de nmeros grandes, como por exemplo 8000000000 que poderia ser escrito da seguinte forma: B.OE+09, o que equivale a 8.0 * 109. Exemplos:7.40 -5.5 8.l0E+OS -O.lE-02 2.1.3 - Tipo Literal Representa todos os smbolos compreendidos pelo cdigo ASCII (tabela de todos os caracteres usados nos computadores), ou seja, as letras de A a Z, maisculas ou minsculas, os nmeros de 0 a 9 e suas combinaes, os caracteres especiais existentes no teclado e os smbolos grficos definidos pelo cdigo. Os valores do tipo literal devem sempre estar envolvidos por aspas "" Exemplos: "A" "c" "#" "&" "/" "CETRA" Obs.: O nico smbolo que no pode ser utilizado como do tipo literal a prpria aspas ("), pois seria confundida com as aspas limitadoras. 2.1.4 - Tipo Lgico Engloba apenas os valores lgicos verdadeiro e falso. usado em casos em que s hajam duas situaes possveis. Por exemplo em uma pesquisa a respeito do fumo, a resposta a respeito da questo " fumante?" teria como respostas possveis, apenas SIM ou NO, ou seja, verdadeiro ou falso.

3 - OPERAES Consiste na realizao dos clculos envolvendo operandos e operadores. As operaes permitidas so as aritmticas (atribuio de valores, adio, subtrao, diviso, multiplicao, potenciao) e as lgicas. 3.1- Operaes Aritmticas 3.1.1- Adio ( + ) Exemplos: 2 + 125 ;1 + 3 + 3 3.1.2 - Subtrao ( - ) Exemplos: 291- 282 ; 26 -14 - 52 3.1.3 - Multiplicao ( * ) Exemplos: 3 * 3 ; 63 * 1 * 424 3.1.4 - Potenciao ( ** ou ^ ) Exemplos: 4 * * 2 ; 64 * * 5 * * 2; 2^5 3.1.5 - Diviso Real ( / ) Exemplos: 4 / 5 ; 6 / 4 / 2 3.2 - Prioridade na execuo 1) + e -. mais e menos unrios (indica se um valor positivo ou negativo). 2) * * . exponenciao 3) *, /, div e mod : multiplicao, diviso, diviso inteira e resto da diviso inteira. 4) + e -. adio e subtrao Obs. - Quando existe em uma expresso operadores com a mesma prioridade, a execuo da esquerda para a direita. Obs.2 - Caso seja necessrio alterar a ordem de prioridade deve-se utilizar a expresso entre parnteses. A expresso entre parnteses ter prioridade mxima. Caso haja parnteses aninhados "((( )))", a ordem de execuo ser do mais interno para o mais externo, ou seja, ser resolvido primeiro a expresso que estiver dentro do conjunto de parnteses "( )" mais interno. 3.3 - Operadores Lgicos Tipos (pela ordem de prioridade):

a) no : negao. b) e : conjuno. c) ou : disjuno. EX: Assuma: V= verdadeiro ; F = falso A V V F B V F F A e B A ou B no A V F F V V F F F V

3.3.1 - Operaes Lgicas Operaes lgicas so comparaes realizadas entre expresses. As operaes lgicas podem ser consideradas afirmaes que sero testadas pelo computador, tendo como resultado, um valor verdadeiro ou falso. As operaes lgicas so realizadas utilizando-se os operadores lgicos e os relacionais (veja tpico seguinte). 3.4 - Operadores Relacionais So usados na comparao de duas expresses retornando verdadeiro ou falso como resultado da operao. OPERADOR = igual a > maior que < menor que <> diferente de >= maior ou igual que <= menor ou igual que EXEMPLO 6=5+1 30/2 > 5 ANA < BOLA 90/3 <> 3 * 10 5 ^ 2 > = 25 10 / 2 < = 1 RESULTADO verdadeiro falso verdadeiro verdadeiro verdadeiro falso

Obs.: As operaes lgicas s podem ser efetuadas com relao a valores do mesmo tipo, no sendo permitida, por exemplo, a comparao entre um valor numrico e um valor literal. A comparao entre valores literais se d atravs da ordem alfabtica dos textos e no pelo nmero de caracteres dos textos comparados. Considera-se menor um texto que vier antes do outro em ordem alfabtica. Os computadores, na verdade, tratam os caracteres como nmeros segundo um cdigo predefinido; a maioria dos fabricantes utilizam os mesmos cdigos numricos. Estes cdigos esto definidos na TABELA ASCII

(American Standard Code for Information Interchange - Cdigo Padro Americano para Intercmbio de Informaes). 4 - FUNES Funes so operadores especiais pr-definidos ou definidos pelo usurio que aplicados a uma varivel ou expresso produzem determinado valor. 4.1 - Principais funes pr-definidas FUNO ABS(X) SQRT(X) TRUNC(X) ROUND(X) LOG(X) EXP(X) SIN(X) COS(X) TAN(X) 5 - OPERAES MISTAS So aquelas que envolvem tipos distintos de operadores. EXl: (2*(3-4)) <= 5 EX2: 4>6 ou no (5=6) 6 - PRIORIDADE NAS OPERAES MISTAS PRIMEIRO SEGUNDO TERCEIRO QUARTO : Parnteses e Funes : Operadores Aritmticos : Operadores Relacionais : Operadores Lgicos. SIGNIFICADO valor absoluto raiz quadrada valor truncado valor arredondado logartmo base e exponencial seno cosseno tangente

7 - VARIVEIS Ao trabalharmos com informaes em um algoritmo ou programa, elas precisam ser armazenadas, temporariamente, na memria do computador. Essas informaes podem sofrer alteraes durante a execuo do algoritmo ou programa. Esses espaos de memria onde so guardados esses valores so chamados de variveis e possuem um nome atravs do qual so referenciados (identificados). Podemos ento definir uma varivel da seguinte forma: "Varivel todo e qualquer valor que, durante a execuo de um programa ou algoritmo, ser armazenado em uma posio de memria e poder sofrer alteraes".

So quatro os tipos possveis de variveis em um algoritmo como mostrado a seguir: Variveis Inteiras: so aquelas que assumem valores inteiros. Ex. 26, -89, 0, 100. Variveis Reais: so aquelas que assumem valores reais. Ex. 26, -89, 987.8999, 9.767667E+03, 0,100. Variveis literais: so aquelas que armazenam valores do tipo caractere. Ex: "CETRA", "TESTE", "ALGORITMO", "23", "yzl !?*" Variveis Lgicas: so aquelas que assumem valores lgicos, ou seja, verdadeiro ou falso. 7.1 - Regra para nomear variveis Os identificadores de variveis obedecem as seguintes clusulas: A quantidade de caracteres depende da linguagem de programao utilizada. Convencionaremos o mesmo da linguagem Pascal verso 5.0, ou seja, quarenta caracteres. Os caracteres possveis so:. letras (a..z, A..Z); .dgitos (0..9); - O nico smbolo especial usado o subscrito ("_"); - Deve comear obrigatoriamente por uma letra; - No pode conter espao em branco. Exemplos vlidos : Valor, A002, X, IDENTIDADE DO_PROFESSOR. Exemplos invlidos:12b, CASA BRANCA, NOTA_l. 7.2 - Declarao de Variveis As variveis s podem armazenar valores de um mesmo tipo. Para indicar o tipo de uma ou mais variveis usada a declarao de variveis. Alm disso, no momento em que se declara uma varivel feita a associao do nome escolhido, ou identificador, com a respectiva posio de memria que o mesmo passa a simbolizar. Uma vez declarada a varivel, qualquer referncia que se faa ao seu identificador implica a referncia ao contedo do local da memria representado pelo mesmo. Toda a declarao de variveis tem a seguinte forma: nome-do-tipo: lista-de-identificadores onde: nome-do-tipo: uma das quatro palavras-chave (inteiro, real, lgico ou literal) lista-de-identificadores: so os identificadores (nomes) escolhidos para as

variveis, separados por vrgulas. Obs. - Cada lista de identificadores s pode conter variveis do mesmo tipo, de existir uma lista de identificadores para cada tipo de varivel que venha utilizada no algoritmo. tendo a ser

Obs2. - As variveis e constantes numricas devem ser declaradas como inteiras ou reais pois isto interfere na quantidade de espao que ser reservado para o armazenamento na memria do computador. Se uma varivel no for receber nenhum valor fracionrio, dever ser declarada como inteira pois isto far com que o computador economize memria e tambm com que execute mais rapidamente qualquer operao matemtica com esta varivel.

8 - TIPOS DE PALAVRAS ENCONTRADAS EM UM ALGORITMO 8.1 - Palavras do Programador: So os identificadores de variveis declaradas e os comentrios explicativos inseridos no algoritmo, que embora no interfiram no seu funcionamento, contribuem para o seu entendimento. 8.2 - Palavras da Linguagem: So os nomes reservados para definio das estruturas no algoritmo. Essas palavras sero escritas com letras minsculas e sublinhadas. 9 - COMANDOS BSICOS Envolve os comandos de atribuio e os comandos de entrada e sada de dados visto nos tpicos seguintes. 9.1.1 - atribuio ( = ) Consiste na atribuio de valores inteiros, reais, literais ou lgicos, ou de resultados de expresses a constantes ou variveis. E representado pelo smbolo "=".

Exemplos: NOTA FIRMA FUMANTE SALRIO = 8.6 = "CETRA- Centro Educacional Te. Rivaldo Antnio Arajo" = verdadeiro = BRUTO - DESC + VANT

9.1.2 - Comandos de Entrada e Sada de Dados Como foi visto na disciplina anterior as unidades de entrada e sada so dispositivos due possibilitam a comunicao direta ou indireta entre o usurio e o computador. Atravs de um teclado possvel a digitao de programas e introduo de dados na memria do computador, j por meio de uma impressora ou monitor de vdeo podemos

ter acesso aos dados j processados pela mquina. Para que o computador pea que algum dado seja introduzido pelo usurio via teclado, para que faa leituras em algum dispositivo de armazenamento (memria auxiliar) ou que escreva alguma coisa em uma impressora, necessrio que haja alguma instruo neste sentido. Os comandos de entrada e sada so as ferramentas para esta finalidade. 9.1.2.1 - Sada ( escreva ) O comando de sada de dados nos permite visualizar o resultado de uma expresso. Ele o responsvel pela comunicao da mquina com o usurio. O dispositivo mais usado para essa comunicao o monitor de vdeo do computador. Sintaxe: escreva( Expresso, EXPRESSO2, ... , Expresso ) EXEMPLO: Veja o resultado das sadas de dados decorrente das linhas de comando, considerando a atribuio: soma = 2 + 3 + 4 Linha de Comando ESCREVA(soma) ESCREVA(Soma = ,soma) ESCREVA(Soma = ,2+3+4) Resultado impresso 9 Soma = 9 Soma = 9

9.1.2.2 - Entrada ( leia ) Usado para atribuir valores variveis durante a execuo do algoritmo. Em um programa o dado seria lido de uma determinada unidade de entrada (geralmente teclado ou disco). Sintaxe: leia( Varivel, Varive2, ... , Varivel ) EXEMPLO: Leia( SALRIO ) Leia( NOTAl, NOTA2, NOTA3 )

10 - COMENTRIOS Para tornar mais fcil o entendimento de um algoritmo fundamental o uso de comentrios explicativos que ajudem a esclarecer as solues, caminhos e alternativas que apaream no mesmo. Os programas de computao precisam, muitas vezes, sofrer mudanas, implementos e complementos. Ser muito difcil realiz-las, at mesmo pelo prprio autor, se o programa no estiver bem documentado. Lembre-se que a necessidade das mudanas pode surgir meses ou at mesmo anos depois de sua elaborao. Ser que o autor lembrar o porqu de cada passo de um programa complexo ?

Em algoritmo os comentrios devem vir entre chaves. Ex: lgico: SUP {quando o contedo for verdadeiro significar que o funcionrio} {possui curso superior e quando falso que no possui} 11- TIPOS DE ESTRUTURAS EM ALGORITMOS a) Estrutura Seqencial b) Estrutura Condicional c) Estrutura de Repetio 11.1 - Estrutura Sequencial Em uma estrutura seqencial o programa executado seqencialmente, ou seja, uma instruo aps a outra, na ordem em que elas aparecem, no havendo portanto desvios. Quando determinada ao for acontecer uma nica vez usamos uma seqncia simples (conjunto de comandos que sero executados numa seqncia linear). Ex: Calcule e escreva o resultado da rea de um trapzio a partir de dados fornecidos pelo usurio. Soluo: Para calcular a rea de um trapzio precisamos saber dos valores correspondentes base maior, base menor e sua altura. Estes dados sero lidos e devero ser armazenados para posteriormente realizarmos o clculo, teremos ento que criar variveis para armazenar estes dados. Como as dimenses de um trapzio envolve valores reais, as variveis tero que ser deste tipo. No podemos escrever o resultado sem antes calcul-lo. Tambm no podemos calcular sem saber dos valores. Portanto a seqncia dever ser: declarar as variveis (cri-las), ler valores para as mesmas, realizar o clculo e por ltimo escrever o resultado. Chegaremos ento ao seguinte algoritmo: incio real: BMaior, BMenor, H, AREA escreva ("Digite a Base Maior: ") leia (BMaior) escreva ("Digite a Base Menor: ") leia (BMenor) escreva ("Digite a Altura: ") leia (H) AREA = (BMaior + BMenor) / 2 * H escreva ("rea do Trapzio = ", AREA) fim {Os parnteses so necessrios devido a } {ordem de prioridade dos operadores }

inicio real: BMaior, BMenor, H, AREA leia: ( BMaior, BMenor, H ) AREA  (BMaior + BMenor) / 2 * H escreva (AREA) fim 11.2 - Estrutura Condicional Quando a ao a ser executada depender de um teste teremos uma alternativa simples ou composta. Neste caso o teste ter que vir antes do conjunto de comandos pois dependendo do resultado do mesmo, poder ocorrer que os comandos no sejam executados nenhuma vez. 11.2.1 - Alternativa Simples se <CONDIO> ento C1 C2 . . . Cn fin-se EX: se TSERVIO >= 5 ento SALRIO E-- SALRIO * 1.05 fim-se

Onde: Cl, C2, ... Cn; representam uma seqncia de comandos quaisquer. se e fim-se so palavras-chave que marcam respectivamente o incio e o fim do bloco de comandos dependentes do teste realizado. Se o teste resultar verdadeiro os comandos dentro do bloco sero executados, uma nica vez, um a um, de cima para baixo. Caso o teste resulte falso os comandos dentro do bloco no sero executados nenhuma vez. 11.2.2 - Alternativa Composta se <CONDIO> ento Cl C2 seno C3 C4 C5 fim-se

Observe que para cada se deve haver um fim-se correspondente que marque o final do bloco de comandos, dependentes do resultado do teste feito no incio daquele bloco. Exemplo: trecho de um algoritmo que calcula as gratificaes de funcionrios de um empresa com ndices variados caso possua curso superior, tcnico ou nenhum. se CSUPERIOR ento GRAT = SAL * 0.25 seno se CTCNICO ento GRAT = SAL * 0.15 seno GRAT = SAL * 0.05 fim-se fim-se Obs: CSUPERIOR E CTCNICO so variveis lgicas. Preste ateno que no exemplo acima, as gratificaes so exclusivas, no havendo acumulaes. 11.3 - Estruturas de repetio Em estruturas de repetio determinadas partes do programa so executadas diversas vezes de acordo com alguma condio de repetio estabelecida pelo programador. Existem diversas maneiras de se especificar como a condio ser testada. Veremos as principais a seguir. 11.3.1 - Repetio com Teste da Condio de Trmino no Inicio. A condio testada no incio do bloco a ser repetido, as instrues do bloco s sero executadas se a condio for satisfeita. Estrutura : enquanto <CONDIO> faca seqncia A de comandos . . . seqncia Z de comandos fim-enquanto EX: Soma dos pares de 100 a 200.

Incio inteiro: PAR, SOMA SOMA = 0 PAR = 100 enquanto PAR = 200 SOMA = SOMA + PAR PAR E-- PAR + 2 fim-enquanto escreva(SOMA) fim 11.3.2 - Repetio com Teste da condio de Trmino no Final. A condio testada no fim do bloco a ser repetido, as instrues do bloco sero executadas pelo menos uma vez. Modelo repita seqncia A de comandos at <CONDIO>

Ex : Soma dos pares de 100 a 200 INICIO inteiro: PAR, SOMA SOMA = 0 PAR = 100 repita SOMA = SOMA + PAR PAR = PAR + 2 at PAR > 200 escreva (SOMA) fim Observe que a utilizao de um comando repita no lugar de um comando enquanto, devese a utilizar como (CONDIO) para o repita, a negao da (CONDIAO) do enquanto. 'I'i.3.3 - Repetio com Varivel de Controle Neste tipo de repetio o bloco especificado ser executado um determinado nmero de vezes controlado por uma varivel.

Modelo: para VC de VI at VF passo INC faca seqncia A de comandos : : seqncia B de comandos fim- para ONDE: VC: uma varivel numrica inteira qualquer. (Varivel de Controle) VI: Representa o Valor Inicial da varivel VC. VF: Representa o Valor Final da varivel VC. Ou seja quando o valor da varivel VC for igual a VF o lao de repetio ser executado pela ltima vez. INC: E o incremento que sofrer a varivel VC durante a execuo do lao de repetio. INC poder assumir qualquer valor numrico desde que seja um nmero inteiro positivo ou negativo. Ex. Imprimir os nmeros mpares de 1 at 15. incio para I de 1 at 15 passo 2 faa escreva(I) fim - para fim. O mesmo exemplo poderia ser resolvido usando a instruo "enquanto". inicio inteiro : I I=1 enquanto I <=15 faa escreva (I) I=I+2 fim-enquanto fim.

12 - INTERRUPO FORADA DO LAGO DE REPETIO ( abandone )

O comando abandone s tem sentido dentro de um comando de repetio (enquanto, repita, para). Alm disso, estar sempre associado ao teste de uma condio com o comando se. Quando o comando abandone encontrado, o algoritmo tem seu fluxo desviado para a primeira instruo que houver logo aps o final do lao de repetio em que se encontrava o comando abandone. Ex. enquanto I>0 faca I=0.05 escreva(I) se I ** 2 + 1 >=1.45 enquanto I=I+0.2 seno abandone fim-se fim-enquanto

13 - ALTERNATIVA DE MLTIPLA ESCOLHA Modelo: escolha caso <condio 1> seqncia A de comandos caso (condio 2) seqncia B de comandos : caso (condio N) seqncia C de comandos seno seqncia D de comandos fim-escolha A semntica do comando a seguinte: - As palavras reservadas escolha e fim-escolha marcam o bloco relacionado com a estrutura de mltipla escolha. - Cada condio dever ser precedida da palavra caso e poder usar todos os operadores relacionais e lgicos. - As condies so independentes, ou sejam no obrigatrio que dependam de uma mesma varivel.

- A execuo do comando se d de cima para baixo, quando um dos testes resulta verdadeiro o bloco de comandos associado ao mesmo executado. Aps a execuo do ltimo comando associado ao bloco o fluxo do algoritmo desviado para a prxima instruo que houver depois do fim escolha. Isto significa que no mximo uma das seqncias de comandos ser executada, podendo nenhuma delas ser executada, no caso de todos os testes serem falsos e de no haver a clusula seno. - A clusula seno no obrigatria. Existindo a mesma, o seu bloco de comandos s ser executado no caso de todos os testes que a antecedem terem tido resultado falso. Ex: Solicitar que sejam digitados trs nmeros distintos entre s e informar qual foi o maior valor digitado se os valores forem realmente diferentes; alertando caso tenha sido digitado algum valor repetido.

Soluo: incio real: A, B, C escreva ("Digite trs valores diferentes") leia (A,B,C) escolha caso A>B e A>C escreva ("A tem o maior valor") caso B>A e B>C escreva ("B tem o maior valor") caso C>A e C>B escreva ("C tem o maior valor") seno escreva ("foi digitado valor repetido") fim-escolha fim

14 - METODOLOGIA DE DESENVOLVIMENTO DE ALGORITMOS

Normalmente a maior dificuldade de quem est iniciando no aprendizado da programao de saber como comear a desenvolver um algoritmo. As instrues abaixo, se seguidas, podem ser de muita ajuda na soluo do problema. 1 - Leia com ateno a especificao do problema at o final e repita a leitura quantas vezes for necessrio para o entendimento total do problema. 2 - Leia novamente o problema e veja quais as entradas (leituras) que so citadas na especificao do mesmo. 3 - Verifique quais as sadas (impresses, etc.) que so solicitadas na questo. 4 - Verifique pelo que o problema pede, quais as variveis que devero ser criadas, quais os seus valores iniciais e o tipo de cada uma delas. 5 - Levante e analise todas as transformaes necessrias para, dadas as entradas e valores gerados internamente, produzir as sadas especificadas. 6 - Veja com base no que o problema pede, quais os testes (condies) que devero ser feitos e o que dever ser realizado caso o resultado de cada teste seja verdadeiro ou falso. 7 - Observe quais as aes que o problema exige e quantas vezes devero ser executadas. Com base nisto defina quais os laos que devero existir e quais as condies de trmino dos mesmos. 8 - Faa uma reavaliao geral e elabore o algoritmo atravs da integrao das partes.

15 - REGRAS PRTICAS PARA A CONSTRUO DE ALGORITMOS LEGVEIS 1- Procure incorporar comentrios no algoritmo, pelo menos para descrever o significado das variveis utilizadas. Comentrios em PORTUGOL, podem ocorrer em qualquer parte do algoritmo, encerrados entre chaves {e). EX: {declarao de variveis}, {clculo da mdia}. 2- Escolha nomes de variveis que sejam significativos, isto , que traduzam o tipo de informao a ser armazenada na varivel. EX: NOTA MATRICULA CPF Obs.: As variveis devem ser, de preferncia, escritas em letras maisculas.

3- Grife todas as palavras chaves (escritas com letras minsculas) do algoritmo, destacando as estruturas de controle. EX: A<0 se B <> -1 ento

4 - Procure alinhar os comandos de acordo com o nvel a que pertenam, isto , destaque a estrutura na qual esto contidos. | B=A*C enquanto P <> -1 faa | P=P-1 | F = x + NOTA / 2 | leia (F, NOTA) fim-enquanto escreva (F, NOTA) EXERCCIOS EX:

1 - Construa um algoritmo que leia um valor em cruzeiros reais, a cotao do dlar do dia e escreva em dlar o correspondente ao valor lido em cruzeiros reais. 2 - Construa um algoritmo que leia um valor em dlar, a cotao do dlar do dia e escreva em cruzeiros reais o correspondente ao valor lido em dlar. 3 - Construir um algoritmo que leia os valores de A, B e C e calcule as razes reais de uma equao do segundo grau da forma seguinte: Ax2 + Bx + C = 0 Obs.: Para realizar esse clculo, devem ser seguidos os seguintes passos: - realizar a leitura dos coeficientes A, B e C. - calcular o delta (D) usando a seguinte frmula: D < (B ^ 2) - (4 * A * C) - se o valor do delta (D) for positivo, calcular as razes reais usando as frmulas baixo. Caso o valor do delta (D) seja negativo imprimir a mensagem "No existem razes reais palra a equao". Xl = (-B + SQR(D))*(2 * A) X2 = (-B - SQR(D))*(2 * A) 4 - Construa um algoritmo que leia um nmero real e responda se o nmero digitado positivo ou negativo. 5 - raa um algoritmo que leia um nmero inteiro e positivo e informe se ele par ou mpar.

You might also like