ap algoritmosglauco

18
Glauco Amorim 1 Programação de Computadores para Iniciantes Apostila de Construção de Algoritmos Professor Glauco Amorim [email protected] Atualizado em Fev/2009

Upload: cleilson-pereira

Post on 27-Jun-2015

665 views

Category:

Education


0 download

TRANSCRIPT

Page 1: Ap algoritmosglauco

Glauco Amorim 1

Programação de Computadores para Iniciantes

Apostila de Construção de Algoritmos

Professor Glauco Amorim [email protected]

Atualizado em Fev/2009

Page 2: Ap algoritmosglauco

Glauco Amorim 2

Capítulo 1 Introdução à Construção de Algoritmos

1.1 Definição: algoritmo é uma seqüência finita de ações que descrevem como um problema pode ser resolvido.

Tipos de algoritmos: descrição narrativa, fluxograma e pseudo-código (Portugol). Quando as ações de um algoritmo obedecem à sintaxe de uma linguagem de programação, passamos a chamá-lo de programa. Exemplos:

1. Receita culinária; 2. Instruções para a operação de um equipamento; 3. Partitura musical.

Instruções são frases que indicam as ações a serem executadas. São compostas de um verbo imperativo mais um complemento. Exemplos: 1. Bata duas claras em neve. 2. Ligue os faróis. 3. Abra a porta. Desenvolver um bom algoritmo é a principal chave para a programação de computadores. Só comece a codificar um programa após o algoritmo estar totalmente desenvolvido e testado. Existem qualidades que devem ser buscadas em qualquer algoritmo. São elas: 1. Perfeitamente Definido: deve descrever exatamente quais são as instruções que devem ser executadas e em que seqüência. Deve ser tornado explícito o maior número possível de informações, pois a falta de alguma informação pode levar a uma interpretação errônea do algoritmo. 2. Não Ambíguo: não deve deixar dúvidas sobre o que deve ser feito. A ambigüidade também pode levar a uma interpretação errônea do algoritmo. 3. Eficaz: consegue resolver o problema em qualquer situação. Todas as situações de exceção que possam alterar o comportamento do algoritmo devem ser especificadas e tratadas. 4. Eficiente: resolve o problema com o mínimo de recursos. Sempre devemos buscar aquele algoritmo que, dentre os diversos algoritmos que resolvam um mesmo problema, utilize a menor quantidade de recursos. No caso de algoritmos para processamento de dados, os recursos a serem considerados são espaço na memória (principal e auxiliar), tempo de processamento, entre outros. Vamos analisar um algoritmo (descrição narrativa) algoritmo lavar_cabelo

Page 3: Ap algoritmosglauco

Glauco Amorim 3

1. molhe o cabelo

2. coloque o xampu

3. massageie

4. enxágue

5. repita Análise do algoritmo lavar_cabelo

� não está definido quanto de xampu deve ser colocado; � não diz quanto tempo deve massagear; � não diz quando paramos a repetição; � não diz até quando enxaguar.

Vamos ver uma versão melhorada do algoritmo descrito acima:

algoritmo lavar_cabelo_2

1. molhe o cabelo

2. repita duas vezes

2.1. coloque a quantidade correspondente a uma tampa de xampu no cabelo

2.2. massageie o cabelo até fazer espuma

2.3. enxágue até tirar o xampu 1.2 COMO CONSTRUIR ALGORITMOS � Problema: questão proposta a ser resolvida. � Análise Preliminar: entender o problema com a maior precisão possível e identificar os

dados. Identificar os resultados desejados. � Solução: desenvolver um algoritmo para resolver o problema. � Teste de Qualidade: execute o algoritmo desenvolvido com dados para os quais o

resultado seja conhecido. O ideal é que o universo dos dados tenha todas as combinações possíveis. Note que a qualidade de um algoritmo pode ser limitada por fatores como o tempo para a sua confecção e recursos disponíveis.

PROBLEMA

ANÁLISE PRELIMINAR

SOLUÇÃO

TESTE DE QUALIDADE

PRODUTO FINAL

ALTERAÇÃO

Page 4: Ap algoritmosglauco

Glauco Amorim 4

� Alteração: se o resultado do teste de qualidade não for satisfatório, altere o algoritmo e submeta-o a um novo teste de qualidade.

� Produto Final: algoritmo concluído e testado, pronto para ser aplicado. 1.3 TIPOS DE PROCESSAMENTO Em termos de algoritmos, existem três modos fundamentais de executar informações: a) Processamento Seqüencial: as instruções do algoritmo são executadas uma após a outra, sem que haja desvios na seqüência das instruções. Cada instrução é executada uma e somente uma vez. Exemplo: Problema: obtenha a média aritmética de cinco notas: Solução (descrição narrativa): 1. Some as duas primeiras notas 2. Some a terceira nota com o resultado da instrução 1 3. Some a quarta nota com o resultado da instrução 2 4. Some a quinta nota com o resultado da instrução 3 5. Divida o resultado da instrução 4 por 5 (quantidade de notas) Teste de qualidade: se as notas são 10, 5, 7, 1, 2: 1. 10 + 5 = 15 2. 7 + 15 = 22 3. 1 + 22 = 23 4. 2 + 23 = 25 5. 25/5 = 5 b) Processamento Condicional: um conjunto de instruções (pode ser uma instrução apenas) é executado ou não. A sua execução depende de uma condição. Se a condição pela qual estamos perguntando tiver resposta afirmativa, o conjunto de intruções é executado. Exemplo: Problema: obtenha a média aritmética de cinco notas. Se a média for maior ou igual a sete, o aluno está aprovado, caso contrátio, está reprovado. Solução (descrição narrativa): 1. Some as duas primeiras notas 2. Some a terceira nota com o resultado da instrução 1 3. Some a quarta nota com o resultado da instrução 2 4. Some a quinta nota com o resultado da instrução 3

Page 5: Ap algoritmosglauco

Glauco Amorim 5

5. Divida o resultado da instrução 4 por 5 (quantidade de notas) 6. Se o resultado da instrução 5 for maior ou igual a 7 7. Aprove o aluno 8. Se o resultado da instrução 5 for menor do que 7 9. Reprove o aluno Teste de qualidade: se as notas são 10, 5, 7, 1, 2: 1. 10 + 5 = 15 2. 7 + 15 = 22 3. 1 + 22 = 23 4. 2 + 23 = 25 5. 25/5 = 5 6. Resposta negativa 8. Resposta positiva 9. Aluno reprovado Observe que a pergunta da instrução 6 foi executada. Como a resposta foi negativa (a média é 5, que é menor do que sete), o aluno não foi aprovado (a instrução 7 não foi executada). Porém, como podemos afirmar que a instrução 7 está subordinada à instrução 6? Por que a instrução 8 não está subordinada à instrução 6 ? Estas perguntas são respondidas pelo conceito de IDENTAÇÃO. Identar significa deslocar para a direita as instruções subordinadas. Por exemplo, a instrução 7 está identada em relação à instrução 6, logo a instrução 7 é subordinada à instrução 6. A instrução 8 não está identada em relação à instrução 6, logo não está subordinada a ela. Note que a instrução 9 está subordinada em relação à instrução 8. O conceito de identação torna a visualização do algoritmo mais simples. c) Processamento com Repetição: conjunto de instruções (pode ser apenas uma) que é executado um determinado número de vezes. Existem várias formas de determinar até quando as instruções devem ser repetidas (isso será falado futuramente). Exemplo: Problema: obtenha a média aritmética de cinco notas de todos os alunos da sala. Solução (descrição narrativa): 1. Para cada aluno da sala faça 2. Some as duas primeiras notas 3. Some a terceira nota com o resultado da instrução 2 4. Some a quarta nota com o resultado da instrução 3 5. Some a quinta nota com o resultado da instrução 4 6. Divida o resultado da instrução 5 por 5 (quantidade de notas) Observe que as instruções 2, 3, 4, 5 e 6 estão identadas em relação à instrução 1, logo estão subordinadas a ela.

Page 6: Ap algoritmosglauco

Glauco Amorim 6

Teste de qualidade: se existem três alunos na sala e suas respectivas notas são: 10, 5, 8, 1, 3 4, 6, 7, 3, 10 9, 3, 8, 8, 7 2. 10 + 5 = 15 3. 8 + 15 = 23 4. 1 + 23 = 24 5. 3 + 24 = 27 6. 27/5 = 5,4 2. 4 + 6 = 10 3. 7 + 10 = 17 4. 3 + 17 = 20 5. 10 + 20 = 30 6. 30/5 = 6 2. 9 + 3 = 12 3. 8 + 12 = 20 4. 8 + 20 = 28 5. 7 + 28 = 35 6. 35/5 = 7 1.4 CONCEITO DE VARIÁVEL Um algoritmo para ser executado pelo computador possui as seguintes fases: 1. Coleta das informações de que o algoritmo necessita (Entrada); 2. Processamento; 3. Apresentação dos resultados (Saída). Todo algoritmo trata com informações. No computador estas informações sempre estão representadas em variáveis. Quando um computador está executando um programa (e não um algoritmo) todas as informações necessárias precisam estar na memória. Para o programa poder usar estas informações, ele precisa saber onde elas estão, ou seja, seu endereço. Exemplo de endereços de memória: 10CF, 2A00, 0200 É muito difícil (e muito sujeito a erros) trabalhar com estes endereços. A solução é fazer uma referência aquele endereço na memória, ou seja, dar um nome a ele. Como analogia, podemos pensar na Internet. Para acessar, por exemplo, um determinado site, você simplesmente digita o nome: www.uva.br e não o seu endereço numérico 191.221.113.001 (supondo que seja este).

Page 7: Ap algoritmosglauco

Glauco Amorim 7

O nome escolhido para a variável deve sempre indicar a sua finalidade. Utilizando o exemplo acima, é muito mais fácil identificar o nome “uva” e saber que este nome está fazendo referência à Universidade Veiga de Almeida, do que colocar como nome, xxxx (www.xxx.br) e identificar o que ele significa. Exemplo de endereços de memória e nomes: Endereço Nome 10CF Número de faltas 2A00 Nome do Aluno 0200 Média Final Depois de informarmos onde está a informação (via nome), devemos determinar agora qual é o seu domínio de valores, ou seja, qual é o conjunto de valores possíveis que podem ser representados em uma certa variável. A este domínio chamamos de tipo. Exemplo: Nome Tipo Número de faltas valores do tipo inteiro Nome do Aluno valores do tipo caracter Média Final valores do tipo real Os tipos básicos de informações que as linguagens de programação em geral fornecem são: a) inteiro: para o conjunto de números naturais (positivo ou negativo). b) real: para o conjunto de números reais (positivo ou negativo) c) caracter: para o conjunto alfanumérico (composto de letras e dígitos). d) lógico (booleano): composto de valores lógicos (verdadeiro, falso). Além do nome e do tipo, toda variável possui um conteúdo. Exemplo: Nome Tipo Conteúdo Número de faltas valores do tipo inteiro 2 Nome do Aluno valores do tipo caracter Maria Média Final valores do tipo real 6,7 Depois de tudo especificado, podemos trabalhar com as variáveis, ou seja, realizar determinadas operações com elas. Existem operações que podem ser aplicadas em variáveis de qualquer tipo e outras que são específicas. O principal exemplo de uma operação aceita por todas é a de atribuição. Esta operação permite que o conteúdo de uma variável seja alterado. Seu formato é:

<nome_da_variável> ←←←← <expressão> Exemplo: sejam A e B duas variáveis de tipo inteiro: Operação A B

os valores nas colunas A e B representam os conteúdos das variáveis A e B, respectivamente.

Page 8: Ap algoritmosglauco

Glauco Amorim 8

A ← 2 2 B ← A 2 2 B ← B + 3 2 5

Seja A de tipo inteiro e B de tipo lógico: 1.5 CONCEITO DE CONSTANTE Constante é, por definição, aquilo que não muda. Da mesma forma, em termos de algoritmos, constante é uma informação que não se altera. Por exemplo, PI (3,1415...) possui a mesma informação ao longo de qualquer algoritmo. Em contrapartida, se um algoritmo calcula o número total de funcionários de uma empresa, não podemos considerar a variável usada para armazenar o total como uma constante, pois seu conteúdo está sempre sendo modificado. Pode-se utilizar constantes no algoritmo, para isso basta especificá-la: const nome_da_constante = valor Exemplo: const PI = 3.1415 No algoritmo, a constante PI não poderá ter seu valor alterado. Em todo o algoritmo seu conteúdo será de 3.1415. Isso significa que PI não pode receber outro valor, por exemplo: 1.6 TIPOS DE INFORMAÇÃO a) Números: representam quantidades. Existem em geral dois tipos numéricos:

� Inteiro: valores inteiros, positivos ou negativos. Exemplos: 0, 234, -567 � Real: valores fracionários, positivos ou negativos. Exemplo: -1,2; +3,15

Pode ser utilizada também uma notação exponencial do tipo xEy que significa dizer: número real x multiplicado por 10 elevado a um número inteiro y. Exemplos: -3,15E2; 6E-15

Na terceira operação a expressão à direita do sinal de atribuição foi avaliada (B + 3 = 2 + 3 = 5) e em seguida o resultado foi atribuído à variável B.

Atenção As operações específicas são apresentadas junto a cada tipo, porém, claramente, não podemos fazer as seguintes operações:

Operação Motivo do Erro B ← B + 3 var. tipo lógico x expressão numérica A ← falso var. tipo inteiro x valor lógico B ← A var. tipo lógico x var. tipo inteiro A ← B var. tipo inteiro x var. tipo lógico

PI ←←←← 5

Page 9: Ap algoritmosglauco

Glauco Amorim 9

A ausência de sinal indica que um número é positivo. As linguagens de programação não permitem o uso de milhar, milhão etc. (1.000.000 → 1000000), e geralmente um ponto (e não uma vírgula) é usado para mostrar o início da parte fracionária (decimal) de um número (3,14 → 3.14). Operações As operações aplicáveis a números são: Operação Símbolo soma + subtração - multiplicação * divisão / exponenciação ** b) Caracteres: representam as letras, os dígitos numéricos e sinais especiais (pontuação etc). Geralmente podem ser agrupados para formar uma seqüência de caracteres (cadeia de caracteres). Exemplos: A, B_G, C3, Maria, Banana. Nunca começar com dígitos numéricos. Constantes do tipo caracter aparecem entre delimitadores especiais (aspas simples ‘ ’ ou duplas “ ”). Usaremos aspas duplas. Operação A B A ← “banana” banana B ← A banana banana B ← “A” banana A Se o caracter delimitador deve fazer parte de uma cadeia de caracteres, então ele deverá aparecer duplicado: A ← “ “banana” ” = “banana” Operações As linguagens em geral, não fornecem operações específicas. Por isso, quando for realizar alguma operação nos caracteres, você deverá procurar informar-se. c) Lógicos (booleanos): um valor lógico pode estar em apenas um de dois estados: verdadeiro (V) ou falso (F). Nem todas as linguagens permitem usar variáveis lógicas, porém os seus valores estão presentes em qualquer comparação. Operações Lógicas

Operação A B C A ← 10 10 B ← 2 10 2 C ← A + B 10 2 12 C ← A * B 10 2 20 C ← A ** B 10 2 100

Exemplo

Se não fosse o uso de delimitadores, não seria possível diferenciar a segunda operação da terceira operação.

As operações principais são: a) E � se algum estado for Falso, então Falso. b) OU � se algum estado for Verdadeiro, então Verdadeiro. c) NÃO � troca o estado

A B A ou B A e B não A

V V V V F

V F V F F

F V V F V

F F F F V

Exemplo

Page 10: Ap algoritmosglauco

Glauco Amorim 10

1.7 EXPRESSÕES Uma das características importantes de um algoritmo é a capacidade de resolver expressões. Existem basicamente três tipos de expressões: a) Aritmética: operações entre valores de tipo numérico (inteiro ou real) e que têm como resultado um valor numérico. Operadores Símbolo adição + subtração - multiplicação * divisão / exponenciação ** b) Relacional: operações de comparação entre dois valores de mesmo tipo, e que têm como resultado um valor lógico. Operadores Símbolo igual = diferente < > maior > menor < menor ou igual < = maior ou igual > = c) Lógica: operações lógicas entre valores lógicos, e que têm como resultado um valor lógico. Operadores E OU NÃO 1.8 ENTRADA e SAÍDA Todo programa possui comandos que transportam informações entre a memória principal do computador e os seus períféricos. Em algoritmo, usaremos os seguintes comandos: � leia: transfere informações de um periférico (normalmente do teclado ou do disco) para a

memória principal; � escreva: transfere informações da memória principal para um periférico (normalmente o

vídeo, o papel – se for impresso, ou o disco). Exemplos: leia (numero)

Exemplo

Expressão Resultado A + 1 2 B + (C – d) * 4 / 2 0

Exemplo

Expressão Resultado A < B verdadeiro A < > B verdadeiro 5 < = 1 falso

A = 1; B = 2; C = 3; D = 4

A = “ABC”; B = “XYZ”

Exemplo Expressão Resultado NÃO (A =5) falso (B = “XYZ”) E C verdadeiro (A = 4) OU (NÃO C) falso

A = 5; B = “XYZ”; C = verdadeiro

Page 11: Ap algoritmosglauco

Glauco Amorim 11

leia (A, B, SOMA) escreva (“Média =”, M) escreva (“Valor lido:”, N, “resultado =”, N ** 2 + 5) 1.9 COMENTÁRIO Colocar comentários no algoritmo, ajuda a identificar o que está sendo utilizado, qual a operação que será realizada, qual o objetivo da estrutura usada etc. Para mostrar ao algoritmo que o conjunto de caracteres a seguir é um comentário, basta usar os símbolos abrir e fechar chaves: { }. Exemplo: {Este algoritmo calcula o salário reajustado} →→→→ comentário (entre chaves) algoritmo Salario

...

1.10 ESTRUTURA DO ALGORITMO Todo algoritmo deve ter um nome e deve ficar delimitado entre um espaço (início e fim). Por exemplo: algoritmo MeuAlgoritmo

declare

{espaço para a declaração das variáveis}

inicio

comando 1

comando 2

...

comando n

fim

1.11 METODOLOGIA DE DESENVOLVIMENTO DE ALGORITMOS Uma das dificuldades naturais de um iniciante em programação é como começar a desenvolver um algoritmo para resolver um dado problema. Os passos seguintes, se seguidos, podem auxiliar nesta tarefa: passo 1: leia cuidadosamente a especificação do problema até o final. (fazer anotações) ENTENDEU ← falso VEZES ← 0 passo 2: levantar e analisar todas as entradas citadas na especificação do problema; passo 3: levantar e analisar todas as saídas exigidas na especificação do problema; passo 4: verificar se é necessário gerar valores internamente ao algoritmo e levantar as variáveis necessárias e os valores iniciais de cada uma (comentar); passo 5: levantar e analisar todas as transformações necessárias para, dadas as entradas e valores gerados internamente, produzir as saídas especificadas (comentar);

Page 12: Ap algoritmosglauco

Glauco Amorim 12

passo 6: testar cada passo do algoritmo, verificando se as transformações intermediárias executadas estão conduzindo aos objetivos desejados. Utilizar, sempre que possível, valores de teste que permitam prever os resultados a priori; 1.12 REGRAS PRÁTICAS PARA CONSTRUÇÃO DE ALGORITMOS LEGÍVEIS

1. Algoritmos devem ser feitos para serem lidos por seres humanos. Tenha em mente que seus algoritmos deverão ser lidos e entendidos por outras pessoas (e por você mesmo) de tal forma que possam ser corrigidos, receber manutenção e serem modificados.

2. Procure incorporar comentários no algoritmo, pelo menos para descrever o significado das variáveis utilizadas. Comentários podem ocorrer em qualquer parte do algoritmo, encerrados entre chaves {comentário}.

3. Escreva os comentários no momento em que estiver escrevendo o algoritmo. Um algoritmo não documentado é um dos piores erros que um programador pode cometer e é sinal de amadorismo. Como o objetivo de se escrever comentários é facilitar o entendimento do algoritmo, eles devem ser tão bem concebidos quanto o próprio algoritmo.

4. Os comentários deverão acrescentar alguma coisa, não apenas para frasear os comandos. O conjunto de comandos nos diz o que está sendo feito; os comentários deverão nos dizer o por quê.

5. Use comentários no prólogo. Todo algoritmo ou procedimento deverá ter comentários no seu prólogo para explicar o que ele faz e fornecer instruções para seu uso. Alguns destes comentários seriam:

a) uma descrição do que faz o algoritmo;

b) como utilizá-lo;

c) explicação do significado das variáveis mais importantes;

d) estruturas de dados utilizadas;

e) os nomes de quaisquer métodos especiais utilizados, juntamente com referências nas quais mais informações possam ser encontradas;

f) autor

g) data de escrita

6. Escolha nomes de variáveis que sejam significativos, isto é, que traduzam o tipo de informação a ser armazenada na variável.

Ex: NOTA, MATRICULA, CPF

7. Procure alinhar os comandos de acordo com o nível a que pertençam, isto é, destaque a estrutura na qual estão contidos. Utilize o conceito de identação explicado na terceira seção (página 4).

8. Utilize espaços em branco e parênteses para melhorar a legibilidade e evitar erros. Espaços em branco, inclusive entre linhas.

Page 13: Ap algoritmosglauco

Glauco Amorim 13

Capítulo 2

Estruturas Lógicas de um Algoritmo

2.1 Blocos A seguir são descritos os blocos e os comandos básicos de controle do PORTUGOL. Blocos: um bloco pode ser definido como um conjunto de comandos com uma função bem definida. Ele serve também para definir os limites onde as variáveis declaradas em seu interior são conhecidas. algoritmo exemplo <declaração de variáveis> início <comandos> fim 2.2 Estruturas Lógicas de um Algoritmo Do ponto de vista lógico, um algoritmo é constituído por três estruturas lógicas: seqüencial, seletiva e repetitiva. Isto é, um algoritmo pode ser constituído por qualquer combinação dessas três estruturas. 2.2.1 Estrutura Seqüêncial Conjunto de comandos (C) que serão executados numa seqüência linear de cima para baixo: C1 C2 C3 . . . Cn

2.2.2 Estrutura Condicional simples ou Alternativa Simples Quando a ação a ser executada depender de uma inspeção ou teste, teremos uma alternativa simples ou composta: se <condicao> entao C1 C2

Page 14: Ap algoritmosglauco

Glauco Amorim 14

. . . Cn fim-se Os comandos 1, 2, ..., n só serão executados se a <condição> for verdadeira. Exemplo: se sexo = masculino então escreva(“Homem!”) fim-se 2.2.3 Estrutura Condicional Composta ou Alternativa Composta: se <condicao> entao C1 C2 senao C3

C4 . . . Cn fim-se Nos comandos acima, <condição> é qualquer expressão cujo resultado seja falso ou verdadeiro (ou seja, do tipo lógico). Exemplo: algoritmo ExemploCondicao declare A, B: inteiro inicio A ← 1 B ← 2 se A > B entao A ← 5 senao A ← 10 fim-se fim 2.2.4 Estrutura de Repetição Quando um conjunto de ações é executado repetidamente enquanto uma determinada condição permanecer válida.

Page 15: Ap algoritmosglauco

Glauco Amorim 15

Repetição Com teste no início enquanto <condicao> faca C1 C2 . . . Cn fim-enquanto Enquanto o valor da <condicao> for verdadeiro, as ações dos comandos são executadas. Quando for falso, o comando é abandonado. Se já da primeira vez o resultado for falso, os comandos não são executados nenhuma vez. Exemplo: Algoritmo ExemploRepeticao1 declare A, B, I, C: inteiro inicio A ← 1 B ← 1 I ← 1 enquanto I ≤ 18 faca C ← A + B escreva (C) A ← B B ← C I ← I + 1 fim-enquanto fim Repetição com teste no final repita C1 C2 . . . Cn até <condicao> Neste caso os comandos C1, C2, ..., Cn são executados pelo menos uma vez. Quando a condição é encontrada, ela é testada. Se for verdadeira o comando seguinte será executado. Se for falsa, os comandos C1, C2, ..., Cn voltam a ser executados até que a condição se torne

Page 16: Ap algoritmosglauco

Glauco Amorim 16

verdadeira. O comando repita-até é equivalente ao comando enquanto, veja o exemplo a seguir: Exemplo

Page 17: Ap algoritmosglauco

Glauco Amorim 17

Algoritmo ExemploRepeticao2 declare A, B, C, I: inteiro inicio A ← 1 B ← 1 I ← 1 repita C ← A + B escreva (C) A ← B B ← C I ← I + 1 ate I > 18 fim Repetição com variável de controle para i de n ate x passo y faca C1 C2 . . . Cn fim-para A semântica do comando é a seguinte: i, n, x e y são variáveis quaisquer e que, de acordo com as regras da programação estruturada não devem ser modificadas nos comandos C1, C2, ..., Cn. O comando para é, na realidade, o comando enquanto utilizando uma variável de controle, escrito numa notação compacta. Neste caso existirá sempre uma inicialização da variável de controle, um teste para verificar se a variável atingiu o limite e um acréscimo na variável de controle. Os comandos do para serão executados de n até x incrementando a quantidade de passos y. Exemplo: Algoritmo ExemploRepeticao3 declare A, B, C, I: inteiro inicio A ← 1 B ← 1 para I de 1 ate 18 passo 1 faca C ← A + B escreva (C) A ← B

Page 18: Ap algoritmosglauco

Glauco Amorim 18

B ← C fim-para fim Observe que: 1. Assim como no comando enquanto, se o valor inicial (n) já for superior ao limite (x), os comandos C1, C2, ..., Cn não serão executados. 2. Toda vez que o fim-para é encontrado, a variável de controle (n) é incrementada pelo passo (y) e o teste (n ≤ x) é realizado.