bcc201 { introduc~ao a computa˘c~ao - decom.ufop.br · num eros inteiros de 0 a 10. use...

29
BCC201 – Introdu¸c˜ ao ` a Computa¸ c˜ao Turmas 61, 62, 63, 64, 65 e 66 Puca Huachi Vaz Penna / Jos´ e Am´ erico T. Messias DepartamentodeComputa¸c˜ao Universidade Federal de Ouro Preto http://www.decom.ufop.br/puca [email protected] Aula 10 – Estruturas de Repeti¸c˜ ao 2017/1

Upload: hathuy

Post on 24-Nov-2018

220 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: BCC201 { Introduc~ao a Computa˘c~ao - decom.ufop.br · num eros inteiros de 0 a 10. Use tabula˘c~ao para imprimir a seguinte tabela de valores bem formatada: numero quadrado cubo

BCC201 – Introducao a ComputacaoTurmas 61, 62, 63, 64, 65 e 66

Puca Huachi Vaz Penna /Jose Americo T. Messias

Departamento de ComputacaoUniversidade Federal de Ouro Preto

http://www.decom.ufop.br/[email protected]

Aula 10 – Estruturas de Repeticao2017/1

Page 2: BCC201 { Introduc~ao a Computa˘c~ao - decom.ufop.br · num eros inteiros de 0 a 10. Use tabula˘c~ao para imprimir a seguinte tabela de valores bem formatada: numero quadrado cubo

> Aula Anterior | Revisao | Motivacao | Lacos | Proxima Aula �

Aula Anterior

• Estrutura de Selecao: switch

2 de 29

Page 3: BCC201 { Introduc~ao a Computa˘c~ao - decom.ufop.br · num eros inteiros de 0 a 10. Use tabula˘c~ao para imprimir a seguinte tabela de valores bem formatada: numero quadrado cubo

> Aula Anterior | Revisao | Motivacao | Lacos | Proxima Aula �

Tomada de decisao

· · ·

Condicao

Comandos

· · ·

F

V

3 de 29

Page 4: BCC201 { Introduc~ao a Computa˘c~ao - decom.ufop.br · num eros inteiros de 0 a 10. Use tabula˘c~ao para imprimir a seguinte tabela de valores bem formatada: numero quadrado cubo

> Aula Anterior | Revisao | Motivacao | Lacos | Proxima Aula �

Tomada de decisao

· · ·

Condicao

Comandos 1 Comandos 2

Comandos 3

· · ·

V

F

4 de 29

Page 5: BCC201 { Introduc~ao a Computa˘c~ao - decom.ufop.br · num eros inteiros de 0 a 10. Use tabula˘c~ao para imprimir a seguinte tabela de valores bem formatada: numero quadrado cubo

> Aula Anterior | Revisao | Motivacao | Lacos | Proxima Aula �

Selecao

5 de 29

Page 6: BCC201 { Introduc~ao a Computa˘c~ao - decom.ufop.br · num eros inteiros de 0 a 10. Use tabula˘c~ao para imprimir a seguinte tabela de valores bem formatada: numero quadrado cubo

> Aula Anterior | Revisao | Motivacao | Lacos | Proxima Aula �

ExercıcioEscreva um programa que calcula os quadrados e cubos dosnumeros inteiros de 0 a 10. Use tabulacao para imprimir aseguinte tabela de valores bem formatada:

numero quadrado cubo

0 0 0

1 1 1

2 4 8

3 9 27

4 16 64

5 25 125

6 36 216

7 49 343

8 64 512

9 81 729

10 100 1000

6 de 29

Page 7: BCC201 { Introduc~ao a Computa˘c~ao - decom.ufop.br · num eros inteiros de 0 a 10. Use tabula˘c~ao para imprimir a seguinte tabela de valores bem formatada: numero quadrado cubo

> Aula Anterior | Revisao | Motivacao | Lacos | Proxima Aula �

1 #include <iostream >

2 #include <cmath >

3 using namespace std;

4 int main()

5 {

6 cout << "numero\tquadradro\tcubo\n";

7 cout << 0 << "\t" << pow(0, 2) << "\t"

8 << pow(0, 3) << "\n";

9 cout << 1 << "\t" << pow(1, 2) << "\t"

10 << pow(1, 3) << "\n";

11 cout << 2 << "\t" << pow(2, 2) << "\t"

12 << pow(2, 3) << "\n";

13 cout << 3 << "\t" << pow(3, 2) << "\t"

14 << pow(3, 3) << "\n";

15 cout << 4 << "\t" << pow(4, 2) << "\t"

16 << pow(4, 3) << "\n";

17 cout << 5 << "\t" << pow(5, 2) << "\t"

18 << pow(5, 3) << "\n";

7 de 29

Page 8: BCC201 { Introduc~ao a Computa˘c~ao - decom.ufop.br · num eros inteiros de 0 a 10. Use tabula˘c~ao para imprimir a seguinte tabela de valores bem formatada: numero quadrado cubo

> Aula Anterior | Revisao | Motivacao | Lacos | Proxima Aula �

1

2 cout << 6 << "\t" << pow(6, 2) << "\t"

3 << pow(6, 3) << "\n";

4 cout << 7 << "\t" << pow(7, 2) << "\t"

5 << pow(7, 3) << "\n";

6 cout << 8 << "\t" << pow(8, 2) << "\t"

7 << pow(8, 3) << "\n";

8 cout << 9 << "\t" << pow(9, 2) << "\t"

9 << pow(9, 3) << "\n";

10 cout << 10 << "\t" << pow(10, 2) << "\t"

11 << pow(10, 3) << endl;

12

13 return 0;

14 }

8 de 29

Page 9: BCC201 { Introduc~ao a Computa˘c~ao - decom.ufop.br · num eros inteiros de 0 a 10. Use tabula˘c~ao para imprimir a seguinte tabela de valores bem formatada: numero quadrado cubo

> Aula Anterior | Revisao | Motivacao | Lacos | Proxima Aula �

Duvida!

E se fosse para calcular ate 100?

9 de 29

Page 10: BCC201 { Introduc~ao a Computa˘c~ao - decom.ufop.br · num eros inteiros de 0 a 10. Use tabula˘c~ao para imprimir a seguinte tabela de valores bem formatada: numero quadrado cubo

> Aula Anterior | Revisao | Motivacao | Lacos | Proxima Aula �

Laco (Repeticao)

· · ·

Condicao

Comandos

· · ·

F

V

10 de 29

Page 11: BCC201 { Introduc~ao a Computa˘c~ao - decom.ufop.br · num eros inteiros de 0 a 10. Use tabula˘c~ao para imprimir a seguinte tabela de valores bem formatada: numero quadrado cubo

> Aula Anterior | Revisao | Motivacao | Lacos | Proxima Aula �

Lacos ou Repeticoes (loop)

• Lacos sao comandos usados sempre que uma ou mais instrucoesdevam ser repetidas enquanto um certa condicao estiver sendosatisfeita

• Lacos em C++◦ while◦ do - while◦ for

• Programacao Estruturada: sequencia, desvios e repeticao

11 de 29

Page 12: BCC201 { Introduc~ao a Computa˘c~ao - decom.ufop.br · num eros inteiros de 0 a 10. Use tabula˘c~ao para imprimir a seguinte tabela de valores bem formatada: numero quadrado cubo

> Aula Anterior | Revisao | Motivacao | Lacos | Proxima Aula �

Lacos ou Repeticoes (loop)

• Em um laco controlado logicamente, os comandos (corpo dolaco) sao repetidos enquanto uma expressao logica forverdadeira◦ while◦ do - while

• Em um laco controlado por contador, os comandos (corpo dolaco) sao repetidos um numero predeterminado de vezes◦ for

• Denomina-se iteracao a repeticao de um conjunto decomandos: cada execucao do corpo do laco, juntamente com acondicao de terminacao do laco, e uma iteracao

12 de 29

Page 13: BCC201 { Introduc~ao a Computa˘c~ao - decom.ufop.br · num eros inteiros de 0 a 10. Use tabula˘c~ao para imprimir a seguinte tabela de valores bem formatada: numero quadrado cubo

> Aula Anterior | Revisao | Motivacao | Lacos | Proxima Aula �

Laco while

• o comando while consiste na palavra chave, while, seguida deuma expressao de teste entre parenteses.

• se a expressao de teste for verdadeira, o corpo do laco while eexecutado e a expressao de teste e avaliada novamente.

• este ciclo de teste e execucao e repetido enquanto a expressaodo teste for verdadeira. Quando a expressao se tornar falsa, olaco termina e a execucao continua na linha seguinte ao laco.

• Sintaxe:

1 ...

2 while (<express~ao >)

3 {

4 <comando_1 >;

5 ...

6 <comando_n >;

7 }

As linhas 3–7 representam o corpo do laco.13 de 29

Page 14: BCC201 { Introduc~ao a Computa˘c~ao - decom.ufop.br · num eros inteiros de 0 a 10. Use tabula˘c~ao para imprimir a seguinte tabela de valores bem formatada: numero quadrado cubo

> Aula Anterior | Revisao | Motivacao | Lacos | Proxima Aula �

Exercıcio (Preparados?)

Escreva um programa que calcula os quadrados e cubos dosnumeros inteiros de 0 a 100. Formate a tabela assim como noexemplo anterior.

14 de 29

Page 15: BCC201 { Introduc~ao a Computa˘c~ao - decom.ufop.br · num eros inteiros de 0 a 10. Use tabula˘c~ao para imprimir a seguinte tabela de valores bem formatada: numero quadrado cubo

> Aula Anterior | Revisao | Motivacao | Lacos | Proxima Aula �

1 #include <iostream >

2 #include <cmath >

3 using namespace std;

4 int main()

5 {

6 int i;

7 cout << "numero\tquadradro\tcubo\n";

8

9 i = 0; // inicializa a variavel

10 while (i <= 100)

11 {

12 cout << i << "\t" << pow(i, 2) << "\t"

13 << pow(i, 3) << "\n";

14 i++; // equivalente: i = i + 1

15 }

16

17 return 0;

18 }

15 de 29

Page 16: BCC201 { Introduc~ao a Computa˘c~ao - decom.ufop.br · num eros inteiros de 0 a 10. Use tabula˘c~ao para imprimir a seguinte tabela de valores bem formatada: numero quadrado cubo

> Aula Anterior | Revisao | Motivacao | Lacos | Proxima Aula �

Importante:

• Nao pode esquecer de inicializar o contador (linha 9)◦ Se nao for inicializado pode comecar com qualquer valor, ou seja,

um lixo de memoria.

• Nao pode esquecer de incrementar o contador (linha 14)◦ se o contador nao for incrementado, o laco nunca tera fim, ou seja,

loop infinito.

16 de 29

Page 17: BCC201 { Introduc~ao a Computa˘c~ao - decom.ufop.br · num eros inteiros de 0 a 10. Use tabula˘c~ao para imprimir a seguinte tabela de valores bem formatada: numero quadrado cubo

> Aula Anterior | Revisao | Motivacao | Lacos | Proxima Aula �

Exercıcio (Preparados?)

Faca um programa que leia as notas da primeira prova dos60 alunos de BCC201 e calcule e imprima a media das notas.

17 de 29

Page 18: BCC201 { Introduc~ao a Computa˘c~ao - decom.ufop.br · num eros inteiros de 0 a 10. Use tabula˘c~ao para imprimir a seguinte tabela de valores bem formatada: numero quadrado cubo

> Aula Anterior | Revisao | Motivacao | Lacos | Proxima Aula �

1 #include <iostream >

2 using namespace std;

3 int main()

4 {

5 double nota , media , soma;

6 int i;

7 const int alunos = 60;

8

9 i = 1; soma = 0;

10 while (i <= alunos)

11 {

12 cout << "Digite a nota do aluno " << i << ":";

13 cin >> nota;

14 soma += nota;

15 i++;

16 }

17 media = soma / alunos;

18 cout << "A media das notas e:" << media << endl;

19 return 0;

20 }

18 de 29

Page 19: BCC201 { Introduc~ao a Computa˘c~ao - decom.ufop.br · num eros inteiros de 0 a 10. Use tabula˘c~ao para imprimir a seguinte tabela de valores bem formatada: numero quadrado cubo

> Aula Anterior | Revisao | Motivacao | Lacos | Proxima Aula �

Exercıcio (Preparados?)

Faca um programa que leia as notas da primeira prova de BCC201e calcule e imprima a media das notas dos 60 alunos da disciplina.O programa deve verificar se nota digitada esta correta, ou seja,0 ≤ nota ≤ 10.

19 de 29

Page 20: BCC201 { Introduc~ao a Computa˘c~ao - decom.ufop.br · num eros inteiros de 0 a 10. Use tabula˘c~ao para imprimir a seguinte tabela de valores bem formatada: numero quadrado cubo

> Aula Anterior | Revisao | Motivacao | Lacos | Proxima Aula �

1 #include <iostream >

2 using namespace std;

3 int main()

4 {

5 double nota , media , soma; int i;

6 const int alunos = 60;

7 i = 1; soma = 0;

8 while (i <= alunos) {

9 cout << "Digite a nota do aluno " << i << ":";

10 cin >> nota;

11 if ((nota < 0) || (nota > 10))

12 cout << "nota invalida!" << endl;

13 else {

14 soma += nota;

15 i++;

16 }

17 }

18 media = soma / alunos;

19 cout << "A media das notas e:" << media << endl;

20 return 0;

21 }20 de 29

Page 21: BCC201 { Introduc~ao a Computa˘c~ao - decom.ufop.br · num eros inteiros de 0 a 10. Use tabula˘c~ao para imprimir a seguinte tabela de valores bem formatada: numero quadrado cubo

> Aula Anterior | Revisao | Motivacao | Lacos | Proxima Aula �

Exercıcio (Preparados?)

Faca um programa que leia as notas da primeira prova de BCC201e calcule e imprima a media das notas.

Considere que o numero de alunos e desconhecido!

21 de 29

Page 22: BCC201 { Introduc~ao a Computa˘c~ao - decom.ufop.br · num eros inteiros de 0 a 10. Use tabula˘c~ao para imprimir a seguinte tabela de valores bem formatada: numero quadrado cubo

> Aula Anterior | Revisao | Motivacao | Lacos | Proxima Aula �

1 #include <iostream >

2 using namespace std;

3 int main()

4 {

5 int alunos = 0;

6 double nota , media = 0;

7 cout << "Digite uma nota negativa para sair ou";

8 cout << "digite a nota do aluno: ";

9 cin >> nota;

10 while ( nota >= 0 )

11 {

12 media += nota;

13 alunos ++;

14 cout << "Digite a nota do aluno: ";

15 cin >> nota;

16 }

17 media /= alunos;

18 cout << "A media das notas e:" << media << endl;

19 return 0;

20 }

22 de 29

Page 23: BCC201 { Introduc~ao a Computa˘c~ao - decom.ufop.br · num eros inteiros de 0 a 10. Use tabula˘c~ao para imprimir a seguinte tabela de valores bem formatada: numero quadrado cubo

> Aula Anterior | Revisao | Motivacao | Lacos | Proxima Aula �

Calculadora em C++

1 // Calculadora basica

2 #include <iostream >

3 using namespace std;

4

5 int main()

6 {

7 char op;

8 double n1, n2, r;

9

10 cout << "Digite o primeiro numero: ";

11 cin >> n1;

12 cout << "Digite o segundo numero: ";

13 cin >> n2;

14 cout << "Digite a operac~ao: ";

23 de 29

Page 24: BCC201 { Introduc~ao a Computa˘c~ao - decom.ufop.br · num eros inteiros de 0 a 10. Use tabula˘c~ao para imprimir a seguinte tabela de valores bem formatada: numero quadrado cubo

> Aula Anterior | Revisao | Motivacao | Lacos | Proxima Aula �

Calculadora em C++ (continuacao)1 switch (op) {

2 case ’+’:

3 r = n1 + n2;

4 break;

5 case ’-’:

6 r = n1 - n2;

7 break;

8 case ’*’:

9 r = n1 * n2;

10 break;

11 case ’/’:

12 r = n1 / n2;

13 break;

14 default:

15 cout << "operac~ao invalida!" << endl;

16 }

17 cout << n1 << op << n2 << " = " << r << endl;

18 return 0;

19 }24 de 29

Page 25: BCC201 { Introduc~ao a Computa˘c~ao - decom.ufop.br · num eros inteiros de 0 a 10. Use tabula˘c~ao para imprimir a seguinte tabela de valores bem formatada: numero quadrado cubo

> Aula Anterior | Revisao | Motivacao | Lacos | Proxima Aula �

Exercıcio 1

Escreva um programa, baseado na calculadora anterior, onde ousuario podera efetuar as 4 operacoes basicas diversas vezes.O programa termina quando a operacao digitada for “#”. Paraqualquer outro sımbolo digitado, diferente das 4 operacoes e docriterio de parada, o programa deve informar que a operacao einvalida.

25 de 29

Page 26: BCC201 { Introduc~ao a Computa˘c~ao - decom.ufop.br · num eros inteiros de 0 a 10. Use tabula˘c~ao para imprimir a seguinte tabela de valores bem formatada: numero quadrado cubo

> Aula Anterior | Revisao | Motivacao | Lacos | Proxima Aula �

Exercıcio 2

A media harmonica e dada pela seguinte equacao:

26 de 29

Page 27: BCC201 { Introduc~ao a Computa˘c~ao - decom.ufop.br · num eros inteiros de 0 a 10. Use tabula˘c~ao para imprimir a seguinte tabela de valores bem formatada: numero quadrado cubo

> Aula Anterior | Revisao | Motivacao | Lacos | Proxima Aula �

Exercıcio 2

Faca um programa em C++ para calcular a media harmonica de 4valores digitados pelo usuario. Saıda:

27 de 29

Page 28: BCC201 { Introduc~ao a Computa˘c~ao - decom.ufop.br · num eros inteiros de 0 a 10. Use tabula˘c~ao para imprimir a seguinte tabela de valores bem formatada: numero quadrado cubo

> Aula Anterior | Revisao | Motivacao | Lacos | Proxima Aula �

Exercıcio 3

Faca um programa em C++ para calcular a media harmonica de nvalores digitados pelo usuario. Saıda:

28 de 29

Page 29: BCC201 { Introduc~ao a Computa˘c~ao - decom.ufop.br · num eros inteiros de 0 a 10. Use tabula˘c~ao para imprimir a seguinte tabela de valores bem formatada: numero quadrado cubo

> Aula Anterior | Revisao | Motivacao | Lacos | Proxima Aula �

Proxima Aula

• Comandos de repeticao

29 de 29