Escolar Documentos
Profissional Documentos
Cultura Documentos
Introdução à
programação
em C++
2
Copyright © 2006 by Pearson Education
2.1 Introdução
• Programação em C++
– Torna mais fácil a adoção de um enfoque disciplinado ao
projeto de programação de computadores.
– Os programas processam informações e exibem os
resultados.
• Cinco exemplos demonstram
– Como exibir mensagens.
– Como obter informações do usuário.
– Como executar cálculos aritméticos.
– Como tomar decisões.
3
Copyright © 2006 by Pearson Education
2.2 Primeiro programa C++: imprimindo
uma linha de texto
• Programa simples
– Imprime uma linha do texto.
– Ilustra vários recursos importantes da linguagem C++.
4
Copyright © 2006 by Pearson Education
2.2 Primeiro programa C++: imprimindo
uma linha de texto (cont.)
• Comentários
– Explicam os programas a outros programadores.
• Melhoram a leitura do programa.
– São ignorados pelo compilador.
– Comentário de uma única linha
• Inicia-se com //
• Exemplo
– // Programa de impressão de texto.
– Comentário de múltiplas linhas
• Inicia-se com /*
• Termina com */
5
Copyright © 2006 by Pearson Education
Resumo
fig02_01.cpp
Diretiva do pré-processador para
A função main retorna um incluir o arquivo de cabeçalho de
valor inteiro. fluxo de entrada e saída
<iostream>
7
Copyright © 2006 by Pearson Education
2.2 Primeiro programa C++: imprimindo
uma linha de texto (cont.)
• Diretivas de pré-processador
– São processadas pelo pré-processador antes da compilação.
– Começam com #
– Exemplo
• #include <iostream>
– Instrui o pré-processador a incluir o arquivo de
cabeçalho de fluxo de entrada/saída <iostream>
• Espaços em branco
– Linhas em branco e caracteres de espaço em branco e de
tabulação.
– São usados para tornar os programs mais fáceis de ler.
– São ignorados pelo compilador.
8
Copyright © 2006 by Pearson Education
Erro comum de programação 2.1
9
Copyright © 2006 by Pearson Education
Boa prática de programação 2.2
10
Copyright © 2006 by Pearson Education
2.2 Primeiro programa C++: imprimindo
uma linha de texto (cont.)
• Função main
– É uma parte de todo programa C++.
• Em um programa, deve haver precisamente uma função
main.
– Pode ‘retornar’ um valor.
– Exemplo
• int main()
– Essa função main retorna um inteiro (um número
inteiro).
– O corpo é delimitado por chaves ({}).
• Instruções
– Instruem o programa a executar uma ação.
– Todas as instruções terminam com um ponto-e-vírgula (;).
11
Copyright © 2006 by Pearson Education
2 2.2 Primeiro programa C++: imprimindo
uma linha de texto (cont.)
• Namespace
– std::
• Especifica que se deve usar um nome que pertence ao
‘namespace’ std.
• Pode ser removido por meio de instruções using.
• Objeto de fluxo de saída padrão
– std::cout
• Está ‘conectado’ à tela.
• É definido no arquivo de cabeçalho de fluxo de entrada/saída
<iostream>.
12
Copyright © 2006 by Pearson Education
2.2 Primeiro programa C++: imprimindo
uma linha de texto (cont.)
• Operador de inserção de fluxo <<
– O valor à direita (operando da direita) é inserido no
operando da esquerda.
– Exemplo
• std::cout << "Hello";
– Insere a string "Hello" na saída-padrão.
• Exibe-a na tela.
• Caracteres de escape
– Caracter precedido por "\"
• Indica uma saída de caractere ‘especial’.
– Exemplo
• "\n"
– O cursor se move para o início da linha seguinte na tela.
13
Copyright © 2006 by Pearson Education
Erro comum de programação 2.2
14
Copyright © 2006 by Pearson Education
Erro comum de programação 2.2
15
Copyright © 2006 by Pearson Education
2.2 Primeiro programa C++: imprimindo
uma linha de texto (cont.)
• Instrução return
– Uma das várias formas de sair de uma função.
– Quando usada no fim de main
• O valor 0 indica que o programa terminou com sucesso.
• Exemplo
– return 0;
16
Copyright © 2006 by Pearson Education
Boa prática de programação 2.3
17
Copyright © 2006 by Pearson Education
Fig. 2.2 | Seqüências de escape.
18
Copyright © 2006 by Pearson Education
Boa prática de programação 2.4
19
Copyright © 2006 by Pearson Education
Boa prática de programação 2.5
20
Copyright © 2006 by Pearson Education
2.3 Modificando nosso primeiro
programa C++
• Dois exemplos
– Imprimindo texto em um linha por meio de múltiplas
instruções (Fig. 2.3)
• Toda inserção de fluxo retoma a impressão do ponto em que
a anterior parou.
– Imprimindo texto em múltiplas linhas por meio de uma
única instrução (Fig. 2.4)
• Toda seqüência de escape de uma nova linha posiciona o
cursor no começo da linha seguinte.
• Dois caracteres de nova linha um após o outro produzem
uma linha em branco.
21
Copyright © 2006 by Pearson Education
Resumo
fig02_03.cpp
22
Copyright © 2006 by Pearson Education
Resumo
fig02_04.cpp
23
Copyright © 2006 by Pearson Education
2.4 Outro programa C++: adicionando
inteiros
• Variáveis
– Local na memória em que pode ser armazenado um valor.
– Tipos de dados comuns (fundamental, primitivo ou
predefinido)
• int – números inteiros
• char – caracteres
• double – números de ponto flutuante
– Declare as variáveis com um nome e um tipo de dado antes
de usar
• int integer1;
• int integer2;
• int sum;
24
Copyright © 2006 by Pearson Education
Resumo
fig02_05.cpp
26
Copyright © 2006 by Pearson Education
Boa prática de programação 2.6
27
Copyright © 2006 by Pearson Education
Boa prática de programação 2.7
28
Copyright © 2006 by Pearson Education
Dica de portabilidade 2.1
29
Copyright © 2006 by Pearson Education
Boa prática de programação 2.8
30
Copyright © 2006 by Pearson Education
Boa prática de programação 2.9
31
Copyright © 2006 by Pearson Education
Boa prática de programação 2.10
32
Copyright © 2006 by Pearson Education
Dica de prevenção de erro 2.1
33
Copyright © 2006 by Pearson Education
Boa prática de programação 2.11
34
Copyright © 2006 by Pearson Education
Boa prática de programação 2.12
35
Copyright © 2006 by Pearson Education
2.4 Outro programa C++: adicionando
inteiros (cont.)
• Objeto de fluxo de entrada
– std::cin from <iostream>
• Em geral está conectado ao teclado.
• Operador de extração de fluxo >>
– Espera o usuário inserir um valor e pressionar a tecla
Enter (Return).
– Armazena um valor na variável à direita do operador.
• Converte o valor no tipo de dado da variável.
• Exemplo
– std::cin >> number1;
• Lê um inteiro digitado no teclado.
• Armazena o inteiro na variável number1.
36
Copyright © 2006 by Pearson Education
Dica de prevenção de erro 2.2
37
Copyright © 2006 by Pearson Education
2.4 Outro programa C++: adicionando
inteiros (cont.)
• Operador de atribuição =
– Atribui um valor à esquerda à variável à direita.
– Operador binário (dois operandos).
– Exemplo:
• sum = variable1 + variable2;
– Acrescenta os valores variable1 e variable2.
– Armazena o resultado em sum.
• Manipulador de fluxo std::endl
– Gera um nova linha.
– Esvazia o buffer de saída.
38
Copyright © 2006 by Pearson Education
Boa prática de programação 2.13
39
Copyright © 2006 by Pearson Education
2.4 Outro programa C++: adicionando
inteiros (cont.)
• Concatenando operações de inserção de fluxo
– Use múltiplas operações de inserção de fluxo em uma única
instrução.
• A operação de inserção de fluxo sabe como gerar cada tipo de dado.
– Essa operação é também conhecida por encadeamento ou em
cascata.
– Exemplo
• std::cout << "Sum is " << number1 + number2
<< std::endl;
– Gera "Sum is "
– Em seguida, gera a soma de number1 e number2.
– Posteriormente, gera nova linha e esvazia o buffer de
saída.
40
Copyright © 2006 by Pearson Education
2.5 Conceitos de memória
• Nomes de variável
– Correspondem ao local real na memória do computador.
• Cada variável tem um nome, tipo, tamanho e valor.
– Quando um novo valor é inserido na variável, esse valor
sobrescreve o anterior.
• Gravar na memória é destrutível.
– Ler variáveis da memória não é destrutível.
– Exemplo
• sum = number1 + number2;
– O valor de sum é sobrescrito.
– Os valores de number1 e number2 permanecem
intactos.
41
Copyright © 2006 by Pearson Education
Fig. 2.6 | Posição da memória mostrando o nome e o valor da variável number1.
42
Copyright © 2006 by Pearson Education
Fig. 2.7 | Posições da memória depois de armazenar os valores para number1 e
number2.
43
Copyright © 2006 by Pearson Education
Fig. 2.8 | Posições da memória depois de calcular e armazenar a sum de number1 e
number2.
44
Copyright © 2006 by Pearson Education
2.6 Aritmética
• Operadores aritméticos
– *
• Multiplicação
– /
• Divisão
• A divisão de um inteiro trunca o restante.
– 7 / 5 estima o valor como 1
– %
• O operador módulo retorna o restante.
– 7 % 5 estima o valor como 2
45
Copyright © 2006 by Pearson Education
Erro comum de programação 2.3
46
Copyright © 2006 by Pearson Education
2.6 Aritmética (cont.)
• Forma em linha reta
– Essencial para expressões aritméticas em C++.
– Todas as constantes, variáveis e operadores aparecem em
uma linha reta.
• Agrupando subexpressões
– Os parênteses são usados em expressões C++ para agrupar
subexpressões.
• Mesmo procedimento das expressões algébricas.
– Exemplo
•a * ( b + c )
– Mutiplica a vezes a quantidade b + c.
47
Copyright © 2006 by Pearson Education
Fig. 2.9 | Operadores aritméticos.
48
Copyright © 2006 by Pearson Education
2.6 Aritmética (cont.)
• Regras de precedência de operadores
– Os operadores entre parênteses são avaliados primeiro.
• Parênteses aninhados/embutidos
– Os operadores no par mais interno de parênteses são
aplicados primeiro.
– Operações de multiplicação, divisão e módulo são
aplicadas em seguida.
• Os operadores são aplicados da esquerda para a direita.
– Operações de adição e subtração são aplicadas por último.
• Os operadores são aplicados da esquerda para a direita.
49
Copyright © 2006 by Pearson Education
Fig. 2.10 | Precedência de operadores aritméticos.
50
Copyright © 2006 by Pearson Education
Erro comum de programação 2.4
51
Copyright © 2006 by Pearson Education
Boa prática de programação 2.14
52
Copyright © 2006 by Pearson Education
Fig. 2.11 | Ordem em que um polinômio de segundo grau é avaliado.
53
Copyright © 2006 by Pearson Education
2.7 Tomada de decisão: operadores de
igualdade e operadores relacionais
• Condição
– A expressão pode ser tanto true quanto false.
– Pode ser formada usando operadores de igualdade ou
relacionais.
• Instrução if
– Se a condição for true, o corpo da instrução if será
executado.
– Se a condição for false, o corpo da instrução if não será
executado.
54
Copyright © 2006 by Pearson Education
Fig. 2.12 | Operadores de igualdade e operadores relacionais.
55
Copyright © 2006 by Pearson Education
Erro comum de programação 2.5
56
Copyright © 2006 by Pearson Education
Erro comum de programação 2.6
57
Copyright © 2006 by Pearson Education
Erro comum de programação 2.6
58
Copyright © 2006 by Pearson Education
Erro comum de programação 2.7
Confundir o operador de igualdade == com o
operador de atribuição = gera erros de lógica. O
operador de igualdade deve ser lido como ‘é igual
a’, e o operador de atribuição deve ser lido como
‘obtém’ ou ‘obtém o valor de’ ou ‘recebe o valor
de’. Algumas pessoas preferem ler o operador de
igualdade como ‘duplo igual’. Como discutimos na
Seção 5.9, confundir esses operadores talvez não
cause necessariamente um erro de sintaxe fácil de
reconhecer, mas pode causar erros de lógica
extremamente sutis.
59
Copyright © 2006 by Pearson Education
Resumo
fig02_13.cpp
(1 de 2)
Declaram variáveis.
A instrução if compara os
valores de number1 e
Compara dois números usando os number2 para testar a
operadores relacionais < e > desigualdade. 60
Copyright © 2006 by Pearson Education
Resumo
fig02_03.cpp
Compara dois (2 de 2)
números usando os
operadores relacionais
<= e >=
61
Copyright © 2006 by Pearson Education
Boa prática de programação 2.15
62
Copyright © 2006 by Pearson Education
Boa prática de programação 2.16
63
Copyright © 2006 by Pearson Education
Boa prática de programação 2.17
64
Copyright © 2006 by Pearson Education
Erro comum de programação 2.8
Colocar um ponto-e-vírgula imediatamente após o
parêntese direito depois da condição em uma instrução
if costuma ser um erro de lógica (embora não seja um
erro de sintaxe). O ponto-e-vírgula faz com que o corpo
da instrução if se esvazie. Assim, a instrução if não
realiza nenhuma ação, independentemente de sua
condição ser verdadeira ou falsa. Pior ainda, a
instrução original do corpo da instrução if poderia se
tornar uma instrução em seqüência com a instrução if e
sempre seria executada, o que faz com que o programa
freqüentemente produza resultados incorretos.
65
Copyright © 2006 by Pearson Education
Erro comum de programação 2.9
66
Copyright © 2006 by Pearson Education
Boa prática de programação 2.18
Uma instrução longa pode se estender por várias
linhas. Se uma única instrução precisar ter sua
linha quebrada, escolha pontos de quebra
significativos, como após uma vírgula em uma
lista separada por vírgulas ou após um operador
em uma expressão extensa. Se uma instrução se
estender por duas ou mais linhas, recue todas as
linhas subseqüentes e alinhe o grupo à esquerda.
67
Copyright © 2006 by Pearson Education
Fig. 2.14 | Precedência e associatividade dos operadores discutidos até agora.
68
Copyright © 2006 by Pearson Education
Boa prática de programação 2.19
Consulte o gráfico de precedência e associatividade de
operadores ao escrever expressões que contenham
muitos operadores. Confirme se os operadores na
expressão são realizados na ordem em que você espera.
Se não estiver certo quanto à ordem de avaliação em
uma expressão complexa, divida a expressão em
instruções menores ou utilize parênteses para forçar a
ordem de avaliação, exatamente como faria em uma
expressão algébrica. Lembre-se de que alguns
operadores, como atribuição (=), associam da direita
para a esquerda, e não da esquerda para a direita.
69
Copyright © 2006 by Pearson Education
2.8 Estudo de caso de engenharia de
software: examinando o documento de
requisitos de ATM (opcional)
• Processo de um projeto orientado a objetos
(OOD) utilizando UML
– Executado nos Capítulos 3-7, 9 e 13.
– Documento de requisitos
• Especifica o propósito geral e o que o sistema deve fazer.
• Implementação de uma programação orientada a
objetos (OOP)
– Implementação completa no Apêndice G.
70
Copyright © 2006 by Pearson Education
2.8 Estudo de caso de engenharia de
software: examinando o documento de
requisitos de ATM (opcional) (cont.)
• Documento de requisitos
– Novo caixa eletrônico (ATM).
– Permite transações financeiras básicas.
• Exibe o saldo e permite que o usuário faça saques e depósitos.
– Interface com o usuário
• Tela, teclado numérico, dispensador de cédulas e
compartimento de depósito.
– Sessão do ATM
• Autentica o usuário e executa transações financeiras.
71
Copyright © 2006 by Pearson Education
Fig. 2.15 | A interface com o usuário do caixa eletrônico.
72
Copyright © 2006 by Pearson Education
Fig. 2.16 | Menu principal do ATM.
73
Copyright © 2006 by Pearson Education
Fig. 2.17 | Menu de saque do ATM.
74
Copyright © 2006 by Pearson Education
2.8 Estudo de caso de engenharia de software:
examinando o documento de requisitos de ATM
(opcional) (cont.)
• Analisando o sistema ATM
– Coleta de requisitos
– Ciclo de vida do software
• Modelo em cascata
• Modelo interativo
– Modelagem de caso de uso
• Diagrama de casos de uso
– Modela as interações entre clientes e seus casos de uso.
– Ator
• Entidade externa
75
Copyright © 2006 by Pearson Education
Fig. 2.18 | Diagrama de casos de uso para o sistema ATM da perspectiva do usuário.
76
Copyright © 2006 by Pearson Education
Fig. 2.19 | Diagrama de casos de uso para uma versão modificada do nosso sistema ATM
que também permite aos usuários transferir dinheiro
entre contas.
77
Copyright © 2006 by Pearson Education
2.8 Estudo de caso de engenharia de software:
examinando o documento de requisitos de ATM
(opcional) (cont.)
• Tipos de diagrama da UML
– Modelam a estrutura do sistema.
• Diagrama de classes
– Modela classes ou ‘blocos de construção’ de um sistema.
– Tela, teclado numérico, dispensador de cédulas e
compartimento de depósito.
78
Copyright © 2006 by Pearson Education
2.8 Estudo de caso de engenharia de software:
examinando o documento de requisitos de ATM
(opcional) (cont.)
– Modelam o comportamento do sistema
• Diagramas de casos de uso
– Modelam interações entre o usuário e o sistema.
• Diagramas de estados de máquina
– Modelam as formas pelas quais um objeto muda de
estado.
• Diagramas de atividades
– Modelam a atividade de um objeto durante a execução
de um programa.
• Diagramas de comunicação (diagramas de colaboração)
– Modelam as interações entre objetos.
– Enfatizam as interações que ocorrem.
• Diagramas de seqüência
– Modelam as interações entre objetos.
– Enfatizam quando as interações ocorrem.
79
Copyright © 2006 by Pearson Education
Para fazer
80
Copyright © 2006 by Pearson Education