C++ Como Programar 5ª edição Deitel
Book information
Description
1 Introdução aos computadores, à Internet e à World Wide Web......Page 44 1.1 Introdução......Page 45 1.3 Organização do computador......Page 46 1.6 A Internet e a World Wide Web......Page 47 1.7 Linguagens de máquina, linguagens assembly e linguagens de alto nível......Page 48 1.9 C++ Standard Library......Page 49 1.11 Fortran, COBOL, Ada e Pascal......Page 50 1.13 Tendência-chave do software: tecnologia de objeto......Page 51 1.14 Ambiente de desenvolvimento C++ típico......Page 52 1.16 Test-drive de um aplicativo C++......Page 54 1.17 Estudo de caso de engenharia de software: introdução à tecnologia de objetose à UML (obrigatório)......Page 59 1.19 Recursos na Web......Page 63 2 Introdução à programação em C++......Page 69 2.2 Primeiro programa C++: imprimindo uma linha de texto......Page 70 2.3 Modificando nosso primeiro programa C++......Page 73 2.4 Outro programa C++: adicionando inteiros......Page 74 2.5 Conceitos de memória......Page 77 2.6 Aritmética......Page 78 2.7 Tomada de decisão: operadores de igualdade e operadores relacionais......Page 80 2.8 Estudo de caso de engenharia de software: examinando o documento de requisitos de ATM (opcional)......Page 84 2.9 Síntese......Page 91 3 Introdução a classes e objetos......Page 98 3.2 Classes, objetos, funções-membro e membros de dados......Page 99 3.4 Definindo uma classe com uma função-membro......Page 100 3.5 Definindo uma função-membro com um parâmetro......Page 103 3.6 Membros de dados, funções set e funções get......Page 105 3.7 Inicializando objetos com construtores......Page 110 3.8 Colocando uma classe em um arquivo separado para reusabilidade......Page 113 3.9 Separando a interface da implementação......Page 116 3.10 Validando dados com funções set......Page 121 3.11 Estudo de caso de engenharia de software: identificando as classes no documentode requisitos do ATM (opcional)......Page 125 3.12 Síntese......Page 130 4 Instruções de controle: parte 1......Page 136 4.3 Pseudocódigo......Page 137 4.4 Estruturas de controle......Page 138 4.5 Instrução de seleção if......Page 141 4.6 A instrução de seleção dupla if...else......Page 142 4.7 A instrução de repetição while......Page 146 4.8 Formulando algoritmos: repetição controlada por contador......Page 147 4.9 Formulando algoritmos: repetição controlada por sentinela......Page 152 4.10 Formulando algoritmos: instruções de controle aninhadas......Page 159 4.11 Operadores de atribuição......Page 163 4.12 Operadores de incremento e decremento......Page 164 4.13 Estudo de caso de engenharia de software: identificando atributos de classe no sistema ATM (opcional)......Page 166 4.14 Síntese......Page 169 5 Instruções de controle: parte 2......Page 183 5.2 Princípios básicos de repetição controlada por contador......Page 184 5.3 A instrução de repetição for......Page 186 5.4 Exemplos com a estrutura for......Page 189 5.5 Instrução de repetição do...while......Page 193 5.6 A estrutura de seleção múltipla switch......Page 194 5.7 Instruções break e continue......Page 202 5.8 Operadores lógicos......Page 204 5.9 Confundindo operadores de igualdade (==) com operadores de atribuição (=)......Page 207 5.10 Resumo de programação estruturada......Page 208 5.11 Estudo de caso de engenharia de software: identificando estados e atividades dos objetos no sistema ATM (opcional)......Page 212 5.12 Síntese......Page 216 6 Funções e uma introdução à recursão......Page 224 6.1 Introdução......Page 225 6.2 Componentes de um programa em C++......Page 226 6.3 Funções da biblioteca de matemática......Page 227 6.4 Definições de funções com múltiplos parâmetros......Page 228 6.5 Protótipos de funções e coerção de argumentos......Page 232 6.7 Estudo de caso: geração de números aleatórios......Page 233 6.8 Estudo de caso: jogo de azar e introdução a enum......Page 239 6.9 Classes de armazenamento......Page 243 6.10 Regras de escopo......Page 245 6.11 Pilha de chamadas de função e registros de ativação......Page 247 6.12 Funções com listas de parâmetro vazias......Page 249 6.13 Funções inline......Page 251 6.14 Referências e parâmetros de referência......Page 252 6.15 Argumentos-padrão......Page 256 6.16 Operador de solução de escopo unário......Page 258 6.17 Sobrecarga de funções......Page 259 6.18 Templates de funções......Page 261 6.19 Recursão......Page 264 6.20 Exemplo que utiliza recursão: série de Fibonacci......Page 265 6.21 Recursão versus iteração......Page 269 6.22 Estudo de caso de engenharia de software: identificando operações de classe no sistema ATM (opcional)......Page 271 6.23 Síntese......Page 276 7 Arrays e vetores......Page 293 7.2 Arrays......Page 294 7.3 Declarando arrays......Page 295 7.4 Exemplos que utilizam arrays......Page 296 7.5 Passando arrays para funções......Page 310 7.6 Estudo de caso: classe GradeBook utilizando um array para armazenar notas......Page 314 7.8 Classificando arrays por inserção......Page 319 7.9 Arrays multidimensionais......Page 322 7.10 Estudo de caso: classe GradeBook utilizando um array bidimensional......Page 325 7.11 Introdução ao template vector da C++ Standard Library......Page 331 7.12 Estudo de caso de engenharia de software: colaboração entre objetos no sistema ATM(opcional)......Page 335 7.13 Síntese......Page 340 8 Ponteiros e strings baseadas em ponteiro......Page 354 8.2 Declarações de variável ponteiro e inicialização......Page 355 8.3 Operadores de ponteiro......Page 356 8.4 Passando argumentos para funções por referência com ponteiros......Page 358 8.5 Utilizando const com ponteiros......Page 362 8.6 Classificação por seleção utilizando passagem por referência......Page 367 8.7 Operadores sizeof......Page 370 8.8 Expressões e aritmética de ponteiro......Page 373 8.9 Relacionamento entre ponteiros e arrays......Page 375 8.10 Arrays de ponteiros......Page 378 8.11 Estudo de caso: simulação de embaralhamento e distribuição de cartas......Page 379 8.12 Ponteiros de função......Page 384 8.13 Introdução ao processamento de string baseada em ponteiro......Page 388 8.13.1 Fundamentos de caracteres e strings baseadas em ponteiro......Page 389 8.13.2 Funções de manipulação de string da biblioteca de tratamento de strings......Page 390 8.14 Síntese......Page 397 9 Classes: um exame mais profundo, parte 1......Page 418 9.2 Estudo de caso da classe Time......Page 419 9.4 Separando a interface da implementação......Page 425 9.5 Funções de acesso e funções utilitárias......Page 427 9.6 Estudo de caso da classe Time: construtores com argumentos-padrão......Page 429 9.7 Destrutores......Page 434 9.8 Quando construtores e destrutores são chamados......Page 435 9.9 Estudo de caso da classe Time: uma armadilha sutil — retornar uma referênciaa um membro de dados private......Page 438 9.10 Atribuição-padrão de membro a membro......Page 440 9.12 Estudo de caso de engenharia de software: começando a programar as classes do sistema ATM (opcional)......Page 442 9.13 Síntese......Page 448 10 Classes: um exame mais profundo, parte 2......Page 454 10.2 Objetos const (constante) e funções-membro const......Page 455 10.3 Composição: objetos como membros de classes......Page 464 10.4 Funções friend e classes friend......Page 469 10.5 Utilizando o ponteiro this......Page 472 10.6 Gerenciamento de memória dinâmico com os operadores new e delete......Page 473 10.7 Membros de classe static......Page 478 10.8 Abstração de dados e ocultamento de informações......Page 483 10.8.2 Exemplo: tipo de dados abstrato string......Page 484 10.10 Classes proxy......Page 485 10.11 Síntese......Page 488 11 Sobrecarga de operadores; objetos string e array......Page 493 11.2 Fundamentos de sobrecarga de operadores......Page 494 11.3 Restrições à sobrecarga de operadores......Page 495 11.4 Funções operadoras como membros de classe versus funções globais......Page 497 11.5 Sobrecarregando operadores de inserção e extração de fluxo......Page 498 11.6 Sobrecarregando operadores unários......Page 500 11.8 Estudo de caso: classe Array......Page 501 11.9 Convertendo entre tipos......Page 511 11.10 Estudo de caso: classe String......Page 512 11.11 Sobrecarregando ++ e --......Page 522 11.12 Estudo de caso: uma classe Date......Page 523 11.13 Classe string da biblioteca-padrão......Page 527 11.14 Construtores explicit......Page 530 11.15 Síntese......Page 533 12 Programação orientada a objetos: herança......Page 544 12.1 Introdução......Page 545 12.2 Classes básicas e derivadas......Page 546 12.4.1 Criando e utilizando uma classe CommissionEmployee......Page 548 12.4.2 Criando uma classe BasePlusCommissionEmployee sem utilizar herança......Page 553 12.4.3 Criando uma hierarquia de herançaCommissionEmployee–BasePlusCommissionEmployee......Page 558 12.4.4 Hierarquia de herança CommissionEmployee–BasePlusCommissionEmployeeutilizando dados protected......Page 562 12.4.5 Hierarquia de herança CommissionEmployee–BasePlusCommissionEmployeeutilizando dados private......Page 568 12.5 Construtores e destrutores em classes derivadas......Page 575 12.6 Herança public, protected e private......Page 582 12.7 Engenharia de software com herança......Page 583 12.8 Síntese......Page 584 13 Programação orientada a objetos: polimorfismo......Page 588 13.1 Introdução......Page 589 13.2 Exemplos de polimorfismo......Page 590 13.3.1 Invocando funções de classe básica a partir de objetos de classe derivada......Page 591 13.3.2 Apontando ponteiros de classe derivada para objetos da classe básica......Page 597 13.3.3 Chamadas de função-membro de classe derivada via ponteiros de classe básica......Page 598 13.3.4 Funções virtuais......Page 600 13.3.5 Resumo das atribuições permitidas entre objetos de classe básicae de classe derivada e ponteiros......Page 605 13.5 Classes abstratas e funções virtual puras......Page 606 13.6 Estudo de caso: sistema de folha de pagamento utilizando polimorfismo......Page 607 13.6.1 Criando a classe básica abstrata Employee......Page 608 13.6.2 Criando a classe derivada concreta SalariedEmployee......Page 609 13.6.4 Criando a classe derivada concreta CommissionEmployee......Page 613 13.6.6 Demonstrando o processamento polimórfico......Page 617 13.7 Polimorfismo, funções Virtual e vinculação dinâmica ‘sob o capô’ (opcional)......Page 622 13.8 Estudo de caso: sistema de folha de pagamento utilizando polimorfismo e informaçõesde tipo de tempo de execução com downcasting, dynamic_cast, typeid e type_info......Page 625 13.10 Estudo de caso de engenharia de software: incorporando herança ao sistema ATM (opcional)......Page 628 13.11 Síntese......Page 634 14 Templates......Page 638 14.2 Templates de funções......Page 639 14.4 Templates de classe......Page 642 14.5 Parâmetros sem tipo e tipos-padrão para templates de classes......Page 648 14.8 Notas sobre templates e membros static......Page 649 14.9 Síntese......Page 650 15 Entrada/saída de fluxo......Page 654 15.1 Introdução......Page 655 15.2.2 Arquivos de cabeçalho da biblioteca iostream......Page 656 15.2.3 Classes de entrada/saída de fluxo e objetos......Page 657 15.3 Saída de fluxo......Page 658 15.4 Entrada de fluxo......Page 659 15.4.1 Funções-membro get e getline......Page 660 15.4.3 E/S fortemente tipada (type-safe)......Page 662 15.6 Introdução aos manipuladores de fluxos......Page 663 15.6.2 Precisão de ponto flutuante (precision, setprecision)......Page 664 15.6.3 Largura de campo (width, setw)......Page 665 15.7 Estados de formato de fluxo e manipuladores de fluxo......Page 667 15.7.2 Alinhamento (left, right e internal)......Page 669 15.7.3 Preenchimento (fill, setfill)......Page 671 15.7.4 Base de fluxo integral (dec, oct, hex, showbase)......Page 673 15.7.6 Controle de letras maiúsculas/minúsculas (uppercase)......Page 674 15.7.7 Especificando o formato booleano (boolalpha)......Page 675 15.7.8 Configurando e redefinindo o estado de formato via a função-membro flags......Page 676 15.8 Estados de erro de fluxo......Page 677 15.10 Síntese......Page 679 16 Tratamento de exceções......Page 687 16.2 Visão geral do tratamento de exceções......Page 688 16.3 Exemplo: tratando uma tentativa de divisão por zero......Page 689 16.4 Quando utilizar o tratamento de exceções......Page 693 16.5 Relançando uma exceção......Page 694 16.7 Processando exceções inesperadas......Page 696 16.10 Exceções e herança......Page 697 16.11 Processando falhas new......Page 699 16.12 Classe auto_ptr e alocação de memória dinâmica......Page 702 16.13 Hierarquia de exceções da biblioteca-padrão......Page 704 16.14 Outras técnicas de tratamento de erro......Page 705 16.15 Síntese......Page 706 17 Processamento de arquivo......Page 711 17.2 Hierarquia de dados......Page 712 17.4 Criando um arquivo seqüencial......Page 714 17.5 Lendo dados de um arquivo seqüencial......Page 717 17.7 Arquivos de acesso aleatório......Page 723 17.8 Criando um arquivo de acesso aleatório......Page 724 17.9 Gravando dados aleatoriamente em um arquivo de acesso aleatório......Page 728 17.10 Lendo um arquivo de acesso aleatório seqüencialmente......Page 730 17.11 Estudo de caso: um programa de processamento de transação......Page 732 17.12 Entrada/saída de objetos......Page 738 17.13 Síntese......Page 739 18 Classe string e processamento de fluxo de string......Page 746 18.1 Introdução......Page 747 18.2 Atribuição e concatenação de strings......Page 748 18.3 Comparando strings......Page 750 18.5 Trocando strings......Page 752 18.6 Características de string......Page 753 18.7 Localizando strings e caracteres em uma string......Page 755 18.8 Substituindo caracteres em uma string......Page 757 18.9 Inserindo caracteres em uma string......Page 759 18.10 Conversão para strings char * baseadas em ponteiro no estilo C......Page 760 18.11 Iteradores......Page 761 18.12 Processamento de fluxo de string......Page 762 18.13 Síntese......Page 765 19 Programação Web......Page 770 19.2 Tipos de solicitação HTTP......Page 771 19.3 Arquitetura de múltiplas camadas......Page 772 19.4 Acessando servidores Web......Page 773 19.7 Introdução à CGI......Page 774 19.8 Transações HTTP simples......Page 775 19.9 Scripts CGI simples......Page 776 19.10 Enviando entrada para um script CGI......Page 780 19.11 Utilizando formulários XHTML para enviar entrada......Page 784 19.12 Outros cabeçalhos......Page 788 19.13 Estudo de caso: uma página Web interativa......Page 791 19.14 Cookies......Page 795 19.15 Arquivos do lado do servidor......Page 798 19.16 Estudo de caso: carrinho de compras......Page 804 19.17 Síntese......Page 816 19.18 Recursos na Internet e na Web......Page 818 20 Pesquisa e classificação......Page 823 20.1 Introdução......Page 824 20.2.1 Eficiência da pesquisa linear......Page 825 20.2.2 Pesquisa binária......Page 826 20.3.1 Eficiência da classificação por seleção......Page 830 20.3.3 Classificação por intercalação (uma implementação recursiva)......Page 831 20.4 Síntese......Page 836 21 Estruturas de dados......Page 841 21.2 Classes auto-referenciais......Page 842 21.4 Listas vinculadas......Page 843 21.5 Pilhas......Page 856 21.6 Filas......Page 860 21.7 Árvores......Page 863 21.8 Síntese......Page 871 22 Bits, caracteres, strings C e structs......Page 889 22.2 Definições de estrutura......Page 890 22.5 typedef......Page 892 22.6 Exemplo: simulação de embaralhamento e distribuição de cartas de alto desempenho......Page 893 22.7 Operadores de bits......Page 895 22.8 Campos de bit......Page 902 22.9 Biblioteca de tratamento de caractere......Page 906 22.10 Funções de conversão de string baseada em ponteiro......Page 911 22.11 Funções de pesquisa da biblioteca de tratamento de strings baseadas em ponteiro......Page 916 22.12 Funções de memória da biblioteca de tratamento de strings baseadas em ponteiro......Page 917 22.13 Síntese......Page 924 23 Standard Template Library (STL)......Page 933 23.1 Introdução à Standard Template Library (STL)......Page 934 23.1.1 Introdução aos contêineres......Page 936 23.1.2 Introdução aos iteradores......Page 939 23.1.3 Introdução aos algoritmos......Page 942 23.2 Contêineres de seqüência......Page 944 23.2.1 Contêiner de seqüência vector......Page 945 23.2.2 Contêiner de seqüência list......Page 951 23.2.3 Contêiner de seqüência deque......Page 954 23.3.1 Contêiner associativo multiset......Page 956 23.3.3 Contêiner associativo multimap......Page 958 23.3.4 Contêiner associativo map......Page 961 23.4.1 Adaptador stack......Page 962 23.4.2 Adaptador queue......Page 964 23.4.3 Adaptador priority_queue......Page 965 23.5.1 fill, fill_n, generate e generate_n......Page 967 23.5.2 equal, mismatch e lexicographical_compare......Page 969 23.5.3 remove, remove_if, remove_copy e remove_copy_if......Page 970 23.5.4 replace, replace_if, replace_copy e replace_copy_if......Page 973 23.5.5 Algoritmos matemáticos......Page 975 23.5.6 Algoritmos de pesquisa e classificação básica......Page 977 23.5.7 swap, iter_swap e swap_ranges......Page 980 23.5.8 copy_backward, merge, unique e reverse......Page 981 23.5.10 Operações set......Page 983 23.5.11 lower_bound, upper_bound e equal_range......Page 986 23.5.12 Heapsort......Page 988 23.5.14 Algoritmos de STL não discutidos neste capítulo......Page 991 23.6 Classe bitset......Page 993 23.7 Objetos de função......Page 996 23.9 Recursos sobre C++ na Internet e na Web......Page 998 24 Outros tópicos......Page 1006 24.2 Operador const_cast......Page 1007 24.3 namespaces......Page 1008 24.4 Palavras-chave de operador......Page 1011 24.5 Membros de classe mutable......Page 1013 24.6 Ponteiros para membros de classe (.* e ->*)......Page 1015 24.7 Herança múltipla......Page 1016 24.8 Herança múltipla e classes básicas virtual......Page 1019 24.9 Síntese......Page 1024 24.10 Observações finais......Page 1025 A Tabela de precedência e associatividade de operadores......Page 1029 B Conjunto de caracteres ASCII......Page 1031 C Tipos fundamentais......Page 1032 D Sistemas de numeração......Page 1034 D.1 Introdução......Page 1035 D.2 Abreviando números binários como números octais e números hexadecimais......Page 1036 D.4 Convertendo de octal, binário ou hexadecimal para decimal......Page 1038 D.5 Convertendo de decimal para octal, binário ou hexadecimal......Page 1039 D.6 Números binários negativos: notação de complemento de dois......Page 1040 E Tópicos sobre o código C legado......Page 1044 E.2 Redirecionando entrada/saída em sistemas UNIX/Linux/Mac OS X e Windows......Page 1045 E.3 Listas de argumentos de comprimento variável......Page 1046 E.5 Notas sobre a compilação de programas de arquivo de múltiplas fontes......Page 1048 E.6 Terminação de programa com exit e atexit......Page 1050 E.9 Tratamento de sinal......Page 1052 E.10 Alocação dinâmica de memória com calloc e realloc......Page 1054 E.12 Uniões......Page 1055 E.14 Síntese......Page 1059 F Pré-processador......Page 1064 F.3 Diretiva de pré-processador #define: constantes simbólicas......Page 1065 F.4 Diretiva de pré-processador #define: macros......Page 1066 F.5 Compilação condicional......Page 1067 F.7 Os operadores # e ##......Page 1068 F.10 Síntese......Page 1069 G.1 Implementação do estudo de caso ATM......Page 1073 G.2 Classe ATM......Page 1074 G.4 Classe Keypad......Page 1080 G.5 Classe CashDispenser......Page 1081 G.6 Classe DepositSlot......Page 1082 G.7 Classe Account......Page 1083 G.8 Classe BankDatabase......Page 1085 G.9 Classe Transaction......Page 1088 G.10 Classe BalanceInquiry......Page 1089 G.11 Classe Withdrawal......Page 1091 G.12 Classe Deposit......Page 1093 G.13 Programa de teste ATMCaseStudy.cpp......Page 1098 G.14 Síntese......Page 1099 H.2 Tipos de diagramas adicionais......Page 1100 I.1 Recursos......Page 1102 I.2 Tutoriais......Page 1103 I.6 Compiladores e ferramentas de desenvolvimento......Page 1104 I.7 Standard Template Library......Page 1105 J Introdução à XHTML......Page 1106 J.3 Primeiro exemplo de XHTML......Page 1107 J.4 Cabeçalhos......Page 1109 J.5 Vinculando......Page 1111 J.6 Imagens......Page 1113 J.7 Caracteres especiais e mais quebras de linha......Page 1117 J.8 Listas não ordenadas......Page 1118 J.10 Tabelas de XHTML básicas......Page 1120 J.11 Tabelas e formatação de XHTML intermediárias......Page 1124 J.12 Formulários XHTML básicos......Page 1126 J.13 Formulários XHTML mais complexos......Page 1129 J.14 Recursos na Internet e na Web......Page 1135 K Caracteres especiais de XHTML......Page 1139 L Utilizando o depurador do Visual Studio NET......Page 1140 L.2 Pontos de interrupção e o comando Continue......Page 1141 L.3 As janelas Locals e Watch......Page 1146 L.4 Controlando a execução utilizando os comandos Step Into, Step Over, Step Out e Continue......Page 1148 L.5 A janela Autos......Page 1151 L.6 Síntese......Page 1152 M Utilizando o depurador do GNU C++......Page 1154 M.2 Pontos de interrupção e os comandos run, stop, continue e print......Page 1155 M.3 Os comandos print e set......Page 1161 M.4 Controlando a execução utilizando os comandos step, finish e next......Page 1162 M.5 O comando watch......Page 1164 M.6 Síntese......Page 1167 Bibliografia......Page 1070 Índice remissivo......Page 1174
Similar books
Intro to Python for Computer Science and Data Science
Internet & World Wide Web: How to Program
2012 · PDF
Intro to Python for Computer Science and Data Science: Learning to Program with AI, Big Data and The Cloud
EPUB
C++20 for Programmers: An Objects-Natural Approach
2022 · PDF
C How to Program: With Case Studies in Applications and Systems Programming, Global Edition
2022 · PDF
C How to Program
2022 · PDF
Android for Programmers: An App-Driven Approach, Volume 1
2014 · PDF
Visual C# 2010: How to Program
2010 · PDF