Está en la página 1de 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 Tipo Associatividad


e1
. resolução de escopo binário esquerda para
resolução de escopo unário a direita
O parênteses esquerda para
a direita
[] subscrito de array
. seleção de membro via objeto
-> seleção de membro via ponteiro
++ - pós-incremento unário pós-
decremento unário
typeid informação sobre tipo durante a
execução
dynainic_ca coerção com verificação de tipo
st< tipo> durante a execução
staticcast< coerção com verificação de tipo
tipo> durante a compilação
reinterpretca t coerção para conversões não-padrão
st< ipo
>
constcast< retira o atributo const com coerção
tipo>
++ pré-incremento unário direita para a
esquerda
-- pré-decremento unário
+ mais unário
- menos unário
! negação lógica unária
- complemento sobre bits unário
tipo ) coerção ao estilo de C unário
sizeof determina o tamanho em bytes
& endereço
* derreferencia
new alocação dinâmica de memória
new [3 alocação dinâmica de array
delete desalocação dinâmica de memória
dele te [3 desalocação dinâmica de array
* ponteiro para membro via objeto esquerda para
a direita
ponteiro para membro via ponteiro
* multiplicação esquerda para
a direita
/ divisão
% módulo (resto da divisão inteira)
+ adição esquerda para
a direita
- subtração

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

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

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 Digito D gito


octal decimal í Hexadecimal
4 4 4
5 5 5
6 6 6
7 7 8 9 7 (valor 1
8 decimal 0)
9 (valor II)
A decimal 1
B (valor 2)
C decimal 1
D (valor 3)
E decimal 1
F (valor 4)
decimal 1
(valor 5)
decimal

Atributo Binário Octal De cimal Hexadecimal


Base 2 8 10 Menor dígito O O O Maior dígito 16 O F
179
Fig. C.2 Comparação entre os sistemas de octal, decimal e
numeração binário, 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 1


Digito binário 1 O Nome da posição Quatro Dois Valor 1
posicional 4 2 Valor posicional como uma potência da Unid
base (2) 22 2’ ade
1 2°
Fig. C.4 Valores posicionais no sistema de numeração
binário.
Valores posicionais no sistema de numeração octal 1
Dígito octal 4 2 Nome da posição Sessenta e quatro 5
Oito Valor posicional 64 8 Valor posicional como uma Unid
potência da base (8) 82 81 ade
1 8°
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 A
Dezesseis cinqüenta e seis Valor posicional 256 16 Unid
Valor posicional como uma potência da base (16) 162 ade
161 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  Representação  Representação  Representação 


decimal  binária  octal  hexadecimal 
O O O 0
1 1 1 1
2  10 2 2
3 11 3 3
4 100 4 4
5 101 5 5
6 110 6 6
7 111 7 7
8 1000 10 8
9 1001 11 9
10 1010 12 A
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F
16 10000 20 10

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. 
1
Convertendo um  ero binário em 
núm  decimal 

32  16  8  2  1 
4

1 1
O  1  O  1 
1*32=32  1*1616  1 0*2= 1*11 
*44  0 
Soma: =32+16+0+ 4+ 0+153

1
Convertendo um número octal em decimal 

512 64  8  1 
7 6  1  4 
7*5123584 6*64=384 1*8=8 4*14
3980
Soma: = 3584 + 384 + 8 + 4 = 

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 B
B*1=11
= 44347
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++ COMO PROGRAMAR 

Respostas aos exercícios de auto­revisão 
C.1
C.4
C.6 ­ 
C.9
C.1O
C.11
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++.

APÊNDICE D RECURSOS SOBRE C++ NA INTERNET E NA WEB 1051 


­ 

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 C++. 


O Red Wing/Winona Technical Coliege
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,918-

919, 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
** 


(}) 
o)
({) 
)) 

(stream
.

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 400-

401

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
criar novos objetos dinamicamente 435­ 
436

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
<ctime> 200-201, 205­206 
ctor 543-544
<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


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 

456-
415

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

665-

657-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, 973-

930-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 149-

152, 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
list
limerick >
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


parâmetro de função como uma variável 
local 194-196
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 681-


682 

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 340-

341
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 657-


Quadralay 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 906-

907

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,209-

210
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.

También podría gustarte