bcc201 { introduc~ao a computa˘c~ao - decom.ufop.br · num eros inteiros de 0 a 10. use...
TRANSCRIPT
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
> Aula Anterior | Revisao | Motivacao | Lacos | Proxima Aula �
Aula Anterior
• Estrutura de Selecao: switch
2 de 29
> Aula Anterior | Revisao | Motivacao | Lacos | Proxima Aula �
Tomada de decisao
· · ·
Condicao
Comandos
· · ·
F
V
3 de 29
> Aula Anterior | Revisao | Motivacao | Lacos | Proxima Aula �
Tomada de decisao
· · ·
Condicao
Comandos 1 Comandos 2
Comandos 3
· · ·
V
F
4 de 29
> Aula Anterior | Revisao | Motivacao | Lacos | Proxima Aula �
Selecao
5 de 29
> 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
> 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
> 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
> Aula Anterior | Revisao | Motivacao | Lacos | Proxima Aula �
Duvida!
E se fosse para calcular ate 100?
9 de 29
> Aula Anterior | Revisao | Motivacao | Lacos | Proxima Aula �
Laco (Repeticao)
· · ·
Condicao
Comandos
· · ·
F
V
10 de 29
> 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
> 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
> 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
> 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
> 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
> 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
> 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
> 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
> 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
> 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
> 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
> 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
> 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
> 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
> 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
> Aula Anterior | Revisao | Motivacao | Lacos | Proxima Aula �
Exercıcio 2
A media harmonica e dada pela seguinte equacao:
26 de 29
> 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
> 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
> Aula Anterior | Revisao | Motivacao | Lacos | Proxima Aula �
Proxima Aula
• Comandos de repeticao
29 de 29