You are on page 1of 55

Apêndice A Tabela de precedência dos operadores Os operadores são apresentados em ordem decrescente de precedência, de cima para baixo.

Fig. A.1 Tabela de precedência de operadores (parte 1 de 2). oe e [e Operador . O [] . -> ++ typeid dynainic_ca st< tipo> staticcast< tipo> reinterpretca t st< ipo > constcast< tipo> ++ -+ Tipo resolução de escopo binário resolução de escopo unário parênteses subscrito de array seleção de membro via objeto seleção de membro via ponteiro pós-incremento unário pósdecremento unário informação sobre tipo durante a execução coerção com verificação de tipo durante a execução coerção com verificação de tipo durante a compilação coerção para conversões não-padrão retira o atributo const com coerção pré-incremento unário pré-decremento unário mais unário menos unário direita para a esquerda Associatividad e1 esquerda para a direita esquerda para a direita

! tipo ) sizeof & * new new [3 delete dele te [3 * * / % + -

negação lógica unária complemento sobre bits unário coerção ao estilo de C unário determina o tamanho em bytes endereço derreferencia alocação dinâmica de memória alocação dinâmica de array desalocação dinâmica de memória desalocação dinâmica de array ponteiro para membro via objeto ponteiro para membro via ponteiro multiplicação divisão módulo (resto da divisão inteira) adição subtração

esquerda para a direita esquerda para a direita esquerda para a direita

1036 C++ COMO PROGRAMAR «» < <= > > & A && II *- 1= &= «= »= deslocamento sobre bits para a esquerda deslocamento sobre bits para a direita relacional menor do que relacional menor do que ou igual a relacional maior do que relacional maior do que ou igual a relacional igual a relacional não igual a AND (E) sobre bits

OR (OU) exclusivo sobre bits OR (OU) inclusivo sobre bits AND (E) lógico ___________________ OR (OU) lógico ___________________ condicional ternário atribuição atribuição com adição atribuição com subtração atribuição com multiplicação atribuição com divisão atribuição com módulo atribuição com AND sobre bits atribuição com OR exclusivo sobre bits atribuição com OR inclusivo sobre bits atribuição com deslocamento sobre bits para a esquerda atribuição com deslocamento sobre bits para a direita vírgula esquerda para a direita esquerda para a direita esquerda para a direita esquerda para a direita Operador Tipo Associatividade 1 esquerda para a direita esquerda para a direita esquerda para a direita esquerda para a direita esquerda para a direita direita para a esquerda direita para a esquerda Fig. A.1 Tabela de precedência de operadores (parte 2 de 2).

Apêndice B Conjunto de caracteres ASCII Conjunto de Caracteres ASCII Fig. B.1 O conjunto de caracteres ASCII Os dígitos à esquerda da tabela são os dígitos da esquerda do equivalente decimal (0 a 127) do código do caractere e os dígitos do topo da tabela são os dígitos da direita do código do caractere. Por exemplo, o código do caractere “F”

é 70 e o código do caractere “&“ é 38. O123456789 O 2 3 4 5 6 7 8 9 1O 11 12 flui ni dc 4 rs ( 2 < F P Z d n x so h vt na k us ) 3 = G Q [ e o y st x ff sy n sp * 4 > H R \ f p z et x cr et b + 5 ? 1 S 3 g q { eo en ac t q k so si di e ca e su n m b ‘ # $ , . 6 7 8 @ A B J K L T U V ‘ ‘ h i j r s t } be l dc l es c % / 9 C M W a k u de i bs dc 2 fs & O : D N X b 1 v ht dc 3 gs ‘ 1 ; E O Y e m w

Apêndice C Sistemas de numeração Objetivos • Compreender os conceitos básicos dos sistemas de numeração, tais como base, valor posiciona! e valor do símbolo. • Compreender como trabalhar com números representados nos sistemas de numeração binário, octa! e hexadecimal. • Ser capaz de abreviar números binários como números octais ou hexadecimais. • Ser capaz de converter números octais e hexadecimais em números binários.

• Ser capaz de fazer conversões de números decimais para seus equivalentes binários, octais e hexadecimais e vice-versa. • Compreender a aritmética binária e como números binários negativos são representados usando a notação de complemento de dois. Aqui estão os únicos números ratificados. Wil!iam Shakespeare A natureza tem uma espécie de sistema coordenado aritmético-geométrico, pois ela possui todos os tipos de modelos. O que percebemos da natureza está em modelos, e todos os modelos da natureza são belos. Ocorre-me que o sistema daquela natureza deve ser uma beleza real, pois em química descobrimos que as associações são sempre em belos números inteiros - não há frações. Richard Buckminster Fu!!er 4 APÊNDICE C - SISTEMAS DE NUMERAÇÃO 1039 Visão Geral C.1 Introdução C.2 Abreviando números binários como números octais e hexadecimais C.3 Convertendo números octais e hexadecimais em números binários C.4 Convertendo do sistema binário, octal ou hexadecimal para o sistema decimal C.5 Convertendo do sistema decimal para o sistema binário, octal ou hexadecimal C.6 Números binários negativos: notação em complemento de dois Reswno . Terminologia Exetrícios de auto-revisão Respostas aos exercícios de auto-revisão • Ese,vícios C.1 Introdução Neste apêndice, apresentamos os principais sistemas de numeração que os programadores utilizam, especialmente quando estão trabalhando em projetos de software que exigem muita interação com hardware em “nível de máquina”. Projetos como esses incluem sistemas operacionais, software de redes de computadores, compiladores, sistemas de bancos de dados e aplicações que exigem alto desempenho. Quando escrevemos um inteiro como 227 ou -63 em um programa, assume-se que o número está no sistema de numeração decimal (base 10). Os dígitos no sistema de numeração decimal são 0, 1, 2, 3,4, 5, 6, 7, 8 e 9. O menor dígito é O e o maior dígito é 9 um a menos que a base 10. Internamente, os computadores usam o sistema de numeração binário (base 2). O sistema de numeração binário tem apenas dois dígitos, ou seja O e 1. Seu menor digito é O e seu maior digito é 1 - um a menos que a base 2. A Fig. C.l resume os dígitos usados nos sistemas de numeração binário, octal, decimal e hexadecimal. Como veremos, os números binários tendem a ser muito maiores do que seus equivalentes decimais. Os programadores que trabalham com linguagens de montagem (assemblers) e com linguagens de alto nível, que permitem que eles

desçam ao “nível da máquina”, acham complicado trabalhar com números binários. Assim, dois outros sistemas de numeração - o sistema de numeração octal (base 8) e o sistema de numeração hexadecimal (base 16) - são populares, principalmente porque tornam conveniente a abreviação de números binários. No sistema de numeração octal, os dígitos variam de O a 7. Como tanto o sistema de numeração binário quanto o sistema octal possuem menos dígitos que o sistema decimal, seus dígitos são os mesmos que seus correspondentes do sistema decimal. O sistema hexadecimal apresenta um problema porque ele exige dezesseis dígitos - o menor dígito é O e o maior dígito tem valor equivalente a 15 (um a menos que a base 16). Por convenção, usamos as letras de A a F para representar os dígitos correspondentes aos valores decimais de 10 a 15. Desta forma, em hexadecimal podemos ter números como 876 consistindo apenas de dígitos semelhantes aos decimais, números como 8A55F consistindo em dígitos e letras, e números como FFE consistindo apenas em letras. Ocasionalmente, um número hexadecimal é grafado como uma palavra comum como FACE ou CADA - isso pode parecer estranho aos programadores acostumados a trabalhar com números. A Fig. C.2 resume cada um dos sistemas de numeração. Cada um desses sistemas de numeração usa a notação posicional - cada posição na qual é escrito um dígito possui um valor posicional diferente. Por exemplo, no número decimal 937 (o 9, o 3 e o 7 são chamados de valores dos símbolos ou valores dos algarismos), dizemos que o 7 é escrito na posição das unidades, o 3 é escrito na posição das dezenas e o é escrito na posição das centenas. Observe que cada uma dessas posições é uma potência da base (base 10) e que essas potências começam° DIgito binário Dígito octal Digito decimal Dígito Hexadecimal Fig. C.1 Dígitos dos sistemas de numeração binário, octal, decimal e hexadecimal (parte 1 de 2). 1040 C++ COMO PROGRAMAR Fig. C.1 Dígitos dos sistemas de numeração binário, octal, decimal e hexadecimal (parte 2 de 2). Dígito decimal 9 3 7 Nome da posição Centenas Dezenas Unidades Valor posicional 100 10 1 Valor posicional como uma potência da base 102 10’ 10° Fig. C.3 Valores posicionais no sistema de numeração decimal. Para números decimais maiores, as próximas posições à esquerda seriam a posição dos milhares ti u eievauo a terceira potência), aposição das dezenas de milhar (10 elevado à quarta potência), a posição das centenas de milhar (10

elevado à quinta potência), a posição dos milhões (10 elevado à sexta potência), a posição das dezenas de milhões (10 elevado à sétima potência) e assim por diante. No número binário 101, dizemos que o 1 da extremidade da direita está escrito na posição da unidade, o O está escrito na posição do dois e o 1 da extremidade esquerda está escrito na posição do quatro. Veja que cada uma dessas posições é uma potência da base (base 2) e que essas potências começam em O e aumentam de 1 em 1 à medida que nos movemos para a esquerda no número (Fig. C.4). Para números binários mais longos, as próximas posições à esquerda seriam a posição do oito (2 elevado à terceira potência), a posição do dezesseis (2 elevado à quarta potência), a posição do trinta e dois (2 elevado à quinta potência), aposição do sessenta e quatro (2 elevado à sexta potência) e assim por diante. No número octal 425, dizemos que o 5 está escrito na posição das unidades, 02 está escrito na posição do oito e o 4 está escrito na posição do sessenta e quatro. Veja que cada uma dessas posições é uma potência da base (base 8) e que essas potências começam em O e aumentam de 1 em 1 à medida que nos movemos para a esquerda no número (Fig. C.5). Dígito binário Dígito octal 4 5 6 7 Digito decimal 4 5 6 7 8 9 D í 4 5 6 7 8 9 A B C D E F gito Hexadecimal

(valor decimal (valor decimal (valor decimal (valor decimal (valor decimal (valor decimal

1 0) II) 1 2) 1 3) 1 4) 1 5)

Atributo Binário Octal De Base 2 8 10 Menor dígito O O O Maior dígito 179 Fig. C.2 Comparação entre os sistemas de numeração binário,

cimal Hexadecimal 16 O F octal, decimal e hexadecimal.

Valores posicionais no sistema de numeração decimal APÊNDICE C - SISTEMAS DE NUMERAÇÃO 1041 Para números octais mais longos, as próximas posições à esquerda seriam aposição do quinhentos e doze (8 elevado à terceira potência), a posição do quatro mil e noventa e seis (8 elevado à quarta potência), a posição do trinta e dois mil, setecentos e sessenta e oito (8 elevado à quinta potência) e assim por diante. No número hexadecimal 3DA, dizemos que o A está escrito na posição das unidades, o D está escrito na posição do dezesseis e o 3 está na posição do duzentos e cinqüenta e seis. Veja que cada uma dessas posições é uma potência da base (base 16) e que essas potências começam em O e aumentam de 1 em 1 à medida que nos movemos para a esquerda no número (Fig. C.6). Fig. C.6 Valores posicionais no sistema de numeração hexadecimal. Para números hexadecimais mais longos, as próximas posições seriam aposição do quatro mile noventa e seis (16 elevado à terceira potência), aposição do trinta e dois mil, setecentos e sessenta e oito (16 elevado à quarta potência) e assim por diante. C.2 Abreviando números binários como números octais e hexadecimais O principal uso dos números octais e hexadecimais em computação é abreviar representações binárias longas. A Fig. C.7 destaca o fato de que números binários longos podem ser expressos de uma forma concisa em sistemas de numeração com bases maiores do que a do sistema de numeração binário. Valores posicionais no sistema de numeração binário Digito binário 1 O Nome da posição Quatro Dois Valor posicional 4 2 Valor posicional como uma potência da base (2) 22 2’ Fig. C.4 Valores posicionais no sistema de numeração binário. Valores posicionais no sistema de numeração octal Dígito octal 4 2 Nome da posição Sessenta e quatro Oito Valor posicional 64 8 Valor posicional como uma potência da base (8) 82 81 Fig. C.5 Valores posicionais no sistema de numeração octal. 1 Valores posicionais no sistema de numeração hexadecimal Dígito hexadecimal 3 D Nome da posição Duzentos e Dezesseis cinqüenta e seis Valor posicional 256 16 1 1 Unid ade 1 2° 1 5 Unid ade 1 8°

A Unid

Valor posicional como uma potência da base (16) 162 161

ade 1 16°

1042 C++ COMO PROGRAMAR 

Fig. C.7 Equivalentes decimais, binários, octais e hexadecimais. 
100011010001 4321 8D1 100 011 010 001 4321 1101 0001 801

C.3 Convertendo números octais e hexadecimais em números  binários 
Número  decimal 
O 1

Representação  binária 
O 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111 10000

Representação  octal 
O 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20

Representação  hexadecimal 
0 1 2 3 4 5 6 7 8 9 A B C D E F 10


3 4 5 6 7 8 9 10 11 12 13 14 15 16

APÊNDICE C ­ SISTEMAS DE NUMERAÇÃO 1043 

653 
4 5 como seu binário de 4 o 111110101 1010101.

C.4 Convertendo do sistema binário, octal ou hexadecimal para o sistema decimal 
Fig. C.8 Convertendo um número binário em decimal.  3980, 
Fig. CIO. 

Fig. C.10 Convertendo um número hexadecimal em decimal. 

Convertendo um  núm 

ero binário em  decimal  32 
1

1

4

16 
1


1*32=32  Soma: =32+16+0+

1*1616  4+ 0+153

1 *44 

0*2= 0 

1*11 

Convertendo um número octal em decimal 

1
8  1 
1*8=8

512 64  7 6 
7*5123584 6*64=384



4*14

Soma:

= 3584

+ 384 + 8 + 4

3980

Fig. C.9 Convertendo um número octal em  decimal.  Convertendo um número hexadecimal em  decimal 
A D A*4096=40960 D*256=3328

3*16=48
= 44347

B

B*1=11

Soma:

= 40960

+ 3328 +

48 + 11

1044 C++ COMO PROGRAMAR

C.5 Convertendo do sistema decimal para o sistema binário, octal ou  hexadecimal 
______ 

57  512 64 8 1

C ­ 1045

256 
256. 7

C.6 Números binários negativos: notação em complemento de dois 
notação em complemento de dois.
int valor = 13; do valor é

(-), operador NOT sobre bits: =
­ 

11111111 11111111 11111111 11110011

1046 C++ COMO PROGRAMAR 
x = a ­  x = + + 1);  +(-valor + 1) + 11111111 11111111 11111111 11110011 00000000 00000000 00000000 00001110

Resumo 
­  ­  ­ 

C ­ SISTEMAS DE NUMERAÇÃO 1047  (). 

Terminologia  Exercícios de auto­revisão 
C.1 ____________ ,__________ ,___________  C.3 C.6 C.9 C.I 1 C.13 C.14 C.16 C.17

1048 C++
C.1 C.4 C.6 ­  C.9 C.1O C.11

COMO PROGRAMAR 

Respostas aos exercícios de auto­revisão 

C.15 Decimal 7+1*8+3*64=7+8+192=207. C.16 4+13*16+15*256+14*4096=61396. C.l7 256 128 64 32 16 8 4 2 128 64 32 16 8 4 2 (1*128)+(0*64) +(1*32) + (1*16)+ (0*8) + (0*4)+(0*2)+(1*1)

512 64 8 1 64 8 1 (2*64)+ (6*8) +(1*1)
261 16 1 (11*16)+(1*1) (B*16) + (1*1) B1 5122561286432168421 256 128 64 32 16 8 4 2 1 (1*256) + (1*128) + (0*64) + (1*32) + (0*16) + (0*8) + (0*4) + (0*2) + (1*1) APÊNDICE ­ SISTEMAS DE NUMERAÇÃO
+

Exercícios 
. . . . 

. . . . .  . . 

Apêndice D
Recursos sobre C++ na Internet e na Web

Di Recursos 
http://www.progsource.com/index. The Programmer’s Source ferramentas, compiladores,

c++. 
http: //www. intranet. ca/-sshah/booklist. html#C++
The Programmer’s Book List C++ com mais de 30 títulos.

comi resources

CY C++ Users Journal e publicações. The C+ + Coding Standard . htm).  Help-site.com http: //www. glenmccl . com/tutor. htm  CIC++.
. . 

http: //www . prograinmersheaven. com/zone3/catl55/index CIC++. D
RECURSOS SOBRE C++ NA INTERNET E NA WEB 1051 

APÊNDICE

­ 

hal9k. com/ cug/ shareware,freeware, http: //developer earthweb. com/directories/pages/dir. c . developmenttools site popular na programadores, Developer.com uma ampla lista de recursos para DevX C++ zone do site é dedicada a C++.

D.2 Tutoriais 

http: //info desy . de/gna/html/cc/index Introduction lo Object-Orientred Programming Using C++ http: //uu-gna.mit. edu: 8001/uu-gna/text/cc/Tutorial/tutorial . html Este tutorial Introduction to Object-Oriented Programming Using C++ é dividido em 10 capítulos, cada um com um conjunto de exercícios e soluções para os exercícios. http: //www. icce. rug . nl/docs/cplusplus/cplusplus . html Este tutorial, escrito por um O Red Wing/Winona Technical Coliege

C++. 

http: //www. zdu. com/zdu/catalog/progranuning ZD Net University on-line http: //library. advanced. org/3074/

Este tutorial foi projetado para programadores de Pascal que querem aprender C++. ftp: //rtfm.mit. edu/pub/usenet/news . answers/C-faq/learn-c-cpp-today Este site tem uma lista de C++. Também contém informações C++. http: //www. icce . rug . nh/docs/cplusplus/cplusplus . htm  Um site para usuários que conhecem C e querem aprender C++. http: //www. cprogranuning. com/tutorial/html Este site inclui um tutorial passo a passo que inclui exemplos de código. http://www.progranunersheaven.com/zone3/cat34/index. Este site contém uma lista de assuntos de tutoriais. Os níveis dos tutoriais variam especialistas.

D.3 FAQs 

http: //reality. sgi . com/austern/std-c++/faq um site de FAQs dedicado

co . uk/cpplibsl

lista de respostas C++.

1052 C++ COMO PROGRAMAR 
http: //pneuma phys ualberta. ca/-.burris/cpp O The Internet Link Exchange FAQs relacionados a comp. lang. c++ e C++.  http: //www.math.uio.no/nett/faq/C-faq/faq.html A lista comp. lang. e de perguntas feitas freqüentemente (FAQs) e respostas. http: //lglwww. epfl ch/’wo1f/c std. htm]. A lista de FAQs sobre o padrão ANSI/ISO para a linguagem de programação C. http: //www. cerfnet. com/-mpcline/C++-FAQs-Lite/ Este site tem muitas FAQs divididas em 35 categorias. http: //www. faqs org/faqs/by-newsgroup/comp/comp. lang. html Este site consiste em uma série de links para FAQs e tutoriais reunidos do grupo de notícias Comp Lang C++. http: //www. cerfnet. com/-mpc1ine/C++-FAQs-Lite/ Este é um site de FAQ com uma ampla gama de

http: //www. eskimo. coin/-scs/C-faq/top html Esta lista de FAQ contém tópicos tais como ponteiros, alocação de memória e strings.

DA Visual C­i­+ 
http://ehesworth.com/pv/languages/c/visualcpptutorial.

D.5 comp.lang.c++ 

http: //weblab. research att. com/phoaks/comp/lang/c++/ resourcesO People Helping OneAnotherKnow Stuff, http: . cem. ch/asd/geant/geant4yublic/codingstandards/ coding/coding2 . 
APÊNDICE D ­ RECURSOS SOBRE C++ NA INTERNET E NA WEB 1053 

http: //ibd. ar. com/ger/comp. lang. . html O lista mais de 100 URLs dentro de comp. lang . C++. umu . se/-maxell/C++/ C++, C++ C++. comi bs/homepage . 

é de Bjarne Stroutrup, C++, C++.
. . 

C++ austinlinks .  C++ C++ C++. ftp: //research. att. com/dist/c++std/WP/CD2/ C++. kaist. ac . kr/ . 

http: //www. cyberdiem. com/vin/learn Learn C/C++ Today CIC++. 

http: //www. trumphurst. com/cpplibsl

The C++ Libraries FAQ compilada por programadores profissionais para programadores de . com/comp/lang/cplusplus/ The Experts Exchange hi gh-tech execpc. com/ -ht/vc .  http: //cplus . com/compute/cplus/ About.com CIC++. freeware/ shareware, http: //pent2l infosys . tuwien . ac. at/cetus/

htinl#oocylusylusgeneralnewsgroups

http: //cuiwww. unige . ch/OSG/Vitek/Compilers/YearB6/msg00046 . html em . csusb .  1054 C++ PROGRAMAR 

news c++ . moderated

Este é grupo de 

/ progsource

The Programmer’s Source C++. A lista de compiladores está organizada por plataforma. http: //www. cygnus . com/misc/gnu-win32/ O ambiente de desenvolvimento GNU está disponível isento de custo no site Cygnus na Web. http: //www. remcomp. com/lcc-win32/ Você pode fazer download do compilador LCC-Win32 para Windows 95/NT, sem custo, deste site da Web. http: //www . microsoft. com/visualc/ homepage Microsoft Visual C++ overviews, http://www.com/products/languages/watccpl. html Watcom C/C++ versão 11.0 Borland Turbo C++ Visual Edition

Symantec C++ 7.5

Metrowerks CodeWarrior
. . 

Miracle C compiler.

Borland C++ Builder5.5.

Compilers.net http: //sunset
. .  . . 

olemiss . edu/%7Ebobcook/eC/

C++ que queiram passar Intel C++.
. . 

O compilador Kai C++

0.6 Compiladores 
APÊNDICE D ­ RECURSOS SOBRE INTERNET E NA WEB 1055 

0.7 Ferramentas de desenvolvimento 
http: //www. quintessoft. comi A Quintessoft Engineering, mc. C++

D.8 Biblioteca padrão de gabaritos 
Tutoriais
http: //www. cs brown . edu/people/jak/prograinming/stl-tutorial/ tutorial html stream

ObjectSpace STL Tool Kit.

Referências

http: //www. sgi . com/Technology/STL/other resources . html http: //www. cs . .  Standard Template Library Online Reference O Silicon Graphics Standard Template Library Programmer’s Guide comirefcpp .  Rogue Wave Software’s Standard C++ Library.

FAQs
ftp: //butler .hpl .hp. com/stl/stl. faq Este site de é uma folha de FAQ para a STL mantida por Marian Corcoran, membro do comitê ANSI e

1056 C++ COMO PROGRAMAR  Artigos, livros e entrevistas
http://www.byte.com/art/951O/sec12/art3. htzn  Bvte Magazine http: //www. sgi com/Technology/STL/drdobbs-interview.html Uma entrevista com Alexander Stepanov que tem algumas informações interessantes sobre a criação da

Padrão ANSI/ISO C++ Software
http: //www. cs rpi edu/musser/stJ. Standards<ToolKit> toolkit strings

http: //www. cs rpi edu/-wiseb/stl-borland é uma referência útil Microsofi Visual C+ +. 

Borland C++ Builder. C++

Bibliografia
The C Users Journal, The C Users Journal, The C Users Journal, pp. 123-131. The C/C++ (Jsers Journal, Smalltalk Report, American National Standardforlnformation Systems-Programming Language C (ANSI Document ANSI/ISO 9899: 1990), American National Standard, Programming Language C++. C++ Programming and Fundamental Concepts, C Mathematical Function Handbook, Object-Oriented Design for C++, The Smalltalk Report, C++ Report, Windows Tech Journal, Essays on Object Oriented Software Engineering: Volume!,

Object Magazine, Object Magazine, NeuralNetworksin C++:An Object-OrientedFrameworkforBuilding ConnectionistSystems, ­+ Object-Oriented Design with Applications, Object-Oriented Analysis and Design, Object Solutions, Programming Style, Designing and Coding Reusable C++,

(Co95) Coplien, J. O., and D. C. Pattern Languages of Program Design, Reading, MA: AddisonWesley

1058 BIBLIOGRAFIA 
International Standard: Programming Languages-C++. Operating Systems, Java How to Program, The Java Multimedia Cber Classroom, CHow to Program PC Magazine, 15, TheAnnotated C++ Refrrence Manual, Object-Oriented SystemsAnalysis, A Beginner’s Guide to Object-Oriented Programming, Practi cal Data Structures in C++, NY: Design Patterns: Elements of Reusable Object-Oriented Software, The Concurrent C Programming Language, The C Users Journal, (G195) The STL <Primer>, Inside Microsofi Visual C++, The C++ AnswerBook, Industrial Strength C++: Rules and Recommendations, !EEE Software Magazine, Portability and the C Language, The CProgramming Language The Smalltalk Report, Proceedings ofthe USENIX C++ Conference, Journal of Object-Oriented Prograinming, C++ Report, 5, Ruminations on C++, Data Structures and Program Design in C, ÍEEE Transactions on Software Engineering, C++ Primer Object-Oriented Software Deveiopment: A Practical Guide, The Smalltalk Report, Principies of Object-Oriented Analysis and Design,
BIBLIOGRAFIA 1059 

Designing Object-Oriented C++ Applications Using the Booch Method, Object Magazine, 5, Object Magazine, Object-OrientedSoftware Construction, Advances in Object-Oriented Software Engineering, Eiffel: The Language, Effective C++: 50 Specific Ways to Improve Your Programs and Designs, More Effective C++. 35 New Ways to Improve Your Programs and Designs, C/C+÷ Users Journal, C++ Strategies and Tactics, Software Practice and Experience, 7, STL Tutorial and Reference Guide: C++ Programming with the Standard Template Librarv,

C++ Programmer’s Guide to the Standard Template Library, Communications ofthe ACM, Communications oftheACM, Applications of Object-Oriented Programming, IEEE Software Magazine, The Standard C Library, The C Users Journal, C+ + Djstilled: A Concise ANSI/ISO Reference and Siyle Guide, Object-Oriented Programming Using C++, Numerical Recipies in C, IEEE Software, The C Users Journal, Microsoft Systems Journal, Portable C, Object Magazine, The Beli System Technical Journal, Vol.

pp. 1991-2019.
AT&T Beil Laboratories Technicaliournal,

1060 BIBLIOGRAFIA 
AT&T Laboratories Technical Journal, Using the STL: The C++ Standard Template Librarv, Communications of theACM,

Rumbaugh, Blaha; Ohject­Oriented Modeling and Design,
The C Users Journal, STL Programmingfrom the Ground Up, Algorithms in C++, Class Construction in C and C++, The C Users Journal, Object Lifecycles: Modeling the World in States, Reusabilitv & Software Construction in C & C++, NY: IEEE Software Magazine, II butler.hpl.hp.com/stl, July (St84) Stroustrup, B., “The UNIX System: Data Abstraction in C,”AT&TBeII Laboratories Technicaliournal, 63, No. 8, Part 2, October 1984, pp. 1701-1732. IEEE Software, Proceedings ofthe USENÍX C++ Conference, The C+ + Programming Language C++ Report, The C++ Report, October 1994. The Design Evolution of C++, The C++ Programming Language, Taligent ‘s Guide to Designing Programs: Well-Mannered Object-Oriented Design in C+ +,  Object-Oriented Information Systems, The CAnswerBook, Windows Tech Journal, C/C++ Users Journal, Vol. June 1995, pp. 69-78. The C++ Report, Object-Oriented Programming: An Introduction, Windows Tech Journal, Object Magazine, The C Users Journal, 1994, pp. 67-76. The Complete C++ Primer,

BIBLIOGRAFIA 1061 

The C Users Journal, An introduction to Object-Oriented Programming and C++, ÍEEE Transactions on Software Engineering, IEEE Software Magazine, Parailel Programming Using C++, The C Users Journal, Designing Object-Oriented Software, IEEE Software, ÍEEE Software Magazine,

Indice
Símbolos 
­ 


& * 

&  &  &&  &= 

(1 
*  *  * * 

++  ++  += 

/  /1 
<=  =  ==  >  ­> 
­> 

>= 

»  \ 
\“ 
‘= 

Numéricos 

handie handie

string

116, 124-125,760,917-918,918919, 927-928, 955 algoritmo 928-929

alias 226-227, 322-325, 907-908 alias alias strings American National Standards Committee on Computers and Information Processing (X3) 56 American National Standards institute (ANSI) 50-51, 481-482 American Standard Code for Information Interchange

102-104, 120-121 740

1064 ÍNDICE 
516

<new> streams

string  strings strings ASCJI (American Standard Code for  information Interchange)  (string

atexit tring

757 áudio 639­640 
544-545


(“1”)

(\) 

stream stream

C++ 190-191, 535-

bibliotecas 6  bibliotecas de classes 60-61, 135-136, 170, 190-191, 408-409, 431-432, 565-566, 583-584 bibliotecas de classes independentes de plataforma 918-919 bibliotecas padrão de classes 481-482 bibliotecas privadas 61,63 968,  66 1­662, 

Bohm,C. 101-103, 154-155 Booch, Grady 84 bool 436-437, 1004-1005

Borland C++ 61, 63, 230-23 1, 874 Borland C++Builder 1001-1002, 1056 branco 103-104, 184-185
hubble sort 283-284, 310-311,334-335,

349-350
Buhble sort com chamada por

referência 334-335 bucket sort 317 14


ÍNDICE 1065 


stream

calcular recursivamente o valor mínimo

1066 ÍNDICE 
(‘ ‘) 

string
(_ 

defriend defriend defriend

(...) .

.) 

577-579 190-191, 194-195
* 355-356 ** 

)  (})  ({)  )) 
(stream

o)

. . 954-955 595-599, 556-55

595-


ÍNDICE 1067 
proxy síream

([]) 
strings

1068 INDICE
strings string .uh.tring string strings strings stream stream
*  * const

constreference constreverseiterator
DATE

ÍNDICE 1069 
construtor default 4 17,420, 462­465, 530­533, 549­550, 686­688, 920­921  construtor default de objeto membro  462­465  construtor em uma união 880­881  construtor explicit 1020­1021  construtor ofstream 731­732  construtores de argumento único e conversões implícitas 1018­1019 construtores de cópia na passagem de parâmetros  em chamadas por valor  545  construtores de objetos globais 421­422 construtores e destruidores chamados  automaticamente 420­421 

construtores não podem ser virtuais  62 1­622  construtores sobrecarregados 416­417  consumo de memória 629­630  conta de poupança 134­135  contador 110­111, 115, 121­122, 179- 180, 209­2 10  contador de instruções 800­801  contador de laço 113­114, 126­127  contagem baseada em zero 130­131  Contando conceitos alfabéticos 138  contando de um em um para cima 113­  114  contêiner 200­201, 760, 906­907, 917­ 920, 955  contêiner associativo 9 19­920, 922­923, 926­927. 942­943, 945­946  contêiner associativo multimap 946­  947  contêiner associativo set 946  contêiner de primeira classe 92 1­924, 926­927, 933­934, 937  contêiner seqüencial 9 19­920, 926­927, 929­930, 936, 939­940  contêiner seqüencial deque 940­941  contêiner subjacente 951­952  conteúdo dinâmico 57­58  Controlando a impressão de ieros após a vírgula e casa decimal com valores float 658­659  Controlando a precisão de valores em ponto flutuante 653­654  controle centralizado 63­64  controle de programa 100­101  converge para o caso base 219­220  conversão de classe derivada para classe base 705  conversão de objeto da classe derivada para objeto da classe base 582­583 conversão de ponteiros 573  conversão entre um tipo primitivo e uma classe 544­545  conversão explícita 118­119  conversão implícita 118­119, 543­544, 1017­1018, 1020­1023, 1026­1027  conversão implícita entre tipos primitivos definida pelo compilador  544­545  conversão implícita imprópria 10 18­  1019  conversão perigosa 573  conversões entre tipos primitivos 535­  536 
conversões entre tipos primitivos por coerção 535­536  conversões implícitas 1018­1019 conversões implícitas através de construtores de conversão 1020­1021 conversões implícitas definidas  pelo usuário 543­544  conversões padrão 1005­1006 conversor de infixa para pós­fixa 805­  806  converte entre tipos 534­535 converte entre tipos definidos pelo usuário e tipos primitivos 535­5 36 converte letras minúsculas 200­201  convertendo de um tipo de dados mais alto para um tipo de dados inferior  199­200  convertendo entre classes e tipos primitivos 413­414, 446­447 Convertendo strings para strings no estilo de C e arrays de caracteres  904­905  Convertendo um string para maiúsculas  329­330 

cópia do argumento 329  cópia membro a membro 430­431, 532­ 533  cópia membro a membro default 430­  431,532­533,543­544,922­923  cópia não­incrementada de um objeto  55 1­552  copia um string 343­344  copia um string usando notação de array 343­344  copia um string usando notação de ponteiro 343­344  copiando strings 343­344  Copiando um string usando notação de array e notação de ponteiro 343­344  copy 905­906, 928­929, 935­936  copy_backward 928­929, 97 1­973 

Corcoran, Marian 1000-1001, 1055- 1056  corpo com múltiplos comandos 80­81 corpo de um laço 128­129, 132­133,  186, 188 corpo de uma definição de classe 400401

corpo de uma estrutura while 109­110  corpo de uma função 67­69, 194­196  corpo do else 105-106 corpo do while 109­110  correção 63 

correio eletrônico 63-64 correto no sentido matemático 150-152 cos 192­193  co­seno 192­193 

co-seno trigonométrico 192-193 courit 929-930, 942-943, 945-946, 965­966, 986­987 

countif 929-930, 965-968

cout («) (o stream de saída padrão) 63, 67­68, 70­72,639­641, 643­644,728­  729 
cout put 645-646 cout. setf 662-663 cout write 650­651 

CPU 53­54, 6 1­63  craps 206­209  cria dinamicamente a quantidade exata de espaço 462­465  criação dinâmica de objetos 44 1­442 Criando e destruindo objetos dinamicamente 302­304 
Criando e percorrendo uma árvore binária 781­782  Criando e testando manipuladores de stream não-parametrizados definidos pelo usuário 655-656 Criando e usando uma função definida pelo programador 193-194

criando novos tipos de dados 479-480 Criando um arquivo de acesso aleatório seqüencial mente 741­743  Criando um arquivo seqüencial 729-730 criando uma associação 949-950

Criando uma estrutura, inicializando seus membros e imprimindo a 
estrutura 398-399 436

criar novos objetos dinamicamente 435­ 

criar novos tipos 480-481 criar seus próprios tipos de dados 72-73 criar um arquivo de acesso aleatório 740­74 1  criptografia 182­183, 913­9 15 

criptografla com chave simétrica 913-914 criptógrafo 913­914  criptograma 914­915  crítico para a missão 699­700  Crivo de Eratóstenes 317, 987­988, 1000  <csetjmp> 699­700  <csignal> 875-876 <cstddef> 357-358 <cstdio> 200­201  <cstdlib> 199­201, 829­830, 201­  202  <cstring> 200-201, 545 ctor 543-544 <ctime> 200-201, 205­206  <ctype h> 200­201  <ctrl>­c 875­876  <ctrl>-d 139-140,647-649.654-655, 732­733 

1070 ÍNDICE 
<ctrl>­z 139­140, 647­649, 654­655,  732­733  cursor 68­69  495  485  #define P1 3.14159 857 defined 859-860 defined 859-860 definição 127-128 definição de função 193-196,211-212 definição de função como um protótipo

de função 194-195. 197-198 definição de função mime 408-409

deitel@deitel . com 52-53 deleção 482-483 877­878 

[] 

952  897  iexicographicai_compare da Biblioteca Padrão 957-958 f remove copy replace. replace_if, replace_copy e Padrão 963 Padrão 977 unique_copy e reversecopy 974-975 siream de upper_bound e equal_range Demonstrando new de erro 712 Stack 684-686 932 

1•I

ÍNDICE 1071 
1008  953-954
. *

deque 

*

stream stream

1072 ÍNDICE 
3-54

DOS 

downcast  dump


E  EIS de  EIS de  EIS EIS EBCDIC (Extended Binarv Coded Decimal Interchange Code)

+= 544-545

stream streams strings

(EIS) stream,s

string stream string stream
underflow

ÍNDICE 1073 
escopo de protótipo de função 211­212  escopo 
‘‘ 

,stream

stream stream síream

1075 

­>* 

& * 

1076 ÍNDICE 
573-574

isxdigit 
hex, oct, dec e

1077 

456415

565-566 ObjectSpace STL Tool Kit Extended Binary Coded Decimal Interchange Cade (EBCDIC)
stream 

FAQs 1051-1053

fases 114-115

derivada 568-569

spool upcasting stream

stream 735-736 string 760-761

1079 
função operador de coerção 535­536 função operador de coerção  sobrecarregada 535­536  função operador de extração de stream predicado binária  predicado unária 939­940,  chama a si mesma 214  chama versão da  matemática 198­199  square 199­200  função static  ftinção  função  chamada  da biblioteca 
strings strings

992 

806  pilha 774­775, 805­ 
efriends

gerando  recursivamente  Gerando  nos  da 621­622  gerenciamento 
Green Eggs Report guillemets (« ») 

handle432-436, handie handie

handie handie handie handie handier handier handier handies heap

1080 
heapsort

hex 

EIS stream

Microsoft Visual C++ Visual C++  (enter) proxy

string,

string string

ÍNDICE 1081 
dec 
657-658, 657-058,

stream stream zero &
*  * 

Ox + International Standards Organiation (ISO) Internetworking Protocol (1P)

1082 
453 665657-658, 735-736

666

825 ISV 621-622

iterador482-483, 680-68 1, 906-908 923-924

iterador bidirecional 925-927, 930-931, 937, 943-944, 946, 947-948, 973930-93 1, 933-934, 940-941, 943-944, 962-963, 965-968, 973-974, 976-978,
stream stream

964-965, 97 1-972, 974-975, 985-986

945-946

Java Como Programar: Terceira Edição 

57-58
craps 206-209


KIS (“mantenha-o simples” ­ Keep It Simple)


Lobo ratory for Computer Science 63-64

122

120- 122 131132, 143-144, 181-182. 216-217 lado esquerdo uma atribuição 149152, 262-263, 428-429, 53 1-532 lados de um quadrado 185-186 lados de um

193- 194
string

ÍNDICE 

1083 

875-876
­ 

>

lexicographical compare

Ivalue limerick
list >

Ivalues rvalues


strings strings stream srream stream

1085 
54-55
iflt, 

944-945 mu/titasking multithreading 698-699

rvalue

(‘ 

stream 66


Object Constraint Language (OCL) Object Management Group (OMG) 5 stream

1086 ÍNDICE 
objeto disparado 703­705 
objeto do stream de entrada padrão 728­  729 

objeto exceção 702­703  objeto exceção de divisão por iero 702­ 

703  objeto fila 793­794  objeto função 943­944, 947­948, 989­ 992  objeto função binária 990­991  objeto função de comparação 943­944,  947­948  objeto função de comparação less  943­944. 954­955 
objeto função less< int > 943­945 objeto função less< T > 947­948,  954­955 

objeto função pode encapsular dados  992  objeto grande 225­226  objeto hospedeiro 460­461  objeto interage 396  objeto iterador482­483, 918­919  objeto local automático 421­422  objeto local static 42 1­424  objeto que envia 298­299  objeto que recebe 298­299  objeto sai do escopo 420­421  objeto sem nome 88 1­882  objeto servidor 298­299  objeto Stririg temporário 544­545  objeto temporário 535­536  objetos 82­83  objetos automáticos em um bloco try  706  objetos componentes 437  objetos contêm somente dados 406­407  objetos criados dinamicamente 435­436  objetos da classe derivada tratados como objetos da classe base 582­583  objetos de superclasse duplicados 1026­  1027  Observações de engenharia de software  60­61  obtém o valor de 79­80  obter o valor de um membro de dados 12­413  obter ponteiro 735  oct 65 1­652  octal 184­185, 66 1­662  ocultação 462­465  ocultação de informações 83­84,211­ 212, 334­335, 396­397, 404, 413­  414.479­480 

ocultando a implementação 405­406 ocultando detalhes de implementação  190­191  ocultar a implementação 479­480, 484­ 485  ocultar dados dos clientes  408­409  ocultar detalhes de implementação 479­  480 
ocultar nomes em escopos mais  externos 211­212  ocultar uma representação de dados  interna 481­482  ofstream728­735, 742­746, 87 1­872  Oito Rainhas 3 16­317  Oito Rainhas com recursividade 220­  221, 317­318  Oito Rainhas: abordagens de “força  bruta” 316­317  “olho de boi” 237­238  OMG 84  OOAD 84  OOD 8 1­82  OOP 82­84  opção de compilador 65­66  opções combinadas por ou 656­65 7  opções de menu 746­747  operação com stream falhou 665­666  operação de enfileirar 481­482  operação de retirada da fila 481­482  operação de sincronização de um  istream e um o,streo,fl 667­668  operações 16 1­162, 234­235, 298­299, 30 1­302, 363­364 

operações com iterador de acesso aleatório 927­928  operações com iteradores bidirecionais  927­928  operações com iteradores para a frente  927  operações de classes 366­367  operações de entradalsaída 101­103  operações de iterador 927  operações implementadas como funções  234­235  operações permitidas sobre dados 480­  481 
operador && 148­149  operador [] sobrecarregado 531­532  operador + 985  operador += 893­894  operador + sobrecarregado 550­55 1 

operador < 985­986  operador « 1004­1005  operador « sobrecarregado 519­520, 545, 64 1­642  operador 67­68, 124­125  operadorAND sobre bits (&) 814­819, 851  operador sobre bits com atribuição  820­821  operador sobrecarregado *  716­717  operador sobrecarregado ­  >715­716  operador binário + 74­75  operador binário 72­75, 148­149 

operador binário de resolução de escopo  (: :) 228­229. 404­405, 475­476, 594­595, 1009­1010, 1026 operador condicional (?:) 105­106 operador condicional  ternário (?: ) 219,  5 18­5 19  1023­ 1024 
operador de acesso a membro (.) 397­ 398  operador de adição com atribuição (+=)  124­ 125  operador de adição com atribuição (+) sobrecarregado 550­551  operador de atribuição (=) 72­73, 81­82, 126­127, 430­431. 516­517, 922­923  operador de atribuição (=  sobrecarregado 530­531, 533­534,  543­545. 582­583  operador de atribuição e deslocamento à direita com extensão do sinal 820­  821  operador de chamada de função O 545­  546, 630­632, 715­7 16  operador de chamada de função O sobrecarregado 545­546  operador de coerção 116, 118­119, 198­ 199, 340­341, 535­536, 1004­1006,  1017­10 18  operador de  1015­1016  operador de complemento (­) 814­815 operador de complemento sobre bits (­)  816­8 17, 819­821  operador de concatenação + sobrecarregado 545  operador de concatenação de string sobrecarregado 544­545  operador de concatenação  sobrecarregado 544­545  operador de decremento unário (­) 125 operador de derreferência de ponteiro  (*) 397­398, 630­632 operador de derreferenciação (*) 322­  324  operador de desigualdade sobrecarregado 530­531, 534  operador de deslocamento à direita (») 

516, 640­641, 814­815. 820­821, 851  operador de deslocamento à direita sobre bits (»)516  operador de deslocamento à esquerda  («)5l6, 640­641, 814­815, 819­  821. 850­851  operador de deslocamento à esquerda com atribuição 820­821  operador de deslocamento à esquerda sobre bits («) 516, 8 19­820  operador de deslocamento sobre bits  8 19­820  INDICE 1087  síream»

extração de stream operador de extração de streun? 
stream false síream  ( =) 

= (=) 
531-532, stream « stream « siream (.) 

() 

(.) 
(­ 

<

(=)  (1=) 

o)

(.)  (­>) 

[] strings  (,) 
strealn stream strea,n 1. 

>, <. >=. <= 

(­) 

void* operator’

operator ‘ =  operator []  operator++ operator+= operator< operator« operator=

1088 ÍNDICE 
ordem na qual as ações devem ser executadas 100­101. 110­111  Ordem na qual construtores e destruidores de classe base e classe derivadas são chamados 579­580  ordem na qual construtores e destruidores são chamados 421­423,  434­435  ordem na qual destruidores são chamados 42 1­422  ordem na qual inicializadores de membros são listados 577­579  ordem na qual operadores são aplicados a seus operandos 219  ordem na qual tratadores de exceção são listados 705  ordem último a entrar, primeiro a sair  (LIFO) 683­684, 686­688  ordenando 482­483, 729­730, 760, 968, 970 
ordenando arrays 282­283  ordenando strings 201  ordenando um array com bubble sort 283­284  orientação a objetos 8 1­82, 396  orientado a cliente 405­406  orientado a objetos 83­84  orientado para ações 83­84  os operadores ponteiros & e * 322­324  562, 640­642, 647­648, 650­  651, 728­729, 73 5­736, 740­746,  750­751  923­925 

936 otimização 874-875
otimização de compilador 874­8 75  otimizações sobre constantes 452­453  otimizando o compilador Simple 803­  805  outros conjuntos de caracteres 890  overhead 545  overhead de chamada de função 222­  223, 545  overhead de chamada por valor 399­400  overhead de cópia 398­399  overhead de função 85 8­859  overhead de função  overhead de uma chamada de função  857­858  overhead de uma chamada de função  extra 534­53 5 

overhead durante a execução 629­630  oxímoro 267­268 


pacote (de aplicativos) gráfico 635­636 pacote 778  pacotes 63­64  padrão ANSI C++ 1052­1053  padrão C++ 65­66, 1000­ 1001, 1055­1056  padrão de facto 48 1­482  padrão de tabuleiro de xadrez 96-97, 181-182 pagamento bruto 178­179  palavra 381,  palavra(s)­chave 102­104. 109­110  palavra­chave operador de desigualdade  1016­1017  palavra-chave 680­68 1  palavras e frases descritivas 234­235  palavras­chave operadores 1004, 1016­ 1018  palavras­chave operadores lógicos  1016­ 10 17  palavras­chave operadores sobre bits  1016- 1017 palavras­chave operadores sobre bits  com atribuição 1016-1017 palavras­chave 5 16­517  palavras­chave reservadas 109­110  paI mndromo 790­79 1  papéis 164  papel 53-54 par chave/valor 946-949 par de chaves {} par de iteradores 927-928 par de parênteses mais interno 75-76 paralelogramo 565-566 parâmetro 191-195, 209-210 local 194-196 parâmetro de função como uma variável  parâmetro de referência constante 225­  226 

parâmetro de tamanho de gabarito não- tipo 689-690 parâmetro de tipo 232-235, 68 1-682, 684-685, 689-690

parâmetro de tipo formal 232-233. 686-

parâmetro de tipo formal em uma definição de gabarito de função 681682 

parâmetro não-tipo 689-690 parâmetro por referência 223-225
parâmetros de tipo formais de uma  definição de gabarito 680­681  parâmetros em funções 194­196  parênteses aninhados 75­77  parênteses para forçar a ordem de  avaliação 81­82  parênteses redundantes 77­78, 147­148  parte da classe base de um objeto de  classe derivada 615­616, 618, 620  parte else do if 108­109  partes fracionárias 118­119  partialsort 985-986 partial_sort_copy 985-986

929-930, 58-59, 1050-1051 Pascal, Blaise 5
passagem por uma expressão da esquerda para a direita 791­792 

passando além do fim de um array 340341
Passando arrays e elementos individuais de arrays para funções 279­281  passando arrays para funções 278­279,  286­288  passando objetos grandes 225­226 passando opções para um programa 

87 1-872
passando um array inteiro 279-281 passando um elemento de array 279­ 

281 passando um nome de arquivo para um programa 87 1­872  passando um objeto através de chamada por valor 430-431 passando valores para funções 534­535 passar argumentos de tamanho grande como referências const 399­400  passar o tamanho de um array 336­337 passar o tamanho de um array como um argumento 278­279  passar uma estrutura 810­811 passar uma estrutura através de chamada por referência 810­811  passara através de chamada por valor  334-335 Passeio do cavalo 313-315 Passeio do cavalo; abordagens de força bruta 315-316 Passeio do cavalo; teste de passeio fechado 317 patrimônio em software 83-84, 405-406 “peças padronizadas, intercambiáveis” “pensando em objetos” 81-82. 396 Pensando em objetos 5 1­52, 66­67, 396 

pequeno círculo 101-103. 105-106. 109- 110 percorrer a subárvore direita 786­787  percorrer a subárvore esquerda 786­787  percorrer para a frente e para trás 773­  percorrer um contêiner 760 percorrer uma árvore binária 78 1­782, 

percorrer uma árvore binária em ordem de nível 787-788. 795 percorrer uma lista 772-773 percurso de uma árvore binária na pósordem, com recursividade 220-22 l percurso de uma árvore binária na préordem, com recursividade 220-221

1089 
percurso em ordem 781­782, 795  percurso em ordem de uma árvore  binária com recursividade 220­22 1  percurso em pós­ordem 78 1­782, 793­  795  percurso em pré­ordem 78 1­782  percurso na ordem inversa 906­907  percurso, travessia 906­907  perda de dados 665­666  perda de memória 544-545, 575-577, 714­717, 761­762, 905­906, 918­919  perda de recurso 699­700, 711­7 12  permutação 985  permutador lexicográfico 985  permutando strings 896­897  permutar 284­285  permutar dois strings 896­897  personalizar software 583­584  pesquisa 270­273, 284­285  pesquisa binária 288­291  Pesquisa binária em um array ordenado  290­291  pesquisa binária recursiva 220­221,  288­289, 317­318  pesquisa de opinião 284­285  pesquisa em árvore binária 794­795  pesquisa linear 288­291  pesquisa linear em um array 288­289  pesquisa linear recursiva 220­221, 288­  289, 317­318  pesquisando (Ou procurando) 482­483, 760, 968. 970  pesquisando em arrays 288­289  pesquisando em blocos de memória  838­839  pesquisando em ,strings 356­357,  830  pesquisando uma lista encadeada  recursivamente 220­221  pesquisando uma lista recursivamente  793­794  pesquisar uma lista encadeada 763­764, 806 

PHOAKS = People Helping One Another Know Stuff 1051­1052 

Pi 96­97, 185­186  P1 857, 857­858  pig Lalin 390­391  pilha 479­480, 482­483, 683­684, 686­  688, 708­709, 760­763, 773­776  pilha de chamada de funções 33 1­332,  708­709  pilha de chamadas 33 1­332  pilhas implementadas com arrays 479­  480  pilhas usadas por compiladores 791­792 

pipe (1) 868­869 
planta arquitetônica 396­397  plataforma de hardware 56  Plauger, P.J. 56­57  990­991  922­923  polimorfismo 142­143, 452, 564­565,  583­584, 589­590, 608­609, 609­6 12,  620­622, 629­630, 803, 955  polimorfismo e referências 629­630 polimorfismo em linguagens não­  orientadas a objetos 629­630  polimorfismo substituindo a lógica de 564­565  polinomial 77­78  polinômio de segundo grau 77­78  ponta de seta 30 1­304  ponteiro 225­226, 320, 338­339  ponteiro chamado this 468­469  ponteiro const 5 24­525  ponteiro constante 340­34 1  ponteiro constante para dados constantes 329, 332­334  ponteiro constante para dados nãoconstantes 329, 33 1­333  ponteiro constante para uma constante inteira 332­333  ponteiro da vtable de um objeto 630­  632  ponteiro de classe base para um objeto da classe derivada 6 10­612, 62 1­622, 629  ponteiro de posição em arquivo de saída  740­743  ponteiro de posição em um arquivo 735,  744­746  ponteiro de vtable 632­633  ponteiro implícito 462­465  ponteiro indefinido 533­534, 544­545  ponteiro não­constante para dados constantes 329­332  ponteiro não­constante para dados não constantes 329  ponteiro nulo (O) 732­733. 760­761, 794­795, 878­879  ponteiro para a frente 773­774  ponteiro para classe base (ou tipo de  referência) 568­569, 582­584, 610­  613, 629­630, 705, 762­763, 1007­  1008, 1014­1015  ponteiro para classe derivada 567­568, 1007­1008, l014­1015  ponteiro 320­32 1  ponteiro para função 349­350, 629­632, 713­7 14, 990­992, 1025  ponteiro para o fim 805­806  ponteiro para trás 773­774  ponteiro para um objeto 404­405 

ponteiro para um objeto de classe derivada 610­611  ponteiro para uma estrutura 331­332  ponteiro para uma função 349­35 2, 874  ponteiro *) 340­341  ponteiro 340­341  ponteiro put 735­736  ponteiro 462­465, 468­470, 519­520, 534  ponteiro explicitamente  468­469  ponteiros declarados 332­333  ponteiros e 340­341  ponteiros e referências para classes abstratas 611­612  ponteiros e subscritos de arrays 340­341 ponteiros para memória alocada dinamicamente 469­470, 534  ponteiros podem ser usados com subscritos 341­342  ponto de disparo 700­701, 704­705  ponto de entrada 150­152  ponto de entrada de uma estrutura de controle 150­152  ponto de entrada único 150­152  ponto de saída 150­152  ponto de saída único 150­152  ponto decimal 116. 119­120, 135­136, 64 1­642, 658­659  ponto decimal em um número de ponto flutuante 191­193  ponto flutuante 653­654, 657­658, 662­ 663  ponto­e­vírgula (;) 67­68, 80­81, 108­ 109, 194­196, 397­398, 417, 420.  706, 856  ponto­e­vírgula no fim de um protótipo de função 198­199  ponto­e­vírgula que terminam definição de estrutura 808­809  686­688, 774­775, 950­955 940­941, 95l­  952, 954­955  porção controladora  porção do  portabilidade  portável 56  pós­decremento 126­127, 546­547  posição corrente em um stream 735­736  posição de memória 73­74. 110­111  posição de memória do Simpletron 805­  posição na memória 73­74  posição temporária  em relação à posição atual em tream um iterador 927 pós­incremento 546­547, 550­ 551  potência  Powersoft 1054­1055  precedência 75­78, 1­82. 126­127. 219,  precedência de 75­76, 821­ 822  precedência do operador condicional  106­ 107 

1090 
precedência e associatividade de  operadores 148­149  precedência não­alterada por sobrecarga  518­5 19  precisão 119­120,641­642,651­653  precisão default 119­120  pré­decremento 126­127, 546­547 

preencher com caracteres especificados  64 1­642  preenchimento 654­655, 660­661, 824­  825  preenchimento em uma estrutura 824­  825  preenchimentos de buifer 667­668 Pré­incrementando e pós­  incrementando 126  pré­incremento 126­127, 546­547, 550­ 551  pré­processador 61­63, 197­198, 856  pré­processador C++ 61, 63, 67­68  pré­processar 61, 63  pressionando as teclas em um teclado  639 
prevenção de erro 608­609  primeira passagem do compilador Simple 798­801, 803  primeiro a entrar, primeiro a sair (FIFO) 481­482, 778, 919­920, 940­941.  952­953  primeiro argumento implícito 468­469  primeiro refinamento 114­115, 12 1­122,  346­347  primo 254­25 5  principal 135­136, 186, 188  princípio do menor privilégio 209­2 10,  282­283, 326­329, 335­336, 345­346,  408­409, 4 13­414, 452­453, 735,  872­874, 927  950­951, 954­955  1­403, 413­4 14  privilégio 332­33 3  privilégios de acesso 329, 332­333  probabilidade 20 1­202  problema da inclusão circular 494­495  problema da média da turma 110­111, 116  problema de Peter Minuit 137, 186, 188  problema de precedência 646­647  problema do else sem correspondente  180­181  problema dos resultados do exame 122­  123 

problema genérico de média da turma  113­114. 116  problemas de ambigüidade 592, 594­  procedimento 100­101 
procedimento de recuperação 697­698  procedimento puro 406­407  processador de textos 354­355  processamento de acesso instantâneo  745­746  processamento de arquivo 639­641 processamento de arquivo de dados formatado 727  processamento de dados “brutos” 727 

processamento de dados comercial 756  processamento de exceções polimórfico  711­712  processamento de interrupção 697­698  processamento de textos 39 1­392  processamento de transações 947­948  processamento em lotes 53­54  processamentos de listas 763­764  processando strings 320  processando strings em streams 907­  908  Processando uma fila 778  processo de análise e projeto orientados a objetos (OOAD) 84  processo de compilação para um programa Simple 80 1­802  processo de projeto 366­367  processo de refinamento 114­115  procurando strings e caracteres em um 898­899  produtividade 63  produto de inteiros ímpares 183­184  programa 52­53  programa com pilha usando composição  777  programa de análise de dados 285, 287­ 288  programa de análise de pesquisa entre alunos 270­271  programa de análise dos dados de pesquisa 285, 287­288  programa de classificação de uso geral usando ponteiros para funções 350­  351 

programa de computador 52­53 Programa de consulta de crédito 735­  736 
programa de contas a receber 756  Programa de contas bancárias 747­748  programa de conversão de medidas 393­  394  programa de craps 259­260 Programa de embaralhamento e  distribuição de cartas 348  programa de folha de pagamento 55­56 programa de impressão de histograma  272­273  Programa de impressão de texto 66­67 programa de lançamento de dados 273­  274 

Programa de lançamento de dados usando arrays em vez de switch  273­274  Programa de média da turma com repetição controlada por contador  111­112  Programa de média da turma com repetição controlada por sentinela  116­118  programa de processamento de arquivo  756 
programa de processamento de crédito  740­741  programa de processamento de  transações 745­746  programa deteste 615­616, 618, 620 

programa editor 61. 63. 100­101  programa em pseudocódigo 100­101  programa estruturado 150­152  programa gerador de palavras a partir  de números de telefone 757  programa interpretador 56  programa para jogar 199­201  programa para jogar pôquer 378­379  Programa para simular o jogo de craps  206­207  programa pré­processador 61, 63  programação baseada em objetos (OBP)  452  programação defensiva 131­132  programação em linguagem de máquina  380­381  programação estruturada 50­53, 56­60,  65­66, 81­82. 100­103, 146­147, 396,  479­480, 87­879  programação genérica 917­919. 921­  922, 1000­1001, 1055­1056  programação orientada a objetos (OOP)  51­53, 56­57. 65­66. 82­83. 155­156,  192­193, 363­364,401­402.452,  564­565, 565­567, 583­584. 589­590,  608­609  programação polimórfica 630­632  programação sem goto 101­103  programador 52­53  programador de computador 52­53  programas com múltiplos arquivos­  fonte 872­874  programas grandes 190  programas tradutores 55­56  Programmer’s Source 1054­1055  projeto 84  projeto de programa 104­105  projeto Green 57­58  Projeto Mac 63­64  Projeto Mac do MIT 63­64  projeto orientado a objetos (OOD) 81­  82, 155­156, 159­160, 186, 188, 298­  299, 363­3 64, 396, 432­434, 465­466  projetos 874  proliferação de classes 584­585  promoção 118­119  prompt 7 1­72, 116­118, 868­869  prompt de linha de comando 868­869 

1092 

154-156 stream (. .) 

rvalue 


stream

string

­ 

seek get  seek put  substring “sneakernet” strings

ÍNDICE 1093 
154-155,

set 

985-986 <set> 200-201, 92

setdifference 976-978 setintersection 976, 978-979, 981 setnewhandj.er 713-

setsyrnmetricdifference 976, 978-979, 981 setterminate 704-705, 7Ut-7U9 setunexpected 709-710, 716-717 setunion 976, 978-979, 981 set< double, less< double>> 946-947 seta 96-97, 105-106, 109-110 setiosflags 119-120, 137, 348 setiosflags (ios: left) 137 setjump setprecision 119-120,652-653 setprecisiori(2) 135-136 short 142-143, 198-199

short int 142-143
Silicon Graphics Standard Templare Library Programmer’s Guide Simpletron Machine Language (SML) à

(­) 

sinking sort

folha (DBMS) 727-729

sistema de numeração com base 8 657Quadralay Corpo ration

1,  « e » 230-231 +
+  += 

1094 INDICE 
545-546, 556-557
stream

546-547
stream stream

.spool spool

O ) )
>

Standard Template Librarv Online Reference Home Page

1055-1056
Standard Template Librarv Programmer’s Guide 1000-1001, Standard Template Library with BorlandC++

static 208-211,227-228,873-874, 881-883 1005-1008 staticcast< DerivedCJ.asse
*> 1007-1008

std narnespace 1010-1012 std: :bad_exception 716-717 std: :cin70-72 std: :cout66-68 std: :endl72-73

Stepanov, Alexander 917-918, 10001001, 1055-1056 STL 629-630, 917-918 strcat 357-359, 544-545, 873-874 strcmp 357-360, 873-874 strcmp para comparar strings de
stream stream stream stream stream stream tream stream
. h> .  . 

string

string462-465, 890-891, 919-920
string concatenado 544-545 string string string string string string literal 7 1-72, 274-275, 354-356 string string string

string vazio 897, 899 string: constiterator 906907
strings strings *  strings strings strings 691,

1052- 1053 strpbrk 834-837 strrchr 834-837 strspn 834-838 strstr 834-838 strtod 829-830, 832-833 794-795 subobjeto 1027-1028

1096 ÍNDICE 

694-695
t

955 topo 114-115 total 110-111, 114-115, 121-122,209210
Transmission Control Protocol
*  * 

.strings

221


525-526 huge integer UML Partners underflowerror 716-717 (token)

unidade lógica 52-5 3 unidades “isoladas’ 54-55
Unzfied Modeling Language (UML) United States Department of Defense (DOD) 58-59 University of Illinois at UrbanaChampaign

874-876 204-205.
upcasting 1026-1027

Usando a estrutura do/while 143-144 274
exit e atexit

874 1029
heapsort set get 425-426

ÍNDICE 1097 
ispunct, isprint e isgraph 828-829
siream endi stream hex, oct, dec

pipe

USENIX C++ Conference using 79-80, 87-88

usingnamespace 1010-1012 sizeof 471,


vaarg 868-87 1 vaend 868-87 1 vaiist 868-87 1 va_start 868-87 1 vaiarray 919-920 booi faise 147-148 bool true 147-148

true 149-150

vector 9

<vector> 200-201, 921-922, 930-93 1

(ISV) 56-57, 408-409, 583-584. 621-

109S INDICE 

222­223 

524-

string

vtable


walkthrough

64-65 www.cygnus.com/misc/ wp/ 65- 66

www. deitei, com 50-53 www.omg.org 84-85


Xerox’s Pato Alto Research Center (PARC) 56­57 

xor 1016-1017 xor 164 xor_eq 1016-1017


ZDNet University 1050-1051 Ox

zeros e uns 727

Fim da obra.