You are on page 1of 16

Prof.

Fernando Almeida

Laos
Outra forma de alterar o fluxo de um programa
A execuo e um ou um grupo de comandos repetida diversas

vezes, sucessivamente
Cada sequncia de execuo (repetio) do lao denominada
passo
A cada passo, ao menos uma varivel modificada dentro do lao
for-end
O nmero de repeties conhecido desde o incio do lao

while-end
O nmero de repeties no conhecido de antemo e o lao
repetido at que uma condio especfica de parada seja satisfeita
Comando break
Ambos os tipos de lao podem ser finalizados a qualquer momento

Laos for-end
A execuo de um ou um grupo de comandos
repetido um nmero de vezes predeterminado
ndice mudo do
loop

Valor de k no
primeiro passo

for k = f : s : t
.......
.......
.......

end

O incremento em
k aps cada passo
Valor de k no
ltimo passo

Um grupo de comandos MATLAB

Laos for-end - Exemplo


for k = 1 : 3 : 10
x = k^2
end
Iterao
1
2
3
4

k
1
4
7
10

x
1
16
49
100

>> for k=1:3:10


x=k^2
end
x=
1
x=
16
x=
49
x=
100

Atividades for-end
1) a) k = 1:2:3 | b) k = 25:-5:10 | c) k = 3:7
2) Faa um algoritmo que mostre todos os nmeros
inteiros de 1 a 50.
3) Faa um algoritmo que leia um nmero N, some
todos os nmeros inteiros de 1 a N, e mostre o
resultado obtido
4) Escreva um algoritmo que leia um conjunto de 5
nmeros inteiros positivos e determine o maior
deles.
5) Faa um algoritmo que gere a seguinte srie: 10, 20,
30, 40, ..., 990, 1000

Atividades (for-end) (1)


Faa um programa que imprima o total da sequncia: 1,
1/2, 1/3 [...], 1/20
2. Faa um programa para imprimir os nmeros pares entre
100 e 1
3. Faa um algoritmo que some os nmeros de 1 a 10,
apresentando as somas parciais e, no final, o total. A
impresso deve seguir o padro abaixo:
1.

3 (soma do nmero 1 com o nmero 2)


6 (soma parcial com o nmero 3)
[...]
55 (soma parcial com o nmero 10)
Soma total = 55

Atividades (for-end) (2)


4. Faa um programa para ler e escrever dados de uma

turma de 3 alunos. O programa deve pedir dados como


nome, idade, sexo. O programa deve imprimir os dados do
aluno mais velho.
5. Faa um programa que receba um nmero e realize as
seguintes operaes:
Caso o nmero seja maior do que 5, some 100 a este nmero
b) Caso o nmero seja menor do que 5, multiplique 50 a esse
nmero
c) Caso o nmero seja igual a 5, diminua 5 deste nmero
d) O programa deve repetir 5 vezes
a)

Laos while-end
Utilizado quando o nmero de repeties no
conhecido
No possui um campo especificando o nmero de
repeties (antes de inici-lo)
O processo se repete at que uma certa condio seja
satisfeita

while expresso condicional


.......
.......
.......

end

Um grupo de comandos MATLAB

Laos while-end - Exemplo


x=1
while x<=15
x = 2*x
end
Iterao
1
2
3
4

x
2
4
8
16

>> x=1;
>> while x<=15
x=2*x
end
x=
2
x=
4
x=
8
x=
16

Observaes
A expresso condicional no comando while deve
incluir ao menos uma varivel
As variveis na expresso condicional devem ter sido
inicializadas
Ao menos uma varivel na expresso condicional deve
ser modificada dentro do lao
Em algum momento a expresso deve-se tornar falsa
Altere a expresso do exemplo anterior para x >= 0.5
Loops infinitos so considerados erros comuns
Ctrl+C ou Ctrl+Break (sai do loop)

Atividades while-end
Faa um algoritmo que mostre todos os nmeros
inteiros de 1 a 50.
2. Faa um algoritmo que leia um nmero N, some
todos os nmeros inteiros de 1 a N, e mostre o
resultado obtido
3. Faa um algoritmo que gere a seguinte srie: 10, 20,
30, 40, ..., 990, 1000
1.

Laos aninhados e ninhos de


sentenas condicionais
Laos e sentenas condicionais podem ser aninhadas
entre si
Um loop ou uma sentena condicional pode ser
inicializada (e terminada) dentro de outro loop ou
sentena condicional
No h limite para o nmero de laos e sentenas
condicionais que podem ser aninhadas
Toda estrutura if-case-for-while deve terminar em um
comando end correspondente

Estrutura de ninhos de loops


for k = 1 : n
for h = 1 : m
.......
.......

end
end

Um grupo de
comandos MATLAB

Lao
aninhado

Lao

Comandos break E continue


Comando break
Provoca a sada imediata do lao
Quando o MATLAB encontra um comando break dentro
do lao, o programa salta para o comando end desse lao
Inserido dentro de um loop aninhado, causa a sada
apenas deste loop
Provoca o trmino imediato da execuo de uma rotina
ou funo
Geralmente aparece dentro de sentenas condicionais

Comandos break E continue


Comando continue
Utilizado dentro de um lao, for ou while, de maneira a
parar o passo atual e iniciar o prximo passo no processo
de looping
Geralmente, o comando continue entra como parte de
uma sentena condicional
Quando o MATLAB encontra um comando continue,
deixa de executar o restante do lao atual, saltando para
o comando end no final do lao, para ento iniciar um
novo passo.

Atividades
Escreva uma rotina para encontrar o menor nmero
inteiro mpar divisvel por 3, cuja terceira potncia
maior que 4000.
Utilize apenas um lao no programa
O lao deve iniciar em 1 e parar quando o nmero for
encontrado
Em seguida, o programa deve imprimir uma
mensagem O nmero requerido :
Imprima o nmero
Pg 218 exe. 13

You might also like