Escolar Documentos
Profissional Documentos
Cultura Documentos
Instruções de
controle:
parte 1
2
Copyright © 2006 by Pearson Education
4.1 Introdução
• Antes de escrever um programa
– Tente compreender integralmente o problema.
– Planeje cuidadosamente a abordagem que adotará para
resolvê-lo.
• Enquanto estiver escrevendo um programa
– Procure saber que ‘blocos de construção’ estão disponíveis.
– Utilize princípios de programação adequados.
3
Copyright © 2006 by Pearson Education
4.2 Algoritmos
• Algoritmos
– Ações a serem executadas.
– Ordem segundo a qual essas ações serão executadas.
• Controle do programa
– Especifica a ordem segundo a qual as ações serão
executadas em um programa.
– Executado no C++ com instruções de controle.
4
Copyright © 2006 by Pearson Education
4.3 Pseudocódigo
• Pseudocódigo
– Linguagem artificial e informal utilizada para desenvolver
algoritmos
• Usada para conceber um programa antes de escrevê-lo em
uma linguagem de programação.
– É fácil de ser convertida em um programa C++.
– Semelhante à língua cotidiana
• Descreve apenas instruções executáveis.
– Não há necessidade de declarar variáveis.
– Não é executado em computadores.
5
Copyright © 2006 by Pearson Education
Fig. 4.1 | Pseudocódigo para o programa de adição da Figura 2.5.
6
Copyright © 2006 by Pearson Education
4.4 Estruturas de controle
• Execução seqüencial
– As instruções são executadas em ordem seqüencial.
• Transferência de controle
– A instrução seguinte a ser executada não é a instrução
seguinte na seqüência.
• Programação estruturada
– As instruções goto são eliminadas.
7
Copyright © 2006 by Pearson Education
4.4 Estrutura de controle (cont.)
• São necessárias apenas três estruturas de controle.
– Não há instruções goto.
– Isso foi demonstrado por Böhm e Jacopini.
– Três estruturas de controle
• Estrutura de seqüência
– Os programas são executados seqüencialmente por
padrão.
• Estruturas de seleção
– if, if…else, switch
• Estruturas de repetição
– while, do…while, for
8
Copyright © 2006 by Pearson Education
4.4 Estruturas de controle (cont.)
• Diagrama de atividades UML
– Modela o fluxo de trabalho
• Símbolos de estado de ação
– Retângulos com as laterais encurvadas.
• Círculos pequenos
– O círculo sólido é o estado inicial.
– O círculo sólido cercado por um círculo vazio é o estado
final.
– Setas de transição: representam o fluxo da atividade.
• Notas comentadas
– São conectadas ao diagrama por linhas pontilhadas.
9
Copyright © 2006 by Pearson Education
Fig. 4.2 | Diagrama de atividades da estrutura de seqüência.
10
Copyright © 2006 by Pearson Education
4.4 Estruturas de controle (cont.)
11
Copyright © 2006 by Pearson Education
Fig. 4.3 | Palavras-chave do C++.
12
Copyright © 2006 by Pearson Education
Erro comum de programação 4.1
13
Copyright © 2006 by Pearson Education
Erro comum de programação 4.2
14
Copyright © 2006 by Pearson Education
Observação de engenharia de
software 4.1
Qualquer programa C++ que criemos pode ser
construído com base, unicamente, em sete tipos diferentes
de instrução de controle (seqüência, if, if...else,
switch, while, do...while e for), combinados
de duas maneiras apenas (empilhamento de instruções de
controle e aninhamento de instruções de controle).
15
Copyright © 2006 by Pearson Education
4.5 Instrução de seleção if
• Instruções de seleção
– Utilizadas para escolher entre cursos de ação alternativos.
– Exemplo de pseudocódigo
• Se a nota do aluno for maior que ou igual a 60
– Imprima “Passed”
– Se a condição for true
• A instrução de impressão será executada e o programa
atende à instrução seguinte do programa.
– Se a condição for false
• A instrução de impressão será ignorada e o programa
continuará.
– O recuo facilita a leitura dos programas.
• O C++ ignora caracteres de espaço em branco.
16
Copyright © 2006 by Pearson Education
4.5 Instrução de seleção if (cont.)
• Instruções de seleção (cont.)
– Tradução para C++
• if ( grade >= 60 )
cout << "Passed";
– Qualquer expressão pode ser usada como condição.
• Se for considerada falsa, será tratada como falsa.
• O símbolo de losango na modelagem UML
– Indica que uma decisão deve ser tomada.
– Contém condições de guarda
• Condição de teste
• Seguem o caminho correto
17
Copyright © 2006 by Pearson Education
Boa prática de programação 4.1
18
Copyright © 2006 by Pearson Education
Fig. 4.4 | Diagrama de atividades de uma instrução de seleção única if.
19
Copyright © 2006 by Pearson Education
Dica de portabilidade 4.1
20
Copyright © 2006 by Pearson Education
4.6 A instrução de seleção dupla if…
else
• if
– Executa uma ação se a condição for verdadeira.
• if…else
– Executa uma ação se a condição for verdadeira e uma ação
diferente se for falsa.
• Pseudocódigo
– Se a nota do aluno for maior ou igual a 60
imprima “Passed”
Caso contrário
imprima “Failed”
• Código C++
– if ( grade >= 60 )
cout << "Passed";
else
cout << "Failed";
21
Copyright © 2006 by Pearson Education
Boa prática de programação 4.2
22
Copyright © 2006 by Pearson Education
Boa prática de programação 4.3
23
Copyright © 2006 by Pearson Education
Fig. 4.5 | Diagrama de atividades de uma instrução de seleção dupla if...else.
24
Copyright © 2006 by Pearson Education
4.6 A instrução de seleção dupla if…
else (cont.)
• Operador condicional ternário (?:)
– Três argumentos (condição, valor se true, valor se
false)
• O código poderia ser assim escrito:
– cout << ( grade >= 60 ? “Passed” : “Failed” );
25
Copyright © 2006 by Pearson Education
Dica de prevenção de erro 4.1
26
Copyright © 2006 by Pearson Education
4.6 A instrução de seleção dupla if…
else (cont.)
• Instruções if…else aninhadas
– Uma dentro da outra, testam múltiplos casos.
– Quando uma condição é atendida, outras instruções são saltadas.
– Exemplo
– Se a nota do aluno for maior que ou igual a 90
– Imprima “A”
– Caso contrário
Se a nota do aluno for maior que ou igual a 80
Imprima “B”
– Caso contrário
Se a nota do aluno for maior que ou igual a 70
Imprima “C”
Caso contrário
Se a nota do aluno for maior que ou igual a 60
Imprima “D”
Caso contrário
• Imprima “F”
27
Copyright © 2006 by Pearson Education
4.6 A instrução de seleção dupla if…
else (cont.)
• Instruções if…else aninhadas (cont.)
– Escritas em C++
• if ( studentGrade >= 90 )
cout << "A";
else
if (studentGrade >= 80 )
cout << "B";
else
if (studentGrade >= 70 )
cout << "C";
else
if ( studentGrade >= 60 )
cout << "D";
else
cout << "F";
28
Copyright © 2006 by Pearson Education
4.6 A instrução de seleção dupla if…
else (cont.)
• Instruções if…else aninhadas (cont.)
– Escritas em C++ (recuadas diferentemente)
• if ( studentGrade >= 90 )
cout << "A";
else if (studentGrade >= 80 )
cout << "B";
else if (studentGrade >= 70 )
cout << "C";
else if ( studentGrade >= 60 )
cout << "D";
else
cout << "F";
29
Copyright © 2006 by Pearson Education
Dica de desempenho 4.1
30
Copyright © 2006 by Pearson Education
Dica de desempenho 4.2
31
Copyright © 2006 by Pearson Education
4.6 A instrução de seleção dupla if…
else (cont.)
• O problema do else oscilante
– O compilador associa else com o if imediatamente
precedente.
– Exemplo
• if ( x > 5 )
if ( y > 5 )
cout << "x and y are > 5";
else
cout << "x is <= 5";
– O compilador interpreta isso como
• if ( x > 5 )
if ( y > 5 )
cout << "x and y are > 5";
else
cout << "x is <= 5";
32
Copyright © 2006 by Pearson Education
4.6 A instrução de seleção dupla if…
else (cont.)
• O problema do else oscilante (cont.)
– Reescreva a instrução com chaves ({})
• if ( x > 5 )
{
if ( y > 5 )
cout << "x and y are > 5";
}
else
cout << "x is <= 5";
– As chaves indicam que a segunda instrução if está no corpo
da primeira e else é então associada à primeira instrução
if.
33
Copyright © 2006 by Pearson Education
4.6 A instrução de seleção dupla if…
else (cont.)
• Instrução composto
– Também chamada de bloco
• É um conjunto de instruções entre chaves.
• Usada para incluir múltiplas instruções em um corpo if.
– Exemplo
• if ( studentGrade >= 60 )
cout << "Passed.\n";
else
{
cout << "Failed.\n";
cout << "You must take this course again.\n";
}
– Sem as chaves,
– cout << "You must take this course again.\n";
– sempre é executada.
34
Copyright © 2006 by Pearson Education
Observação de engenharia de
software 4.2
Um bloco pode ser colocado em qualquer lugar em um
programa em que uma única instrução pode ser
colocada.
35
Copyright © 2006 by Pearson Education
Erro comum de programação 4.3
36
Copyright © 2006 by Pearson Education
Boa prática de programação 4.4
37
Copyright © 2006 by Pearson Education
4.6 A instrução de seleção dupla if…
else (cont.)
• Instrução vazia
– É representada por um ponto-e-vírgula (;) onde
normalmente entraria uma instrução.
– Não executa nenhuma ação.
– É também chamada de instrução nula.
38
Copyright © 2006 by Pearson Education
Erro comum de programação 4.4
39
Copyright © 2006 by Pearson Education
4.7 Instrução de repetição while
• Instrução de repetição
– Uma ação é repetida enquanto uma condição permanecer
verdadeira.
– Pseudocódigo.
• Enquanto houver itens em minha lista de compras
• Compre o item seguinte e risque-o de minha lista
– O loop while repete até que a condição se torne false.
– Exemplo
• int product = 3;
40
Copyright © 2006 by Pearson Education
Erro comum de programação 4.5
41
Copyright © 2006 by Pearson Education
4.7 Instrução de repetição while (cont.)
42
Copyright © 2006 by Pearson Education
Fig. 4.6 | Diagrama de atividades UML da instrução de repetição while.
43
Copyright © 2006 by Pearson Education
Dica de desempenho 4.3
44
Copyright © 2006 by Pearson Education
4.8 Formulando algoritmos: repetição
controlada por contador
• Declaração de problema
– Uma classe de dez alunos se submeteu a um exame. As notas
(inteiros no intervalo 0 a 100) para esse exame estão
disponíveis. Calcule e exiba o total de todas as notas e a
média da classe no exame.
• Repetição controlada por contador
– O loop repete até que o contador alcance
determinado valor.
– É também conhecida por repetição definida.
• O número de repetições é conhecido antecipadamente.
45
Copyright © 2006 by Pearson Education
4.8 Formulando algoritmos: repetição
controlada por contador (cont.)
• Repetição controlada por contador (cont.)
– Variável contador
• Usada para contar.
– Em um exemplo, indica qual entre as dez notas
está sendo inserida.
– Variável total
• Usada para acumular a soma de vários valores.
• Em geral, é previamente iniciada do zero.
– Do contrário, incluiria o valor anterior
armazenado nessa posição da memória.
46
Copyright © 2006 by Pearson Education
Observação de engenharia de
software 4.3
A experiência tem mostrado que o mais difícil na
resolução de problemas em um computador é
desenvolver o algoritmo para isso. Assim que se
especifica um algoritmo correto, o processo de produção
de um programa C++ funcional com base nesse
algoritmo normalmente se torna simples e direto.
47
Copyright © 2006 by Pearson Education
Fig. 4.7 | Algoritmo em pseudocódigo que utiliza repetição controlada por contador para
resolver o problema de média de classe.
48
Copyright © 2006 by Pearson Education
Resumo
fig04_08.cpp
A função determineClassAverage
implementa o algoritmo de média da
classe descrito pelo pseudocódigo.
49
Copyright © 2006 by Pearson Education
Resumo
fig04_09.cpp
(1 de 3)
50
Copyright © 2006 by Pearson Education
A função Resumo
determineClassAverage fig04_09.cpp
implementa o algoritmo de (2 de 3)
média da classe descrito pelo
pseudocódigo.
Aumenta o
contador em 1, o
que faz com que
gradeCounter
acabe
ultrapassando o
valor 10.
53
Copyright © 2006 by Pearson Education
Boa prática de programação 4.5
54
Copyright © 2006 by Pearson Education
4.8 Formulando algoritmos: repetição
controlada por contador (cont.)
• Variáveis não inicializáveis
– Contém valores ‘lixo’ (ou indefinidos).
• Observações sobre divisão de inteiros e
truncamento
– Divisão de inteiros
• Ao dividir dois inteiros
• O resultado é truncado
– Uma fração do quociente resultante é perdida.
55
Copyright © 2006 by Pearson Education
Erro comum de programação 4.6
56
Copyright © 2006 by Pearson Education
Dica de prevenção de erro 4.2
57
Copyright © 2006 by Pearson Education
Boa prática de programação 4.6
58
Copyright © 2006 by Pearson Education
Erro comum de programação 4.7
59
Copyright © 2006 by Pearson Education
Erro comum de programação 4.8
60
Copyright © 2006 by Pearson Education
4.9 Formulando algoritmos: repetição
controlada por sentinela
• Declaração do problema
– Desenvolver um programa de média da classe que processe as notas
para um número arbitrário de alunos toda vez que for executado.
• Repetição controlada por sentinela
– Também conhecida por repetição indefinida.
– Usar um valor de sentinela
• Indica o ‘final da entrada de dados’.
• Um valor de sentinela, além disso, não pode ser um valor de
entrada válido.
• É também conhecido por valor de sinal, valor fictício ou
valor de flag.
61
Copyright © 2006 by Pearson Education
Erro comum de programação 4.9
62
Copyright © 2006 by Pearson Education
4.9 Formulando algoritmos: repetição
controlada por sentinela (cont.)
• Refinamento passo a passo de cima para baixo
– Técnica de desenvolvimento para programas bem
estruturados
– Topo
• Instrução única que fornece a função geral do programa.
• Exemplo
– Determine a média da classe em relação ao exame.
– Primeiro refinamento
• Multiplica instruções usando apenas a estrutura de seqüência.
• Exemplo
– Inicialize as variáveis.
– Insira, some e conte as notas do exame.
– Calcule e imprima o total de todas as notas de aluno e a
média da classe.
63
Copyright © 2006 by Pearson Education
Observação de engenharia de
software 4.4
Cada refinamento, bem como o topo, é uma
especificação completa do algoritmo; somente o nível de
detalhe varia.
64
Copyright © 2006 by Pearson Education
Observação de engenharia de
software 4.5
Muitos programas podem ser divididos logicamente
em três fases: fase de inicialização, que inicializa as
variáveis do programa; fase de processamento, que
insere os valores dos dados e ajusta as variáveis do
programa (como contadores e totais) de maneira
correspondente; e fase de término, que calcula e gera a
saída dos resultados finais.
65
Copyright © 2006 by Pearson Education
Erro comum de programação 4.10
66
Copyright © 2006 by Pearson Education
Dica de prevenção de erro 4.3
67
Copyright © 2006 by Pearson Education
4.9 Formulando algoritmos: repetição
controlada por sentinela (cont.)
• Refinamento passo a passo de cima para baixo
(cont.)
– Segundo refinamento
• Define variáveis específicas.
• Usa estruturas de controle específicas.
• Exemplo na Fig. 4.11
• Erro de lógica fatal
– Poderia fazer com que o programa falhasse.
• Em geral, é chamado de ‘bombing’ ou ‘crashing’.
– A divisão por zero normalmente é um erro de lógica fatal.
68
Copyright © 2006 by Pearson Education
Fig. 4.11 | Algoritmo em pseudocódigo do problema de média da classe com repetição
controlada por sentinela.
69
Copyright © 2006 by Pearson Education
Observação de engenharia de
software 4.6
Finalize o processo de refinamento passo a passo de
cima para baixo quando o algoritmo em pseudocódigo
for especificado em detalhes que lhe permitam
converter o pseudocódigo em C++. Em geral,
implementar o programa C++ torna-se então simples e
direto.
70
Copyright © 2006 by Pearson Education
Observação de engenharia de
software 4.7
Muitos programadores experientes escrevem programas
sem jamais utilizar ferramentas de desenvolvimento de
programa como pseudocódigo. Esses programadores
acreditam que seu objetivo final é resolver o problema em
um computador e que escrever pseudocódigo só retarda a
produção de saídas finais. Embora esse método possa
funcionar para problemas simples e familiares, pode
provocar sérias dificuldades em projetos complexos e
grandes.
71
Copyright © 2006 by Pearson Education
4.9 Formulando algoritmos: repetição
controlada por sentinela (cont.)
• Números de ponto flutuante
– Um número real com um ponto decimal.
– O C++ fornece os tipos de dados float e double.
• Os números double podem ter maior magnitude e mais
detalhes.
– Isso é chamado de precisão.
• Valores constantes de ponto flutuante são tratados como
valores double por padrão.
– Valores de ponto flutuante em geral são apenas
aproximações.
72
Copyright © 2006 by Pearson Education
Resumo
fig04_12.cpp
73
Copyright © 2006 by Pearson Education
Resumo
fixed força a impressão da saída fig04_13.cpp
(1 de 4)
no formato de ponto fixo (notação
não científica) e a impressão dos
zeros finais e dos pontos decimais.
74
Copyright © 2006 by Pearson Education
Resumo
fig04_13.cpp
(2 de 4)
A função
determineClassAverage
implementa o algoritmo de
média da classe descrito pelo
pseudocódigo.
75
Copyright © 2006 by Pearson Education
Resumo
fig04_13.cpp
(3 de 4)
76
Copyright © 2006 by Pearson Education
Resumo
fig04_13.cpp
(4 de 4)
77
Copyright © 2006 by Pearson Education
Resumo
fig04_14.cpp
78
Copyright © 2006 by Pearson Education
Boa prática de programação 4.7
79
Copyright © 2006 by Pearson Education
Erro comum de programação 4.11
80
Copyright © 2006 by Pearson Education
Erro comum de programação 4.12
81
Copyright © 2006 by Pearson Education
4.9 Formulando algoritmos: repetição
controlada por sentinela (cont.)
• Operador de coerção unário
– Cria uma cópia temporária de seu operando com um tipo
de dado diferente.
• Exemplo
– static_cast< double > ( total )
• Cria uma cópia do ponto flutuante temporária de
total.
– Conversão explícita.
• Promoção
– Conversão de um valor (por exemplo, int) em outro tipo
de dado (por exemplo, double) para realizar um cálculo.
– Conversão implícita.
82
Copyright © 2006 by Pearson Education
Erro comum de programação 4.13
83
Copyright © 2006 by Pearson Education
4.9 Formulando algoritmos: repetição
controlada por sentinela (cont.)
• Formatando números de ponto flutuante
– Manipulador de fluxo parametrizado setprecision
• Especifica o número de dígitos de precisão para exibir à
direita do ponto decimal.
• A precisão-padrão é de seis dígitos.
– Manipulador de fluxo não parametrizado fixed
• Indica que os valores de ponto flutuante devem ser enviados
para a saída no formato de ponto fixo.
– Em oposição à notação científica (3.1 × 103).
– Manipulador de fluxo showpoint
• Força a exibição do ponto decimal.
84
Copyright © 2006 by Pearson Education
4.10 Formulando algoritmos: instruções
de controle aninhadas
• Declaração do problema
– Uma faculdade oferece um curso que prepara os candidatos a obter licença
estadual para corretores de imóveis. No ano passado, dez alunos que
concluíram esse curso prestaram esse exame. A universidade quer saber
como foi o desempenho dos alunos nesse exame. Você foi contratado para
escrever um programa que resuma os resultados. Para tanto, você recebeu
uma lista com dez desses alunos. Ao lado de cada nome é escrito 1 se o
aluno passou no exame ou 2 se o aluno foi reprovado.
– Seu programa deve analisar os resultados do exame assim:
• 1. Insira cada resultado de teste (isto é, 1 ou 2). Exiba a mensagem de
solicitação ‘Inserir resultado’ toda vez que o programa solicitar outro resultado
de teste.
• 2. Conte o número de cada tipo de resultado.
• 3. Exiba um resumo dos resultados do teste indicando o número de
alunos aprovados e reprovados.
• 4. Se mais de oito alunos tiverem sido aprovados no exame, imprima a
mensagem ‘Aumentar a mensalidade escolar’. 85
Copyright © 2006 by Pearson Education
4.10 Formulando algoritmos: instruções
de controle aninhadas (cont.)
• Observe que
– O programa processa dez resultados.
• Se o número for fixo, use loop controlado por contador.
– Todo resultado do teste pode ser 1 ou 2.
• Se não for 1, suponha que é 2.
– Dois contadores podem ser usados.
• Um conta o número de alunos que passaram.
• O outro conta o número de alunos que foram reprovados.
– É necessário determinar se mais de oito alunos passaram.
86
Copyright © 2006 by Pearson Education
4.10 Formulando algoritmos: instruções
de controle aninhadas (cont.)
• Representação da parte superior
– Analise os resultados do exame e decida se a mensalidade escolar deve
ser aumentada
• Primeiro refinamento
– Inicialize as variáveis
– Insira os 10 resultados dos exames e conte as aprovações e
reprovações
– Imprima um resumo dos resultados do exame e decida se a
mensalidade escolar deve ser aumentada
• Segundo refinamento
– Inicialize as variáveis
para
– Inicialize as aprovações como zero
– Inicialize as reprovações como zero
– Inicialize o contador de alunos como um
87
Copyright © 2006 by Pearson Education
4.10 Formulando algoritmos: instruções
de controle aninhadas (cont.)
88
Copyright © 2006 by Pearson Education
4.10 Formulando algoritmos: instruções
de controle aninhadas (cont.)
• Segundo refinamento (cont.)
– Imprima um resumo dos resultados do exame e decida se a
mensalidade escolar deve ser aumentada
para
– Imprima o número de aprovações
– Imprima o número de reprovações
– Se mais de oito alunos forem aprovados
– Imprima ‘Aumentar a mensalidade
escolar’
89
Copyright © 2006 by Pearson Education
Fig. 4.15 | Pseudocódigo para o problema dos resultados do exame.
90
Copyright © 2006 by Pearson Education
Resumo
fig04_16.cpp
91
Copyright © 2006 by Pearson Education
Resumo
fig04_17.cpp
(1 de 2)
92
Copyright © 2006 by Pearson Education
Resumo
fig04_17.cpp
(2 de 2)
93
Copyright © 2006 by Pearson Education
Resumo
fig04_18.cpp
(1 de 2)
94
Copyright © 2006 by Pearson Education
Resumo
fig04_18.cpp
(2 de 2)
95
Copyright © 2006 by Pearson Education
4.11 Operadores de atribuição
• Abreviatura de expressões de atribuição
– Operador de atribuição de adição
• Exemplo
– c = c + 3; pode ser abreviada como c += 3;
• Instruções na forma
• variável = variável operador expressão;
– podem ser reescritas como
• variável operador = expressão;
• Outros operadores de atribuição
– d -= 4 (d = d - 4)
– e *= 5 (e = e * 5)
– f /= 3 (f = f / 3)
– g %= 9 (g = g % 9)
96
Copyright © 2006 by Pearson Education
Fig. 4.19 | Operadores de atribuição aritméticos.
97
Copyright © 2006 by Pearson Education
4.12 Operadores de incremento e
decremento
• Operador de incremento ++
– Incrementa um ao valor da variável.
• Exemplo
– c++
• Operador de decremento --
– Decrementa um do valor da variável.
• Exemplo
– c--
98
Copyright © 2006 by Pearson Education
4.12 Operadores de incremento e
decremento (cont.)
• Pré-incremento
– Quando o operador é usado antes da variável (++c ou --c).
– A variável é alterada, então a expressão em que se encontra é
avaliada usando-se o novo valor.
• Pós-incremento
– Quando o operador é usado após a variável (c++ ou c--).
– A expressão em que a variável se encontra é executada usando-se
o valor original, então a variável é alterada.
99
Copyright © 2006 by Pearson Education
Fig. 4.20 | Operadores de incremento e de decremento.
100
Copyright © 2006 by Pearson Education
Boa prática de programação 4.8
101
Copyright © 2006 by Pearson Education
Resumo
fig04_21.cpp
Pós-incrementando a variável c.
Pré-incrementando a variável c.
102
Copyright © 2006 by Pearson Education
4.12 Operadores de incremento e
decremento (cont.)
• Se c = 5, então
– cout << ++c;
• c é alterada para 6
• Então imprime 6
– cout << c++;
• Imprime 5 (cout é executado antes do incremento)
• c então passa a ser 6
103
Copyright © 2006 by Pearson Education
4.12 Operadores de incremento e
decremento (cont.)
• Quando a variável não se encontra em uma
expressão
– Pré-incrementar e pós-incrementar têm o mesmo efeito.
• Exemplo
– ++c;
cout << c;
e
c++;
cout << c;
continuam iguais.
104
Copyright © 2006 by Pearson Education
Erro comum de programação 4.14
105
Copyright © 2006 by Pearson Education
Fig. 4.22 | Ordem de precedência dos operadores encontrados até agora no texto.
106
Copyright © 2006 by Pearson Education
4.13 Estudo de caso de engenharia de software:
identificando atributos de classe no sistema ATM
(opcional)
• Identificando e modelando atributos
– Criar atributos e atribuí-los a classes
• Procure palavras e frases descritivas no documento de
requisitos.
• A cada atributo é dado um tipo de atributo.
• Alguns atributos podem ser um valor inicial.
• Exemplo
– userAuthenticated : Boolean = false
• O atributo userAuthenticated é um valor
Boolean e inicialmente é false.
107
Copyright © 2006 by Pearson Education
Fig. 4.23 | Palavras e frases descritivas nos requisitos do ATM.
108
Copyright © 2006 by Pearson Education
4.13 Estudo de caso de engenharia de
software: identificando atributos de classe
no sistema ATM (opcional) (cont.)
109
Copyright © 2006 by Pearson Education
Fig. 4.24 | Classes com atributos.
110
Copyright © 2006 by Pearson Education
Observação de engenharia de
software 4.8
Nas etapas iniciais do processo de projeto,
freqüentemente faltam nas classes atributos (e
operações). Essas classes, porém, não devem
ser eliminadas, pois os atributos (e operações) podem
tornar-se evidentes nas fases posteriores do projeto e
da implementação.
111
Copyright © 2006 by Pearson Education
Para fazer (em trios de até 3)
112
Copyright © 2006 by Pearson Education