Você está na página 1de 67

Cap.

03 Noes de Algoritmos
3.1 Introduo Lgica de Programao 3.2 Definio de Algoritmo 3.3 Programas de Computador 3.4 Fluxograma de Programas 3.5 Varveis, Constantes e Tipos de Dados 3.6 Operadores de Atribuio, Relacionais, Lgicos 3.7 Estrutura Sequencial em Algoritmos 3.8 Estrutura Condicional em Algoritmos 3.9 Estrutura de Repetio em Algoritmos
Lus F. Faina / Paulo R. Coelho - 2011 Pg. 1

Referncias Bibliogrficas:
MOKARZEL, F. e SOMA, N. - Introduo Cincia de Computao, Editora Campus / Elsevier, 2008 CAPRON, H.L. e JOHNSON, J. A. Introduo Informtica , Pearson Prentice Hall, 2006 - 8a. Edio. ASCENCIO, Ana F.G. & CAMPOS, Editene A.V. de. Fundamentos da Programao de Computadores. Pearson Prentice Hall, So Paulo, 2006 - 3a. Edio. SCHILDT, H. C, Completo e Total - , Pearson Prentice Hall, So Paulo, 2006 - 3a. Edio.
Lus F. Faina / Paulo R. Coelho - 2011 Pg. 2

3.1 Introduo a Lgica de Programao

Programa Computacional - decorre da necessidade de uma soluo de um problema particular, p.ex.:

a gerao automtica de documentos, o controle de um equipamento eletrodomstico, a transmisso de informaes em longas distncias, a agilizao de clculos cientcos,

A soluo de problemas atravs de um sistema computacional s obtida no momento em que denido um conjunto coerente de instrues de um programa.

Lus F. Faina / Paulo R. Coelho - 2011

Pg. 3

3.1 Introduo a Lgica de Programao

Lgica de Programao - tcnica de estabelecer que aes devero ser executadas e em que ordem. assim, a soluo de determinado problema dada por uma sequncia lgica de instrues/aes para resolver determinado problema.

Lus F. Faina / Paulo R. Coelho - 2011

Pg. 4

3.1 Introduo a Lgica de Programao

sequncia lgica que resolve o Problema da Torre de Hanoi:


1 2 3 4 5 6 7 8

possio inicial; move disco 1 para haste C; move disco 2 para haste B; move disco 1 para haste B; move disco 3 para haste C; move disco 1 para haste A; move disco 2 para haste C; move disco 1 para haste C.

Lus F. Faina / Paulo R. Coelho - 2011

Pg. 5

3.2 Definio de Algoritmo

Algoritmo sequncia finita de passos que deve ser seguida para realizao de uma tarefa. Algoritmo sequncia finita de instrues ou operaes, cuja execuo, em tempo finito, resolve um problema computacional, qualquer que seja sua instncia. Algoritmo - Somar Trs Nmeros
Passo 01: Ler os trs nmeros; Passo 02: Somar os trs nmeros; Passo 03: Mostrar o resultado obtido.

Lus F. Faina / Paulo R. Coelho - 2011

Pg. 6

3.2 Definio de Algoritmo

Algoritmo - Trocar um Pneu Furado:


Passo 1: Pegar o macaco e o estepe no porta-malas do carro. Passo 2: Levantar o carro usando o macaco; Passo 3: Retirar o pneu furado; Passo 4: Colocar o estepe em seu lugar; Passo 5: Abaixar o carro; Passo 6: Guardar o macaco e o pneu furado.

Lus F. Faina / Paulo R. Coelho - 2011

Pg. 7

3.2 Definio de Algoritmo

Algoritmo - Chupar uma Bala:


Passo 1: Pegar a bala; Passo 2: Retirar o papel; Passo 3: Colocar a bala na boca; Passo 4: Jogar o papel no lixo;

Lus F. Faina / Paulo R. Coelho - 2011

Pg. 8

3.3 Programa de Computador

programa de computador - algoritmos escritos em uma linguagem de programao (p.ex., Pascal, C) que so compilados ou interpretados e executados pelo computador. processo de desenvolvimento de um programa, para garantir a sua qualidade e bom desempenho, deve ser dividido em etapas:

anlise - estuda-se o problema para denir quais sero os dados de entrada, o processamento e os dados de sada; algoritmo - utiliza-se ferramentas como pseudocdigo,descrio narrativa ou uxograma para descrever a soluo do problema; codicao - transcreve-se o algoritmo para uma linguagem de programao (p.ex., C, PASCAL, Assembly)
Pg. 9

Lus F. Faina / Paulo R. Coelho - 2011

3.3 Programa de Computador

algoritmos, normalmente, so descritos em uma linguagem chamada pseudocdigo, ou ainda por meio de descrio narrativa e uxogramas. Pseudocdigo - forma mais utilizada, este nome uma aluso posterior implementao em uma linguagem de programao, p.ex. Linguagem C. Para que um algoritmo possa ser facilmente convertido em um programa de computador, a sua sequncia de instrues deve ser descrita de maneira simples, objetiva e estruturada. Esse tipo de descrio ajuda inclusive na compreenso do algoritmo e na correo de eventuais erros. Para isso algumas tcnicas devem ser seguidas:
Pg. 10

Lus F. Faina / Paulo R. Coelho - 2011

3.3 Programa de Computador

Para que um algoritmo possa ser facilmente convertido em um programa de computador, a sua sequncia de instrues deve ser descrita de maneira simples, objetiva e estruturada. esse tipo de descrio ajuda inclusive na compreenso do algoritmo e na correo de eventuais erros. Para isso algumas tcnicas devem ser seguidas:

usar somente um verbo por frase; escrever de forma simples e clara => fcil compreenso; usar frases curtas e simples; ser objetivo; no utilizar palavras que tenham sentido dbio.
Pg. 11

Lus F. Faina / Paulo R. Coelho - 2011

3.3 Programa de Computador

Algoritmo - Multiplicar Trs Nmeros:

Entrada: trs nmeros a serem multiplicados Sada: nmero resultante da multiplicao Incio DECLARE N1, N2, N3, M NUMRICO LEIA N1, N2, N3; M <- N1*N2*N3; ESCREVA "O resultado da multiplicao : ", M; Fim
Pg. 12

Lus F. Faina / Paulo R. Coelho - 2011

3.4 Fluxograma / Diagrama de Blocos

Fluxograma ou Diagrama de Blocos - forma padronizada e ecaz para representar os passos lgicos de um determinado processamento. com o diagrama podemos denir uma seqncia de smbolos, com signicado bem denido; sua principal funo a de facilitar a visualizao dos passos de um processamento.

Lus F. Faina / Paulo R. Coelho - 2011

Pg. 13

3.4 Fluxograma / Diagrama de Blocos

Smbolos mais utilizados em Fluxogramas:

Lus F. Faina / Paulo R. Coelho - 2011

Pg. 14

3.4 Fluxograma / Diagrama de Blocos

Lus F. Faina / Paulo R. Coelho - 2011

Pg. 15

3.4 Fluxograma / Diagrama de Blocos

Exerccios:

Faa um algoritmo e um uxograma para somar dois nmeros e multiplicar o resultado pelo primeiro nmero. Desenvolver um algoritmo que calcule a mdia aritmtica de duas notas de um aluno. Faa tambm o uxograma.

Lus F. Faina / Paulo R. Coelho - 2011

Pg. 16

3.5 Variveis, Const. e Tipos de Dados

O computador utiliza a memria principal para armazenar o programa executvel bem como os dados; estes dados so armazenados em variveis ou constantes que so manipulados por programas; j as expresses combinam os valores armazenados nas variveis e constantes para calcular novos valores. varivel - espao reservado na memria do computador para armazenar elementos de um certo conjunto ou tipo de dados.

Lus F. Faina / Paulo R. Coelho - 2011

Pg. 17

3.5 Variveis, Const. e Tipos de Dados

varivel - espao reservado na memria do computador para armazenar elementos de um certo conjunto ou tipo de dados. dado armazenado na varivel de forma que o computador possa compreender e manipular a informao; durante a execuo de um programa binrio o contedo de um varivel pode ser alterado; embora uma varivel possa assumir diferentes valores, ela s pode armazenar um valor a cada instante. p.ex., k = m * n;

onde m = 3 e n = 7;

Lus F. Faina / Paulo R. Coelho - 2011

Pg. 18

3.5 Variveis, Const. e Tipos de Dados

constantes no mudam ao longo da execuo do programa e podem ser declaradas de forma semelhante s variveis, com a incluso de seu valor:

DECLARE pi REAL; DECLARE true, false LOGICO; pi = 3.141592653589793264; true = 1; false = 0;

Lus F. Faina / Paulo R. Coelho - 2011

Pg. 19

3.5 Variveis, Const. e Tipos de Dados

variveis devem receber nomes para que possam ser referenciadas e modicadas quando necessrio; um programa deve conter declaraes (tipos de dados) que especicam de que tipo so as variveis que ele utilizar e s vezes um valor inicial; tipos de dados, que so atribudos s variveis, podem ser primitivos ou estruturas de dados que so construdas a partir dos tipos primitivos.

Lus F. Faina / Paulo R. Coelho - 2011

Pg. 20

3.5 Variveis, Const. e Tipos de Dados

Tipos Primitivos ou Bsico de Dados:

Inteiro: informao numrica pertencente ao conjunto Z. exemplos: 1, 2, 3 ... 1000 Real: informao numrica pertencente ao conjunto R. exemplos: 217,43 Caractere (Literal): informao composta por um caractere. exemplos: a, 4, +, ?, @ String: cadeia de caracteres. exemplos: 22,A operao de soma utiliza o operador +
Pg. 21

Lus F. Faina / Paulo R. Coelho - 2011

3.5 Variveis, Const. e Tipos de Dados

Tipos Primitivos ou Bsico de Dados:

String: cadeia de caracteres. exemplos: 22,A operao de soma utiliza o operador + Lgico: informao que s pode assumir um valor entre duas possibilidades: verdadeiro ou falso. exemplos: 3 > 10 (Sentena verdadeira ou falsa?)

Lus F. Faina / Paulo R. Coelho - 2011

Pg. 22

3.5 Variveis, Const. e Tipos de Dados

declarao de varivel consiste na associao de uma varivel com um dado tipo de dado, ou seja, Variveis s podem armazenar valores de um determinado tipo. linguagem C a varivel deve ser declarada para que possa ser referenciada ou modicada. Sintaxe utilizada em algoritmos para declarar variveis:

DECLARE ID1, ID2,..., IDN TIPO_DA_VARIVEL onde os identicadores, ID1, ID2,..., IDN - nomes das variveis.

Lus F. Faina / Paulo R. Coelho - 2011

Pg. 23

3.5 Variveis, Const. e Tipos de Dados

H algumas regras para a formao dos identicadores:

os caracteres que podem ser utilizados so: nmeros, letras minsculas ou maisculas e o caractere sublinhado _; o primeiro caractere do identicador deve ser uma letra ou o sublinhado; no podem conter smbolos especiais (, $, #, !, ?, &, +, -) ou espaos em branco; no permitido o uso de palavras reservadas da linguagem de programao nos identicadores, por exemplo: for, while, case;

Lus F. Faina / Paulo R. Coelho - 2011

Pg. 24

3.5 Variveis, Const. e Tipos de Dados

Importante - nome usado para uma varivel indique com clareza sua nalidade, para tornar o programa mais compreensvel e menos sujeito a erros de programao. p.ex., imagine um programa com 1000 linhas ou mais no qual a maioria da variveis se chama A, X, n etc. Exemplos de identicadores vlidos:

Nota1, Nome_Cliente, _codTurma; Exemplos de identicadores invlidos: 1Nota, Nome-Cliente, case, ?ID;

Lus F. Faina / Paulo R. Coelho - 2011

Pg. 25

3.5 Variveis, Constantes e Tipos de Dados

O computador utiliza a memria principal para armazenar o programa executvel bem como os dados; estes dados so armazenados em variveis ou constantes que so manipulados por programas; j as expresses combinam os valores armazenados nas variveis e constantes para calcular novos valores.

Lus F. Faina / Paulo R. Coelho - 2011

Pg. 26

3.5 Variveis, Constantes e Tipos de Dados

O computador utiliza a memria principal para armazenar o programa executvel bem como os dados; estes dados so armazenados em variveis ou constantes que so manipulados por programas; j as expresses combinam os valores armazenados nas variveis e constantes para calcular novos valores.

Lus F. Faina / Paulo R. Coelho - 2011

Pg. 27

3.6 Operadores de Arit. e Lgicos

Os operadores so meios pelo qual se realiza operaes como atribuio de valores, incremento, decremento, multiplicao, comparao e avaliao de dados no computador. Tem-se quatro tipos de operadores:

operadores de atribuio; operadores aritmticos; operadores relacionais; operadores lgicos.

Lus F. Faina / Paulo R. Coelho - 2011

Pg. 28

3.6 Operadores de Arit. e Lgicos

Operador de Atribuio - utilizado para atribuir valores ou operaes a variveis; em algoritmos, este operador representado pelo smbolo < e, na Linguagem C, pelo smbolo =.

x < 4; x < x + 2; y < aula; z < falso;

ou ou ou ou

x = 4; x = x + 2; y = aula; z = falso;

Lus F. Faina / Paulo R. Coelho - 2011

Pg. 29

3.6 Operadores de Arit. e Lgicos

Operadores Aritmticos - utilizados para operaes com valores numricos, tais como adio, subtrao, multiplicao, diviso e exponenciao.

Lus F. Faina / Paulo R. Coelho - 2011

Pg. 30

3.6 Operadores de Arit. e Lgicos

A maioria das linguagens de programao oferece um vasto conjunto de funes matemticas, necessrias para clculos de maior complexidade, p.ex., funes disponveis em C:

Lus F. Faina / Paulo R. Coelho - 2011

Pg. 31

3.6 Operadores de Arit. e Lgicos

Operadores Relacionais - comparam valores ou expresses entre si e retornam como resultado valores lgicos.

Lus F. Faina / Paulo R. Coelho - 2011

Pg. 32

3.6 Operadores de Arit. e Lgicos

p.ex., considere as variveis inteiras A = 5 e B = 3;

Lus F. Faina / Paulo R. Coelho - 2011

Pg. 33

3.6 Operadores de Arit. e Lgicos

Operadores Lgicos - relacionam entre si valores ou expresses lgicas, resultando em valores lgicos.

Lus F. Faina / Paulo R. Coelho - 2011

Pg. 34

3.6 Operadores de Arit. e Lgicos

Tabela Verdade:

Lus F. Faina / Paulo R. Coelho - 2011

Pg. 35

3.6 Operadores de Arit. e Lgicos

Prioridades do Operadores:

1a : Parnteses; 2a : Exponenciao; 3a : Multiplicao, diviso e mdulo (o que aparecer primeiro); 4a : Soma e subtrao (o que aparecer primeiro); 5a : Operadores relacionais; 6a : Operadores lgicos:

1a : NOT; 2a : AND; 3a: OR.

Lus F. Faina / Paulo R. Coelho - 2011

Pg. 36

3.7 Estrutura Sequencial em Algoritmos

estrutura sequencial de um algoritmo - conjunto de aes (ou comandos) a ser executado em uma seqncia linear de cima para baixo e da esquerda para a direita; convenciona-se que os comandos sejam seguidos por um ponto-e-vrgula (;), cuja funcionalidade :

separar um comando de outro; auxiliar na organizao seqencial, pois aps um (;), o prximo comando da seqncia ser executado;

Lus F. Faina / Paulo R. Coelho - 2011

Pg. 37

3.7 Estrutura Sequencial em Algoritmos


ALGORITMO: Nome Algoritmo INICIO
DECLARE Bloco de comandos

FIM

Lus F. Faina / Paulo R. Coelho - 2011

Pg. 38

3.7 Estrutura Sequencial em Algoritmos

declarao de variveis (DECLARE):

DECLARE nota1, nota2 REAL; nome, numMatricula STRING; nome = "Joo"; media = (nota1+nota2)/2;

atribuio (=): atribui valores ou operaes a variveis;


entrada (LEIA): recebe dados dos usurios, armazenando-os nas variveis;

LEIA(nota2); ESCREVA("A nota do aluno : ", nota1);


Pg. 39

sada (ESCREVA): mostra dados na tela ou na impressora;

Lus F. Faina / Paulo R. Coelho - 2011

3.7 Estrutura Sequencial em Algoritmos

ALGORITMO: calcula razes de uma equao de 2o grau construir um algoritmo para calcular as razes de uma equao do 2o grau (ax 2 + bx + c), sendo que os valores a, b, c so fornecidos pelo usurio. c considere que a equao possui duas razes reais e que a funo sqrt(n) calcula a raiz quadrada de n e retorna um valor do tipo REAL.

Lus F. Faina / Paulo R. Coelho - 2011

Pg. 40

3.7 Estrutura Sequencial em Algoritmos

ALGORITMO: Calcula Razes de uma Equao de 2o Grau INCIO


DECLARE A, B, C, X1, X2, delta REAL; LEIA(A, B, C); delta = B^2 - 4*A*C; X1 = (-B + sqrt(delta))/2*A; X2 = (-B - sqrt(delta))/2*A; ESCREVA ("Primeira raiz = ", X1); ESCREVA ("Segunda raiz = ", X2);

FIM
Lus F. Faina / Paulo R. Coelho - 2011 Pg. 41

3.7 Estrutura Sequencial em Algoritmos

Construir um algoritmo que receba o salrio-base de um funcionrio, calcule e mostre o seu salrio a receber, sabendo que este funcionrio tem graticao de R$50,00 e paga imposto de 10% sobre o salrio-base.

Lus F. Faina / Paulo R. Coelho - 2011

Pg. 42

3.7 Estrutura Sequencial em Algoritmos


ALGORITMO: Calcula Salrio a Receber
INICIO DECLARE salarioBase, salario REAL; ESCREVA("Digite o salrio-base:"); LEIA(salarioBase); salario = salarioBase - (0,1 * salarioBase) + 50 ESCREVA ("O salrio do funcionrio : ", salario

FIM

Lus F. Faina / Paulo R. Coelho - 2011

Pg. 43

3.7 Estrutura Sequencial em Algoritmos

Construa um algoritmo que receba o nmero de horas trabalhadas e o valor do salrio mnimo, calcule e mostre o valor do salrio a receber, seguindo as regras a seguir:

hora trabalhada vale a metade do salrio mnimo; salrio bruto = nro de horas trabalhadas * valor da hora trabalhada; imposto equivale a 3% do salrio bruto; salrio a receber equivale ao salrio bruto menos o imposto.

Lus F. Faina / Paulo R. Coelho - 2011

Pg. 44

3.7 Estrutura Sequencial em Algoritmos

ALGORITMO: Calcula o Salrio a Receber INICIO

DECLARE hrsTrab, horaTrab, salMin, salBruto REAL imposto, salReceber REAL ESCREVA("Digite o numero de horas trabalhadas:") LEIA(hrsTrab); ESCREVA("Digite o valor do salario minimo:"); LEIA(salMin); horaTrab = salMin/2; salBruto = horaTrab * hrsTrab; imposto = salBruto * 0,03; salReceber = salBruto - imposto; ESCREVA("O salrio a receber : ", salReceber);

FIM
Pg. 45

Lus F. Faina / Paulo R. Coelho - 2011

3.7 Estrutura Sequencial em Algoritmos

Construa um algoritmo que calcule a quantidade de latas de tinta necessrias e o custo para pintar tanques cilndricos de combustvel, em que so fornecidos a altura e o raio do cilindro. Sabendo que:

lata de tinta custa R$ 50,00; cada lata contm 5 litros; cada litro de tinta pinta 3 metros quadrados; rea do cilindro dada pela rea da base + rea lateral; rea da base igual a raio^2 ; rea lateral igual a altura * comprimento (2 raio altura) - raio e a altura so dados de entrada e que uma constante de valor 3,14.
Pg. 46

Lus F. Faina / Paulo R. Coelho - 2011

3.7 Estrutura Sequencial em Algoritmos


ALGORITMO: Calcula Quantidade de Latas de Tinta INICIO
DECLARE altura, raio, custo, Qtde, area, litros REAL LEIA(altura, raio); Area = (3,14 * raio^2) + (2 * 3,14 * raio * altura); litros = area/3; Qtde = litros/5; custo = Qtde * 50,00; ESCREVA("Quantidade de latas de tinta necessria:", Qtde); ESCREVA("Custo: ", custo);

FIM
Lus F. Faina / Paulo R. Coelho - 2011 Pg. 47

3.8 Estrutura Condicional em Algoritmos

estrutura condicional - utiliza-se quando da necessade de tomar decises de quais aes/comandos executar; responsvel pela anlise lgica de uma condio, anlise est que tem resultado VERDADEIRO ou FALSO; com base no resultado da anlise possvel escolher um bloco (ou grupo) de comandos a ser executado; toda deciso ter como resposta um VERDADEIRO ou FALSO, dependendo da anlise da condio; SE condio ENTO
comando1;

Lus F. Faina / Paulo R. Coelho - 2011

Pg. 48

3.8 Estrutura Condicional em Algoritmos

os comandos 1, 2 at N s sero executados se a condio for verdadeira (a anlise da condio s possui 02 (dois) valores possveis: verdadeiro ou falso). SE condio ENTO INICIO
comando1; comando2; ... comandoN;

FIMSE
Lus F. Faina / Paulo R. Coelho - 2011 Pg. 49

3.8 Estrutura Condicional em Algoritmos

se a condio for verdadeira, sero executados os comandos 1 e 2, caso contrrio, se a condio for falsa, sero exeutados os comandos 3 e 4 sero executados. SE(condio) ENTO INICIO
comando1 comando2

FIMSE SENO INICIO


comando3 comando4

FIMSE
Lus F. Faina / Paulo R. Coelho - 2011 Pg. 50

3.8 Estrutura Condicional em Algoritmos

No exemplo do algoritmo "CHUPAR UMA BALA", considere que algumas pessoas no gostem de bala de Morango, neste caso a soluo : Algoritmo: Chupar uma Bala INICIO
Pegar a bala; SE (A bala de morango) ENTO No chupar a bala; SENAO INICIO Retirar o papel; Colocar a bala na boca; Jogar o papel no lixo; FIMSE

FIM
Lus F. Faina / Paulo R. Coelho - 2011 Pg. 51

3.8 Estrutura Condicional em Algoritmos

Lus F. Faina / Paulo R. Coelho - 2011

Pg. 52

3.8 Estrutura Condicional em Algoritmos

Desenvolva um algoritmo que calcule a mdia ponderada de trs notas de um aluno, caso a mdia seja >= 7, o aluno deve ser aprovado, caso contrrio deve ser reprovado. ALGORITMO: Verifica se Aluno est Aprovado ou Reprovado INICIO
Leitura dos Dados Processamento Sada dos Dados

FIM

Lus F. Faina / Paulo R. Coelho - 2011

Pg. 53

3.8 Estrutura Condicional em Algoritmos


ALGORITMO: Verifica se Aluno est Aprovado ou Reprovado INICIO
DECLARE nota1, nota2, nota3, peso1, peso2, peso3, media REAL; ESCREVA("Digite as trs notas:"); LEIA(nota1, nota2, nota3); ESCREVA("Digite os trs pesos:"); LEIA(peso1, peso2, peso3); media = (nota1*peso1 + nota2*peso2 + nota3*peso3) / (peso1 + peso2 + peso3); SE (media >= 7) ENTO ESCREVA(Aluno aprovado! Parabns!); SENO ESCREVA(Aluno reprovado! Estude mais!);

FIM
Lus F. Faina / Paulo R. Coelho - 2011 Pg. 54

3.8 Estrutura Condicional em Algoritmos


Desenvolva um algoritmo que leia a idade de 3 pessoas, calcule a mdia das idades e a maior idade. Desenvolva um algoritmo que calcule a mdia ponderada de n notas de um aluno, caso a mdia seja >= 7, o aluno deve ser aprovado, caso contrrio deve ser reprovado.

Lus F. Faina / Paulo R. Coelho - 2011

Pg. 55

3.9 Estrutura de Repetio em Algoritmos

estrutura de PARA - estrutura utilizada quando se sabe o nmero de vezes que um trecho do algoritmo deve ser repetido. quando apenas um comando repetido:
PARA i = valor_inicial AT condio_valor_final FAA comando1;

quando mais de um comando deve ser repetido:


PARA i = valor_inicial AT condio_valor_final FAA INICIO comando1; ... comandoN; FIM

Lus F. Faina / Paulo R. Coelho - 2011

Pg. 56

3.9 Estrutura de Repetio em Algoritmos

execuo do bloco de comandos executado at que a condio do valor nal seja falsa ... varivel i incrementanda de 1, automaticamente, no nal do lao, aps a execuo do ltimo comando; P.Ex.: considere o segmento de cdigo:
... x=0 PARA i=1 AT i<=5 FAA x = x + i; ...

Lus F. Faina / Paulo R. Coelho - 2011

Pg. 57

3.9 Estrutura de Repetio em Algoritmos

Simulao do Programa Lao de Repetio ... x = 0; i = 1; /* Valores Iniciais */ 1 3 6 10 15 2 3 4 5 6

Lus F. Faina / Paulo R. Coelho - 2011

Pg. 58

3.9 Estrutura de Repetio em Algoritmos

estrutura ENQUANTO - utilizada quando o nmero de vezes que um trecho do algoritmo deve ser repetido avaliado por meio de uma condio (expresso). Na estrutura ENQUANTO o teste condicional ca no INCIO:

lembre-se que possvel que o teste gere falso logo na primeira comparao, neste caso, os comandos internos da estrutura no sero executados => sada do lao.

Lus F. Faina / Paulo R. Coelho - 2011

Pg. 59

3.9 Estrutura de Repetio em Algoritmos

Modelo Geral da Estrutura ENQUANTO:

quando apenas um comando repetido: ENQUANTO condio FAA comando1; quando mais de um comando deve ser repetido: ENQUANTO condio FAA INICIO
comando1; comando2; ... comandoN;

FIM
Lus F. Faina / Paulo R. Coelho - 2011 Pg. 60

3.9 Estrutura de Repetio em Algoritmos

bloco de comandos executado enquanto a condio (expresso a ser avaliada) verdadeira. Considere o fragmento de cdigo: x=1 y=5
ENQUANTO x < y FAA INICIO x = x + 2; y = y + 1; FIM

...
Lus F. Faina / Paulo R. Coelho - 2011 Pg. 61

3.9 Estrutura de Repetio em Algoritmos

Simulao do Programa Lao de Repetio: x = 1; y = 5; /* Valores Iniciais */ 3 5 7 9 6 7 8 9

Lus F. Faina / Paulo R. Coelho - 2011

Pg. 62

3.9 Estrutura de Repetio em Algoritmos

estrutura REPITA - utilizada quando no se sabe o nmero de vezes que um trecho do algoritmo deve ser repetido, embora tambm possa ser utilizada quando se conhece esse nro. Na estrutura REPITA o teste condicional ca no FINAL:

assim, tem-se a garantia de que os comandos dentro da estrutura so executados pelo menos um vez.

Modelo Geral da estrutura REPETIO: REPITA


comando1; ... comandoN;

ENQUANTO condio
Lus F. Faina / Paulo R. Coelho - 2011 Pg. 63

3.9 Estrutura de Repetio em Algoritmos

Considere o fragmento de cdigo: x=1 y=5 REPITA


x = x + 2; y = y + 1;

ENQUANTO x > y ...


Lus F. Faina / Paulo R. Coelho - 2011 Pg. 64

3.9 Estrutura de Repetio em Algoritmos

Simulao do Programa Lao de Repetio: x = 1; y = 5; /* Valores Iniciais */ 3 6

Lus F. Faina / Paulo R. Coelho - 2011

Pg. 65

3.9 Estrutura de Repetio em Algoritmos

Exerccios Propostos (Lao PARA): 01 - Desenvolva um algoritmo que calcule a mdia aritmtica das notas de 4 provas dos 40 alunos de uma turma. Caso a mdia seja maior ou igual a 7, o aluno deve ser aprovado, caso contrrio reprovado. 02 - Desenvolva um algoritmo que leia cinco pares de valores (a,b), todos inteiros e positivos, um de cada vez. Mostre os nmeros inteiros pares de a at b (inclusive).
Pg. 66

Lus F. Faina / Paulo R. Coelho - 2011

3.9 Estrutura de Repetio em Algoritmos

Exerccios Propostos (Lao ENQUANTO) 01 - Desenvolva um algoritmo que calcule a mdia aritmtica das notas de 4 provas dos alunos de uma turma. Caso a mdia seja maior ou igual a 7, o aluno deve ser aprovado, caso contrrio reprovado. Exerccios Propostos (Lao REPITA) 01 - Desenvolva um algoritmo que calcule a mdia aritmtica das notas de4 provas dos alunos de uma turma. Caso a mdia seja maior ou igual a 7, o aluno deve ser aprovado, caso contrrio reprovado.
Pg. 67

Lus F. Faina / Paulo R. Coelho - 2011