<div id="pf1" class="pf w0 h0" data-page-no="1"><div class="pc pc1 w0 h0"><img class="bi x0 y0 w1 h1" alt="" src="https://files.passeidireto.com/9ecccc4a-73a5-4520-86b1-a078a135bd7a/bg1.png"><div class="t m0 x1 h2 y1 ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x2 h3 y2 ff2 fs1 fc0 sc0 ls1 ws1"> </div><div class="t m0 x3 h4 y3 ff2 fs2 fc0 sc0 ls1 ws1">Como </div><div class="t m0 x4 h4 y4 ff2 fs2 fc0 sc0 ls1 ws1">programar </div><div class="t m0 x5 h4 y5 ff2 fs2 fc0 sc0 ls2 ws0">Em<span class="ls1 ws1"> </span></div><div class="t m0 x6 h4 y6 ff2 fs2 fc0 sc0 ls1 ws1">C </div><div class="t m0 x1 h5 y7 ff2 fs3 fc0 sc0 ls0 ws1"> <span class="ls1 v1">Paul J. Deitel e Harvey M<span class="_0 blank"></span>. Deit<span class="_0 blank"></span>el </span></div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div> <div id="pf2" class="pf w0 h0" data-page-no="2"><div class="pc pc2 w0 h0"><div class="t m0 x1 h2 y1 ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x1 h6 y8 ff2 fs4 fc0 sc0 ls1 ws1">Índice </div><div class="t m0 x1 h5 y9 ff2 fs3 fc0 sc0 ls1 ws1"> </div><div class="t m0 x1 h7 ya ff3 fs5 fc0 sc0 ls1 ws1">Capítulo 01<span class="ff2"> <span class="ff4 ls3">\u2013</span> Conceitos da Computação </span></div><div class="t m0 x1 h7 yb ff3 fs5 fc0 sc0 ls1 ws1">Capítulo 02 <span class="ff4 ls3">\u2013</span><span class="ff2"> Introdução à programação em <span class="_0 blank"></span>C </span></div><div class="t m0 x1 h7 yc ff3 fs5 fc0 sc0 ls1 ws1">Capítulo 03<span class="ff2"> <span class="ff4 ls3">\u2013</span> Desenvolvimento da Programação E<span class="_0 blank"></span>struturada<span class="_1 blank"> </span> </span></div><div class="t m0 x1 h7 yd ff3 fs5 fc0 sc0 ls1 ws1">Capítulo 04<span class="ff2"> <span class="ff4 ls3">\u2013</span> Controle do programa </span></div><div class="t m0 x1 h7 ye ff3 fs5 fc0 sc0 ls1 ws1">Capítulo 05<span class="ff2"> <span class="ff4 ls3">\u2013</span> Funções </span></div><div class="t m0 x1 h7 yf ff3 fs5 fc0 sc0 ls1 ws1">Capítulo 06<span class="ff2"> <span class="ff4 ls3">\u2013</span> Arrays </span></div><div class="t m0 x1 h7 y10 ff3 fs5 fc0 sc0 ls1 ws1">Capítulo 07<span class="ff2"> <span class="ff4 ls3">\u2013</span> Ponteiros </span></div><div class="t m0 x1 h7 y11 ff3 fs5 fc0 sc0 ls1 ws1">Capítulo 08<span class="ff2"> <span class="ff4 ls3">\u2013</span> Caracteres e strings </span></div><div class="t m0 x1 h7 y12 ff3 fs5 fc0 sc0 ls1 ws1">Capítulo 09<span class="ff2"> <span class="ff4 ls3">\u2013</span> Formatação de Entrada/Saída </span></div><div class="t m0 x1 h7 y13 ff3 fs5 fc0 sc0 ls1 ws1">Capítulo 10<span class="ff2"> <span class="ff4 ls3">\u2013</span> Estruturas, Uniões, Manipulações de Bits e Enume<span class="_0 blank"></span>rações<span class="_1 blank"> </span> </span></div><div class="t m0 x1 h7 y14 ff3 fs5 fc0 sc0 ls1 ws1">Capítulo 11<span class="ff2"> <span class="ff4 ls3">\u2013</span> Processamento de arquivos </span></div><div class="t m0 x1 h7 y15 ff3 fs5 fc0 sc0 ls1 ws1">Capítulo 12<span class="ff2"> <span class="ff4 ls3">\u2013</span> Estrutura de dados </span></div><div class="t m0 x1 h7 y16 ff3 fs5 fc0 sc0 ls1 ws1">Capítulo 13<span class="ff2"> <span class="ff4 ls3">\u2013</span> O pré-processador </span></div><div class="t m0 x1 h7 y17 ff3 fs5 fc0 sc0 ls1 ws1">Apêndice A<span class="ff2"> <span class="ff4 ls3">\u2013</span> Biblioteca-padrão </span></div><div class="t m0 x1 h7 y18 ff3 fs5 fc0 sc0 ls1 ws1">Apêndice B<span class="ff2"> <span class="ff4 ls3">\u2013</span> Precedência de O<span class="_0 blank"></span>peradores e Associatividade<span class="_1 blank"> </span> </span></div><div class="t m0 x1 h7 y19 ff3 fs5 fc0 sc0 ls1 ws1">Apêndice C <span class="ff4 ls3">\u2013</span><span class="ff2"> Conjunto de Caracteres ASCII </span></div><div class="t m0 x1 h7 y1a ff3 fs5 fc0 sc0 ls1 ws1">Apêndice D<span class="ff2"> <span class="ff4 ls3">\u2013</span> Sistemas de numeração </span></div><div class="t m0 x1 h8 y1b ff2 fs5 fc0 sc0 ls1 ws1"> </div><div class="t m0 x1 h8 y1c ff2 fs5 fc0 sc0 ls1 ws1"> </div><div class="t m0 x1 h8 y1d ff2 fs5 fc0 sc0 ls1 ws1"> </div><div class="t m0 x1 h8 y1e ff2 fs5 fc0 sc0 ls1 ws1"> </div><div class="t m0 x1 h8 y1f ff2 fs5 fc0 sc0 ls1 ws1"> </div><div class="t m0 x1 h8 y20 ff2 fs5 fc0 sc0 ls1 ws1"> </div><div class="t m0 x1 h8 y21 ff2 fs5 fc0 sc0 ls1 ws1"> </div><div class="t m0 x1 h8 y22 ff2 fs5 fc0 sc0 ls1 ws1"> </div><div class="t m0 x1 h8 y23 ff2 fs5 fc0 sc0 ls1 ws1"> </div><div class="t m0 x1 h5 y24 ff2 fs3 fc0 sc0 ls1 ws1"> </div><div class="t m0 x1 h5 y25 ff2 fs3 fc0 sc0 ls1 ws1"> </div><div class="t m0 x1 h5 y26 ff2 fs3 fc0 sc0 ls1 ws1"> </div><div class="t m0 x1 h5 y27 ff2 fs3 fc0 sc0 ls1 ws1"> </div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div> <div id="pf3" class="pf w0 h0" data-page-no="3"><div class="pc pc3 w0 h0"><div class="t m0 x1 h2 y1 ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x1 h3 y28 ff2 fs1 fc0 sc0 ls3 ws1">1 <span class="ls1"> </span></div><div class="t m0 x1 h9 y29 ff2 fs6 fc0 sc0 ls1 ws1">Conceitos de Computação </div><div class="t m0 x1 ha y2a ff2 fs7 fc0 sc0 ls1 ws1"> </div><div class="t m0 x1 ha y2b ff2 fs7 fc0 sc0 ls1 ws1"> </div><div class="t m0 x1 ha y2c ff2 fs7 fc0 sc0 ls1 ws1"> </div><div class="t m0 x1 ha y2d ff2 fs7 fc0 sc0 ls1 ws1"> </div><div class="t m0 x1 hb y2e ff3 fs8 fc0 sc0 ls1 ws1">Objetivos </div><div class="t m0 x1 hc y2f ff2 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x0 hc y30 ff5 fs0 fc0 sc0 ls1 ws2">\uf0b7<span class="ff6 ls4 ws1"> <span class="ff2 ls1">Entender os conceitos básicos do computador. </span></span></div><div class="t m0 x0 hc y31 ff5 fs0 fc0 sc0 ls1 ws2">\uf0b7<span class="ff6 ls4 ws1"> <span class="ff2 ls1">Familiarizar-se com os diferentes tipos de linguagens de prog<span class="_0 blank"></span>ramação.<span class="_1 blank"> </span> </span></span></div><div class="t m0 x0 hc y32 ff5 fs0 fc0 sc0 ls1 ws2">\uf0b7<span class="ff6 ls4 ws1"> <span class="ff2 ls1">Familiarizar-se com a história da linguagem de programação C. </span></span></div><div class="t m0 x0 hc y33 ff5 fs0 fc0 sc0 ls1 ws2">\uf0b7<span class="ff6 ls4 ws1"> <span class="ff2 ls1">Conhecer Biblioteca Padrão da linguag<span class="_0 blank"></span>em C (C Standard Library). </span></span></div><div class="t m0 x0 hc y34 ff5 fs0 fc0 sc0 ls1 ws2">\uf0b7<span class="ff6 ls4 ws1"> <span class="ff2 ls1">Entender o ambiente e desenvolvimento de programas C. </span></span></div><div class="t m0 x0 hc y35 ff5 fs0 fc0 sc0 ls1 ws2">\uf0b7<span class="ff6 ls4 ws1"> <span class="ff2 ls1">Compreender por que é apropriado aprender C no primeiro curso de<span class="_0 blank"></span> </span></span></div><div class="t m0 x7 hc y36 ff2 fs0 fc0 sc0 ls1 ws1">programação. </div><div class="t m0 x0 hc y37 ff5 fs0 fc0 sc0 ls1 ws2">\uf0b7<span class="ff6 ls4 ws1"> <span class="ff2 ls1">Compreender por que a linguagem C fornece uma base pa<span class="_0 blank"></span>ra estudos futuros </span></span></div><div class="t m0 x7 hc y38 ff2 fs0 fc0 sc0 ls1 ws1">de programação em geral e em par<span class="_0 blank"></span>ticular para o C++.<span class="_1 blank"> </span> </div><div class="t m0 x1 hc y39 ff2 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x1 hc y3a ff2 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x1 hc y3b ff2 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x1 hd y3c ff3 fs0 fc0 sc0 ls1 ws1">As coisas são sempre melhores no começo. </div><div class="t m0 x1 he y3d ff7 fs0 fc0 sc0 ls1 ws1">Blaise Pascal </div><div class="t m0 x1 hc y3e ff2 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x1 hd y3f ff3 fs0 fc0 sc0 ls1 ws1">Grandes pensamentos exigem<span class="_0 blank"></span> grandes linguagens.<span class="_1 blank"> </span> </div><div class="t m0 x1 he y40 ff7 fs0 fc0 sc0 ls1 ws1">Aristófanes </div><div class="t m0 x1 hc y41 ff2 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x1 hd y42 ff3 fs0 fc0 sc0 ls1 ws1">Nossa vida é desperdiçada em detalhes. Simplifique, simplifique. </div><div class="t m0 x1 he y43 ff7 fs0 fc0 sc0 ls1 ws1">Henry Thoreau </div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div> <div id="pf4" class="pf w2 hf" data-page-no="4"><div class="pc pc4 w2 hf"><div class="t m0 x8 h2 y44 ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h10 y45 ff2 fs9 fc0 sc0 ls1 ws1">Sumário </div><div class="t m0 x8 hc y46 ff2 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 hc y47 ff2 fs0 fc0 sc0 ls5 ws1"> <span class="ff3 ls1 ws3 v2">1.1</span><span class="ff8 ls6 v2"> </span><span class="ls1 v2">Introdução </span></div><div class="t m0 x9 hd y48 ff3 fs0 fc0 sc0 ls1 ws3">1.2<span class="ff8 ls6 ws1"> <span class="ff2 ls1">O que É um Computador? </span></span></div><div class="t m0 x9 hd y49 ff3 fs0 fc0 sc0 ls1 ws3">1.3<span class="ff8 ls6 ws1"> <span class="ff2 ls1">Organização dos Computadores </span></span></div><div class="t m0 x9 hd y4a ff3 fs0 fc0 sc0 ls1 ws3">1.4<span class="ff8 ls6 ws1"> <span class="ff2 ls1">Processamento em Lotes (Batch Processing), Multiprogramação e </span></span></div><div class="t m0 x9 hc y4b ff2 fs0 fc0 sc0 ls1 ws1">Tempo Compartilha do (Timesharing) </div><div class="t m0 x9 hd y4c ff3 fs0 fc0 sc0 ls1 ws3">1.5<span class="ff8 ls6 ws1"> <span class="ff2 ls1">Computação Pessoal, Computação Distribuída e Computação </span></span></div><div class="t m0 x9 hc y4d ff2 fs0 fc0 sc0 ls1 ws1">Cliente/Servidor </div><div class="t m0 x9 hd y4e ff3 fs0 fc0 sc0 ls1 ws3">1.6<span class="ff8 ls6 ws1"> <span class="ff2 ls1">Linguagens de Máquina, Linguagens Assembly e<span class="_0 blank"></span> Linguagens de Alto </span></span></div><div class="t m0 x9 hc y4f ff2 fs0 fc0 sc0 ls1 ws1">nível. </div><div class="t m0 x9 hd y50 ff3 fs0 fc0 sc0 ls1 ws3">1.7<span class="ff8 ls6 ws1"> <span class="ff2 ls1">A História do C </span></span></div><div class="t m0 x9 hd y51 ff3 fs0 fc0 sc0 ls1 ws3">1.8<span class="ff8 ls6 ws1"> <span class="ff2 ls1">A Biblioteca Padrão (Standard Library) do C </span></span></div><div class="t m0 x9 hd y52 ff3 fs0 fc0 sc0 ls1 ws3">1.9<span class="ff8 ls6 ws1"> <span class="ff2 ls1">Outras Linguagens de Alto Nível </span></span></div><div class="t m0 x9 hd y53 ff3 fs0 fc0 sc0 ls1 ws3">1.10<span class="ff8 ls6 ws1"> <span class="ff2 ls1">Programação Estruturada </span></span></div><div class="t m0 x9 hd y54 ff3 fs0 fc0 sc0 ls1 ws3">1.11<span class="ff8 ls6 ws1"> <span class="ff2 ls1">Os Fundamentos do Ambiente C </span></span></div><div class="t m0 x9 hd y55 ff3 fs0 fc0 sc0 ls1 ws3">1.12<span class="ff8 ls6 ws1"> <span class="ff2 ls1">Observações Gerais sobre o C e Este Livro </span></span></div><div class="t m0 x9 hd y56 ff3 fs0 fc0 sc0 ls1 ws3">1.13<span class="ff8 ls6 ws1"> <span class="ff2 ls1">Concurrent C </span></span></div><div class="t m0 x9 hd y57 ff3 fs0 fc0 sc0 ls1 ws3">1.14<span class="ff8 ls6 ws1"> <span class="ff2 ls1">Programação Orientada a Objetos e C+ + </span></span></div><div class="t m0 x8 hc y58 ff2 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 hc y59 ff2 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 hc y38 ff2 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 hc y39 ff2 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 hc y3a ff2 fs0 fc0 sc0 ls7 ws1"> <span class="ff7 ls1 v2">Resumo - Terminologia - Práticas Recomendáveis de Programação - Dicas de </span></div><div class="t m0 xa he y5a ff7 fs0 fc0 sc0 ls1 ws1">Portabilidade - Dicas de Performance - Exercícios de Revisão - Respostas dos </div><div class="t m0 xa he y5b ff7 fs0 fc0 sc0 ls1 ws1">Exercícios de Revisão - Exercícios - Leitura Recomendada </div><div class="t m0 x8 hc y3e ff2 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 y5c ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 y5d ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 y5e ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 y5f ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 y60 ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 y61 ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 y62 ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 y63 ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 y64 ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 y65 ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 y66 ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 y67 ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 y68 ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 y69 ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 y6a ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 y6b ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 y6c ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 y6d ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 y6e ff1 fs0 fc0 sc0 ls1 ws1"> </div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div> <div id="pf5" class="pf w2 hf" data-page-no="5"><div class="pc pc5 w2 hf"><div class="t m0 x8 h2 y44 ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 hb y6f ff3 fs8 fc0 sc0 ls1 ws4">1.1<span class="ff8 ls8 ws1"> </span><span class="ws1">Introdução<span class="_1 blank"> </span> </span></div><div class="t m0 x8 hd y70 ff3 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 hc y71 ff2 fs0 fc0 sc0 ls1 ws1"> <span class="_2 blank"> </span>Bem-vindo ao C! Trabalhamos muito duro para criar o que<span class="_0 blank"></span> sinceramente </div><div class="t m0 x8 hc y72 ff2 fs0 fc0 sc0 ls1 ws1">esperamos ser uma maneira instrutiva e diver<span class="_0 blank"></span>tida de aprendizado. O C é uma linguagem </div><div class="t m0 x8 hc y73 ff2 fs0 fc0 sc0 ls1 ws1">difícil, normalmente ensinada apenas para os programadores experientes, e, sendo </div><div class="t m0 x8 hc y74 ff2 fs0 fc0 sc0 ls1 ws1">assim, este livro não tem similar entre os livros-texto de C: </div><div class="t m0 x8 hc y75 ff2 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 hc y76 ff2 fs0 fc0 sc0 ls1 ws1"> <span class="_2 blank"> </span>Este livro é aconselhável para pessoas interessadas em aspectos técnicos e com </div><div class="t m0 x8 hc y77 ff2 fs0 fc0 sc0 ls1 ws1">pouca ou nenhuma experiência de programação. </div><div class="t m0 x8 hc y78 ff2 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 hc y79 ff2 fs0 fc0 sc0 ls1 ws1"> <span class="_2 blank"> </span>Este livro também é aconselhável para programadores experientes que<span class="_0 blank"></span> desejam </div><div class="t m0 x8 hc y7a ff2 fs0 fc0 sc0 ls1 ws1">um tratamento profundo e rigoroso da linguage<span class="_0 blank"></span>m.<span class="_1 blank"> </span> </div><div class="t m0 x8 hc y7b ff2 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 hc y7c ff2 fs0 fc0 sc0 ls1 ws1"> <span class="_2 blank"> </span>Como um livro pode despertar o interesse de ambos os grupos? A resposta é que </div><div class="t m0 x8 hc y7d ff2 fs0 fc0 sc0 ls1 ws1">o tema central do livro coloca em destaque a obtenção de <span class="ff7">clareza </span>nos programas através </div><div class="t m0 x8 hc y7e ff2 fs0 fc0 sc0 ls1 ws1">de técnicas comprovadas de programação estruturada. Quem não é programador </div><div class="t m0 x8 hc y7f ff2 fs0 fc0 sc0 ls1 ws1">aprenderá a programar "certo"<span class="_0 blank"></span> desde o início. Tentamos escrever de uma m<span class="_1 blank"> </span>aneira clara </div><div class="t m0 x8 hc y80 ff2 fs0 fc0 sc0 ls1 ws1">e simples. O livro contém muitas ilustrações. Talvez o aspecto mais importante se<span class="_0 blank"></span>ja o </div><div class="t m0 x8 hc y81 ff2 fs0 fc0 sc0 ls1 ws1">de que o livro apresenta um gra<span class="_0 blank"></span>nde número de programas práticos em C e mostra as </div><div class="t m0 x8 hc y82 ff2 fs0 fc0 sc0 ls1 ws1">saídas produzidas quando eles forem executados em um computador. </div><div class="t m0 x8 hc y83 ff2 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 hc y84 ff2 fs0 fc0 sc0 ls1 ws1"> <span class="_2 blank"> </span>Os quatro primeiros capítulos apresentam os fundamentos da computaçã<span class="_0 blank"></span>o, da </div><div class="t m0 x8 hc y85 ff2 fs0 fc0 sc0 ls1 ws1">programação de computadores e da linguagem de programação C. As análises estão </div><div class="t m0 x8 hc y86 ff2 fs0 fc0 sc0 ls1 ws1">inseridas em uma introdução à programação de computadores usando um método </div><div class="t m0 x8 hc y87 ff2 fs0 fc0 sc0 ls1 ws1">estruturado. Os principiantes em progra<span class="_0 blank"></span>mação que fizeram nossos cursos nos </div><div class="t m0 x8 hc y88 ff2 fs0 fc0 sc0 ls1 ws1">informaram que o material desses capítulos apresenta uma base sólida para as técnicas </div><div class="t m0 x8 hc y89 ff2 fs0 fc0 sc0 ls1 ws1">mais avançadas da linguagem C. Normalmente os programadores experientes lêem </div><div class="t m0 x8 hc y8a ff2 fs0 fc0 sc0 ls1 ws1">rapidamente os quatro primeiros capítulos e então descobrem que o modo com o qual o </div><div class="t m0 x8 hc y8b ff2 fs0 fc0 sc0 ls1 ws1">assunto é tratado no Capítulo 5 é rigoroso e fascinante. Eles gostam pa<span class="_0 blank"></span>rticularmente da </div><div class="t m0 x8 hc y8c ff2 fs0 fc0 sc0 ls1 ws1">maneira detalhada como são analisados os ponteiros, strings, arquivos e estruturas de </div><div class="t m0 x8 hc y8d ff2 fs0 fc0 sc0 ls1 ws1">dados nos capítulos que se seguem. </div><div class="t m0 x8 hc y8e ff2 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 hc y8f ff2 fs0 fc0 sc0 ls1 ws1"> <span class="_2 blank"> </span>Muitos programadores experientes nos disseram que aprova<span class="_0 blank"></span>m nosso modo de </div><div class="t m0 x8 hc y90 ff2 fs0 fc0 sc0 ls1 ws1">apresentar a programação estruturada. Freqüentemente eles c<span class="_0 blank"></span>ostumam programar em </div><div class="t m0 x8 hc y91 ff2 fs0 fc0 sc0 ls1 ws1">uma linguagem estruturada como o Pascal, mas, por nunca<span class="_0 blank"></span> terem sido apre<span class="_1 blank"> </span>sentados </div><div class="t m0 x8 hc y92 ff2 fs0 fc0 sc0 ls1 ws1">formalmente à programação estruturada, não escrevem o melhor c<span class="_0 blank"></span>ódigo possível. À </div><div class="t m0 x8 hc y93 ff2 fs0 fc0 sc0 ls1 ws1">medida que aprenderem C com este livro, eles poderão aprimorar seu estilo de </div><div class="t m0 x8 hc y94 ff2 fs0 fc0 sc0 ls1 ws1">programação. Dessa forma, quer você seja um principiante, quer se<span class="_0 blank"></span>ja um programador </div><div class="t m0 x8 hc y95 ff2 fs0 fc0 sc0 ls1 ws1">experiente, há muito aqui para infor<span class="_0 blank"></span>má-lo, diverti-l<span class="_1 blank"> </span>o e estimulá-lo. </div><div class="t m0 x8 hc y96 ff2 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 hc y97 ff2 fs0 fc0 sc0 ls1 ws1"> <span class="_2 blank"> </span>A maioria das pessoas está familiarizada com as coisas excitantes que os </div><div class="t m0 x8 hc y98 ff2 fs0 fc0 sc0 ls1 ws1">computadores fazem. Neste curso, você aprenderá a mandar os computa<span class="_0 blank"></span>dores fazerem </div><div class="t m0 x8 hc y99 ff2 fs0 fc0 sc0 ls1 ws1">essas coisas. É o <span class="ff7">software </span>(i.e., as instruções escritas para mandar o c<span class="_0 blank"></span>omputador realizar </div><div class="t m0 x8 hc y9a ff2 fs0 fc0 sc0 ls1 ws1">ações e tomar decisões) que controla os computadores (c<span class="_0 blank"></span>ha<span class="_1 blank"> </span>mados freqüentemente de </div><div class="t m0 x8 hc y9b ff7 fs0 fc0 sc0 ls1 ws1">hardware), <span class="ff2">e uma das linguagens de desenvolvimento de software mais populares </span></div><div class="t m0 x8 hc y9c ff2 fs0 fc0 sc0 ls1 ws1">atualmente é o C. Este texto fornece uma introdução à programação em ANSI<span class="_0 blank"></span> C, a </div><div class="t m0 x8 hc y9d ff2 fs0 fc0 sc0 ls1 ws1">versão padronizada em 1989 tanto nos EUA, através do American National Standards </div><div class="t m0 x8 hc y9e ff2 fs0 fc0 sc0 ls1 ws1">Institute (ANSI), como em todo o mundo, através da International Standards </div><div class="t m0 x8 hc y9f ff2 fs0 fc0 sc0 ls1 ws1">Organization (I<span class="_0 blank"></span>SO).<span class="_1 blank"> </span> </div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div> <div id="pf6" class="pf w2 hf" data-page-no="6"><div class="pc pc6 w2 hf"><div class="t m0 x8 h2 y44 ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 hc ya0 ff2 fs0 fc0 sc0 ls1 ws1"> <span class="_2 blank"> </span>O uso de computadores está aumentando em quase todos os campos de trabalho. </div><div class="t m0 x8 hc ya1 ff2 fs0 fc0 sc0 ls1 ws1">Em uma era na qual os custos crescem constantemente, os custos com a computaçã<span class="_0 blank"></span>o </div><div class="t m0 x8 hc ya2 ff2 fs0 fc0 sc0 ls1 ws1">diminuíram drasticamente devido aos excitantes desenvolvimentos em tecnologia de </div><div class="t m0 x8 hc ya3 ff2 fs0 fc0 sc0 ls1 ws1">software e hardware. Os computadores que podem ter ocupado salas enormes e custado </div><div class="t m0 x8 hc ya4 ff2 fs0 fc0 sc0 ls1 ws1">milhões de dólares 25 anos atrás agora podem estar gra<span class="_0 blank"></span>vados na su<span class="_1 blank"> </span>perfície de chips de </div><div class="t m0 x8 hc ya5 ff2 fs0 fc0 sc0 ls1 ws1">silício menores do que uma unha e que talvez custem alguns dólares cada. I<span class="_0 blank"></span>ronica<span class="_1 blank"> </span>mente, </div><div class="t m0 x8 hc ya6 ff2 fs0 fc0 sc0 ls1 ws1">o silício é um dos materiais mais abundantes na Terra<span class="_0 blank"></span> <span class="ff4 ws2">\u2014</span> ele é um componente da areia </div><div class="t m0 x8 hc ya7 ff2 fs0 fc0 sc0 ls1 ws1">comum. A tecnologia do chip de silício tornou a computação tão econômica que </div><div class="t m0 x8 hc ya8 ff2 fs0 fc0 sc0 ls1 ws1">aproximadamente 150 milhões de computadores de uso gera<span class="_0 blank"></span>l estão sendo empregados </div><div class="t m0 x8 hc ya9 ff2 fs0 fc0 sc0 ls1 ws1">em todo o mundo, ajudando as pessoas no comércio, indústria, governo e em suas vidas </div><div class="t m0 x8 hc yaa ff2 fs0 fc0 sc0 ls1 ws1">particulares. Este número pode dobrar fac<span class="_0 blank"></span>ilmente em alguns anos.<span class="_1 blank"> </span> </div><div class="t m0 x8 hc yab ff2 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 hc yac ff2 fs0 fc0 sc0 ls1 ws1"> <span class="_2 blank"> </span>A linguagem C pode ser ensinada em um primeiro curso de programaçã<span class="_0 blank"></span>o, o </div><div class="t m0 x8 hc yad ff2 fs0 fc0 sc0 ls1 ws1">público pretendido por este livro? Pensamos que sim. Dois anos atrás, aceitamos este </div><div class="t m0 x8 hc yae ff2 fs0 fc0 sc0 ls1 ws1">desafio quando o Pascal estava solida mente estabelecido como a linguagem dos </div><div class="t m0 x8 hc yaf ff2 fs0 fc0 sc0 ls1 ws1">primeiros cursos de ciência da computação. Escrevemos <span class="ff7">Como Programar em C, </span><span class="ls9">a </span></div><div class="t m0 x8 hc yb0 ff2 fs0 fc0 sc0 ls1 ws1">primeira edição deste livro. Centenas de univer<span class="_0 blank"></span>sidades em todo o mundo usaram <span class="ff7">Como </span></div><div class="t m0 x8 hc yb1 ff7 fs0 fc0 sc0 ls1 ws1">Programar em C. <span class="ff2">Cursos baseados nesse livro se provaram tão eficientes quanto seus </span></div><div class="t m0 x8 hc yb2 ff2 fs0 fc0 sc0 ls1 ws1">predecessores baseados no Pascal. Não foram observada<span class="_0 blank"></span>s diferenças significativas, </div><div class="t m0 x8 hc yb3 ff2 fs0 fc0 sc0 ls1 ws1">exceto que os alunos estavam mais motivados por saberem que era mais provável usar o </div><div class="t m0 x8 hc yb4 ff2 fs0 fc0 sc0 ls1 ws1">C do que o Pascal em seus cursos mais avançados e em suas carreiras. Os alunos que </div><div class="t m0 x8 hc yb5 ff2 fs0 fc0 sc0 ls1 ws1">aprendem o C também sabem que estarão mais preparados para aprender o C+ + mais </div><div class="t m0 x8 hc yb6 ff2 fs0 fc0 sc0 ls1 ws1">rapidamente. O C+ + é um superconjunto da ling<span class="_0 blank"></span>uagem C que se destina aos </div><div class="t m0 x8 hc yb7 ff2 fs0 fc0 sc0 ls1 ws1">programadores que desejam escrever programas orientados a objetos. Falaremos mais </div><div class="t m0 x8 hc yb8 ff2 fs0 fc0 sc0 ls1 ws1">sobre o C++ na Seção 1.14. </div><div class="t m0 x8 hc yb9 ff2 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 hc yba ff2 fs0 fc0 sc0 ls1 ws1"> <span class="_2 blank"> </span>Na realidade, o C + + está recebendo tanto interesse que incluímos uma </div><div class="t m0 x8 hc ybb ff2 fs0 fc0 sc0 ls1 ws1">introdução detalhada ao C+ + e programação orientada a<span class="_0 blank"></span> objetos. Um fenômeno </div><div class="t m0 x8 hc ybc ff2 fs0 fc0 sc0 ls1 ws1">interessante que ocorre no campo das linguagens de programação é que atualmente </div><div class="t m0 x8 hc ybd ff2 fs0 fc0 sc0 ls1 ws1">muitos dos revendedores principais simplesmente comer<span class="_0 blank"></span>cializam um produto que </div><div class="t m0 x8 hc ybe ff2 fs0 fc0 sc0 ls1 ws1">combina C/C++, em vez de oferecer pr<span class="_0 blank"></span>odutos separados. Isto dá aos usuários a </div><div class="t m0 x8 hc ybf ff2 fs0 fc0 sc0 ls1 ws1">capacidade de continuar programando em C se desejarem e depois migrarem </div><div class="t m0 x8 hc yc0 ff2 fs0 fc0 sc0 lsa ws5">gr<span class="ls1 ws1">adualmente para o C ++ quando acharem apropriado. </span></div><div class="t m0 x8 hc yc1 ff2 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 hc yc2 ff2 fs0 fc0 sc0 ls1 ws1"> <span class="_2 blank"> </span>Agora você já sabe de tudo! Você está prestes a iniciar uma jornada fascinante e </div><div class="t m0 x8 hc yc3 ff2 fs0 fc0 sc0 ls1 ws1">gratificadora. À medida que for e<span class="_0 blank"></span>m frente, se você desejar entrar em contato conosco, </div><div class="t m0 x8 hd yc4 ff2 fs0 fc0 sc0 ls1 ws1">envie-nos um e-mail para <span class="ff3">deitel@world.std.com </span>pela Internet. Envidaremos todos os </div><div class="t m0 x8 hc yc5 ff2 fs0 fc0 sc0 ls1 ws1">esforços para oferecer uma resposta rápida. Boa sorte! </div><div class="t m0 x8 hc yc6 ff2 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 hc yc7 ff2 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 yc8 ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 yc9 ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 yca ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 ycb ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 ycc ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 ycd ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 yce ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 ycf ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 yd0 ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 yd1 ff1 fs0 fc0 sc0 ls1 ws1"> </div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div> <div id="pf7" class="pf w2 hf" data-page-no="7"><div class="pc pc7 w2 hf"><div class="t m0 x8 h2 y44 ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 hb y6f ff3 fs8 fc0 sc0 ls1 ws1">1.2 O que É um Co<span class="_1 blank"> </span>mputador?<span class="_1 blank"> </span> </div><div class="t m0 x8 ha yd2 ff2 fs7 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 ha yd3 ff2 fs7 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 ha yd4 ff2 fs7 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 hc yd5 ff2 fs7 fc0 sc0 lsb ws1"> <span class="fs0 ls1"> <span class="_3 blank"> </span>Um <span class="ff7">computador </span>é um dispositivo capaz de realizar cálculos e tomar dec<span class="_0 blank"></span>isões </span></div><div class="t m0 x8 hc yd6 ff2 fs0 fc0 sc0 ls1 ws1">lógicas com uma velocidade milhões ou mesmo bilhões de vezes mais rápida do que os </div><div class="t m0 x8 hc yd7 ff2 fs0 fc0 sc0 ls1 ws1">seres humanos. Por exemplo, muitos dos computadores pessoais de hoje podem realizar </div><div class="t m0 x8 hc yd8 ff2 fs0 fc0 sc0 ls1 ws1">dezenas de milhões de operações aritméticas por segundo. Uma pessoa utilizando uma </div><div class="t m0 x8 hc yd9 ff2 fs0 fc0 sc0 ls1 ws1">calculadora de mesa poderia levar décadas para realizar o mesmo número de operaçõe<span class="_0 blank"></span>s </div><div class="t m0 x8 hc yda ff2 fs0 fc0 sc0 ls1 ws1">que um poderoso computador pessoal pode realizar em segundos. (Aspectos para </div><div class="t m0 x8 hc ydb ff2 fs0 fc0 sc0 ls1 ws1">reflexão: Como você saberia se a pessoa fez as operações corretamente? Como você </div><div class="t m0 x8 hc ydc ff2 fs0 fc0 sc0 ls1 ws1">saberia se o computador fez as operações corretamente?) Os mais rápidos </div><div class="t m0 x8 hc ydd ff7 fs0 fc0 sc0 ls1 ws1">supercomputadores <span class="ff2">de hoje podem realizar centenas de bilhões de opera<span class="_0 blank"></span>ções por </span></div><div class="t m0 x8 hc yde ff2 fs0 fc0 sc0 ls1 ws1">segundo <span class="ff4 ws2">\u2014</span> quase tantas operações quanto centenas de pessoas poderiam realizar e<span class="_0 blank"></span>m um </div><div class="t m0 x8 hc ydf ff2 fs0 fc0 sc0 ls1 ws1">ano! E os computadores que permitem trilhões de instruções por segundo já se </div><div class="t m0 x8 hc ye0 ff2 fs0 fc0 sc0 ls1 ws1">encontram em funcionamento em laboratórios de pesquisa. </div><div class="t m0 x8 hc ye1 ff2 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 hc ye2 ff2 fs0 fc0 sc0 ls1 ws1"> <span class="_2 blank"> </span>Os computadores processam <span class="ff7">dados </span>sob o controle de conjuntos de instruções </div><div class="t m0 x8 hc ye3 ff2 fs0 fc0 sc0 ls1 ws1">chamados <span class="ff7">programas de computador. </span>Estes programas conduzem o computador através </div><div class="t m0 x8 hc ye4 ff2 fs0 fc0 sc0 ls1 ws1">de um conjunto ordenado de ações especificado por pessoas chamadas <span class="ff7">programadores </span></div><div class="t m0 x8 he ye5 ff7 fs0 fc0 sc0 ls1 ws1">de computador. </div><div class="t m0 x8 hc ye6 ff2 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 hc ye7 ff2 fs0 fc0 sc0 ls1 ws1"> <span class="_2 blank"> </span>Os vários dispositivos (como teclado, tela, discos, memória e unidade<span class="_0 blank"></span>s de </div><div class="t m0 x8 hc ye8 ff2 fs0 fc0 sc0 ls1 ws1">processamento) que constituem um sistema computacional são c<span class="_0 blank"></span>hamados de <span class="ff7">hardw<span class="_1 blank"> </span>are. </span></div><div class="t m0 x8 hc ye9 ff2 fs0 fc0 sc0 ls1 ws1">Os programas executados em um computador são chamados de <span class="ff7">software. </span>O custo do </div><div class="t m0 x8 hc yea ff2 fs0 fc0 sc0 ls1 ws1">hardware diminuiu drasticamente nos últimos anos, chegando ao ponto de os </div><div class="t m0 x8 hc yeb ff2 fs0 fc0 sc0 ls1 ws1">computadores pessoais se tornarem uma utilidade. I<span class="_0 blank"></span>nfelizmente, o custo do desen-</div><div class="t m0 x8 hc yec ff2 fs0 fc0 sc0 ls1 ws1">volvimento de software tem crescido constantemente, à medida que<span class="_0 blank"></span> os pro<span class="_1 blank"> </span>gramadores </div><div class="t m0 x8 hc yed ff2 fs0 fc0 sc0 ls1 ws1">desenvolvem aplicações cada vez mais poderosas e complexas, sem serem capa<span class="_0 blank"></span>zes de </div><div class="t m0 x8 hc yee ff2 fs0 fc0 sc0 ls1 ws1">fazer as melhorias correspondentes na tecnologia necessária para esse desenvolvimento. </div><div class="t m0 x8 hc yef ff2 fs0 fc0 sc0 ls1 ws1">Neste livro você aprenderá métodos de desenvolvimento de software que podem reduzir </div><div class="t m0 x8 hc yf0 ff2 fs0 fc0 sc0 ls1 ws1">substancialmente seus custos e acelerar o proce<span class="_0 blank"></span>sso de desenvolvimento de aplicações </div><div class="t m0 x8 hc yf1 ff2 fs0 fc0 sc0 ls1 ws1">poderosas e de alto nível. Estes métodos incluem <span class="ff7">programação estruturada, </span></div><div class="t m0 x8 hc yf2 ff7 fs0 fc0 sc0 ls1 ws1">refinamento passo a passo top-down {descendente), funcionalização <span class="ff2">e, finalmente, </span><span class="ws3">pro-</span></div><div class="t m0 x8 he yf3 ff7 fs0 fc0 sc0 ls1 ws1">gramação orientada a objetos. </div><div class="t m0 x8 hc yf4 ff2 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 yf5 ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 yf6 ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 yf7 ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 yf8 ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 yf9 ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 yfa ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 yfb ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 yfc ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 yfd ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 y6 ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 yfe ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 yff ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 y100 ff1 fs0 fc0 sc0 ls1 ws1"> </div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div> <div id="pf8" class="pf w2 hf" data-page-no="8"><div class="pc pc8 w2 hf"><div class="t m0 x8 h2 y44 ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 hb y6f ff3 fs8 fc0 sc0 ls1 ws1">1.3 Organização dos Co<span class="_1 blank"> </span>mputadores<span class="_1 blank"> </span> </div><div class="t m0 x8 hc y101 ff2 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 hc y71 ff2 fs0 fc0 sc0 ls1 ws1">Independentemente das diferenças no a<span class="_0 blank"></span>specto físico, praticamente todos os </div><div class="t m0 x8 hc y72 ff2 fs0 fc0 sc0 ls1 ws1">computadores podem ser considerados como divididos em seis <span class="ff7">unidades lógicas </span>ou </div><div class="t m0 x8 hc y73 ff2 fs0 fc0 sc0 ls1 ws1">seções. São elas: </div><div class="t m0 x8 hc y74 ff2 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 hc y75 ff2 fs0 fc0 sc0 ls1 ws3">1.<span class="ff6 ws1"> <span class="_4 blank"></span><span class="ff9">Unidade de entrada (input unit).<span class="ff7"> <span class="ff2">Esta é a seção de "recepção" do computador. Ela </span></span></span></span></div><div class="t m0 x8 hc y76 ff2 fs0 fc0 sc0 ls1 ws1">obtém as informações (dados e programas de computador) dos vários <span class="ff7">dispositivos de </span></div><div class="t m0 x8 hc y77 ff7 fs0 fc0 sc0 ls1 ws1">entrada (input devices) <span class="ff2">e as coloca à disposição de outras unidades para que possam ser </span></div><div class="t m0 x8 hc y78 ff2 fs0 fc0 sc0 ls1 ws1">processadas. A maior parte das informações é fornecida aos computadores atualmente </div><div class="t m0 x8 hc y79 ff2 fs0 fc0 sc0 ls1 ws1">através de teclados como os de máquinas de e<span class="_0 blank"></span>screver.<span class="_1 blank"> </span> </div><div class="t m0 x8 hc y7a ff2 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 hc y7b ff7 fs0 fc0 sc0 ls1 ws3">2.<span class="ffa ws1"> <span class="_4 blank"></span><span class="ff9">Unidade de saída (output unit).<span class="ff7"> <span class="ff2">Esta é a seção de "expedição" do c<span class="_0 blank"></span>omputador. Ela </span></span></span></span></div><div class="t m0 x8 hc y7c ff2 fs0 fc0 sc0 ls1 ws1">leva as informações que foram processadas pelo computador e as envia aos vários </div><div class="t m0 x8 hc y7d ff7 fs0 fc0 sc0 ls1 ws1">dispositivos de saída (output devices) <span class="ff2">para torná-las disponíveis para o uso no ambiente </span></div><div class="t m0 x8 hc y7e ff2 fs0 fc0 sc0 ls1 ws1">externo ao computador. A maioria das informações é fornecida pelo computador através </div><div class="t m0 x8 hc y7f ff2 fs0 fc0 sc0 ls1 ws1">de exibição na tela ou impressão e<span class="_0 blank"></span>m papel.<span class="_1 blank"> </span><span class="ff7"> </span></div><div class="t m0 x8 he y80 ff7 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 hc y81 ff2 fs0 fc0 sc0 ls1 ws3">3.<span class="ff6 ws1"> <span class="_4 blank"></span><span class="ff9">Unidade de memória (memory unit).<span class="ff7"> <span class="ff2">Este é a seção de "armazenamento"<span class="_0 blank"></span> do </span></span></span></span></div><div class="t m0 x8 hc y82 ff2 fs0 fc0 sc0 ls1 ws1">computador, com acesso rápido e capacidade relativamente baixa. Ela conserva as </div><div class="t m0 x8 hc y83 ff2 fs0 fc0 sc0 ls1 ws1">informações que foram fornecidas através da unidade de entrada para que possam estar </div><div class="t m0 x8 hc y84 ff2 fs0 fc0 sc0 ls1 ws1">imediatamente disponíveis para o processamento quando se fizer necessário. A unidade </div><div class="t m0 x8 hc y85 ff2 fs0 fc0 sc0 ls1 ws1">de memória também conserva as informações que já fora<span class="_0 blank"></span>m processadas até que sejam </div><div class="t m0 x8 hc y86 ff2 fs0 fc0 sc0 ls1 ws1">enviadas para os dispositivos de saída pela unidade de saída<span class="_0 blank"></span>. Freqüentemente a unidade </div><div class="t m0 x8 hc y87 ff2 fs0 fc0 sc0 ls1 ws1">de memória é chamada de <span class="ff7">memória (memory), memória principal </span>ou <span class="ff7">memória primária </span></div><div class="t m0 x8 hc y88 ff7 fs0 fc0 sc0 ls1 ws1">(primary memory).<span class="ff2"> </span></div><div class="t m0 x8 hc y89 ff2 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 hc y8a ff2 fs0 fc0 sc0 ls1 ws3">4.<span class="ff6 ws1"> <span class="_4 blank"></span><span class="ff9">Unidade aritmética e lógica (arithmetic and logic unit, ALU).<span class="ff7"> <span class="ff2">Esta é a seção de </span></span></span></span></div><div class="t m0 x8 hc y8b ff2 fs0 fc0 sc0 ls1 ws1">"fabricação" do computador. Ela é a<span class="_0 blank"></span> responsável pela realização dos cálculos como </div><div class="t m0 x8 hc y8c ff2 fs0 fc0 sc0 ls1 ws1">adição, subtração, multiplicação e divisão. Ela contém os mecanismos de decisão que </div><div class="t m0 x8 hc y8d ff2 fs0 fc0 sc0 ls1 ws1">permitem ao computador, por exemplo, comparar dois itens da unidade de<span class="_0 blank"></span> memória </div><div class="t m0 x8 hc y8e ff2 fs0 fc0 sc0 ls1 ws1">para determinar se são iguais ou não. </div><div class="t m0 x8 hc y8f ff2 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 hc y90 ff2 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 hc y91 ff2 fs0 fc0 sc0 ls1 ws3">5.<span class="ff6 ws1"> <span class="_4 blank"></span><span class="ff9">Unidade central de processamento, UCP (central processing unit, CPU).<span class="ff7"> <span class="ff2">Esta é a </span></span></span></span></div><div class="t m0 x8 hc y92 ff2 fs0 fc0 sc0 ls1 ws1">seção "administrativa" do computador. Ela é o coordenador do computador e o </div><div class="t m0 x8 hc y93 ff2 fs0 fc0 sc0 ls1 ws1">responsável pela supervisão do funcionamento das outras seções. A CPU informa à </div><div class="t m0 x8 hc y94 ff2 fs0 fc0 sc0 ls1 ws1">unidade de entrada quando as informações devem ser lidas na unidade de memória, </div><div class="t m0 x8 hc y95 ff2 fs0 fc0 sc0 ls1 ws1">informa à ALU quando as informações da unidade de memória de<span class="_0 blank"></span>vem ser utiliz<span class="_1 blank"> </span>adas em </div><div class="t m0 x8 hc y96 ff2 fs0 fc0 sc0 ls1 ws1">cálculos e informa à unidade de saída quando as informações devem ser enviadas da </div><div class="t m0 x8 hc y97 ff2 fs0 fc0 sc0 ls1 ws1">unidade de memória para determinados dispositivos de saída. </div><div class="t m0 x8 hc y98 ff2 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 hc y99 ff2 fs0 fc0 sc0 ls1 ws3">6.<span class="ff6 ws1"> <span class="_4 blank"></span><span class="ff9">Unidade de memória secundária (secondary storage unit).<span class="ff7"> <span class="ff2">Esta é a seção de </span></span></span></span></div><div class="t m0 x8 hc y9a ff2 fs0 fc0 sc0 ls1 ws1">"armazenamento" de alta capacidade<span class="_0 blank"></span> e de longo prazo do computador. Os programas ou </div><div class="t m0 x8 hc y9b ff2 fs0 fc0 sc0 ls1 ws1">dados que não estiverem sendo usados ativamente por outras unidade<span class="_0 blank"></span>s são colocados </div><div class="t m0 x8 hc y9c ff2 fs0 fc0 sc0 ls1 ws1">normalmente em dispositivos de memória secundária (como discos) até que sejam outra </div><div class="t m0 x8 hc y9d ff2 fs0 fc0 sc0 ls1 ws1">vez necessários, possivelmente horas, dias, meses ou até mesmo anos mais tarde. </div><div class="t m0 x8 hc y9e ff2 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 y102 ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 y103 ff1 fs0 fc0 sc0 ls1 ws1"> </div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div> <div id="pf9" class="pf w2 hf" data-page-no="9"><div class="pc pc9 w2 hf"><div class="t m0 x8 h2 y44 ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 hb y6f ff3 fs8 fc0 sc0 ls1 ws1">1.4 Processa<span class="_1 blank"> </span>mento em Lotes (Batch Processing)<span class="_1 blank"> </span>, </div><div class="t m0 x8 hb y104 ff3 fs8 fc0 sc0 ls1 ws1">Multiprogra<span class="_1 blank"> </span>mação e Tempo Compartilhado<span class="_1 blank"> </span> (Timesharing)<span class="_1 blank"> </span> </div><div class="t m0 x8 hc y105 ff2 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 hc y106 ff2 fs0 fc0 sc0 ls1 ws1"> <span class="_2 blank"> </span> </div><div class="t m0 x8 hc y107 ff2 fs0 fc0 sc0 ls1 ws1"> <span class="_2 blank"> </span>Os primeiros computadores eram capazes de realizar apenas um traba<span class="_0 blank"></span>lho ou </div><div class="t m0 x8 hc y108 ff2 fs0 fc0 sc0 ls1 ws1">tarefa de cada vez. Esta forma de f<span class="_0 blank"></span>uncionamento de computadores é chamada </div><div class="t m0 x8 hc y109 ff2 fs0 fc0 sc0 ls1 ws1">freqüentemente de processamento em lotes de usuário único. O computador executa um </div><div class="t m0 x8 hc y10a ff2 fs0 fc0 sc0 ls1 ws1">único programa de cada vez enquanto processa dados em gru¬pos ou lotes (batches). </div><div class="t m0 x8 hc y10b ff2 fs0 fc0 sc0 ls1 ws1">Nesses primeiros sistemas, geralmente os usuários enviavam suas tarefas ao centro </div><div class="t m0 x8 hc y10c ff2 fs0 fc0 sc0 ls1 ws1">computacional em pilhas de cartões perfurados. Freqüentemente os usuários precisava<span class="_0 blank"></span>m </div><div class="t m0 x8 hc y10d ff2 fs0 fc0 sc0 ls1 ws1">esperar horas antes que as saídas impressas fossem levadas para seus locais de trabalho. </div><div class="t m0 x8 hc y10e ff2 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 hc y10f ff2 fs0 fc0 sc0 ls1 ws1"> <span class="_2 blank"> </span>À medida que os computadores se tornaram mais poderosos, tornou-se evidente </div><div class="t m0 x8 hc y110 ff2 fs0 fc0 sc0 ls1 ws1">que o processamen¬to em lotes de usuário único raramente utilizava com eficiê<span class="_0 blank"></span>ncia os </div><div class="t m0 x8 hc y111 ff2 fs0 fc0 sc0 ls1 ws1">recursos do computador. Em vez disso, imaginava-se que muitos trabalhos ou tarefas </div><div class="t m0 x8 hc y112 ff2 fs0 fc0 sc0 ls1 ws1">poderiam ser executados de modo a compartilhar os re¬cursos do computador e assim </div><div class="t m0 x8 hc y113 ff2 fs0 fc0 sc0 ls1 ws1">conseguir utilizá-lo melhor. Isto é chamado multiprogramação. A multiprogramação </div><div class="t m0 x8 hc y114 ff2 fs0 fc0 sc0 ls1 ws1">envolve as "operações" simultâneas de muitas tarefas do c<span class="_0 blank"></span>omputador <span class="ff4 ws2">\u2014</span> o c<span class="_1 blank"> </span>omputa¬dor </div><div class="t m0 x8 hc y115 ff2 fs0 fc0 sc0 ls1 ws1">compartilha seus recursos entre as tarefas que exige<span class="_0 blank"></span>m sua atenção. Com os primeiros </div><div class="t m0 x8 hc y116 ff2 fs0 fc0 sc0 ls1 ws1">sistemas de multiprogramação, os usuários ainda enviavam seus pr<span class="_0 blank"></span>ogramas em pilhas </div><div class="t m0 x8 hc y117 ff2 fs0 fc0 sc0 ls1 ws1">de cartões perfurados e espe¬ravam horas ou dias para<span class="_0 blank"></span> obter os resultados.<span class="_1 blank"> </span> </div><div class="t m0 x8 hc y118 ff2 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 hc y119 ff2 fs0 fc0 sc0 ls1 ws1"> <span class="_2 blank"> </span>Nos anos 60, vários grupos de indústrias e universidades foram pioneiros na </div><div class="t m0 x8 hc y11a ff2 fs0 fc0 sc0 ls1 ws1">utilização do conceito de timesharing (<span class="_0 blank"></span>tempo compartilhado). Timesharing é um caso </div><div class="t m0 x8 hc y11b ff2 fs0 fc0 sc0 ls1 ws1">especial de multiprogramaçã<span class="_0 blank"></span>o no qual os usuários podem ter acesso ao computador </div><div class="t m0 x8 hc y11c ff2 fs0 fc0 sc0 ls1 ws1">através de dispositivos de entra<span class="_0 blank"></span>da/saída ou terminais. Em um sist<span class="_1 blank"> </span>ema computacional </div><div class="t m0 x8 hc y11d ff2 fs0 fc0 sc0 ls1 ws1">típico de timesharing, pode haver dezenas de u<span class="_0 blank"></span>suários compartilhando o computador ao </div><div class="t m0 x8 hc y11e ff2 fs0 fc0 sc0 ls1 ws1">mesmo tempo. Na realidade o computador não atende a<span class="_0 blank"></span> todos os usuários </div><div class="t m0 x8 hc y11f ff2 fs0 fc0 sc0 ls1 ws1">simultanea¬mente. Em vez disso, ele executa uma pequena parte da tarefa de um </div><div class="t m0 x8 hc y120 ff2 fs0 fc0 sc0 ls1 ws1">usuário e então passa a fazer a tarefa do próximo usuário. O computador faz isto tão </div><div class="t m0 x8 hc y121 ff2 fs0 fc0 sc0 ls1 ws1">rapidamente que pode executar o serviço de<span class="_0 blank"></span> cada usuário várias vezes por segundo. </div><div class="t m0 x8 hc y122 ff2 fs0 fc0 sc0 ls1 ws1">Assim, parece que as tarefas dos usuários estão sendo executadas simultaneamente. </div><div class="t m0 x8 h2 y123 ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 yf3 ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 y124 ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 y125 ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 y126 ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 y127 ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 y128 ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 y129 ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 y12a ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 y12b ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 y12c ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 y12d ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 y12e ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 y12f ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 y130 ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 y131 ff1 fs0 fc0 sc0 ls1 ws1"> </div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div> <div id="pfa" class="pf w2 hf" data-page-no="a"><div class="pc pca w2 hf"><div class="t m0 x8 h2 y44 ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 hb y6f ff3 fs8 fc0 sc0 ls1 ws1">1.5 Computação Pesso<span class="_1 blank"> </span>al, Computação Distribuída e<span class="_1 blank"> </span> </div><div class="t m0 x8 hb y104 ff3 fs8 fc0 sc0 ls1 ws1">Computação Cliente/Servido<span class="_1 blank"> </span>r </div><div class="t m0 x8 hc y105 ff2 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 hc y106 ff2 fs0 fc0 sc0 ls1 ws1"> <span class="_2 blank"> </span>Em 1997, a Apple Computer tornou popular o fenômeno da computação pessoal. </div><div class="t m0 x8 hc y107 ff2 fs0 fc0 sc0 ls1 ws1">Inicialmente, isto era um sonho de quem a tinha como um <span class="ff7">hobby. </span><span class="lsc ws6">Co</span>mputadores </div><div class="t m0 x8 hc y108 ff2 fs0 fc0 sc0 ls1 ws1">tornaram-se suficientemente baratos para serem comprados para uso pessoal ou </div><div class="t m0 x8 hc y109 ff2 fs0 fc0 sc0 ls1 ws1">comercial. Em 1981, a IBM, a maior vendedora de computadores do mundo, criou o </div><div class="t m0 x8 hc y10a ff2 fs0 fc0 sc0 ls1 ws1">IBM PC (Personal Computer, computador pessoal). Do dia para a<span class="_0 blank"></span> noite, literalmente, a </div><div class="t m0 x8 hc y10b ff2 fs0 fc0 sc0 ls1 ws1">computação pessoal se tornou comum no comércio, na indústria e em organizações </div><div class="t m0 x8 hc y10c ff2 fs0 fc0 sc0 ls1 ws1">governamentais. </div><div class="t m0 x8 hc y10d ff2 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 hc y10e ff2 fs0 fc0 sc0 ls1 ws1"> <span class="_2 blank"> </span>Mas esses computadores eram unidades "autônomas" <span class="ff4 ws2">\u2014</span> as pessoas faziam suas </div><div class="t m0 x8 hc y10f ff2 fs0 fc0 sc0 ls1 ws1">tarefas em seus próprios equipamentos e então transportavam os discos de um lado para </div><div class="t m0 x8 hc y110 ff2 fs0 fc0 sc0 ls1 ws1">outro para compartilhar as informações. Embora os primeiros computadores pessoais </div><div class="t m0 x8 hc y111 ff2 fs0 fc0 sc0 ls1 ws1">não fossem suficientemente poderosos para serem compartilhados por vários usuários, </div><div class="t m0 x8 hc y112 ff2 fs0 fc0 sc0 ls1 ws1">esses equipamentos podiam ser ligados entre si em redes de computadores, algumas </div><div class="t m0 x8 hc y113 ff2 fs0 fc0 sc0 ls1 ws1">vezes através de linhas telefônicas e algumas vezes em redes locais de organizações. </div><div class="t m0 x8 hc y114 ff2 fs0 fc0 sc0 ls1 ws1">Isto levou ao fenômeno da <span class="ff7">computação distribuída, </span>na qual a carga de trabalho </div><div class="t m0 x8 hc y115 ff2 fs0 fc0 sc0 ls1 ws1">computacional de uma organização, em vez de ser realizada exclusivamente em uma </div><div class="t m0 x8 hc y116 ff2 fs0 fc0 sc0 ls1 ws1">instalação central de informática, é distribuída e<span class="_0 blank"></span>m redes para os locais (sites) nos quais </div><div class="t m0 x8 hc y117 ff2 fs0 fc0 sc0 ls1 ws1">o trabalho real da organização é efetuado. Os computadores pessoais eram </div><div class="t m0 x8 hc y118 ff2 fs0 fc0 sc0 ls1 ws1">suficientemente poderosos para manipular as exigências computacionais de cada </div><div class="t m0 x8 hc y119 ff2 fs0 fc0 sc0 ls1 ws1">usuário em particular e as tarefas básicas de comunicações de passar as informações </div><div class="t m0 x8 hc y11a ff2 fs0 fc0 sc0 ls1 ws1">eletronicamente de um lugar para outro. </div><div class="t m0 x8 hc y11b ff2 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 hc y11c ff2 fs0 fc0 sc0 ls1 ws1"> <span class="_2 blank"> </span>Os computadores pessoais mais poderosos de hoje são tão poderosos quanto os </div><div class="t m0 x8 hc y11d ff2 fs0 fc0 sc0 ls1 ws1">equipamentos de milhões de dólares de apenas uma década a<span class="_0 blank"></span>trás. Os equipamentos </div><div class="t m0 x8 hc y11e ff2 fs0 fc0 sc0 ls1 ws1">desktop (computadores de mesa) mais poderosos <span class="ff4 ws2">\u2014</span> chamados <span class="ff7">workstations </span>ou <span class="ff7">estações </span></div><div class="t m0 x8 hc y11f ff7 fs0 fc0 sc0 ls1 ws1">de trabalho <span class="ff4 ws2">\u2014</span><span class="ff2"> fornecem capacidades enormes a usuários isolados. As informações são </span></div><div class="t m0 x8 hc y120 ff2 fs0 fc0 sc0 ls1 ws1">compartilhadas facilmente em redes de computadores onde a<span class="_0 blank"></span>lguns deles, os chamados </div><div class="t m0 x8 hc y121 ff7 fs0 fc0 sc0 ls1 ws1">servidores de arquivos (file servers), <span class="ff2">oferecem um depósito comum de programas e </span></div><div class="t m0 x8 hc y122 ff2 fs0 fc0 sc0 ls1 ws1">dados que podem ser usados pelos computadores <span class="ff7">clientes (clients) </span>distribuídos ao longo </div><div class="t m0 x8 hc y132 ff2 fs0 fc0 sc0 ls1 ws1">da rede, daí o termo <span class="ff7">computação cliente/servidor. </span>O C e o C ++ tornaram-se as </div><div class="t m0 x8 hc y133 ff2 fs0 fc0 sc0 ls1 ws1">linguagens preferidas de programação para a criação de software de<span class="_0 blank"></span>stinado a sistemas </div><div class="t m0 x8 hc y134 ff2 fs0 fc0 sc0 ls1 ws1">operacionais, redes de computadores e aplicações distribuídas cliente/servidor<span class="_0 blank"></span>. </div><div class="t m0 x8 hc y135 ff2 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 y136 ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 y137 ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 y138 ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 y139 ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 y13a ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 y13b ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 y13c ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 y13d ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 y13e ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 y13f ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 y140 ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 y141 ff1 fs0 fc0 sc0 ls1 ws1"> </div><div class="t m0 x8 h2 y142 ff1 fs0 fc0 sc0 ls1 ws1"> </div></div><div class="pi" data-data='{"ctm":[1.000000,0.000000,0.000000,1.000000,0.000000,0.000000]}'></div></div>
Compartilhar