Você está na página 1de 35

ECT2303 – Linguagem de Programação

Aula 04 þ Comandos de Controle de Fluxo e Seleção II

Einstein Santos

UFRN

10 de agosto de 2018

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 10 de agosto de 2018 1 / 35


Sumário

1 O laço for

2 O laço while

3 O laço do-while

4 O comando break utilizado com laços

5 O comando continue

6 Exercícios

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 10 de agosto de 2018 2 / 35


Sumário

1 O laço for

2 O laço while

3 O laço do-while

4 O comando break utilizado com laços

5 O comando continue

6 Exercícios

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 10 de agosto de 2018 3 / 35


O laço for
Fluxograma

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 10 de agosto de 2018 4 / 35


O laço for
Sintaxe

for (Inicialização do Cont. ; Expressão de Teste ; Inc. / Dec. do Cont.)


{
instrução_1;
instrução_2;
.
.
.
instrução_n;
}

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 10 de agosto de 2018 5 / 35


O laço for
Observação

Lembrete:
* O uso desse laço é mais indicado quando sabemos de
antemão a quantidade de iterações que será realizada
(laço contado).

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 10 de agosto de 2018 6 / 35


O laço for
Exemplo

. Escreva um programa em C++ que leia 10 números reais e que calcule


e exiba na tela a raiz quadrada dos números menores que um deter-
minado valor real lido e a raiz cúbica dos números iguais ou maiores
que esse valor.

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 10 de agosto de 2018 7 / 35


O laço for
Exemplo

1 # include < iostream >


2 # include < cmath >
3
4 using n a m e s p a c e std ;
5
6 int main ()
7 {
8 float num , valor ;
9
10 cout <<" Digite o valor : " ;
11 cin >> valor ;
12
13 cout <<" Digite os dez números : " ;
14 for ( int i =0 ; i <10 ; i ++) {
15 cin >> num ;
16
17 if ( num < valor ) {
18 cout << sqrt ( num ) << endl ;
19 } else {
20 cout << pow ( num ,1.0/3.0) << endl ;
21 }
22 }
23
24 return 0;
25 }

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 10 de agosto de 2018 8 / 35


O laço for
Exemplo

. Escreva um programa em C++ que leia do teclado n números inteiros


e que calcule e exiba na tela a média aritmética dos números múltiplos
de 3.

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 10 de agosto de 2018 9 / 35


O laço for
Exemplo

1 # include < iostream >


2
3 using n a m e s p a c e std ;
4
5 int main ()
6 {
7 int n , num , soma =0 , cont =0;
8 float media ;
9
10 cout <<" Digite a quantidade de números : " ;
11 cin >>n ;
12
13 cout <<" Digite os " <<n <<" números : " ;
14 for ( int i =0 ; i < n ; i ++) {
15 cin >> num ;
16 if ( num %3==0) {
17 soma = soma + num ;
18 cont ++;
19 }
20 }
21
22 media = ( float ) soma / cont ;
23
24 cout <<" A média aritmética é " << media << endl ;
25
26 return 0;
27 }
Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 10 de agosto de 2018 10 / 35
Sumário

1 O laço for

2 O laço while

3 O laço do-while

4 O comando break utilizado com laços

5 O comando continue

6 Exercícios

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 10 de agosto de 2018 11 / 35


O laço while
Fluxograma

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 10 de agosto de 2018 12 / 35


O laço while
Sintaxe

while ( Expressão de Teste )


{
instrução_1;
instrução_2;
.
.
.
instrução_n;
}

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 10 de agosto de 2018 13 / 35


O laço while
Observação

Lembrete:
* O uso desse laço é mais indicado quando não sabe-
mos a quantidade de iterações que será realizada (laço
condicional).

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 10 de agosto de 2018 14 / 35


O laço while
Exemplo

. Escreva um programa em C++ que leia do teclado caracteres e que


converta os caracteres alfabéticos maiúsculos em minúsculos e vice-
versa, exibindo-os na tela. O programa deve parar quando for digitado
o caractere ‘@’.

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 10 de agosto de 2018 15 / 35


O laço while
Exemplo

1 # include < iostream >


2 using n a m e s p a c e std ;
3
4 int main ()
5 {
6 char letra , l ;
7 cout <<" Digite um caractere : " ;
8 cin >> letra ;
9
10 while ( letra != ’@ ’) {
11 if ( letra >= ’a ’ && letra <= ’z ’) { // if ( letra >=97 && letra
<=122) {
12 l = letra - 32;
13 cout <<l << endl ;
14 } else if ( letra >= ’A ’ && letra <= ’Z ’) { // } else if ( letra >=65
&& letra <=90) {
15 l = letra + 32;
16 cout <<l << endl ;
17 }
18
19 cout <<" Digite um caractere : " ;
20 cin >> letra ;
21 }
22
23 return 0;
24 }

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 10 de agosto de 2018 16 / 35


O laço while
Exemplo

. Escreva um programa em C++ que leia do teclado n números inteiros


e que calcule e exiba na tela a média aritmética dos números múltiplos
de 3.

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 10 de agosto de 2018 17 / 35


O laço while
Exemplo

1 # include < iostream >


2 using n a m e s p a c e std ;
3
4 int main ()
5 {
6 int n , num , soma =0 , cont =0 , i =0;
7 float media ;
8
9 cout <<" Digite a quantidade de números : " ;
10 cin >>n ;
11
12 cout <<" Digite os " <<n <<" números : " ;
13 while ( i < n ) {
14 cin >> num ;
15 if ( num %3==0) {
16 soma = soma + num ;
17 cont ++;
18 }
19 i ++;
20 }
21
22 media = ( float ) soma / cont ;
23 cout <<" A média aritmética é " << media << endl ;
24
25 return 0;
26 }

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 10 de agosto de 2018 18 / 35


Sumário

1 O laço for

2 O laço while

3 O laço do-while

4 O comando break utilizado com laços

5 O comando continue

6 Exercícios

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 10 de agosto de 2018 19 / 35


O laço do-while
Fluxograma

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 10 de agosto de 2018 20 / 35


O laço do-while
Sintaxe

do
{
instrução_1;
instrução_2;
.
.
.
instrução_n;
}
while ( Expressão de Teste ) ;

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 10 de agosto de 2018 21 / 35


O laço do-while
Observação

Lembrete:
* O uso desse laço é mais indicado quando sabemos
que pelo menos uma vez ocorrerá uma iteração e que
as demais dependerão da satisfação de uma determi-
nada condição (laço condicional).

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 10 de agosto de 2018 22 / 35


O laço do-while
Exemplo

. Escreva um programa em C++ que realize as seguintes operações so-


bre um número indeterminado de entradas: 1 – raiz quadrada; 2 – raiz
cúbica; 3 – raiz quarta; 0 – sair. O usuário deve fornecer como entrada
um número inteiro, referente ao menu, e um número real, referente ao
cálculo da radiciação. O resultado deve ser exibido na tela.

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 10 de agosto de 2018 23 / 35


O laço do-while
Exemplo

1 switch ( raiz ) {
1 # include < iostream > 2 case 1:
2 # include < cmath > 3 cout << pow ( num ,(1.0/2.0)
3 ) << endl ;
4 using n a m e s p a c e std ; 4 break ;
5 5 case 2:
6 int main () 6 cout << pow ( num ,(1.0/3.0)
7 { ) << endl ;
8 int raiz ; 7 break ;
9 float num ; 8 case 3:
10 9 cout << pow ( num ,(1.0/4.0)
11 do ) << endl ;
12 { 10 break ;
13 cout <<" Digite :\ n " 11 default :
14 <<" 1 - raiz quadrada \ n " 12 cout <<" valor não
15 <<" 2 - raiz cúbica \ n " reconhecido ! " <<
16 <<" 3 - raiz quarta \ n " endl ;
17 <<" 0 - Sair \ n " ; 13 }
18 cin >> raiz ; 14 }
19 15 } while ( raiz != 0) ;
20 if ( raiz != 0) { 16
21 cout <<" Digite um número : " ; 17 return 0;
22 cin >> num ; 18 }

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 10 de agosto de 2018 24 / 35


Sumário

1 O laço for

2 O laço while

3 O laço do-while

4 O comando break utilizado com laços

5 O comando continue

6 Exercícios

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 10 de agosto de 2018 25 / 35


O comando break utilizado com laços
Funcionamento

Força a parada da iteração corrente e provoca a saída imediata do


laço que o possui como uma de suas instruções.

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 10 de agosto de 2018 26 / 35


O comando break utilizado com laços
Exemplo

. Escreva um programa em C++ que receba do teclado uma sequência


qualquer de números inteiros e que pare quando o usuário digitar um
número múltiplo de 7. O programa deve exibir o número da sequência
imediatamente anterior ao último número digitado, caso a quantidade
de números seja igual ou superior a dois, e ‘-1’, caso tenha sido digi-
tado um único número.

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 10 de agosto de 2018 27 / 35


O comando break utilizado com laços
Exemplo

1 # include < iostream >


2
3 using n a m e s p a c e std ;
4
5 int main ()
6 {
7 int num , procurado = -1;
8
9 cout <<" Digite uma sequência de números : " ;
10 cin >> num ;
11
12 while ( true ) {
13 if ( num %7==0) {
14 break ;
15 }
16
17 procurado = num ;
18
19 cin >> num ;
20 }
21
22 cout <<" Número procurado : " << procurado << endl ;
23
24 return 0;
25 }

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 10 de agosto de 2018 28 / 35


Sumário

1 O laço for

2 O laço while

3 O laço do-while

4 O comando break utilizado com laços

5 O comando continue

6 Exercícios

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 10 de agosto de 2018 29 / 35


O comando continue
Funcionamente

Suspende a iteração corrente e faz com que seja realizada a atualiza-


ção do contador para a próxima iteração. Todas as instruções que, por
ventura, existirem após a instrução continue serão ignoradas.

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 10 de agosto de 2018 30 / 35


O comando continue
Exemplo

. Escreva um programa em C++ que some todos os números pares


compreendidos entre dois números fornecidos pelo usuário.

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 10 de agosto de 2018 31 / 35


O comando continue
Exemplo

1 # include < iostream >


2 using n a m e s p a c e std ;
3
4 int main ()
5 {
6 int num1 , num2 , aux , soma =0;
7
8 cout <<" Digite os dois números : " ;
9 cin >> num1 > > num2 ;
10
11 if ( num1 > num2 ) {
12 aux = num1 ;
13 num1 = num2 ;
14 num2 = aux ;
15 }
16
17 for ( int i = num1 +1 ; i < num2 ; i ++ ) {
18 if ( i % 2 != 0 ) {
19 continue ;
20 }
21 soma = soma + i ;
22 }
23
24 cout <<" Soma dos pares do intervalo : " << soma << endl ;
25
26 return 0;
27 }
Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 10 de agosto de 2018 32 / 35
Sumário

1 O laço for

2 O laço while

3 O laço do-while

4 O comando break utilizado com laços

5 O comando continue

6 Exercícios

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 10 de agosto de 2018 33 / 35


Exercícios
1. Escreva um programa em C++ que classifique uma matriz conforme o
quadro abaixo, baseando-se em sua ordem mxn. É preciso verificar
se a ordem é válida, i.e., m > 0 e n > 0.
Linha Coluna Classificação
m n retangular
1 n linha
m 1 coluna
n n quadrada
2. Implemente um programa em C++ que encontre o maior e o menor
número de n números fornecido pelo usuário e que calcule a média
aritmética de todos os n números lidos maiores que 100. Os resultados
devem ser exibidos na tela.
3. Faça um programa em C++ que verifique se um número inteiro lido é
primo e formado por cinco algarismos.
4. Escreva um programa em C++ que calcule e exiba o produtório dos
divisores de um número inteiro lido.

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 10 de agosto de 2018 34 / 35


Fim da Aula 04

Einstein Santos (UFRN) ECT2303 – Linguagem de Programação 10 de agosto de 2018 35 / 35