Buscar

Recorte do livro C++ como programar

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 9 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 9 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 9 páginas

Prévia do material em texto

INSTITUTO FEDERAL DE MINAS GERAIS 
- Campus Avançado Piumhi - 
Bacharelado em Engenharia Civil 
Disciplina: Programação de Computadores 
 Professora: Stella Maria Gomes Tomé 
 
1 
 
 
INSTITUTO FEDERAL DE MINAS GERAIS 
- Campus Avançado Piumhi - 
Bacharelado em Engenharia Civil 
Disciplina: Programação de Computadores 
 Professora: Stella Maria Gomes Tomé 
 
2 
 
CAPÍTULO 1 
1.1 Introdução 
A essência deste livro enfatiza como alcançar a clareza de programar por 
meio de comprovadas técnicas de programação orientadas a objetos - este é um livro de 
"classes de objetos desde o início" - e os não programadores aprenderão a programação 
de maneira certa. Ao logo dos anos, muitos programadores aprenderam a metodologia 
de programação chamada programação estruturada, que é a base de toda a linguagem de 
programação, mas, a mais recente metodologia é a programação orientada a objetos. 
Ambas são utilizadas, pois se complementam, já que a lógica de manipular objetos é 
ocasionalmente expressa com programação estruturada. 
 
1.2 O que é um computador? 
Um computador é um dispositivo capaz de realizar computações e tomar 
decisões lógicas milhões (e até bilhões) de vezes mais rapidamente que o homem. Por 
exemplo, muitos computadores pessoais de hoje podem realizar um bilhão de adições 
por segundo. Uma pessoa operando uma calculadora de mesa pode gastar a vida toda 
para fazer cálculos e ainda não concluir a mesma quantidade de cálculos que um 
poderoso computador pessoal pode realizar em um segundo! Os supercomputadores 
mais rápidos de hoje podem realizar trilhões de adições por segundo. 
Os computadores processam dados sob o controle de conjuntos de 
instruções chamados programas de computador. Esses programas orientam o 
computador por meio de conjuntos ordenados de ações especificadas por pessoas 
chamadas programadores de computador. Um computador consiste em vários 
dispositivos referidos como hardware. Os programas que executam em um computador 
são chamados de software. 
 
1.3 Organização do computador 
Independentemente das diferenças na aparência física, praticamente todos os 
computadores podem ser considerados como divididos em seis unidades lógicas ou 
seções. 
INSTITUTO FEDERAL DE MINAS GERAIS 
- Campus Avançado Piumhi - 
Bacharelado em Engenharia Civil 
Disciplina: Programação de Computadores 
 Professora: Stella Maria Gomes Tomé 
 
3 
 
1. Unidade de entrada: esta é a seção "receptora" do computador. Ele 
obtém informações (dados e programas de computador) de dispositivos de entrada e 
coloca essas informações à disposição das outras unidades para processamento. A 
maioria das informações é inserida em computadores por meio de dispositivos de 
entrada, como teclado e mouse. As informações também podem ser inseridas de muitas 
outras maneiras, incluindo falar com seu computador, digitalizar imagens e fazer seu 
computador receber informações de uma rede, como a Internet. 
2. Unidade de saída: esta é a seção de "envio" do computador. Ela pega as 
informações que o computador processou e as coloca em vários dispositivos de saída 
para tornar as informações disponíveis à utilização fora do computador. A maioria das 
informações enviadas para saída de computadores é exibida em telas, impressas em 
papel ou utilizadas para controlar outros dispositivos. Os computadores também podem 
gerar saída de suas informações para rede, como a Internet. 
3. Unidade de memória: esta é a seção de armazenamento de relativamente 
baixa capacidade e rápido acesso do computador. Ela armazena programas de 
computador enquanto estão sendo executados. Retém informações processadas até que 
elas possam ser colocadas em um dispositivo de saída pela unidade de saída. 
4. Unidade aritmética e lógica (ALU: Arithmetic and Logic Unit). Esta é a 
seção de "produção" do computador. Ela é responsável pela realização de cálculos, 
como adição, subtração, multiplicação e divisão. Contém os mecanismos de decisão que 
permitem ao computador, por exemplo, comparar dois itens da unidade de memória 
para determinar se são iguais ou não. 
5. Unidade central de processamento (CPU). Esta é a seção 
"administrativa" do computador. Ela coordena e supervisiona a operação das outras 
seções. A CPU diz a unidade de entrada quando as informações devem ser lidas e 
transferidas para a unidade de memória, informa à ALU quando as informações da 
unidade de memória devem ser utilizadas em cálculos e instrui a unidade de saída sobre 
quando evitar as informações da unidade de memória para certos dispositivos de saída. 
6. Unidade de armazenamento secundária. Esta é a seção de 
armazenamento de alta capacidade e longo prazo do computador. Programas ou dados 
que não são utilizados ativamente pelas outras unidades, em geral, são colocados em 
dispositivos de armazenamento secundário, como as unidades de disco, até que sejam 
INSTITUTO FEDERAL DE MINAS GERAIS 
- Campus Avançado Piumhi - 
Bacharelado em Engenharia Civil 
Disciplina: Programação de Computadores 
 Professora: Stella Maria Gomes Tomé 
 
4 
 
novamente necessários, possivelmente horas, dias, meses ou mesmo anos mais tarde. As 
informações de armazenamento secundário exigem muito mais tempo para serem 
acessadas do que as informações na memória principal. Outros dispositivos de 
armazenamento secundários incluem CDs e DVDs, que podem armazenar centenas de 
milhões de caracteres e bilhões de caracteres, respectivamente. 
 
1.4 Linguagens de máquina, assembly e linguagens de alto nível 
Os programadores escrevem instruções em várias linguagens de 
programação, algumas diretamente compreensíveis por computadores, e outras 
requerendo passos intermediários de tradução. Centenas de linguagens de computador 
estão altamente em uso. Essas linguagens podem ser divididas em: 
1. Linguagem de máquina; 
2. Linguagem assembly; 
3. Linguagens de alto nível; 
Qualquer computador pode entender diretamente somente sua própria 
linguagem de máquina. A linguagem de máquina é a "linguagem natural" de um 
computador e como tal é definida pelo seu design de hardware. As linguagens de 
máquina consistem em geralmente em strings de números (em última instância 
reduzidas de 1s e 0s) que instruem os computadores a realizar suas operações mais 
elementares uma de cada vez. As linguagens de máquina são dependentes de máquina 
(isto é, uma linguagem particular de máquina pode ser utilizada apenas em um tipo de 
computador). Essas linguagens são muito complexas para os seres humanos. 
A programação de linguagem de máquina era simplesmente muito lenta, 
tediosa e propensa a erro para a maioria dos programadores. Em vez de utilizar as 
strings de números que os computadores poderiam entender diretamente, os 
programadores começaram a utilizar abreviações em inglês para representar operações 
elementares. Essas abreviações formaram a base das linguagens assembly. Programas 
tradutores chamados assemblers foram desenvolvidos para converter os primeiros 
programas de linguagem assembly em linguagem de máquina a velocidade do 
computador. 
O uso de computadores aumentou rapidamente com o advento de 
linguagens assembly, mas os programadores ainda tinham de utilizar muitas instruções 
INSTITUTO FEDERAL DE MINAS GERAIS 
- Campus Avançado Piumhi - 
Bacharelado em Engenharia Civil 
Disciplina: Programação de Computadores 
 Professora: Stella Maria Gomes Tomé 
 
5 
 
para realizar até as tarefas mais simples. Para acelerar o processo de programação foram 
desenvolvidas linguagens de alto nível, em que instruções únicas poderiam ser escritas 
para realizar tarefas substanciais. Os programas tradutores chamadoscompiladores 
convertem os programas de linguagem de alto nível em linguagem e máquina. 
Linguagens de alto nível permitem aos programadores escrever instruções que se 
parecem com o inglês cotidiano e contêm notações matemáticas comumente utilizadas. 
Do ponto de vista do programador, obviamente, as linguagens de alto nível 
são preferíveis à linguagem de máquina e linguagem assembly. O C, C++, .NET, 
Visual Basic.NET, Visual C++.NET e C#) e o Java estão entre as linguagens de 
programação de alto nível mais amplamente utilizadas. 
O processo de compilação de um programa de linguagem de alto nível em 
linguagem de máquina pode consumir uma quantidade considerável de tempo de 
processamento. Programas interpretadores foram desenvolvidos pra executar programas 
de linguagem de alto nível diretamente, embora mais lentamente. Os interpretadores são 
populares em ambientes de desenvolvimento de programa em que novos recursos são 
adicionados, e os erros, corrigidos. Depois que um programa está completamente 
desenvolvido, uma versão compilada pode ser produzida para executar mais 
eficientemente. 
 
1.5 História do C e do C++ 
O C++ desenvolveu-se a partir do C, que se desenvolveu a partir das 
linguagens de programação anteriores, o BCPL e o B. O BCPL foi desenvolvido em 
1967 como uma linguagem de escrever sistemas operacionais e compiladores para 
sistemas operacionais. A linguagem C foi desenvolvida a partir da linguagem B. O 
C utiliza conceitos importantes de BCPL e B. No início o C tornou-se amplamente 
conhecido como a linguagem de desenvolvimento do sistema operacional UNIX. Hoje a 
maioria dos sistemas operacionais é escrita em C ou C++. 
 
1.6 C++ Standard Library 
Os programas C++ consistem em partes chamadas classes e funções. Você 
pode programar cada parte que precisar para formar um programa em C++. Mas a 
INSTITUTO FEDERAL DE MINAS GERAIS 
- Campus Avançado Piumhi - 
Bacharelado em Engenharia Civil 
Disciplina: Programação de Computadores 
 Professora: Stella Maria Gomes Tomé 
 
6 
 
maioria dos programadores em C++ tira proveito das ricas coleções de classes e funções 
existentes na C++ Standard Library. Portanto, na realidade há duas partes para aprender 
o "mundo" em C++. A primeira é aprender a própria linguagem C++, a segunda é 
aprender a utilizar as classe e funções na C++ Standard Library. 
 
1.7 Fortran, Cobol, Ada e Pascal 
Centenas de linguagens de alto nível foram desenvolvidas, mas somente 
algumas alcançaram ampla aceitação. O Fortran foi uma linguagem desenvolvida pela 
IBM Corporation em meados da década de 1950 para ser utilizada em aplicativos 
científicos de engenharia que exigem complexos cálculos matemáticos. O Frotran ainda 
é amplamente utilizado, especialmente em aplicativos de engenharia. 
O Cobol foi desenvolvido no final da década de 1950 por fabricantes de 
computadores e usuários de computadores no governo norte-americanos e na indústria. 
O Cobol é utilizado para aplicativos comerciais que existem manipulação precisa e 
eficiente de grandes quantidade de dados. Grande parte do software utilizado em grande 
empresas varejistas ainda é programada em Cobol. Uma pesquisa feita na década de 
1960 resultou na evolução da programação estruturada, uma abordagem disciplinada 
para escrever programas mais claros, mais fáceis de testar e depurar e mais fáceis de 
modificar do que os grandes programas produzidos com a técnica anterior. 
Um dos resultados mais tangíveis desta pesquisa foi o desenvolvimento da 
linguagem de programação Pascal, em 1971. Batizada em homenagem a Blaise Pascal, 
essa linguagem foi adotada para ensino de programação estruturada e rapidamente se 
tornou a linguagem de programação preferida na maioria das universidades. O Pascal 
não possui muitos recursos necessários em aplicativos comerciais e governamentais, 
assim não foi amplamente aceitos nestes ambientes. 
A linguagem de programação Ada foi desenvolvida sob o patrocínio do 
Departamento de Defesa dos Estados Unidos durante a década de 1970 e o início da 
década de 1980. Centenas de linguagens separadas foram utilizadas a fim de produzir os 
sistemas de software para controle e comando maciços do DOD. O DOD queria uma 
única linguagem que atendesse a maioria de suas necessidades. A linguagem foi 
batizada como Ada em homenagem a Lady Ada Lovelace, filha do poeta Lord Byron. 
Lady Lovelace é considerada a primeira pessoa a escrever um programa de computador 
INSTITUTO FEDERAL DE MINAS GERAIS 
- Campus Avançado Piumhi - 
Bacharelado em Engenharia Civil 
Disciplina: Programação de Computadores 
 Professora: Stella Maria Gomes Tomé 
 
7 
 
do mundo no início do século XIX (para o dispositivo mecânico de computação 
conhecido como Máquina Analítica, projetado por Charles Babbage). Uma importante 
capacidade da linguagem Ada, chamada multitarefa permite que os programadores 
especifiquem quantas atividades devem ocorrer paralelamente. O Java por meio de uma 
tarefa única chamada multithreading, também permite que os programadores escrevam 
programas com atividades paralelas. Embora não faça parte do padrão C++, o 
multithreading é disponibilizado por várias bibliotecas de classes suplementares. 
 
1.8 Basic, Visual Basic, Visual C++, C# e .NET 
A linguagem de programação Basic foi desenvolvida em meados da década 
de 1960, como um meio de escrever programas simples. O principal propósito do Basic 
foi familiarizar os iniciantes com as técnicas de programação. A linguagem de 
programação Visual Basic da Microsoft foi introduzida em meados de 1990 para 
simplificar o desenvolvimento de aplicativos de computador. As últimas ferramentas de 
desenvolvimento da Microsoft fazem parte de sua estratégia de escopo corporativo para 
integrar a Internet e a Web em aplicativos de computador. Essa estratégia é 
implementada na plataforma .NET, que fornece aos desenvolvedores as capacidades 
necessárias para criar e executar aplicativos de computador que possam executar em 
computadores distribuídos através da Internet. 
 
1.9 Tendência chave do software: tecnologia de objeto 
Os aprimoramentos na tecnologia de software emergiam com os benefícios 
da programação estruturada e as disciplinas relacionadas de análise e design de sistemas 
estruturados sendo realizada na década de 1970. Mais foi somente quando a tecnologia 
de programação orientada a objetos se tornou amplamente utilizada na década de 1990 
que os desenvolvedores de software sentiram, por fim, que tinham as ferramentas 
necessárias para dar passos importantes no processo de desenvolvimento de software. 
O que são objetos e porque são tão especiais? Na realidade, a tecnologia de 
objetos é um esquema de empacotamento que nos ajuda a criar unidades significativas 
de software. Estas podem ser grandes e fortemente focalizadas em áreas particulares de 
aplicativos. Há objetos data, tempo, cheque, pagamento, fatura, áudio, vídeo, arquivo, 
INSTITUTO FEDERAL DE MINAS GERAIS 
- Campus Avançado Piumhi - 
Bacharelado em Engenharia Civil 
Disciplina: Programação de Computadores 
 Professora: Stella Maria Gomes Tomé 
 
8 
 
registro e assim por diante. De fato, todo substantivo pode ser razoavelmente 
representado como objeto. 
 
1.10 Ambiente de desenvolvimento C++ típico 
Vamos considerar os passos na criação e execução de um aplicativo C++ 
utilizando um ambiente de desenvolvimento C++ (ilustrado na Figura 1.1). Em geral, os 
sistemas C++ consistem em três partes: um ambiente de desenvolvimento de programa, 
a linguagem e a C++ Standard Library. Os programas C++, em geral, passam por seis 
fases: edição, pré-processamento, compilação, linkagem, carregamento e execução.INSTITUTO FEDERAL DE MINAS GERAIS 
- Campus Avançado Piumhi - 
Bacharelado em Engenharia Civil 
Disciplina: Programação de Computadores 
 Professora: Stella Maria Gomes Tomé 
 
9 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Figura 1.1: Típico ambiente C++ 
Fonte: DEITEL, H.M, 2006

Outros materiais