Download Treinamento em Linguagem C++ - Mod. 1...
© 1995 1995 Pe a rson Educa tion tion do Brasil Treina Tre inam men entto em Lingua Linguagg em C+ + – Módu Módullo 1 Todo s os dir direitos eitos reserv reservaa dos . Nenhuma Nenhuma part partee des ta publ publiica çã o poderá ser repr reproduzi oduzida da ou tr trans ans mi miti tida da de q ual ualqq uer modo ou por q ual ualqq uer out outrro meio, meio, eletr eletrôni ônico co ou mecâ ni nico, co, inclui ncluindo ndo fotocópia, gravação ou qualquer outro tipo de sistema de armazenamento e transmissão de informação, sem prévia autorização, por escrito, da Pearson Education do Brasil.
Editoração Eletrônica e Fotolitos: E.R.J Composição Editorial e Artes Gráficas Ltda. Impressão: S ã o P a u lloo – S P
Dados Da dos Int Inter erna naciona cionais is de Catalog atalogação ação n na a Pub Publicação licação (CIP) (Câmar (Câm ara a Bra Brasilei sileira ra do Livr Livro, o, SP, Bra Brasil) sil) Mizrahi, Victorine Viviane Treina reina mento em ling ua g em C+ + – Mód Mód ulo ulo 1 /Victori ctorine ne Viviane Mizrahi. --São Paulo : Makron Books, 1994. Publica Publi ca do v. 1. 1. C+ + (Linguag em de pr programaç ogramaç ão par paraa c omput omputad or ores) es) I. Título. 94-2389
C D D -005. 133
Índices Índ ices pa para ra cat catálog álogo o sistem sistemát ático: ico:
1. C+ + : L Liinguag em de pr programaç ogramaç ão : Comput Computad ad or ores es : P rroo c eess s a m een n tto o de dados
0 05. 1 33
2005 Direitos exclusivos para a língua portuguesa cedidos à Pearson Education do Brasil, umaa empr um empresa esa do gru grupo po P earson Education Education Av. Ermano Marchetti, 1435 CEP : 0503 050388-00 001 1–L Laa pa – Sã o Pa ulo ulo – SP Fone (11) (11) 36133613-122 1222 2 Fa x ((11 11)) 361 36111-044 0444 4 e-mail:
[email protected]
A minha querida queri da irmã Lucie, que tem sido ao longo de todos esses anos minha maior amiga. A sua presença pres ença singela, sing ela, nobreza nobre za de alma e generosidade genero sidade incomparável incomparável fazem o dia melh melhorar orar cada vez que nos encontramos.
Página em branco
A camin caminhada hada é feita como quem cuid cuidaa de um doente querido, com calma e delicadeza, com paciência pac iência e dedicação. dedi cação.
(Luiz Carlos Lisboa)
Página em branco
MAKRON Books
SUMÁRIO
Sumário
Prefácio Prefáci o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .XVII Uma Visão Geral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .XIX Classes e objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XIX Encapsular e esconder . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XX Herança . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XX Polimorfismo e sobrecarga . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XXII C é um subconjunto de C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . XXIII
Capítulo Capí tulo 1
Conceitos Conceitos Básicos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
A estrutura básica de um programa em C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 Forma geral das funções C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 O primeiro p programa rograma . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Nome das funções . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 O tipo void . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Chaves . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Espaços em branco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Instruções de programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Imprimindo usando cout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 O pré-processador C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 A diretiva #include . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
IX
X
Treinamento em Linguagem C++
Arquivos de inclusão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 O arquivo iostream.h . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Executando o primeiro programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 Códigos especiais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 Imprimindo numa nova linha . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Constantes numéricas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 Cadeia de caracteres constante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Aspas simples ou aaspas spas duplas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Imprimindo outros tipos de d dados ados . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 Variáveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 Declarações de variáveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 Tipos de variáveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 Inicializando variáveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 Variáveis ponto flutuante (float) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 O modificador unsigned: inte inteiros iros com e sem sinal . . . . . . . . . . . . . . . . . . . . . . . . 16 Nomes de variáveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 Palavras-chave Palavras-cha ve de C++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 Manipuladores de tamanho de campos na impressão . . . . . . . . . . . . . . . . . . . . . . . . 19 Tamanho de campos com números inteiros . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 Tamanho de campos com pontos flutuantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 Tamanho de campos com cadeias de caracteres . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 Manipuladores de bases numéricas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Imprimindo caracteres gráficos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 Revisão . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 Exercícios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
Capítulo 2
Operadores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Operador de atribuição: = . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 Operadores aritméticos: + - * / % . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 Precedência . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 O operador menos unário: - . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Lendo com cin e o operador de extração >> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 Múltiplas entradas com cin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 O programa que adivinha adivinha a soma de cinco números . . . . . . . . . . . . . . . . . . . . . . 39
Sumário
XI
Manipuladores de bases numéricas: dec hex oct . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 O qualificador const . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 Conversões de tipos e o operador de molde . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 As funções getche() e getch() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 Comentários . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 Sintaxe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 Operadores de incremento (++) e de decremento ( --) . . . . . . . . . . . . . . . . . . . . . . . . 44 Precedência . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 Cout e enganando nganando você . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Operadores aritméticos de atribuição: += -= *= /= %= . . . . . . . . . . . . . . . . . . . . . 49 Operadores relacionais: > >= <