Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

2012
Fundamentos da 
Computação
Prof. Djone Kochanski
Copyright © UNIASSELVI 2012
Elaboração:
Prof. Djone Kochanski
Revisão, Diagramação e Produção:
Centro Universitário Leonardo da Vinci – UNIASSELVI
Ficha catalográfica elaborada na fonte pela Biblioteca Dante Alighieri 
UNIASSELVI – Indaial.
 004
K766f Kochanski, Djone
 Fundamentos da computação / Djone Kochanski. Indaial : 
Uniasselvi, 2012. 
 
 232 p. : il 
 
 ISBN 978-85-7830- 569-7
 1. Computação – fundamentos.
 I. Centro Universitário Leonardo da Vinci
 
III
apresentação
Caro(a) acadêmico(a), seja bem-vindo(a) à disciplina de Fundamentos 
da Computação.
Nesta disciplina você estudará importantes conceitos de Computação/
Informática que lhe permitirão compreender a origem e trajetória 
evolucionária da área. O conteúdo deste Caderno de Estudos foi elaborado 
de forma a viabilizar a apropriação dos conhecimentos necessários da melhor 
forma possível. Ele serve como uma base teórica para o entendimento dos 
demais assuntos que você vier a estudar na área de Computação/Informática.
Este Caderno de Estudos está dividido em três unidades de estudos. 
Iniciaremos nossos estudos a partir de uma perspectiva histórica da 
Computação/Informática, desde suas raízes até os dias atuais. Em seguida, 
estudaremos importantes conceitos relativos a subáreas da Computação/
Informática. Por fim, daremos os primeiros passos nos estudos de lógica de 
programação.
Desejo a você uma excelente experiência nos estudos dessa disciplina!
Prof. Djone Kochanski
IV
Você já me conhece das outras disciplinas? Não? É calouro? Enfim, tanto para 
você que está chegando agora à UNIASSELVI quanto para você que já é veterano, há novidades 
em nosso material.
Na Educação a Distância, o livro impresso, entregue a todos os acadêmicos desde 2005, é o 
material base da disciplina. A partir de 2017, nossos livros estão de visual novo, com um formato 
mais prático, que cabe na bolsa e facilita a leitura. 
O conteúdo continua na íntegra, mas a estrutura interna foi aperfeiçoada com nova diagramação 
no texto, aproveitando ao máximo o espaço da página, o que também contribui para diminuir 
a extração de árvores para produção de folhas de papel, por exemplo.
Assim, a UNIASSELVI, preocupando-se com o impacto de nossas ações sobre o ambiente, 
apresenta também este livro no formato digital. Assim, você, acadêmico, tem a possibilidade 
de estudá-lo com versatilidade nas telas do celular, tablet ou computador. 
 
Eu mesmo, UNI, ganhei um novo layout, você me verá frequentemente e surgirei para 
apresentar dicas de vídeos e outras fontes de conhecimento que complementam o assunto 
em questão. 
Todos esses ajustes foram pensados a partir de relatos que recebemos nas pesquisas 
institucionais sobre os materiais impressos, para que você, nossa maior prioridade, possa 
continuar seus estudos com um material de qualidade.
Aproveito o momento para convidá-lo para um bate-papo sobre o Exame Nacional de 
Desempenho de Estudantes – ENADE. 
 
Bons estudos!
UNI
V
VI
VII
UNIDADE 1 – HISTÓRICO DA COMPUTAÇÃO .......................................................................... 1
TÓPICO 1 – A ESCRITA E OS NÚMEROS ....................................................................................... 3
1 INTRODUÇÃO .................................................................................................................................... 3
2 GÊNESE DA TECNOLOGIA DA INFORMAÇÃO ...................................................................... 4
3 O CÁLCULO ......................................................................................................................................... 7
RESUMO DO TÓPICO 1 ....................................................................................................................... 9
AUTOATIVIDADE ................................................................................................................................ 10
TÓPICO 2: OS PRIMEIROS PROJETOS ........................................................................................... 11
1 INTRODUÇÃO .................................................................................................................................... 11
2 EQUIPAMENTOS PRECURSORES ................................................................................................. 11
RESUMO DO TÓPICO 2 ....................................................................................................................... 24
AUTOATIVIDADE ................................................................................................................................ 25
TÓPICO 3 – EVOLUÇÕES DO INÍCIO DO SÉCULO XX ............................................................. 27
1 INTRODUÇÃO .................................................................................................................................... 27
2 A AUTOMAÇÃO DOS CÁLCULOS ............................................................................................... 27
RESUMO DO TÓPICO 3 ....................................................................................................................... 40
AUTOATIVIDADE ................................................................................................................................ 41
TÓPICO 4 – O BERÇO DA INFORMÁTICA .................................................................................... 43
1 INTRODUÇÃO .................................................................................................................................... 43
2 O NASCIMENTO DA COMPUTAÇÃO ......................................................................................... 43
3 NOVAS TECNOLOGIAS DA INFORMAÇÃO E COMUNICAÇÃO ....................................... 47
4 TECNOLOGIA DA INFORMAÇÃO E O ENSINO ...................................................................... 49
5 O SURGIMENTO DA TECNOLOGIA DA INFORMAÇÃO COMO A 
 CONHECEMOS ................................................................................................................................... 53
LEITURA COMPLEMENTAR .............................................................................................................. 64
RESUMO DO TÓPICO 4 ....................................................................................................................... 69
AUTOATIVIDADE ................................................................................................................................ 70
UNIDADE 2 – CONCEITOS FUNDAMENTAIS DA COMPUTAÇÃO ...................................... 71
TÓPICO 1 – SISTEMAS DE NUMERAÇÃO .................................................................................... 73
1 INTRODUÇÃO .................................................................................................................................... 73
2 SISTEMA DE NUMERAÇÃO DECIMAL ...................................................................................... 75
3 SISTEMA DE NUMERAÇÃO BINÁRIO ........................................................................................ 76
4 SISTEMA DE NUMERAÇÃO OCTAL ............................................................................................ 77
5 SISTEMA DE NUMERAÇÃO HEXADECIMAL ........................................................................... 78
6 CONVERSÕES ENTRE SISTEMAS DE NUMERAÇÃO ............................................................ 78
7 CONVERSÃO DE DECIMAL PARA BINÁRIO ............................................................................ 79
8 CONVERSÃO DE DECIMAL PARA OCTAL ................................................................................79
sumário
VIII
9 CONVERSÃO DE DECIMAL PARA HEXADECIMAL ............................................................... 80
10 CONVERSÃO DE BINÁRIO PARA DECIMAL .......................................................................... 81
11 CONVERSÃO DE OCTAL PARA DECIMAL .............................................................................. 82
12 CONVERSÃO DE HEXADECIMAL PARA DECIMAL ............................................................ 83
13 REGRAS DE FIXAÇÃO .................................................................................................................... 84
RESUMO DO TÓPICO 1 ....................................................................................................................... 86
AUTOATIVIDADE ................................................................................................................................ 87
TÓPICO 2 – BASES COMPUTACIONAIS ........................................................................................ 89
1 INTRODUÇÃO .................................................................................................................................... 89
2 ARQUITETURA DE COMPUTADORES ....................................................................................... 90
3 SOFTWARE ........................................................................................................................................... 91
 3.1 CATEGORIAS DE SOFTWARE .................................................................................................... 91
 3.1.1 Softwares básicos ................................................................................................................... 92
 3.1.2 Softwares utilitários ............................................................................................................... 93
 3.1.3 Softwares aplicativos ............................................................................................................. 93
 3.1.4 Ferramentas de desenvolvimento ........................................................................................ 94
4 REDES DE COMPUTADORES ......................................................................................................... 96
RESUMO DO TÓPICO 2 ....................................................................................................................... 103
AUTOATIVIDADE ................................................................................................................................ 104
TÓPICO 3 – SUPORTES COMPUTACIONAIS ............................................................................... 105
1 INTRODUÇÃO .................................................................................................................................... 105
2 ENGENHARIA DE SOFTWARE ...................................................................................................... 106
3 BANCO DE DADOS ........................................................................................................................... 114
RESUMO DO TÓPICO 3 ....................................................................................................................... 116
AUTOATIVIDADE ................................................................................................................................ 117
TÓPICO 4 – INTELIGÊNCIA COMPUTACIONAL ........................................................................ 119
1 INTRODUÇÃO .................................................................................................................................... 119
2 CONCEITOS BÁSICOS ..................................................................................................................... 120
3 TIPOS DE MÍDIA ................................................................................................................................ 122
4 SISTEMAS MULTIMÍDIA ................................................................................................................ 125
5 REPRESENTAÇÃO DE MÍDIAS ...................................................................................................... 127
6 DADOS MULTIMÍDIA ...................................................................................................................... 127
7 CARACTERÍSTICAS DA VISÃO .................................................................................................... 130
8 CAPTURA E REPRODUÇÃO DE IMAGEM ................................................................................. 131
9 MÍDIAS COM BASE EM IMAGEM ................................................................................................ 133
 9.1 IMAGENS ESTÁTICAS ................................................................................................................. 133
 9.2 IMAGENS DINÂMICAS ............................................................................................................... 135
 9.3 COMPRESSÃO DE DADOS .......................................................................................................... 138
 9.4 IMAGENS NA INTERNET ........................................................................................................... 139
10 MÍDIAS COM BASE EM ÁUDIO .................................................................................................. 140
 10.1 ÁUDIO .......................................................................................................................................... 141
 10.2 ÁUDIO NA MULTIMÍDIA ........................................................................................................ 142
 10.3 ÁUDIO NA INTERNET ............................................................................................................. 143
LEITURA COMPLEMENTAR .............................................................................................................. 144
RESUMO DO TÓPICO 4 ....................................................................................................................... 149
AUTOATIVIDADE ................................................................................................................................ 150
IX
UNIDADE 3 – LÓGICA DE PROGRAMAÇÃO ............................................................................... 151
TÓPICO 1: FUNDAMENTOS DE LÓGICA DE PROGRAMAÇÃO ............................................ 153
1 INTRODUÇÃO .................................................................................................................................... 153
2 FUNDAMENTOS DE LÓGICA DE PROGRAMAÇÃO .............................................................. 154
3 LÓGICA PARA PROGRAMAÇÃO ................................................................................................. 158
4 COMANDOS BÁSICOS .................................................................................................................... 164
RESUMO DO TÓPICO 1 ....................................................................................................................... 166
AUTOATIVIADE .................................................................................................................................... 167
TÓPICO 2: ESTRUTURAS DE CONTROLE ..................................................................................... 169
1 INTRODUÇÃO .................................................................................................................................... 169
RESUMO DO TÓPICO 2 ....................................................................................................................... 184
AUTOATIVIDADE ................................................................................................................................185
TÓPICO 3: SUBALGORITMOS E ESCOPO DE IDENTIFICADORES ...................................... 187
1 INTRODUÇÃO .................................................................................................................................... 187
2 ESCOPO DE IDENTIFICADORES .................................................................................................. 189
RESUMO DO TÓPICO 3 ....................................................................................................................... 200
AUTOATIVIDADE ................................................................................................................................ 201
TÓPICO 4: TIPOS ESTRUTURADOS ................................................................................................ 203
1 INTRODUÇÃO .................................................................................................................................... 203
LEITURA COMPLEMENTAR .............................................................................................................. 218
RESUMO DO TÓPICO 4 ....................................................................................................................... 220
AUTOATIVIDADE ................................................................................................................................ 221
REFERÊNCIAS ........................................................................................................................................ 223
X
1
UNIDADE 1
HISTÓRICO DA COMPUTAÇÃO
OBJETIVOS DE APRENDIZAGEM
PLANO DE ESTUDOS
A partir desta unidade, você será capaz de:
• conhecer os principais fatos históricos da computação;
• compreender os conceitos fundamentais da computação;
• entender a área de informática de maneira sistêmica.
Esta unidade está dividida em quatro tópicos, sendo que ao final de cada 
um deles você encontrará atividades que o(a) auxiliarão na apropriação dos 
conhecimentos.
TÓPICO 1 – A ESCRITA E OS NÚMEROS
TÓPICO 2 – OS PRIMEIROS PROJETOS
TÓPICO 3 – EVOLUÇÕES DO INÍCIO DO SÉCULO XX
TÓPICO 4 – O BERÇO DA INFORMÁTICA
2
3
TÓPICO 1
UNIDADE 1
A ESCRITA E OS NÚMEROS
1 INTRODUÇÃO
Embora os recursos tecnológicos disponíveis atualmente possam parecer 
extremamente novos e atuais, o processo de desenvolvimento da tecnologia 
percorreu um longo caminho para que pudéssemos nos beneficiar de tais elementos 
como fazemos atualmente. 
Através de uma perspectiva antropológica, acredita-se que a natureza 
humana nos leva a tentar resolver quaisquer questões de forma cada vez mais rápida 
e com menor esforço, fazendo com que as tarefas repetitivas sejam executadas com 
a maior eficiência e precisão possíveis. Um dos elementos que veio para contribuir 
com esse processo foi o computador.
Na realidade, o computador permite revolucionar a forma como vivemos e 
agimos e cada vez mais benefícios conseguimos obter com a utilização dos mesmos. 
O computador nos auxilia nas escolas, escritórios, indústrias, hospitais, casas, entre 
outros lugares, tornando-se uma ferramenta indispensável para muitas pessoas.
Se o computador está em tantos lugares e nos auxilia, por que não 
entendermos algumas das características e usufruirmos ainda mais de seus 
benefícios? É isso que vamos analisar neste tópico. Mas antes vamos conhecer a 
origem e história da Computação através de uma abordagem um pouco diferenciada 
e com o foco específico de obtenção de uma base conceitual mais sólida.
A abordagem dada para o termo computador neste Caderno de Estudos se refere 
aos dispositivos computacionais em geral que tenham a capacidade de realizar processamento 
eletrônico de dados.
UNI
UNIDADE 1 | HISTÓRICO DA COMPUTAÇÃO
4
2 GÊNESE DA TECNOLOGIA DA INFORMAÇÃO
Para você entender melhor o computador, vamos iniciar nossa viagem no 
tempo, a partir dos primeiros registros da escrita. A invenção da palavra escrita 
é atribuída aos sumérios, um povo que viveu na região onde atualmente fica o 
Iraque, conhecida como Mesopotâmia. 
Também, é atribuída a este povo a invenção da cerveja, o conceito de 
que os homens foram criados à imagem dos deuses, a fabricação dos primeiros 
instrumentos agrícolas, as tentativas iniciais de organização de cidades, os 
rudimentos do cooperativismo e a fabricação do vidro. Que povo inteligente e 
criativo, hein?
FIGURA 1 – ESCRITA CUNEIFORME
FONTE: Disponível em: <www.123rf.com>. Acesso em: 15 fev. 2012.
A ideia de criar símbolos que pudessem representar os sons vocais ocorreu 
há milhares de anos. A primeira forma de escrita foi chamada de cuneiforme. O 
processo se resumia a marcas feitas em tabletes de barro úmido, que depois eram 
secos ao sol. 
O nome cuneiforme se deve ao fato de que o instrumento usado para fazer as 
marcas no barro ser estilete de madeira em forma de cunha.
UNI
TÓPICO 1 | A ESCRITA E OS NÚMEROS
5
Embora para nós possa parecer que as letras e os números possam ter a 
mesma origem, os números surgiram muitos séculos depois. Isso é quase natural, 
se considerarmos que é muito mais simples aprender a escrever do que aprender 
a calcular. 
Os primeiros numerais utilizados eram letras, porém utilizadas como 
números. O exemplo mais simples para entender isso, são os números romanos.
QUADRO 1 – VALORES DOS ALGARISMOS ROMANOS
1 5 10 50 100 500 1.000
I V X L C D M
FONTE: O autor
Os primeiros a contribuírem para o avanço dos cálculos foram os pastores. 
Na sua rotina diária, os pastores soltavam o rebanho pela manhã para pastar em 
campo aberto e o reconhiam no final do dia. Surgiu então, a necessidade de saber 
se o número de animais que saiu efetivamente retornou. 
Foi então, que um engenhoso pastor solucionou o problema. Fez um 
montinho de pedras, colocou uma pedra para cada animal que saía e retirou 
uma a cada animal que retornava. A quantidade de pedras que restasse no monte 
principal correspondia à quantidade de animais que não haviam retornado. Assim, 
inventou-se o cálculo. 
FIGURA 2 – REBANHO DE OVELHAS
FONTE: Disponível em: <www.123rf.com>. Acesso em: 15 fev. 2012.
UNIDADE 1 | HISTÓRICO DA COMPUTAÇÃO
6
Uma das maneiras primitivas de representação de quantidades foi por 
meio dos dedos das mãos, em que para cada elemento representado era utilizado 
um dedo. É desta prática que se originou a palavra dígito, cujo original em latim é 
digitus. É atribuído também, a esta prática a origem da quantidade de símbolos do 
sistema numérico decimal que é utilizado, até os dias atuais. 
Boyer (1996) relata que Aristóteles observou que o uso do sistema de 
numeração decimal é simplesmente resultado do fato de os seres humanos 
possuírem dez dedos nas mãos e nos pés. Boyer (1996) observa também que outros 
sistemas de numeração foram utilizados antes da consolidação do uso do sistema 
decimal. Alguns povos utilizaram a contagem por dois (binário), três (ternário), 
cinco (quinário) e vinte (vigesimal). Destes sistemas de numeração, há evidências 
arqueológicas do uso do sistema quinário. 
FIGURA 3 – ESTÁTUA DE AL-KHOWARIZMI
FONTE: Computer History Museum. Disponível em: <http://www.
computerhistory.org>. Acesso em: 10 mar. 2012.
A palavra cálculo tem origem no latim calculus que significa pedra. Desta forma 
podemos entender também, a origem da expressão cálculo renal, ou seja, pedra no rim.
UNI
TÓPICO 1 | A ESCRITA E OS NÚMEROS
7
Boyer (1996) observa que nas situações em que o uso dos dedos das mãos 
para representar coleções era inadequado, o homem primitivo fez uso de uma 
sistemática bastante simples. 
A sistemática era baseada em fazer amontoados de pedras, tipicamente em 
grupos de cinco, pois era a forma mais familiar pela comparação com os dedos 
das mãos. O símbolo utilizado para representar o algarismo zero no conjunto denumerais Hindu-Arábicos surgiu por volta de 876 d.C. (BOYER, 1996). 
Os registros históricos não permitem a determinação exata do ano em 
que o algarismo foi incorporado aos demais algarismos do conjunto. A obra de 
al-Khowarizmi chamada De Numero Hindorum foi a grande responsável pela 
popularização dos algarismo Hindu-Arábicos, dando a falsa impressão de que o 
conjunto de algarismos é de origem árabe. Para quem aprendeu desde a infância 
que o conjunto de algarismos é formado por 10 símbolos, é difícil conceber este 
conjunto sem a existência do zero, não é mesmo?
3 O CÁLCULO
Através de uma perspectiva histórica pode-se entender que a Tecnologia da 
Informação iniciou sua trajetória a partir do desejo e necessidade de automatizar 
os cálculos. O primeiro instrumento utilizado para automatização dos cálculos foi 
o ábaco, cuja invenção é reivindicada por vários povos, entre eles pelos babilônios, 
chineses, japoneses e russos. 
Segundo Almeida (2002), a origem do nome vem do grego abax que significa 
tábua de calcular. Os primeiros ábacos eram feitos com fios verticais paralelos pelos 
quais o operador podia fazer deslizar sementes secas. Um operador experiente 
com um ábaco consegue fazer cálculos com velocidade aproximada a qualquer 
pessoa com uma calculadora digital. Milhares de anos depois de sua invenção, o 
ábaco ainda é utilizado em algumas regiões da Ásia.
FIGURA 4 – ÁBACO
FONTE: Computadores e informática (2011)
UNIDADE 1 | HISTÓRICO DA COMPUTAÇÃO
8
Os algarismos como conhecemos atualmente passaram a ser utilizados em 
maior escala alguns séculos depois do início da era cristã. A criação é atribuída aos 
hindus, mas são conhecidos como algarismos arábicos, pois foram os árabes que 
os difundiram pelo mundo. A notação numérica utilizada atualmente passou a ser 
conhecida mundialmente através da obra De Numero Hindorum escrita no século 
IX pelo árabe Al-Khowarizmi. 
Pelo fato de os números hindus terem sido popularizados através de um 
árabe, passaram a ser chamados de algarismos arábicos. Al-khowarizmi também 
empresta seu nome ao que passou a chamar-se Algoritmo que pode ser entendido 
como uma regra especial de um processo ou operação (BOYER, 1996).
Antes do surgimento dos algarismos arábicos as formas dominantes de 
representação numérica eram os algarismos romanos, gregos e egípcios, os quais, 
na realidade, eram um conjunto de letras utilizadas na representação numérica. 
Com a popularização dos numerais surgiu a palavra aritmética, do grego arithmos 
que significa número.
 A trigonometria também foi ampliada, pois anteriormente era apenas um 
simples cálculo para medir os lados de um triângulo, originário do grego, trigon, 
que significa três cantos. Al-Khowarizmi também é considerado o pai da Álgebra 
em função de suas contribuições nessa área da matemática.
Na realidade a invenção do computador é resultado de uma série de ideias 
e inventos de pessoas que muitas vezes viveram em diferentes épocas. A tecnologia 
da informação, tal qual a conhecemos atualmente teve suas origens na necessidade 
de o homem automatizar os cálculos e realizar tarefas repetitivas de maneira cada 
vez mais rápida e precisa.
9
Caro(a) acadêmico(a), nesse capítulo você estudou que:
• Os seres humanos vêm desde tempos remotos procurando novas e melhores 
formas de realizarem operações matemáticas. Em função dessa necessidade e de 
haver uma simbologia comum para a comunicação de valores, a representação 
numérica evoluiu até que os algarismos hindu-arábicos se estabeleceram como 
modelo mais comumente utilizado. 
• Houve um período na história em que os símbolos utilizados para expressar 
valores numéricos eram letras de determinados alfabetos. Com o tempo houve 
também a consolidação dos sistemas de numeração. Por um período da história 
foram utilizados sistemas de numeração de base dois, três, cinco e vinte.
• Com a consolidação do sistema de numeração decimal como padrão adotado 
pela maioria dos povos, houve a necessidade de aperfeiçoamento da simbologia. 
Foi através da obra de um matemático denominado Al-khowarizmi que os 
algarismos atualmente utilizados ganharam popularidade e consequentemente 
tornaram-se o padrão. 
• O algarismo 0 (zero), tal qual é utilizado atualmente, passou a ser utilizado no 
sistema de numeração decimal a partir do século IX. Antes disso, não havia 
um padrão para representação do zero. Na área de Computação/Informática, o 
algarismo 0 (zero) é muito importante, pois grande parte das contagens iniciam 
de zero.
• Em função da necessidade de tornar as operações matemáticas cada vez mais 
rápidas e precisas surgiram os primeiros dispositivos de automação de cálculos, 
como o ábaco e seus similares. A partir da invenção do ábaco estava plantada a 
pedra fundamental sobre a qual se desenvolveria todo o restante da história da 
Computação/Informática.
RESUMO DO TÓPICO 1
10
Caro(a) acadêmico(a), como forma de fixar o conteúdo estudado realize 
a autoatividade proposta a seguir:
1 A partir do momento que a humanidade começou a se preocupar com a 
necessidade de uma forma de comunicação, surgiram os símbolos com seus 
respectivos significados. Qual o nome da primeira forma de escrita?
2 A invenção da primeira forma de escrita, da cerveja, a fabricação do vidro e 
dos primeiros instrumentos agrícolas é atribuída a um povo que ocupou a 
região atualmente conhecida como Iraque. Qual o nome desse povo?
3 Diversos estudiosos da matemática contribuíram para o aperfeiçoamento 
dos cálculos e criação de novas simbologias. Qual o nome do matemático 
responsável pela popularização dos algarismos de zero a nove e que 
contribuiu significativamente no ramo da álgebra?
4 A partir do momento que o homem passou a utilizar elementos para 
representação numérica e a realizar operações matemáticas, criou também 
dispositivos que facilitem o processo. Qual o primeiro artefato criado pelo 
homem para automatizar cálculos?
AUTOATIVIDADE
11
TÓPICO 2
OS PRIMEIROS PROJETOS
UNIDADE 1
1 INTRODUÇÃO
Conforme perceberemos em seguida, a invenção do computador não 
é produto da genialidade de apenas uma pessoa ou de um pequeno grupo de 
pessoas que se reuniu com o objetivo de desenvolver algo inovador. A invenção 
do computador é resultado de uma série de ideias e invenções que muitas vezes 
nem estavam relacionadas à área da matemática ou de alguma ciência relacionada.
A evolução da Computação é resultante de séculos de pesquisas nas mais 
diversas áreas do conhecimento. Uma das principais molas propulsoras destas 
pesquisas foi a necessidade de o homem automatizar os cálculos e poder realizar 
atividades rotineiras de forma cada vez mais rápida.
Você conhecerá agora alguns importantes acontecimentos ocorridos 
entre os séculos XVI e XIX que contribuíram significativamente no processo de 
desenvolvimento da área da computação. 
Caro(a) acadêmico(a), espero que o conteúdo estimule seu aprendizado.
2 EQUIPAMENTOS PRECURSORES
É interessante observar que da invenção do ábaco, até o próximo registro 
de evolução no sentido de automatização de cálculos, utilizando dispositivos 
acessórios, se passaram vários séculos. Há uma lacuna de evolução da tecnologia 
da informação muito grande. Essa lacuna pode ter sido causada pela falta de 
iniciativas ou pesquisas sobre automatização de cálculos, pela falta de registros de 
pesquisas realizadas ou pela perda de registros. 
O fato é que apenas por volta do ano de 1.500 d.C. foi dado o próximo 
passo evolucionário significativo para a tecnologia da informação. Trata-se de 
um desenho de Leonardo Da Vinci que sugere ser o esboço de um projeto de 
calculadora mecânica baseada em engrenagens.
UNIDADE 1 | HISTÓRICO DA COMPUTAÇÃO
12
FIGURA 5 – PROJETO DE CALCULADORA DE LEONARDO DA VINCI
FONTE: Computer History Museum. Disponível em: <http://www.computerhistory.org>.Acesso em: 10 mar. 2012.
Praticamente um século mais tarde, em 1614, John Napier, matemático 
escocês publicou uma descrição da maravilhosa regra dos logaritmos (Mirifici 
logarithmorum canonis descriptio). Napier trabalhou durante vinte anos na invenção 
dos logaritmos até que publicou os resultados de seus estudos (BOYER, 1996).
Para facilitar os cálculos, criou as “barras de Napier”. Estas barras 
possuíam itens de tabuadas esculpidos. As barras de Napier foram registradas 
principalmente sobre madeira e ossos (BOYER, 1996).
FIGURA 6 – JOHN NAPIER
FONTE: Disponível em: <www.123rf.com>. Acesso em: 15 fev. 2012.
TÓPICO 2 | OS PRIMEIROS PROJETOS
13
Inspirado no desenho deixado por Leonardo Da Vinci, o físico, matemático, 
filósofo e escritor francês Blaise Pascal desenvolveu uma máquina denominada 
Pascalina (ALMEIDA, 2002). A máquina de Pascal era composta por seis rodas 
dentadas, cada uma contendo algarismos de 0 a 9. 
FIGURA 7 – BLAISE PASCAL
FONTE: Disponível em: <www.123rf.com>. Acesso em: 15 fev. 
2012.
Esta máquina de calcular possuía apenas as funcionalidades de somar e 
subtrair e era totalmente mecânica. Ela é considerada a precursora das calculadoras 
mecânicas. Nesta época, Pascal compartilhou muitas exepriências e conhecimentos 
com Fermat, que levaram a importantes contribuições do campo da teoria da 
probabilidade. 
Fermar foi um advogado que a partir de 1629 passou a fazer importantes 
descobertas no campo da matemática, a qual estudou por puro prazer.
FIGURA 8 – PASCALINA
FONTE: O autor.
UNIDADE 1 | HISTÓRICO DA COMPUTAÇÃO
14
Outra contribuição significativa para a área de tecnologia da informação 
veio do filósofo alemão Gottfried Wilhelm von Leibniz, que desenvolveu em 1673 
um dispositivo aperfeiçoado em relação à máquina de Pascal (ALMEIDA, 2002). 
FIGURA 9 – GOTTFRIED WILHELM LEIBNIZ
FONTE: Disponível em: <www.123rf.com>. Acesso em: 15 fev. 2012.
O aperfeiçoamento promovido por Leibniz foi a implementação das 
operações de divisão e multiplicação (ALMEIDA, 2002). Para isso, projetou um 
dispositivo mecânico que passou a ser denominado de cilindro de Leibniz. 
A calculadora de Leibniz cujo nome real é “Step Reckoner”, que pode ser 
traduzido como calculadora de passo ou calculadora de etapas, serviu de base 
para o projeto de calculadoras nos dois séculos seguintes. A maior ambição de 
Leibniz era idealizar uma linguagem universal que utilizasse a clareza e a precisão 
da matemática para solucionar problemas enfrentados pela humanidade.
FIGURA 10 – CALCULADORA DE LEIBNIZ
FONTE: O autor.
TÓPICO 2 | OS PRIMEIROS PROJETOS
15
Embora pareça não ter qualquer relação com a evolução dos dispositivos 
de cálculo, a invenção do engenheiro francês Basile Bouchon foi de grande 
importância. Ele construiu no ano de 1728 um tear com a capacidade de tecer 
desenhos, de acordo com instruções cifradas em uma folha giratória de papel 
perfurado. Neste processo somente trabalhavam as agulhas coincidentes com os 
furos do papel.
Outra contribuição proveniente da área da tecelagem foi a do francês 
Joseph-Marie Jacquard. Jacquard sentiu-se incomodado com a monótona tarefa de 
alimentar os teares com novelos de linhas coloridas para formar os desenhos no 
pano que estava sendo fiado.
FIGURA 11 – Joseph-Marie Jacquard
FONTE: Computer History Museum. Disponível em: <http://
www.computerhistory.org>. Acesso em: 10 mar. 2012.
Como toda operação era manual, a cada vez que a cor do desenho mudava 
era necessário mudar o novelo, seguindo a determinação do contramestre. Jacquard 
percebeu então que as mudanças eram sempre sequenciais e inventou uma forma 
de resolver o problema. Utilizou cartões perfurados onde era registrada, ponto a 
ponto, a receita para a confecção de um determinado tecido. 
FIGURA 12 – TEAR BASEADO EM CARTÕES PERFURADOS
FONTE: Computer History Museum. Disponível em: <http://www.
computerhistory.org>. Acesso em: 10 mar. 2012.
UNIDADE 1 | HISTÓRICO DA COMPUTAÇÃO
16
Em seguida Jacquard construiu um tear automático capaz de ler os cartões 
e executar as operações na sequência determinada. A primeira demonstração 
prática do sistema aconteceu em 1801. Dez anos depois havia mais de dez mil 
unidades destes teares um uso na França. O método de Jacquard se espalhou 
pelo mundo e perdurou, inalterado, pelos 150 anos seguintes.
FONTE: Adaptado de: <http://super.abril.com.br/tecnologia/homem-calculou-442034.shtml>. 
Acesso em: 8 jun. 2012.
O britânico Charles Babbage, professor de matemática da Universidade 
de Cambridge, inventou em 1812 a máquina das diferenças, também chamada de 
máquina diferencial. Esta máquina era destinada a cálculos de tabelas náuticas e foi 
concebida porque Babbage identificou uma grande preocupação com a qualidade 
das tabelas astronômicas e matemáticas utilizadas na época. 
FIGURA 13 – MÁQUINA DAS DIFERENÇAS
FONTE: O autor.
Apenas numa edição de tabelas náuticas publicadas em papel foram 
identificados mais de mil erros. Na época Babbage entendeu que a solução para 
as tabelas com erros seria construir uma máquina de calcular com alto grau de 
precisão e destinada para múltiplos fins (STRATHERN, 2000).
TÓPICO 2 | OS PRIMEIROS PROJETOS
17
FIGURA 14 – SELO BRITÂNICO EM HOMENAGEM A CHARLES BABBAGE
FONTE: Disponível em: <www.123rf.com>. Acesso em: 15 fev. 2012.
Em 1834 Babbage desenvolveu outro projeto denominado máquina 
analítica, cujo funcionamento proposto é até hoje as bases do funcionamento de 
um computador. Entre outras coisas o projeto propunha a alimentação de dados, 
através de cartões perfurados; uma unidade de memória, em que os números 
podiam ser armazenados e reutilizados; programação sequencial de operações, 
um procedimento que hoje chamamos de sistema operacional. 
FIGURA 15 – MÁQUINA ANALÍTICA
FONTE: O autor.
UNIDADE 1 | HISTÓRICO DA COMPUTAÇÃO
18
As experiências de Babbage anteciparam a estrutura do moderno 
computador eletrônico, mas ele não teve condições de desenvolver seus projetos 
inteiramente. A máquina analítica ficou inacabada, pois as limitações técnicas do 
século XIX impediram sua conclusão (ALMEIDA, 2002). 
FIGURA 16 – CHARLES BABBAGE
FONTE: Computer History Museum. Disponível em: <http://www.
computerhistory.org>. Acesso em: 10 mar. 2012.
Babbage não estava sozinho no seu projeto. Em 1843, a matemática Lady 
Ada associou-se com Babbage para o desenvolvimento da máquina analítica. Ada 
criou o conceito de subrotina, uma sequência de instruções que pode ser usada 
várias vezes em diferentes contextos. 
Babbage por ter descrito os princípios de funcionamento de um computador, 
embora não tenha conseguido construir um exemplar para dar sustentação à sua teoria, é 
considerado o pai do computador.
UNI
TÓPICO 2 | OS PRIMEIROS PROJETOS
19
FIGURA 17 – LADY ADA
FONTE: Computer History Museum. Disponível em: <http://www.
computerhistory.org>. Acesso em: 10 mar. 2012.
Lady Ada descobriu o valor de haver uma instrução que retornasse o controle 
da execução a uma instrução específica, de modo que a sequência pudesse ter sua 
execução repetida. Ela também considerou o desvio condicional, a leitora de cartões 
desviaria para outro cartão se uma condição fosse satisfeita (ALMEIDA, 2002).
Arithmometer é o nome de um equipamento projetado e patenteado por 
Charles Xavier Thomas de Colmar no ano de 1820. Este equipamento foi a primeira 
calculadora construída de forma bem sucedida que permitia somar, subtrair e 
multiplicar. Permitia efetuar divisões, embora com a intervenção do operador 
(ALMEIDA, 2002). 
Lady Ada é considerada a primeira programadora da história, pois criou os princípios da 
programação conhecidos como sequência, seleção e repetição.
UNI
UNIDADE 1 | HISTÓRICO DA COMPUTAÇÃO
20
FIGURA 18 – ARITHMOMETER
FONTE: O autor.
Samuel Morse, juntamentecom Alfred Vail inventam em 1835 o código 
morse. O código morse é um sistema de representação de letras, números e sinais 
de pontuação através de um sinal codificado enviado de forma intermitente. 
Morse também é responsável pela invenção do telégrafo no ano de 1844.
FIGURA 19 – TELÉGRAFO
FONTE: Disponível em: www.123rf.com. Acesso em: 15 fev. 2012.
No ano de 1854, George Boole publica a Álgebra Booleana, cujas ideias 
constituíram a base da lógica matemática empregada nos computadores. 
A dificuldade de implementar o sistema decimal em componentes elétricos 
determinaram o uso do sistema binário em computadores. A lógica booleana 
passou a ser usada na implementação dos circuitos elétricos apenas a partir do 
século XX.
No final do século XIX, nos Estados Unidos, o estatístico Herman 
Hollerith idealizou uma solução eficiente para o censo de 1890. Hollerith 
concebeu diversas máquinas elétricas para a soma e contagem de dados, os quais 
TÓPICO 2 | OS PRIMEIROS PROJETOS
21
eram representados sob a forma de perfurações adequadamente distribuídas em 
fita de papel. Através dessas perfurações, estabeleciam-se circuitos elétricos e os 
dados que elas representavam podiam, então, ser computados de forma rápida e 
automaticamente.
FONTE: Disponível em: <http://www.ibm.com/br/ibm/history/>. Acesso em: 8 jun. 2012.
FIGURA 20 – COLETA DE DADOS DO CENSO DE 1860
FONTE: O autor.
Com esse processo, os Estados Unidos puderam acompanhar de perto o 
crescimento de sua população. Os resultados do censo de 1890 foram fornecidos 
três anos depois e com isso, fez-se uma economia de vários anos de trabalho 
(ALMEIDA, 2002).
FONTE: Disponível em: <http://www.ibm.com/br/ibm/history/>. Acesso em: 8 jun. 2012.
FIGURA 21 – HERMAN HOLLERITH
FONTE: Computer History Museum. Disponível em: <http://www.
computerhistory.org>. Acesso em: 10 mar. 2012.
UNIDADE 1 | HISTÓRICO DA COMPUTAÇÃO
22
Em 1896, Hollerith criou uma empresa que foi denominada Tabulating 
Machine Company e introduziu inovações em sua descoberta. Assim, a fita de 
papel foi substituída por cartões, que viriam a ser o elemento básico das máquinas 
IBM de processamento de dados de algumas décadas atrás. 
Já em 1911, duas outras companhias, a International Time Recording Co., 
de registradores mecânicos de tempo, e a Computing Scale Co. de instrumentos 
de aferição de peso, uniram-se a ela, por sugestão do negociante e banqueiro 
Charles R. Flint, formando-se então a Computing Tabulating Recording Co. - CTR. 
Três anos mais tarde, Thomas J. Watson assumiu a presidência da organização e 
estabeleceu normas de trabalho absolutamente inovadoras para a época. Naquela 
época, a CTR contava com menos de 1400 funcionários (ALMEIDA, 2002).
FONTE: Disponível em: <http://www.ibm.com/br/ibm/history/>. Acesso em: 8 jun. 2012.
FIGURA 22 – TABULADORA DE HOLLERITH
FONTE: O autor.
 As constantes pesquisas de engenharia resultaram na criação e no 
aperfeiçoamento de novas máquinas de contabilidade, exigidas pelo rápido 
desenvolvimento industrial. Antes do ano de 1924, aquele pequeno grupo 
de homens havia aumentado e diversificado sua experiência. Os produtos 
ganhavam maior qualidade, surgiam novas máquinas e com elas novos 
escritórios de vendas e mais vendedores. Em fevereiro de 1924 a CTR mudou 
seu nome para aquele que ocuparia um lugar de liderança dentro do processo 
tecnológico: INTERNATIONAL BUSINESS MACHINES. A sigla IBM passou a 
TÓPICO 2 | OS PRIMEIROS PROJETOS
23
ser, desde então, a fórmula para que a indústria e o comércio continuassem a 
resolver seus problemas de desenvolvimento. 
Hoje, os sistemas eletrônicos de processamento de dados têm 
fundamental importância nas atividades de exploração espacial, produção e 
aproveitamento de energia nuclear e em inúmeros outros campos da ciência 
e da indústria. Em consequência do constante e rápido desenvolvimento, a 
International Business Machines Corporation criou em 1949 a IBM World Trade 
Corporation, uma subsidiária inteiramente independente, cujo objetivo era 
aumentar vendas, serviços e produção fora dos Estados Unidos. 
As atividades da IBM World Trade Corporation se estendem hoje por 
mais de 150 países. As fábricas e laboratórios da IBM funcionam em 15 diferentes 
países. Essas fábricas estão integradas aos laboratórios de desenvolvimento 
na França, Alemanha, Espanha, Itália, Holanda, Suécia, Inglaterra, Brasil, 
Argentina, Colômbia, México, Canadá, Austrália e Japão. São 29 laboratórios de 
desenvolvimento que, juntamente com os 5 dos centros de pesquisa pura onde 
são realizadas as mais sofisticadas pesquisas tecnológicas, estão localizados nas 
seguintes áreas geográficas: Europa, América do Sul, América do Norte e Ásia 
– Pacífico (IBM, 2007). 
Até aquele momento da história a evolução da tecnologia da informação 
havia obtido elementos soltos e arcaicos cuja aplicabilidade era pouco significativa 
em termos de aplicação prática de propósito geral. Podia-se fazer uso de alguns 
elementos, porém para aplicações extremamente específicas.
FONTE: Disponível em: <http://www.ibm.com/br/ibm/history/>. Acesso em: 8 jun. 2012.
Se você quiser saber mais sobre a IBM e sua história, consulte: <http://www.ibm.com>.
UNI
24
RESUMO DO TÓPICO 2
Caro(a) acadêmico(a), nesse tópico você estudou que:
• Um dos primeiros projetos de calculadoras de que há registros históricos foi 
deixado por Leonardo Da Vinci e mais de um século mais tarde materializado 
por Blaise Pascal numa calculadora mecânica com capacidade apenas para 
somar e subtrair.
• A partir dessa iniciativa, novos pesquisadores se interessam pelo assunto e inicia-
se uma trajetória de evolução de mais de quatro séculos até que se chegasse aos 
modernos computadores.
• Neste período, um dos mais fantásticos projetos foi a máquina analítica de 
Charles Babbage que possuía as bases utilizadas nos modernos computadores. 
Por seu legado, Charles Babbage é considerado o pai do computador.
• Como computadores são formados por equipamentos e programas, Charles 
Babbage trabalhou em conjunto com Lady Ada que desenvolveu os princípios 
da programação de computadores através da definição das estruturas de 
sequência, seleção e repetição. Em função de seu legado, Lady Ada é considerada 
a primeira programadora da história.
• A primeira aplicação prática de uso da tecnologia da informação em larga escala 
foi realizada pelas máquinas tabuladoras idealizadas por Hermann Hollerith 
para tabular os dados do censo americano de 1890. Hollerith fundou uma 
empresa, que após associação com outra empresa passou a chamar-se IBM 
(International Business Machines).
25
Caro(a) acadêmico(a), como forma de fixar o conteúdo estudado realize 
a autoatividade proposta a seguir:
1 A calculadora mecânica desenvolvida por Blaise Pascal é considerada um 
marco no processo de criação e evolução de dispositivos de automação de 
cálculos. Porém a calculadora de Pascal, denominada Pascalina, permitia 
realizar apenas as operações de soma e subtração. Algum tempo depois, 
outro pesquisador costruiu uma calculadora ditada também das operações 
de divisão e multiplicação. Qual o nome desse pesquisador?
2 Muitos pesquisadores tiveram participação no processo de evolução dos 
dispositivos de automação dos cálculos até que se chegasse aos modernos 
computadores. Nessa trajetória de evolução há um pesquisador que é 
considerado o pai do computador. Qual o nome dele?
3 Computadores são máquinas que precisam ser dotadas de “inteligência” para 
que operem adequadamente. A essa “inteligência” chamamos software ou 
simplesmente programas. A descrição de como programas deve funcionar foi 
realizada no século XIX. Qual o nome da pessoa que descreveu os princípios 
da programação de computadores?
4 As exigências do mundo moderno tornam a utilidade da tecnologia da 
informação cada vezmais importante. Qual a primeira vez que a tecnologia 
da informação foi utilizada em larga escala para atender a necessidade de 
uma população?
AUTOATIVIDADE
26
27
TÓPICO 3
EVOLUÇÕES DO INÍCIO DO SÉCULO XX
UNIDADE 1
1 INTRODUÇÃO
Apesar de grandes projetos terem sido realizados nos séculos anteriores, é 
no século XX que a computação toma corpo e dá um grande salto evolutivo. Neste 
século ocorreu uma série de pesquisas que finalmente permitiram a construção e 
funcionamento adequado dos computadores. 
Inicialmente pensava-se apenas na automação de cálculos, depois se 
percebeu que computadores poderiam ser utilizados com outras finalidades. É 
neste período que muitos pesquisadores direcionaram seus esforços na pesquisa e 
desenvolvimento de diversos dispositivos, componentes e equipamentos. 
Iniciaremos a viagem pelos principais acontecimentos deste período, na 
Europa, de onde surgiu grande parte da inteligência da computação. Em seguida 
partiremos para os EUA, de onde também surgiram muitos projetos importantes 
para a área da Computação/Informática.
2 A AUTOMAÇÃO DOS CÁLCULOS
No início do século XX o engenheiro civil alemão Konrad Zuse projetou 
equipamentos calculadores cuja evolução permitiu que em 1934 fosse iniciado 
o desenvolvimento de uma série de equipamentos conhecidos como máquinas 
de cálculo controladas automaticamente. Zuse teve como motivação o fato de 
ser muito difícil guardar os dados intermediários em longos cálculos utilizando 
dispositivos mecânicos (ALMEIDA, 2002). 
Nesta época Zuse considerava que um calculador automático necessitaria 
apenas de três unidades básicas: uma controladora, uma memória e um 
dispositivo de cálculo. Iniciou então o desenvolvimento do Z1, um equipamento 
construído inteiramente com peças mecânicas que utilizava uma fita de película 
cinematográfica para as instruções que controlavam a máquina (ALMEIDA, 2002). 
28
UNIDADE 1 | HISTÓRICO DA COMPUTAÇÃO
FIGURA 23 – CONRAD ZUSE
FONTE: Computer History Museum. Disponível em: <http://www.
computerhistory.org>. Acesso em: 10 mar. 2012.
Em 1938, um aluno de Zuse chamado Helmut Schreyer, construiu uma 
parte do Z1 usando válvulas. Para a conclusão do projeto seriam necessárias 
aproximadamente 1000 válvulas, mas em função das movimentações militares da 
época não era possível conseguir tal quantidade deste material (ALMEIDA, 2002).
Iniciou-se então o desenvolvimento do Z2 usando relês. Tanto o Z1 quanto 
o Z2 eram equipamentos que ainda não funcionavam satisfatoriamente. Apenas 
em 1941 o primeiro modelo totalmente operacional de Zuse foi concluído, o Z3. 
Este equipamento usava dois mecanismos separados para as funções aritméticas e 
tinha uma unidade para conversão de números decimais para binário. O Z3 tinha 
capacidade para executar três a quatro adições por segundo e multiplicava dois 
números em quatro ou cinco segundos (ALMEIDA, 2002). 
TÓPICO 3 | EVOLUÇÕES DO INÍCIO DO SÉCULO XX
29
FIGURA 24 – RÉPLICA DA UNIDADE BINÁRIA UTILIZADA NO Z1
FONTE: O autor.
Em 1944 um bombardeio destruiu a casa de Zuse e com ela o Z3. Logo 
após a conclusão do Z3, foi iniciado o desenvolvimento do Z4 que era em essência 
a mesma máquina, embora mais rápida e com maior capacidade de memória 
(ALMEIDA, 2002). 
Em função da guerra, Zuse conseguiu construir o Z4 apenas em 1950, na 
Suíça. Em seguida, Zuse fundou uma empresa de computadores, absorvida depois 
pela Siemens (ALMEIDA, 2002). 
FIGURA 25 – JOHN VINCENT ATANASOFF
FONTE: Computer History Museum. Disponível em: <http://www.
computerhistory.org>. Acesso em: 10 mar. 2012.
30
UNIDADE 1 | HISTÓRICO DA COMPUTAÇÃO
Na Universidade de Iowa, o professor de física John Vincent Atanasoff, 
juntamente com John Berry, iniciou em 1935 um projeto denominado ABC 
(Atanasoff-Berry Computer). 
O ABC era uma máquina dedicada especialmente à solução de conjuntos 
de equações lineares na Física. Funcionava por meio de válvulas, e possuía uma 
leitora e perfuradora de cartões, o que propiciou o desenvolvimento dos primeiros 
conceitos que iriam aparecer nos computadores modernos, a unidade de aritmética 
eletrônica e a memória de leitura e gravação. Esta máquina tornou-se operacional 
apenas em 1942 (ALMEIDA, 2002).
FIGURA 26 – ABC
FONTE: O autor.
A IBM iniciou em 1935 a produção de calculadoras baseadas em relês. 
Estas calculadoras produziam em altas velocidades tabelas de vários tipos com 
alta confiabilidade, conforme havia imaginado Babbage. 
A evolução destes equipamentos se deu pela possibilidade deles poderem 
ser programados através de painéis de controle para ler cartões perfurados, 
executar os cálculos e posteriormente perfurar o resultado no mesmo cartão. 
Empresas como a Remington Rand produziram equipamentos semelhantes 
(ALMEIDA, 2002).
TÓPICO 3 | EVOLUÇÕES DO INÍCIO DO SÉCULO XX
31
FIGURA 27 – HOWARD HATHANWAY AIKEN
FONTE: Computer History Museum. Disponível em: <http://www.
computerhistory.org>. Acesso em: 10 mar. 2012.
O primeiro computador produzido pelos americanos cuja arquitetura 
era eletromecânica foi o Harvard Mark I que foi desenvolvido em parceria entre 
a Universidade de Harvard e a IBM (ALMEIDA, 2002). O Harvard Mark I foi 
desenvolvido pelo matemático americano Howard Hathanway Aiken que atuava 
como professor na Universidade de Harvard. 
Esta máquina processava números com precisão de 23 dígitos e executava 
as quatro operações aritméticas básicas, sequências de dados, tabelas de logatirmos 
e funções trigonométricas (ALMEIDA, 2002). O Mark I era controlado através de 
fitas de papel os quais eram perfurados por uma máquina de escrever elétrica.
FIGURA 28 – HARVARD MARK I
FONTE: IBM (2011)
32
UNIDADE 1 | HISTÓRICO DA COMPUTAÇÃO
Dentre outras personalidades que contribuíram para o desenvolvimento 
da tecnologia da informação, o inglês Alan Mathison Turing definitivamente foi o 
mais significativo. Ele estava motivado a identificar um conjunto de procedimentos 
que pudessem ser seguidos para deteminar se uma proposição matemática era ou 
não suscetível de prova. 
O resultado dos trabalhos de Turing em torno do tema foi publicado no 
artigo “On computable numbers, with an application to the entschendungsproblem” 
(STRATHERN, 2000). A obstinação de Turing por provas era tamanha que ele 
queria provar através da matemática a existência, ou não, de Deus.
FIGURA 29 – ALAN MATHISON TURING
FONTE: Computer History Museum. Disponível em: <http://www.
computerhistory.org>. Acesso em: 10 mar. 2012.
Na realidade Turing descreveu a sequência de passos a serem seguidos 
para execução do “processo de raciocínio” de uma máquina que poderia receber 
um conjunto de elementos de entrada bastante variado. Turing chamou a sua 
criação de computabilidade. Ele defendia a teoria de que “todo problema desde 
que expresso de maneira lógica apropriada, poderia sempre ser resolvido” 
(STRATHERN, 2000, p. 53).
A teoria da computabilidade foi desenvolvida em 1936 através da imaginação 
de uma máquina que poderia efetuar de forma automática os processos, geralmente 
desenvolvidos por um matemático. Para cada processo haveria uma máquina para 
somar, outra para dividir, outra para calcular integrais e assim por diante. 
TÓPICO 3 | EVOLUÇÕES DO INÍCIO DO SÉCULO XX
33
FIGURA 30 – ACE
FONTE: Computer History Museum. Disponível em: <http://www.computerhistory.
org>. Acesso em: 10 mar. 2012.
Raciocinando sobre o funcionamento dessas máquinas imaginárias, Turing 
chegou a uma brilhante conclusão. Em vez de utilizar uma máquina específica 
para cada processo matemático, era possível desenvolver um aparelho universal 
(máquina universal) que tivesse condições de realizar tudo o que as máquinas 
especializadas poderiam fazer, desde que fossem programadas para tal. 
Turing também trabalhou num computador chamado ACE (AutomaticComputing Engine) para o Laboratório Nacional de Física da Inglaterra 
(STRATHERN, 2000).
FIGURA 31 – ALAN TURING (na porta do ônibus)
FONTE: Hodges (2011)
34
UNIDADE 1 | HISTÓRICO DA COMPUTAÇÃO
Por volta de 1939 com a eclosão da guerra contra a Alemanha nazista, 
Turing foi designado a atuar em Bletchley Park na equipe de decifração de códigos. 
Lá Turing teve notícia de que os alemães haviam desenvolvido uma máquina para 
envio de mensagens codificadas para as frentes de batalha. 
FIGURA 32 – ENIGMA
FONTE: O autor.
A tal máquina era conhecida pelo nome Enigma e se acredita que as 
descobertas de Conrad Zuse tenham contribuído em sua construção (STRATHERN, 
2000).
A principal atividade de Turing e sua equipe era examinar um conjunto 
de mensagens codificadas procurando combinações e/ou padrões para encontrar 
a chave de codificação das mensagens de forma que pudessem decodificá-las e ler 
seu conteúdo. 
TÓPICO 3 | EVOLUÇÕES DO INÍCIO DO SÉCULO XX
35
FIGURA 33 – COLOSSUS NO DIA D (6 de Junho de 1944)
FONTE: Computer History Museum. Disponível em: <http://www.
computerhistory.org>. Acesso em: 10 mar. 2012.
Essa era uma atividade relativamente rotineira, então Turing resolveu 
construir uma máquina para executar tal atividade cuja base de funcionamento era 
descrita em “On computable numbers”. Dessa iniciativa foi criada a Colossus, uma 
máquina que recebia os textos de mensagens codificadas pela Enigma e procurava 
nesse texto quaisquer frequência ou combinações que pudesse levar à chave de 
decifração (STRATHERN, 2000).
Essa técnica é conhecida na área de criptografia como decifração por 
força bruta. A Colossus é considerada um importante invento que contribuiu 
de forma significativa para as forças aliadas. A versão mais aperfeiçoada dela 
permitia decifrar uma mensagem codificada pela Enigma em questão de minutos 
(STRATHERN, 2000).
FIGURA 34 – BRANCA DE NEVE E OS SETE ANÕES
FONTE: O autor
36
UNIDADE 1 | HISTÓRICO DA COMPUTAÇÃO
Após a guerra, em função de sua homossexualidade, o que também era 
caracterizado como “indecência flagrante” Turing foi preso e julgado. Por ter se 
confessado culpado teve a pena amenizada, tendo sido condenado a um tratamento 
hormonal ao invés da prisão. 
O tratamento resultou em diversos efeitos colaterais o que supostamente 
o levou a uma decisão fatal. Inspirado no filme Branca de Neve e os sete anões, 
particularmente na cena em que a bruxa mergulha uma maçã no veneno ele tenha 
determinado que terminaria seus dias comendo uma maçã envenenada. Na noite 
de 7 de Junho de 1954 Turing comeu uma maçã envenenada e partiu para o sono 
eterno (STRATHERN, 2000).
FIGURA 35 – LOGOMARCA DA APPLE COMPUTER
FONTE: Disponível em: <http://jscustom.theoldcomputer.com/images/
manufacturers_systems/Apple/266430apple-computer-logo.jpg>. 
Acesso em: 8 jun. 2012.
Em determinado momento da história da Apple Computer, empresa que 
desenvolveu a partir da década de 1970 diversos dispositivos computacionais 
significativos para a evolução da tecnologia da informação, o símbolo da empresa 
que é uma maçã com uma mordida recebeu as cores do arco-íris. 
A empresa utilizou o símbolo dessa forma de 1976 até 1998. Aqueles 
que conhecem a história e importância das contribuições de Alan Turing para a 
tecnologia da informação logo relacionaram os elementos, porém a Apple nunca 
admitiu oficialmente que o símbolo e as cores fossem uma alusão a Turing. 
TÓPICO 3 | EVOLUÇÕES DO INÍCIO DO SÉCULO XX
37
FIGURA 36 – PRIMEIRA LOGOMARCA DA APPLE COMPUTER
FONTE: Disponível em: <http://2.bp.blogspot.com/-qIu6mRujtBY/
T4JS2Kc9NmI/AAAAAAAAAuc/YZ-JkQvQhjI/s1600/logo-apple-
antiga.jpg>. Acesso em: 8 jun. 2012.
De acordo com Wosniak (2011), o nome da Apple Computer surgiu na 
Highway 85 num dia em que ele havia ido buscar Steve Jobs no aeroporto. Na 
oportunidade Jobs voltava de uma visita a um local chamado apple orchard (pomar 
de macieiras), então sugeriu o nome Apple Computer. 
A explicação para o uso das cores do arco-íris teria sido sim uma alusão 
a Newton, pois a primeira logomarca da empresa tinha Newton sentado sob uma 
macieira. E a relação com as cores do arco-íris se justifica pelo fato de Newton também 
ter desenvolvido uma teoria das cores baseado na observação de que o reflexo da luz 
num prisma se decompõe em diversas cores.
Assista ao filme Enigma para conhecer mais sobre a Enigma, Colossus, Alan 
Turing e também sobre a evolução da tecnologia da informação.
UNI
38
UNIDADE 1 | HISTÓRICO DA COMPUTAÇÃO
Claude Elwood Shannon defendeu, em 1937, a tese de que os conceitos 
de Geoge Boole teriam grande utilidade no campo da então eletromecânica. Ele 
provou que a álgebra booleana e a aritmética binária poderiam ser utilizadas 
para simplificar a organização de relês. O mais incrível foi que ele fez também 
a analogia inversa, provando a possibilidade de usar organizações de relês para 
resolver problemas de álgebra booleana. 
FIGURA 37 – CLAUDE ELWOOD SHANNON
FONTE: Computer History Museum. Disponível em: <http://www.
computerhistory.org>. Acesso em: 10 mar. 2012.
Shannon também é conhecido como o pai da teoria da informação, devido 
a uma publicação sua de 1948 entitulada Teoria Matemática da Comunicação (The 
Mathematical Theory of Communication), na qual Shannon definiu uma medida 
chamada de entropia. A medida de entropia de Shannon passou a ser considerada 
como uma medida da informação contida numa mensagem. Entre outras 
experiências, Shannon trabalhou com Vannevar Bush e nos Laboratórios Bell.
TÓPICO 3 | EVOLUÇÕES DO INÍCIO DO SÉCULO XX
39
FIGURA 38 – VANNEVAR BUSH
FONTE: Computer History Museum. Disponível em: <http://www.computerhistory.org>. 
Acesso em: 10 mar. 2012.
Vannevar Bush é conhecido por suas contribuições na computação 
analógica, seu papel político no desenvolvimento da bomba atômica e a ideia do 
memex. Memex (memory extender) é o nome dado por Bush ao teórico sistema 
de computador proto-hypertext. Este dispositivo teria links para uma biblioteca e 
capacidade para apresentar livros e filmes e seguir referências cruzadas entre os 
elementos. O memex influenciou o subsequente desenvolvimento do hipertexto.
40
RESUMO DO TÓPICO 3
Caro(a) acadêmico(a), nesse capítulo você estudou que:
• Uma das mentes mais brilhantes da história da Computação/Informática foi a 
do britânico Alan Mathison Turing o qual nos deixou o legado do princípio da 
computabilidade. Turing afirmava que todo problema que fosse devidamente 
expresso através da lógica, poderia ser resolvido.
• Enigma foi o nome dado a uma máquina construída para codificação de 
mensagens de guerra. Esta máquina foi utilizada pelas forças nazistas com 
relativo sucesso até que outra máquina fosse criada para decodificar tais 
mensagens.
• A tecnologia da informação também teve significativa participação no resultado 
final da Segunda Guerra Mundial através da decifração de mensagens com a 
máquina Colossus, que teve significativa participação de Alan Turing, pai da 
teoria da computabilidade.
• Uma das empresas mais significativas dos últimos tempos na área de 
Computação/Informática é a Apple Computadores, a qual foi fundada por Steve 
Jobs e Steve Wosniak. Embora a grande maioria das pessoas que conhecem a 
Apple a relacionem apenas a Steve Jobs, foi Steve Wosniak quem desenvolveu 
seus primeiros projetos de computadores. As habilidades de Jobs e Wosniak 
somadas é que permitiram à Apple se tornar o que é hoje, apesar de Wosniak ter 
deixado a empresa há bastante tempo.
41
Caro(a) acadêmico(a), como forma de fixar o conteúdo estudado realize 
a autoatividade proposta a seguir:
1 Diversas formas de representação dos números foram criadas através dos 
tempos, porém teve uma representação que passou a ser adotada como 
modelo universal. Como se chama esse modelode algarismos?
2 Os primeiros computadores eram essencialmente baseados em dispositivos 
eletromecânicos e a aritmética utilizada era a decimal. Num dado momento 
um pesquisador iniciou o uso da aritmética binária. Qual o nome desse 
pesquisador?
3 Durante a Segunda Guerra Mundial dois dispositivos para codificação e 
decodificação de mensagens foram construídos. Esses dispositivos tiveram 
grande significância em sua utilização relativa às comunicações de guerra. 
Qual o nome deles?
4 A ideia de uma máquina que pudesse executar quaisquer instruções baseadas 
em um programa foi concebido há bastante tempo, porém a descrição do 
funcionamento de tal máquina foi realizada apenas no século XX. Qual o 
nome do pai da teoria da computabilidade?
AUTOATIVIDADE
42
43
TÓPICO 4
O BERÇO DA INFORMÁTICA
UNIDADE 1
1 INTRODUÇÃO
É no século XX que ocorrem os principais eventos que conduziram a área 
da Computação/Informática ao que conhecemos atualmente. Os mais importantes 
em termos de fundamentos, ocorreram na primeira metade do século.
Já na segunda metade do século XX pode ser identificado um grande 
volume de acontecimentos que conduziram a área da Computação/Informática ao 
que é popularmente conhecido nos dias atuais.
2 O NASCIMENTO DA COMPUTAÇÃO
Em 1939 William Reddington Hewlett e David Packard, fundaram a 
Hewlett-Packard Company (HP) na garagem da casa de David com um capital 
inicial de US$ 538 (quinhentos e trinta e oito dólares). 
O primeiro equipamento produzido pela HP foi um oscilador de áudio, 
sendo que um dos primeiros clientes da empresa foi a Walt Disney. A Walt Disney 
encomendou 8 osciladores de áudio HP 200B para uso no filme Fantasia. Foi a 
primeira grande venda da HP (McLAUGHLIN; WEIMERS; WINSLOW, 2008). 
A HP é responsável por muitas inovações tecnológicas, produzindo 
equipamentos eletrônicos para testes e medições, calculadoras, computadores, 
impressoras laser e impressoras a jato de tinta. A garagem que serviu como primeiro 
endereço da HP é considerado o berço do Vale do Silício na Califórnia, EUA (HP, 
2011).
44
UNIDADE 1 | HISTÓRICO DA COMPUTAÇÃO
FIGURA 39 – GARAGEM DA HP
FONTE: O autor
Os princípios arquiteturais dos modernos computadores foram 
desenvolvidos em 1944 por John Von Neumann da universidade da Pensilvânia. 
Esta arquitetura ficou conhecida por “arquitetura de Von Neumann”. 
 
Um dos principais conceitos estabelecidos foi o de programa armazenado, 
ou programa interno. Diversos outros princípios foram propostos, mas nenhum 
deles teve fundamentos tão concretos quanto os de Neumann (ALMEIDA, 2002). 
FIGURA 40 – JOHN VON NEUMANN AO LADO DE UM COMPUTADOR IAS EM 1951
FONTE: O autor.
TÓPICO 4 | O BERÇO DA INFORMÁTICA
45
Almeida (2002) acrescenta que Von Neumann era fascinado pela física 
quântica e também pela teoria dos jogos. Criou o método Monte Carlo, que utiliza 
números aleatórios para resolver equações matemáticas. 
Teve participação no Projeto Manhattan, colaborando no estudo de produção 
da bomba atômica. Participou ainda dos projetos do ENIAC (Electronic Numeric 
Integrator and Calculator) e do EDVAC (Electronic Discrete Variable Computer). 
FIGURA 41 – JOHN PESPER ECKERT JR.
FONTE: Computer History Museum. Disponível em: <http://www.
computerhistory.org>. Acesso em: 10 mar. 2012.
O professor da Universidade da Pensilvânia John William Mauchly, 
juntamente com o físico John Pesper Eckert Jr. colocaram em operação, no ano 
de 1946, o ENIAC (Eletronic Numeric Integrator and Calculator). Este foi um dos 
primeiros trabalhos importantes em computação eletrônica. 
Entre muitos de seus componentes o ENIAC tinha em torno de 18.000 
válvulas, 70.000 resistores e 10.000 capacitores. Consumia cerca de 150 Kwats 
de potência, ocupando uma área de aproximadamente 1400 metros quadrados 
(ALMEIDA, 2002). O ENIAC operou até 1955. John Mauchly é reponsável também 
pelo desenvolvimento em 1949, de uma linguagem de programação de alto nível, 
chamada Short Order Code.
46
UNIDADE 1 | HISTÓRICO DA COMPUTAÇÃO
FIGURA 42 – ENIAC
FONTE: Computer History Museum. Disponível em: <http://www.
computerhistory.org>. Acesso em: 10 mar. 2012.
O primeiro computador eletrônico automático a ser produzido 
comercialmente foi o UNIVAC (Universal Automatic Computer). Construído pela 
Remington-Rand, o primeiro UNIVAC I foi enviado ao Bureau do censo de 1951, 
sendo então usado para tabular os dados do recenseamento.
FIGURA 43 – UNIDADE DE OPERAÇÃO DO UNIVAC
FONTE: O autor.
O UNIVAC I também foi o primeiro computador usado para processamento 
de dados em negócios, pela General Electric, na usina de Louisville, no ano de 
1954. Com essa iniciativa dava-se o primeiro passo para o uso de computadores 
como ferramenta de apoio aos negócios.
TÓPICO 4 | O BERÇO DA INFORMÁTICA
47
Em 1957 existiam três grandes linguagens para computadores: APT, 
FORTRAN e FLOW-MATIC. Nesta época era grande a necessidade de uma 
linguagem simples e padronizada para aplicações comerciais. 
A linguagem que veio para solucionar este problema foi o COBOL (Common 
Business Oriented Language), tendo sido em grande parte baseada na linguagem 
FLOW-MATIC que foi desenvolvida por Grace Murray Hopper (ALMEIDA, 2002).
FIGURA 44 – GRACE MURRAY HOPPER
FONTE: Computer History Museum. Disponível em: <http://www.
computerhistory.org>. Acesso em: 10 mar. 2012.
A partir desse momento estava criado o computador como conhecemos 
atualmente, os principais princípios dos sistemas básicos de operação (sistemas 
operacionais) e algumas linguagens de programação que viriam a servir de base 
para o desenvolvimento das demais linguagens de programação até as utilizadas 
nos dias atuais.
3 NOVAS TECNOLOGIAS DA INFORMAÇÃO E 
COMUNICAÇÃO
O termo tecnologia implica o conhecimento científico aliado aos métodos, 
processos e ferramentas utilizados a partir deste conhecimento. Diante disso, pode-
se entender que a tecnologia é parte integrante de praticamente todas as áreas de 
conhecimento. O desenvolvimento tecnológico por consequência está presente em 
todas as áreas em maior ou menor grau. 
48
UNIDADE 1 | HISTÓRICO DA COMPUTAÇÃO
Recentemente experimentamos um desenvolvimento tecnológico bastante 
significativo. Alguns dos grandes desenvolvimentos tecnológicos que merecem 
destaque são a decodificação do DNA, TV digital, clonagem animal, ônibus 
espacial, computador pessoal, internet e a educação a distância.
As Tecnologias da Informação e Comunicação, também tipicamente 
referenciadas por TICs, são o conjunto de recursos tecnológicos utilizados por 
uma parcela da sociedade com diversos objetivos. Na maioria dos casos as TICs 
são utilizadas para automação de atividades, seja na indústria, no comércio ou na 
educação. 
As TICs também são largamente utilizadas no âmbito pessoal como forma 
de se relacionar compartilhando informações, conteúdos e sentimentos. Alguns 
exemplos de TICs são os computadores pessoais, tablets, telefonia celular, internet, 
correio eletrônico, tecnologias de acesso remoto (wireless) e tecnologias digitais 
para captação e tratamento de sons e imagens.
O desenvolvimento das TICs tem gerado uma série de consequências 
para a sociedade. Dentre estas se podem destacar o aumento da competitividade 
empresarial e as pessoas em relação à suas posições dentro das empresas. 
As TICs têm influenciado também, nos processos de planejamento e ações 
das empresas, fazendo com que algumas empresas transformassem seus negócios 
em poucos anos. Um exemplo é a corrida para oferta de produtos através de sites na 
internet. Esta corrida requer preocupação com a tecnologia envolvida, a segurança 
dos dados e informações da empresa e dos clientes, organização em termos de 
logística para realizar a entrega dos produtos vendidos, entre outras providências.
As TICs têm influenciadotambém, na queda dos custos de artefatos 
tecnológicos bem como queda nos custos de processamento de dados, de serviços 
e de determinados produtos em função dos recursos tecnológicos empregados. 
Num panorama geral, as consequências para os indivíduos e a sociedade têm sido 
bastante positivas, permitindo acesso a informações, produtos e serviços, o que se 
pode caracterizar como melhoria na qualidade de vida.
Porém, você sabe qual a diferença entre informação e conhecimento? Então 
vamos lá, vamos explicar um pouco melhor esses conceitos, pois não podemos 
Você provavelmente utiliza pelo menos uma destas TICs no seu dia a dia, certo? E 
realmente estas tecnologias vieram para tornar nossas vidas melhores, você não acha?
UNI
TÓPICO 4 | O BERÇO DA INFORMÁTICA
49
confundir informação com conhecimento. A informação é um conjunto de 
conteúdos que estão disponíveis. O conhecimento é fruto do processamento destas 
informações transformando-a em algo novo a partir das informações disponíveis.
 Logo, a informação não necessariamente gera conhecimento, pois é 
necessário que o indivíduo entenda e processe a informação transformando-a 
em conhecimento. Diante deste quadro e da realidade em termos de uso de TICs 
pode-se ter evidências de que vivemos a sociedade da informação, que é um 
pouco diferente do que se define como sociedade do conhecimento ou era do 
conhecimento.
São consideradas, entre outras, as Novas Tecnologias da Informação e 
Comunicação os computadores pessoais, telefonia móvel, TV por assinatura, 
correio eletrônico, internet, tecnologias digitais e tecnologias de acesso remoto 
(MARINHO, 2011).
4 TECNOLOGIA DA INFORMAÇÃO E O ENSINO
John McCarthy juntamente com Marvin Minski desenvolvem, em 1956, o 
conceito de inteligência artificial. Em 1959 McCarthy desenvolveu a linguagem 
Lisp (List Processing), primeira linguagem de programação para aplicações em 
inteligência artificial. 
Atualmente, a inteligência artificial é largamente utilizada em diversas 
áreas do saber. Na educação a inteligência artificial pode ser utilizada em 
jogos educacionais ou ferramentas de simulação que permitam desenvolver 
determinadas competências (ALMEIDA, 2002).
FIGURA 45 – JOHN MCCARTHY
FONTE: Computer History Museum. Disponível em: <http://www.
computerhistory.org>. Acesso em: 10 mar. 2012.
50
UNIDADE 1 | HISTÓRICO DA COMPUTAÇÃO
Steve Russel, estudante do MIT (Massachussets Institute of Technology) 
desenvolveu em 1962 um dos primeiros jogos para computador, denominado 
Spacewar. O jogo Spacewar inspirou o desenvolvimento dos vídeo-games 
(ALMEIDA, 2002).
FIGURA 46 – MARVIN MINSKI
FONTE: Computer History Museum. Disponível em: <http://www.
computerhistory.org>. Acesso em: 10 mar. 2012.
Embora haja o entendimento de que jogos são caracterizados como uma 
prática reacreativa, as visões mais modernas acerca da utilização de jogos no 
processo de ensino e aprendizagem definem que podem e devem ser utilizados 
para tal finalidade. As características intrínsecas têm tornado os jogos um veículo 
de aprendizagem e comunicação ideal para o desenvolvimento do educando 
(MURCIA, 2005). 
FIGURA 47 – TELA DO JOGO SPACEWAR
FONTE: Computer History Museum. Disponível em: <http://www.
computerhistory.org>. Acesso em: 10 mar. 2012.
TÓPICO 4 | O BERÇO DA INFORMÁTICA
51
Embora pareça uma abordagem moderna, a utilização de jogos como 
ferramenta educacional é uma prática antiga. A utilização de jogos com finalidades 
educacionais foi iniciada em Roma e Grécia Antiga (KISHIMOTO, 1999). Embora 
fossem utilizados, os jogos não eram considerados ferramentas adequadas pela 
pedagogia tradicional, na qual o processo de ensino e aprendizagem era fortemente 
centrada na figura do educador. Naquela época os jogos eram considerados 
inadequados para serem utilizados na educação (MURCIA, 2005).
Apenas a partir da segunda metade do século XX é que se intensificaram 
as pesquisas sobre a utilização de jogos como ferramenta no processo de ensino 
e aprendizagem. Na década de 1960 foram alocados recursos em inúmeras 
universidades dos Estados Unidos para realização de pesquisas na área de jogos 
educacionais (ROCHA, 1997).
Os professores John Kemeny e Thomas Eugene Kurtz, desenvolveram em 
1964, com finalidades didáticas, a linguagem BASIC (ALMEIDA, 2002). O nome 
BASIC na realidade é uma sigla que significa Beginner’s All-Purpose Symbolic 
Instruction Code, ou seja, conjunto de instruções simbólicas de múltiplos propósitos. 
O BASIC é mais um exemplo de preocupação em termos de desenvolvimento 
de recursos tecnológicos que permitam facilitar a aprendizagem. BASIC também 
é o nome genérico dado a uma grande família de linguagens de programação 
derivadas do BASIC original. 
FIGURA 48 – TARTARUGA RETRATANDO SEYMOUR PAPERT
FONTE: PAPERT (2011)
52
UNIDADE 1 | HISTÓRICO DA COMPUTAÇÃO
Teve contribuição também no uso da tecnologia para o ensino Seymour 
Papert, matemático e importante educador do MIT (Massachussets Institute of 
Technology). Papert é um pesquisador bastante conhecido pelas pesquisas em 
torno do uso de computadores na educação. Na década de 1970, quando os 
computadores eram bastante limitados e ainda não possuía interface gráfica ele 
criou uma linguagem de programação denominada Logo. A ideia da linguagem 
LOGO era de um programa de desenho que controlava as ações de uma tartaruga 
mecânica traçando uma trilha com uma caneta no papel (ALMEIDA, 2002).
Papert também é conhecido pela criação do termo construcionismo 
que é uma abordagem do construtivismo cuja essência está em permitir que o 
estudante construa o seu conhecimento podendo se valer de ferramentas como o 
computador, para auxiliá-lo. Ele defendia o uso da tecnologia como ferramenta de 
apoio à educação. O computador pode ser um importante elemento para auxiliar o 
estudante no processo de construção de conhecimentos. (ALMEIDA, 2002).
No ano de 1969 o governo americano interligou as máquinas da ARPANET. 
Essa ação formou uma rede interligada de equipamentos a partir da qual foi 
formada a internet (ALMEIDA, 2002). É importante destacar que a ARPANET foi 
uma rede de comunicações concebida com finalidade exclusivamente militares.
FIGURA 49 – NIKLAUS WIRTH
FONTE: Computer History Museum. Disponível em: <http://www.
computerhistory.org>. Acesso em: 10 mar. 2012.
O professor Niklaus Wirth, que atuou na Universidade de Stanford e 
na Swiss Federal Institute of Technology (ETH), desenvolveu no ano de 1971 uma 
linguagem de programação destinada ao ensino de programação para acadêmicos 
iniciantes na área de Ciência da Computação. 
TÓPICO 4 | O BERÇO DA INFORMÁTICA
53
A contribuição de Wirth com a linguagem Pascal é muito significativa, 
pois ainda hoje a linguagem é utilizada em diversos locais do mundo para ensinar 
programação. Niklaus Wirth contribuiu também com o desenvolvimento de outras 
duas linguagens de programação denominadas Algol-W e Modula.
5 O SURGIMENTO DA TECNOLOGIA DA INFORMAÇÃO 
COMO A CONHECEMOS
A tecnologia da informação tal qual a conhecemos na atualidade iniciou 
uma trajetória de grande evolução a partir da década de 1970 quando empresas 
como Apple, IBM, Microsoft entre outras, iniciaram o desenvolvimento de 
computadores e softwares para uso pessoal. 
Até aquele momento não se imaginava que o computador pudesse ser 
utilizado para atividades pessoais. Imaginava-se apenas que computadores 
serviam esclusivamente para realização de cálculos complexos em projetos de 
pesquisa de Universidades ou para processamento de dados de negócios.
Bill Gates juntamente com Paul Allen fundam em 1975 a Microsoft. “Um 
computador em cada casa e em cada mesa de trabalho.” Essa era a proposta 
da Microsoft quando a empresa foi fundada. Hoje, depois de ajudar a tornar a 
tecnologia acessível a milhões de pessoas no Brasil e no mundo, a Microsoftacredita 
que essa ferramenta viabiliza grandes realizações agora e para o futuro. Por isso, 
definiu o desenvolvimento humano como elemento fundamental de sua missão 
corporativa. Mais do que fornecer softwares e serviços, a empresa deseja desenvolver 
tecnologias e estimular o crescimento de cadeias de valor que sejam instrumentos 
para um mundo de oportunidades e prosperidade. Para a Microsoft, o sucesso 
não se materializa por meio do software, mas sim das incríveis realizações que as 
pessoas podem fazer com ele. É pensando nisso que a empresa desenvolve soluções 
tecnológicas para que as pessoas possam atingir seu potencial pleno, seja em casa, 
na escola ou no trabalho. Fundada em 1975 nos Estados Unidos e presente no Brasil 
desde 1989, a Microsoft construiu uma trajetória sólida de incentivo à inovação. Suas 
criações ajudaram a transformar o modo como as pessoas se comunicam, trabalham, 
divertem-se e gerenciam suas rotinas. O objetivo da Microsoft é ajudar a sociedade a 
transpor barreiras e tornar a tecnologia uma ferramenta de desenvolvimento social e 
econômico. Mais do que a maior companhia de software do mundo, a Microsoft é uma 
empresa local em cada país e comunidade onde seus funcionários vivem e exercem 
suas atividades profissionais. Para consolidar seu objetivo de inovação constante, a 
Microsoft apoia inúmeras iniciativas em todo o mundo. No Brasil, mantém mais de 20 
Centros de Inovação espalhados por todo o país, nos quais a comunidade acadêmica 
e o empresariado local se reúnem para gerar conhecimento e abrir possibilidades de 
estágio e postos de trabalho qualificado para os jovens. Também apoia projetos de 
inclusão digital e incentiva a renovação do processo de aprendizagem, por meio do 
uso intensivo da informática por professores e alunos das escolas públicas.
FONTE: MICROSOFT. Disponível em: <http://www.microsoft.com>. Acesso em: 11 dez. 2011.
54
UNIDADE 1 | HISTÓRICO DA COMPUTAÇÃO
A Microsoft iniciou sua trajetória desenvolvendo softwares para um 
computador denominado Altair, produzido pela empresa MITS.
FIGURA 50 – ALTAIR
FONTE: O autor.
A Microsoft é uma empresa que contribuiu muito para que a tecnologia 
da informação esteja no estado atual, pois através de seus softwares popularizou 
significativamente a utilização de computadores. 
Se você tiver interesse em saber mais sobre a Microsoft e sua história, consulte o 
site <http://www.microsoft.com>.
UNI
TÓPICO 4 | O BERÇO DA INFORMÁTICA
55
FIGURA 51 – MICROSOFT NA DÉCADA DE 1970
FONTE: Computer History Museum. Disponível em: <http://www.
computerhistory.org>. Acesso em: 10 mar. 2012.
Os softwares da Microsoft têm uma característica de facilitar o uso da 
tecnologia por uma parcela significativa da população.
FIGURA 52 – UNIDADE DA MICROSOFT DO VALE DO SILÍCIO, CA
FONTE: O autor
56
UNIDADE 1 | HISTÓRICO DA COMPUTAÇÃO
Em 1976, Steven Paul Jobs, mais conhecido como Steve Jobs juntamente 
com Steve Wosniak, seu colega de trabalho na HP, projetaram e construíram um 
computador pessoal o qual batizaram de Apple I. 
FIGURA 53 – GARAGEM NA QUAL FOI FUNDADA A APPLE COMPUTER
FONTE: O autor
O protótipo do Apple I foi construído na garagem da casa de Steve, a qual 
também foi o primeiro endereço da Apple Computadores. O capital inicial da 
Apple foi em torno de US$ 1.300,00 (mil e trezentos dólares), dinheiro proveniente 
da venda do Volkswagen Kombi de Jobs e da calculadora científica HP de Wosniak, 
seus bens mais preciosos. 
FIGURA 54 – APPLE I
FONTE: Computadores e informática (2011)
TÓPICO 4 | O BERÇO DA INFORMÁTICA
57
O Apple I que era comercializado por US$ 666,00 (seiscentos e sessenta 
e seis dólares), no primeiro ano rendeu um faturamento de US$ 774.000,00 
(setecentos e setenta e quatro mil dólares). Um ano mais tarde foi lançado o Apple 
II, o primeiro computador da Apple com interface gráfica, que logo se tornou um 
grande sucesso.
FIGURA 55 – APPLE II
FONTE: O autor.
A partir de 1980 a Apple passou a ser cotada na bolsa de valores. Os demais 
produtos lançados pela Apple até o final da década de 90 foram o Apple III, Lisa 
(nome da primeira filha de Jobs), Lisa II, Macintosh, Cyberdog, Newton, eMate, 
Powerbook, QuickTime, Power Macintosh, iMac, iPod, MacBok, iPhone, iPad, 
entre outros.
FIGURA 56 – APPLE LISA 2
FONTE: O autor.
58
UNIDADE 1 | HISTÓRICO DA COMPUTAÇÃO
A Apple Computer é uma empresa cujas contribuições para a evolução da 
tecnologia da informação são relevantes. A Apple foi responsável pela criação de 
uma série de novos conceitos utilizando a tecnologia como meio.
FIGURA 57 – APPLE MACINTOSH
FONTE: O autor.
A lista de criações realizadas pela Apple é bastante extensa, então serão 
listados os três considerados mais relevantes do ponto de vista do autor. 
FIGURA 58 – STEPHEN PAUL JOBS (STEVE JOBS)
FONTE: APPLE (2011)
TÓPICO 4 | O BERÇO DA INFORMÁTICA
59
Pode-se dizer que a Apple foi responsável pela criação de três divisores de água 
na história da tecnologia da informação. O primeiro divisor de águas foi a introdução 
do conceito de computador pessoal através do Apple I. Até então, não se pensava em 
computadores para pessoas comuns e falar sobre isso era motivo de piada. 
FIGURA 59 – iPhone 4S
FONTE: APPLE (2011)
O segundo divisor de águas foi o Macintosh, que introduziu de forma 
definitiva o uso de interface gráfica e uma série de outros conceitos que vieram 
com o mesmo. O terceiro divisor está relacionado ao novo conceito de celular que 
foi introduzido através do iPhone. 
Vários recursos utilizados pelo iPhone foram criados no passado, porém 
o iPhone reuniu uma série de recursos e funcionalidades que o tornaram útil e 
desejável por uma parcela sigificativa de pessoas.
FIGURA 60 – SEDE ATUAL DA APPLE COMPUTER NA CALIFÓRNIA
FONTE: O autor
60
UNIDADE 1 | HISTÓRICO DA COMPUTAÇÃO
Lamentavelmente, no dia 5 de Outubro de 2011, a área de tecnologia da 
informação perdeu seu mais importante representante dos tempos recentes da 
tecnologia. Steve Jobs faleceu vítima de um tumor no pâncreas. 
Steve Jobs merece ser lembrado, pois é reponsável pelos principais divisores 
de água criados na Apple e por ter impulsionado pesquisas e desenvolvimento de 
tecnologias que, possivelmente, jamais teriam sido criadas sem a determinação de 
uma pessoa como ele.
FIGURA 61 – TIM BERNERS-LEE
FONTE: Vidas famosas (2011)
Timothy John Berners-Lee, mais conhecido como Tim Berners-Lee propôs 
em 1990 a World Wide Web com o desenvolvimento da linguagem HTML 
(ALMEIDA, 2002). O primeiro website construído por Tim Berners-Lee era uma 
página com apenas texto que foi publicada em agosto de 1991. 
O conteúdo da página se resumia a uma explicação sobre o que era a World 
Wide Web, além de informações sobre instalação e configuração de um servidor 
web. A Web faz uso da internet, que na verdade é a rede de comunicação, para 
poder funcionar. Tipicamente um website precisa trafegar suas informações através 
da internet.
TÓPICO 4 | O BERÇO DA INFORMÁTICA
61
FIGURA 62 – SÍMBOLO ARROBA
FONTE: O autor
Passados pouco mais de vinte anos da criação da Web, ela se tornou uma 
ferramenta praticamente indispensável para determinadas áreas de negócios. 
Muitos tipos de negócios não existiriam se não fosse a Web e outros não teriam 
crescido tanto. 
Diante disso, há também, aqueles negócios que deixaram de existir e outros 
que tiveram que ser reinventados. Diante de todo esse quadro de mudanças que 
ocorreram o saldo é positivo, ou melhor, incalculavelmente positivo.
FIGURA 63 – COMPUTER HISTORY MUSEUM
FONTE: O autor 
62
UNIDADE 1 | HISTÓRICO DA COMPUTAÇÃO
Nas ciências, por exemplo, a velocidade em que uma descoberta se torna 
conhecida pela comunidade científica é praticamente instantânea. O acesso 
ao conhecimento se tornou algoincomparavelmente melhor aos tempos que 
antecederam a Web.
FIGURA 64 – CAMPUS DA UNIVERSIDADE CARNEGIE MELLON NA CALIFÓRNIA
FONTE: O autor 
Caro(a) acadêmico(a), caso queira conhecer ainda mais sobre a evolução da 
tecnologia da informação, acesse o site <http://www.computerhistory.org> do Museu de 
História do Computador (Computer History Museum). Certamente você gostará muito das 
informações que encontrará no site do museu.
Assista ao filme Os Piratas do Vale do Silício para saber mais sobre a história 
recente das principais empresas que contribuíram para o atual estado da tecnologia da 
informação.
UNI
UNI
TÓPICO 4 | O BERÇO DA INFORMÁTICA
63
É importante você observar que algumas organizações (empresas, 
universidades, centros de pesquisa, entre outros), tiveram grande participação 
na evolução da computação. Algumas das principais são: Apple Computadores, 
AT&T, Bell Labs, IBM, Universidade Carnegie Mellon, MIT (Massachusets Institute 
of Technology), Microsoft, PARC (Palo Alto Research Center), SEI (Software Engeneering 
Institute), Universidade de Berkeley, Universidade de Cambridge, Universidade 
da Pensilvânia, Universidade de Stanford, Xerox, entre outros.
FIGURA 65 – CAMPUS DA UNIVERSIDADE DE STANFORD
FONTE: O autor 
Caro(a) acadêmico(a), no momento em que você estiver lendo este Caderno 
de Estudos a tecnologia da informação, provavelmente não será a mesma de 
quando foi escrito. Isso se deve não apenas ao fato da evolução se dar de forma 
bastante acelerada, mas também, porque a evolução é produto de um processo que 
se desenvolve de maneira praticamente contínua. Muitas das novas tecnologias 
utilizadas no momento são, por exemplo, fruto da ressignificação de antigas 
tecnologias em favor de uma utilidade do momento.
A leitura complementar desta unidade do Caderno de Estudos é um trecho 
do livro de Steve Wosniak no qual ele conta como foi o processo de criação do 
primeiro computador da Apple, o Apple I. Boa Leitura!
64
UNIDADE 1 | HISTÓRICO DA COMPUTAÇÃO
LEITURA COMPLEMENTAR
APPLE I
Nunca fui o tipo de pessoa que tivesse coragem de erguer a mão durante 
a principal reunião do Homebrew e dizer: “Ei, vejam este grande avanço na 
computação que criei”. Não, nunca conseguiria dizer isso diante de uma garagem 
lotada de pessoas.
Mas após todas as reuniões de quarta-feira, eu instalava meu material 
em uma mesa e quem quisesse era bem-vindo para se proximar e fazer qualquer 
pergunta. Eu respondia a todos.
Mostrei o computador que mais tarde ficou conhecido como Apple I em todas 
as reuniões após conseguir fazê-lo funcionar. Nunca planejei antecipadamente o 
que iria fazer. Apenas começava a demonstração e deixava as pessoas fazerem as 
perguntas que eu sabia que fariam, ou seja, as questões que eu queria responder.
Eu estava tão orgulhoso de meu projeto – e acreditava tanto na missão 
do clube em relação ao avanço da informática – que tirei talvez uma centena de 
cópias xerox de todo ele (inclusive do programa monitor) e as distribuí para quem 
quisesse. Eu esperava que, a partir de meu projeto, os membros do Homebrew 
pudessem montar os próprios computadores.
Queria que todos vissem pessoalmente meu grande projeto: um computador 
com apenas 30 chips dentro dele, fato que chocava a todos. É certo que tinha a 
mesma quantidade de chips do Altair, exceto que este não conseguia fazer nada a 
menos que um monte de outros equipamentos caros fosse comprado e conectado 
ao computador. Meu computador, porém, era barato desde o início. Além disso, o 
fato de as pessoas poderem usar a TV de casa como tela em vez de pagar milhares 
de dólares por um teletipo (aparelho telegráfico utilizado sobretudo em agências 
de notícias, jornais, revistas etc., que transmite diretamente um texto, por meio de 
um teclado datilográfico, registrando a mensagem, no posto receptor, sob a forma 
de letras impressas) colocava-o em outra categoria.
Eu não ficaria satisfeito apenas digitando 1s e 0s dentro dele. Meu objetivo 
desde o colégio era ter um computador que eu pudesse programar, embora sempre 
tivesse assumido que a linguagem a ser utilizada seria o FORTRAN.
O computador que eu havia montado ainda não tinha uma linguagem. 
Naquela época, em 1975, um jovem rapaz chamado Bill Gates estava começando a 
ter um pouco mais de fama em nossos círculos ao desenvolver um intérprete em 
linguagem BASIC para o Altair. Nosso clube tinha uma cópia de tal programa em 
uma fita que podia ser lida com um teletipo, tarefa que levava cerca de 30 minutos 
para ser concluída. Além disso, por volta da mesma época, foi lançado um livro 
chamado 101 Basic Computer Games (101 Jogos de Computador em Basic). Eu podia 
sentir o cheiro de algo no ar.
TÓPICO 4 | O BERÇO DA INFORMÁTICA
65
Por isso decidi que o BASIC seria a linguagem correta a desenvolver para 
o Apple I e o microprocessador 6502. Isso significava que se eu desenvolvesse um 
programa BASIC para ele, o meu poderia ser o primeiro. E eu poderia até ficar famoso 
por isso. As pessoas diriam: “Ah, Steve Wosniak, ele fez o BASIC para o 6502”.
Seja como for, as pessoas que viram meu computador puderam vislumbrar 
o futuro. Estávamos diante de uma via de mão única: uma vez nela, não se poderia 
mais voltar atrás.
A primeira vez que mostrei meu projeto foi com o static RAM (SRAM) – o 
tipo de memória que estava em meu Computador Cream Soda. Mas as revistas 
sobre eletrônica que eu lia vinham falando sobre um novo chip de memória 
chamado dynamic RAM (DRAM), que teria 4 Kbytes por chip.
Essas revistas vinham anunciando a DRAM como a primeira vez que 
uma memória de chip de silício seria mais barata que uma memória de núcleo 
magnético, pois, até então, todos os principais computadores, como os sistemas da 
IBM e da Data General, ainda utilizavam memória de núcleo (core).
Percebi que os 4 Kbytes da DRAM – que eu precisava como mínimo 
– utilizariam somenete 8 chips, em vez de 32 chips SRAM que eu havia pego 
emprestado de Myron. Meu objetivo desde o colégio foi sempre utilizar a menor 
quantidade de chips possível, então aquele seria o caminho a seguir.
A maior diferença entre a SRAM e a DRAM é que precisava ser 
continuamente atualizada ou perderia seu conteúdo; ou seja, o microprocessador 
teria de atualizar eletricamente cerca de 128 endereços diferentes da DRAM a cada 
dois milésimos de segundo para evitar que seus dados fossem esquecidos.
Assim, adicionei DRAM desenvolvendo as especificações na tela – segurei 
o sinal de relógio (clock) do microprocessador estável, mantendo as transições 
desligadas, durante um período de tempo chamado de “atualização horizontal”.
Você sabe que a TV rastreia uma linha de cada vez em seu aparelho, de 
cima para baixo? Ele leva cerca de 65 microssegundos (milionésimos de segundo) 
para varrer cada uma. Acontece que cerca de 40 desses microssegundos são visíveis 
e os outros 25 não são. Durante esse tempo de 25 microssegundos, o chamado 
período de atualização, inseri 16 endereços exclusivos para a DRAM (obtive esses 
endereços de graças, utilizando os contadores do terminal, que estavam gerando 
sinais de vídeo).
Eu tinha chips de seleção que selecionavam os endereços que vinham dos 
chips horizontais e verticais do terminal durante esse período. Surpreendentemente, 
foram precisos somente dois desses chips de seleção e talvez mais um ou dois chips 
em termos de lógica para fazer todo o processo. Assim, na verdade, roubei alguns 
ciclos do microprocessador para atualizar a DRAM.
66
UNIDADE 1 | HISTÓRICO DA COMPUTAÇÃO
Não tinha ideia alguma de como obter um chip DRAM, mas por sorte, 
bem naquela época, alguém do clube que trabalhava na AMI estava vendendo 
alguns chips DRAM de 4 Kbytes por um preço razoável. Isso foi antes sequer de eles 
chegarem ao mercado. Vejo agora que alguém deve tê-los roubado da AMI, mas 
não perguntei nadaa respeito.
Comprei 8 deles do sujeito da AMI por cerca de 5 dólares cada e modifiquei 
meu projeto. Acrescentei alguns fios ao conector de memória na placa do Apple I 
para que ela pudesse acomodar tanto uma placa SRAM como uma placa DRAM. 
Instalei a nova placa DRAM e ela funcionou desde o primeiro instante.
Eu vinha mostrando-me excitante projeto para Steve Jobs. Ele me 
acompanhou algumas vezes ao Homebrew, ajudando-me a carregar minha TV. 
Ele ficou me perguntando se eu conseguiria montar um computador que pudesse 
ser utilizado para compartilhamento de tempo – como o microprocessador usado 
por uma empresa local chamada Call Computer, localizada em Mountain View.
No ano anterior, eu e Steve havíamos vendido meu terminal ARPANET 
para a Call Computer, dando-lhe o direito de fabricação e venda.
“Claro”, eu disse. “Algum dia”. Podia ser feito, pensei, mas então já seria 
antiquado.
Depois ele perguntou se algum dia eu poderia acrescentar um disco para 
armazenamento. Novamente eu disse: “Claro. Algum dia”. E isso também parecia 
ser antiquado.
Então, alguns dias depois de conseguir colocar as memórias DRAM da AMI 
para funcionar, Steve me telefonou de seu trabalho e me perguntou se eu tinha chegado 
a pensar em utilizar memórias DRAM da Intel em vez das memórias da AMI.
“As da Intel são melhores, claro, mas nunca conseguiria comprá-las”, 
respondi; Steve me pediu para esperar um minuto.
Ele deu alguns telefonemas e como por um milagre conseguiu algumas 
memórias DRAM de graça da Intel – inacreditável, considerando seu preço e 
raridade na época. Steve é esse tipo de pessoa. Quer dizer, ele sabia como conversar 
com um representante de vendas. Eu nunca conseguiria fazer algo assim; era muito 
tímido.
Mas ele conseguiu os chips DRAM da Intel. E com eles em mãos, refiz o 
projeto em torno deles. Fiquei muito orgulhoso porque meu computador pareceu 
ainda melhor. Precisei adicionar um par de chips ao meu computador para fazê-lo 
funcionar com as nova memórias, mas os chips da Intel eram fisicamente muito 
menores que os da AMI.
Tenho de interromper aqui e explicar por que era interessante ter um 
chip de tamanho menor. Lembra-se de quando eu disse que meu objetivo desde 
TÓPICO 4 | O BERÇO DA INFORMÁTICA
67
o colégio sempre foi ter o menor número possível de chips? Bem, essa não é a 
história toda. Certa vez, no colégio, eu estava tentando conseguir chips para um 
computador que havia projetado. Meu pai me levou à Fairchild Semiconductor, 
empresa que inventou o semicondutor, e me apresentou um engenheiro que ele 
conhecia. Então contei ao tal engenheiro que havia pegado um minicomputador 
já existente no mercado e o projetado de duas maneiras. Achei que se utilizasse os 
chips da Sygnetics (concorrente da Fairchilds), o computador teria menos chips do 
que se utilizasse os da Fairchild.
O engenheiro me perguntou que chips da Sygnatics eu tinha utilizado. 
Então lhe passei a marca e o número do modelo.
Ele ressaltou que os chips da Sygnetics que eu utilizara no projeto eram 
muito maiores em termos de tamanho físico, com muito mais pinos e muito 
mais fios para conectar que os chips equivalentes da Fairchild, o que adicionava 
complexidade à montagem.
Fiquei aturdido. Essa colocação do engenheiro me fez perceber naquele 
instante que o projeto mais simples de computador deveria ter, de fato, menos 
conexões, e não simplesmente menos chips. Portanto, meu objetivo mudou: em 
vez de projetar buscando somente usar menos chips, eu tentaria a partir dali ter a 
menor placa possível também em termos de tamanho.
Geralmente menos chips significavam menos conexões, mas nem sempre.
Voltando ao projeto da DRAM da intel para o Apple I, a troca das memórias 
significava que eu poderia reduzir o tamanho total da placa, embora tivesse de 
adicionar alguns chips para fazê-lo.
Olhando em retrospectiva, seguir o projeto daquele computador com chips 
da Intel doi uma decisão de muita sorte, porque, no final, aquele projeto de chip se 
tornou padrão para todos os chips de memória usados até hoje.
Por volta do Dia de Ação de Graças de 1975, Steve já tinha me acompanhado 
em algumas reuniões da Homebrew. Então ele me disse ter observado algo: as 
pessoas no clube estão estudando diagramas esquemáticos, mas eles não possuem 
tempo ou habilidade suficientes para montar o computador descrito nos esquemas.
Então ele propôs: “Por que não fabricarmos e depois vendermos as placas 
de circuito impresso para elas? Assim, as pessoas poderiam soldar todos os chips 
que já possuíam em uma placa de circuito impresso (printed circuit – PC) e ter 
um computador em poucos dias em vez de em algumas semanas”. A maior parte 
do trabalho mais difícil já estaria feita. A ideia de Steve era que gastássemos 20 
dólares para confeccionar as placas de circuitos pré-impressos e as vendêssemos 
por 40 dólares. As pessoas achariam isso um grande negócio, pois, afinal, estavam 
obtendo chips quase de graça.
68
UNIDADE 1 | HISTÓRICO DA COMPUTAÇÃO
Francamente, eu não conseguia ver como poderíamos recuperar o dinheiro 
gasto. Imaginei que precisaríamos investir cerca de mil dólares para que uma 
empresa de computadores imprimisse as placas. E para obter o dinheiro de 
volta, teríamos de vender a placa de 40 dólares para 50 pessoas. Eu não achava 
que existiriam 50 pessoas no Homebrew interessadas em comprar a placa. Afinal 
àquela altura, o clube possuía cerca de 500 membros apenas, e a maioria era de 
admiradores do Altair.
Mas Steve teve um bom argumento. Estávamos no carro dele e ele disse 
– e posso me lembrar dele dizendo isto como se fosse ontem: “Bem, mesmo que 
percamos nosso dinheiro, teremos uma empresa. Pelo menos uma vez em nossas 
vidas teremos uma empresa”.
Pelo menos uma vez em nossas vidas teríamos uma empresa. Aquilo 
me convenceu. Fiquei muito animado em pensar sobre nós daquela forma: dois 
grandes amigos começando uma empresa. Soube naquele momento que faria isso. 
Como poderia não fazer?
FONTE: WOSNIAK, Steve. iWoz: a verdadeira história da Apple segundo seu cofundador. São 
Paulo: Évora, 2011, p. 139 - 144.
69
RESUMO DO TÓPICO 4
Caro(a) acadêmico(a), nesse tópico você estudou que:
• A garagem da HP é considerada o berço da primeira região de alta tecnologia 
do mundo, o Vale do Silício. A ideia de tal região foi motivada pelo professor 
de Stanford, Frederick Terman que encorajou seus acadêmicos a empreenderem 
seus negócios ao invés de trabalharem como funcionários de outras empresas. 
Os primeiros estudantes a seguirem sua recomendação foram William Hewlett 
e David Packard, os quais desenvolveram em 1938 seu primeiro produto, um 
oscilador de áudio na garagem de casa em Palo Alto, Califórnia, EUA.
• Diversos computadores foram desenvolvidos antes do ENIAC, porém ele é 
o primeiro computador eletrônico da história. O ENIAC foi desenvolvido na 
Universidade da Pensilvânia pelos professores John Mauchly e John Eckert e 
passou a operar a partir do ano de 1946.
• Entre os diversos usos que se pretendeu fazer com a tecnologia da informação, 
a educação não ficou de fora. As pesquisas em torno do uso da tecnologia da 
informação em benefício da educação iniciaram há muito tempo. Na tecnologia 
da informação como conhecemos atualmente as primeiras iniciativas se dão na 
década de 1950 com o desenvolvimento do conceito da Inteligência Artificial.
• A evolução da tecnologia da informação se deve a um grande conjunto de 
pesquisadores e instituições. Dentre as instituições se destacam as Universidades 
de Stanford, Berkeley, Cambridge, Pensilvânia, Carnegie Mellon, SEI (Software 
Engeneering Institute) e MIT (Massachusets Institute of Technology). E também à 
IBM, Apple Computadores, Microsoft, AT&T, Bell Laboratories e Xerox PARC 
(Palo Alto Research Center).
70
AUTOATIVIDADE
Caro(a) acadêmico(a), como forma de fixar o conteúdoestudado realize 
a autoatividade proposta a seguir:
1 A internet é produto de pesquisas sobre comunicação de dados para 
finalidades militares. O objetivo inicial da rede era permitir a comunicação 
mesmo que um dos nós entre emissor e receptor falhasse ou estivesse fora de 
operação. Por esse motivo criou-se o conceito de roteamento, no qual cada 
vez que a comunicação é estabelecida pode ocorrer numa diferente rota. 
Qual o primeiro nome que a internet recebeu?
2 Diversos pesquisadores se empenharam em desenvolver ferramentas 
informatizadas que auxiliassem a aprendizagem. Um desses pesquisadores 
desenvolveu uma linguagem de programação para ingressantes em cursos 
de Computação/Informática. Qual o nome dessa linguagem de programação 
e por que ela recebeu esse nome?
3 Diversas instituições contribuíram para a evolução da Computação/
Informática. Dentre essas, indique as duas que mais são populares atualmente 
e justifique o porquê.
4 Descreva o que Bill Gates pretendia dizer quando pronunciou a frase “Um 
computador em cada casa e em cada mesa de trabalho”.
5 A Computação/Informática como outras áreas do conhecimento possuem 
ondas de tendências. A tendência nos primórdios era grandes equipamentos, 
depois surgiram os computadores pessoais trazendo a onda da redução 
de tamanho. Quando a internet se tornou acessível às pessoas comuns os 
microcomputadores continuaram sendo utilizados, porém a comunicação 
passou a ser realizada através de servidores com grande capacidade de 
processamento. A onda atual indica tendência em pequenos dispositivos de 
comunicação. Cite dois exemplos desses dispositivos.
71
UNIDADE 2
CONCEITOS FUNDAMENTAIS DA 
COMPUTAÇÃO
OBJETIVOS DE APRENDIZAGEM
PLANO DE ESTUDOS
A partir deste capítulo você será capaz de:
• compreender os conceitos fundamentais da computação;
• entender a área de informática de maneira sistêmica;
• compreender os sistemas de numeração e sua importância;
• conhecer os principais elementos de um sistema computacional.
Esta unidade está dividida em quatro tópicos, sendo que ao final de 
cada um deles você encontrará atividades que lhe auxiliarão na apropriação 
dos conhecimentos.
TÓPICO 1 – SISTEMAS DE NUMERAÇÃO
TÓPICO 2 – BASES COMPUTACIONAIS
TÓPICO 3 – SUPORTES COMPUTACIONAIS
TÓPICO 4 – INTELIGÊNCIA COMPUTACIONAL
72
73
TÓPICO 1
SISTEMAS DE NUMERAÇÃO
UNIDADE 2
1 INTRODUÇÃO
Através de seus estudos na Unidade 1 foi possível perceber que a área 
de computação possui raízes profundas no campo da matemática e que seu 
desenvolvimento não ocorreu de forma repentina. Foram necessários vários 
séculos para que seu desenvolvimento ocorresse. O próprio desenvolvimento do 
conceito de número foi um processo longo e gradual (BOYER, 1996). Na realidade, 
a matemática é a razão da existência da computação, pois os dispositivos 
computacionais nasceram da necessidade de realizar cálculos e a partir de 
máquinas cuja finalidade era realizar cálculos.
Num dado momento da história percebeu-se que computadores poderiam 
ser utilizados para realizar atividades que vão muito além de cálculos. Porém, 
numa visão mais clínica do que está sendo computado, pode-se perceber que 
o processamento realizado está baseado em lógica e resolução de expressões, 
praticamente idênticas às expressões matemáticas, apenas utilizando outros 
elementos.
Diante disso, entender com maior propriedade os sistemas de numeração 
é fundamental para melhor entender a área da computação. Neste sentido, a 
presente unidade apresenta os principais sistemas de numeração envolvidos 
na computação e também os cálculos para realização das conversões entre estes 
sistemas.
Na antiguidade, diversos sistemas de numeração foram utilizados. Por 
exemplo, os sistemas de numeração de base dois, três, cinco e vinte (BOYER, 1996). 
Para representação numérica, diversas simbologias foram utilizadas. Isso implica 
em podermos classificar os sistemas de numeração em dois grupos: os sistemas de 
numeração não posicionais e os sistemas de numeração posicionais (FOROUZAN; 
MOSHARRAF, 2011).
Num sistema de numeração não posicional, cada símbolo possui um valor 
fixo. Isso significa que o valor daquele símbolo não se altera em função da posição 
que ele ocupa na composição do número e que normalmente não tem relação com 
o valor da posição. O exemplo mais popular são os números romanos, pois ainda 
são utilizados em relógios, eventos esportivos e outras aplicações (FOROUZAN; 
MOSHARRAF, 2011). No conjunto de símbolos dos numerais romanos temos I, V, 
X, L, C, D e M. Observe no quadro a seguir os símbolos com seus respectivos valores.
UNIDADE 2 | CONCEITOS FUNDAMENTAIS DA COMPUTAÇÃO
74
QUADRO 2 – EXEMPLO DE ALGARISMOS ROMANOS
Valor 1 5 10 50 100 500 1.000
Símbolo I V X L C D M
FONTE: O autor
O quadro a seguir apresenta alguns exemplos de números romanos e seus 
respectivos valores na base decimal, para melhor entendimento dos sistemas de 
numeração não posicionais.
QUADRO 3 – EXEMPLOS DE ALGARISMOS ROMANOS
III 1+1+1 = 3
IV 5 - 1 = 4
VIII 5 +1 + 1 + 1 = 8
XVIII 10 + 5 + 1 + 1 + 1 = 18
XIX 10 + (10 – 1) = 19
LXXII 50 + 10 + 10 + 1 + 1 = 72
CI 100 + 1 = 101
MMVII 1000 + 1000 + 5 + 1 + 1 = 2007
MDC 1000 + 500 + 100 = 1600
FONTE: Forouzan e Mosharraf (2011, p. 31)
Num sistema de numeração posicional, o local em que um algarismo 
ocupa na representação do valor numérico determina o valor que ele representa 
(FOROUZAN; MOSHARRAF, 2011). Para nosso entendimento, pensar em 
unidade, dezena e centena, por exemplo, facilita a compreensão do princípio 
destes sistemas de numeração. Já nos sistemas de numeração não posicionais, o 
valor representado por um algarismo não se altera em função do local em que 
ele está posicionado na representação. Um exemplo simples desse grupo são os 
algarismos romanos.
TÓPICO 1 | SISTEMAS DE NUMERAÇÃO
75
Para atender aos seus objetivos acadêmicos, este Caderno de Estudos se 
concentra no grupo de sistemas de numeração posicionais, tratando do sistema 
decimal, binário, octal e hexadecimal, bem como as respectivas conversões entre 
eles. A principal finalidade de estudar os sistemas de numeração e as respectivas 
formas de conversão entre os mesmos é permitir a resolução de determinados 
problemas que poderão ser enfrentados no campo profissional. Além disso, provê 
uma base para o entendimento do conteúdo de outras disciplinas da área da 
computação/informática.
2 SISTEMA DE NUMERAÇÃO DECIMAL
O sistema de numeração decimal, ou de base 10 (dez), foi criado na 
antiguidade, motivado pelo fato dos seres humanos possuírem dez dedos (Boyer, 
1996). Pelo fato de não haver dispositivos de auxílio aos cálculos, as pessoas se 
valiam dos dedos para realizar contagens. Se analisarmos o comportamento dos 
seres humanos contemporâneos, veremos que ainda fazemos isso, talvez por 
instinto ou herança genética. 
O sistema de numeração decimal utiliza 10 (dez) algarismos em sua 
representação. Os algarismos são: 0, 1, 2, 3, 4, 5, 6, 7, 8 e 9. Os algarismos utilizados 
neste sistema de numeração também são tipicamente chamados de dígitos decimais 
ou apenas de dígitos (FOROUZAN; MOSHARRAF, 2011).
Os números nos sistemas posicionais são formados da direita para a esquerda. 
Talvez isso possa lhe explicar o fato dos números digitados numa calculadora estarem sempre 
alinhados pela direita e também o porquê de zeros à esquerda não terem significância.
UNI
Observe que o algarismo 0 (zero) é o primeiro símbolo do sistema de numeração 
decimal e que ele deve ser considerado tão importante quanto qualquer outro algarismo. Na 
área da computação/informática o algarismo 0 (zero) é muito importante.
UNI
UNIDADE 2 | CONCEITOS FUNDAMENTAIS DA COMPUTAÇÃO
76
A formação dos números de base decimal segue o princípio posicional. 
A formação dosnúmeros baseada no princípio posicional se dá pela potência da 
posição elevada pela base, iniciando da direita para a esquerda a partir da potência 
zero. Isso significa dizer que a unidade é formada pelo algarismo multiplicado 
pela base elevada à potência zero. Utilizando como exemplo o algarismo 7 (sete), 
teremos a unidade sete formada da seguinte maneira: 7 x 100 = 7. O resultado 
da base 10 (dez) elevada à potência 0 (zero) será 1 (um), pois qualquer número 
elevado à potência 0 (zero) resulta no valor 1 (um). Então, o valor 7 (sete) será 
multiplicado por 1 (um), resultando no próprio 7 (sete).
3 SISTEMA DE NUMERAÇÃO BINÁRIO
O sistema de numeração binário, ou de base 2 (dois), utiliza apenas os 
algarismos 0 (zero) e 1 (um) na sua representação. Neste sistema de numeração, os 
algarismos são tipicamente chamados de dígitos binários ou apenas de bits, que é 
a abreviação de dígito binário na língua inglesa, ou seja, binary digit (FOROUZAN; 
MOSHARRAF, 2011).
Partindo do princípio matemático de formação dos números, podemos 
criar a seguinte relação:
FIGURA 66 – PARALELO DE VALORES BINÁRIOS E DECIMAIS
Binário Decimal
000 = 0
001 = 1
010 = 2
011 = 3
100 = 4
FONTE: O autor
É importante observar que, da mesma forma como os símbolos são repetidos 
na quantidade de vezes relativa à sua posição na representação decimal, no sistema 
binário ocorre a mesma coisa. Observe na figura anterior que na coluna mais da 
direita os símbolos variam de 1 (um) em 1 (um). Já na segunda coluna da direita 
para a esquerda, eles variam de 2 (dois) em 2 (dois). Na terceira coluna os símbolos 
variam de 4 (quatro) em 4 (quatro) e assim ocorrerá sucesivamente para os demais.
A quantidade de vezes que um símbolo se repete é resultante da base elevada 
à potência da posição ocupada pelo símbolo na representação numérica. Para melhor 
entender este conceito, vamos calcular quantas vezes o símbolo que está na terceira 
coluna deve ser repetido. Para chegar a este valor é só elevar a base 2 (dois) à respectiva 
potência da terceira coluna que é 2 (dois), ficando da seguinte forma: 22 = 4.
TÓPICO 1 | SISTEMAS DE NUMERAÇÃO
77
4 SISTEMA DE NUMERAÇÃO OCTAL
O sistema de numeração octal, ou de base 8 (oito), utiliza os algarismos (0, 
1, 2 , 3, 4 , 5, 6 e 7) para sua representação. Observe que a quantidade de algarismos 
é 8 (oito), mas o maior símbolo é o 7 (sete), pois inicia de 0 (zero). 
Exemplo de codificação octal:
FIGURA 67 – PARALELO DE VALORES OCTAIS E DECIMAIS
Octal Decimal
12 = 10
23 = 19
35 = 29
FONTE: O autor
O sistema de numeração octal é uma notação abreviada em que cada dígito 
representa um conjunto de 3 (três) dígitos binários. Este sistema de numeração 
é utilizado para mostrar o equivalente do sistema binário fora do computador 
(FOROUZAN; MOSHARRAF, 2011).
A utilização do sistema de numeração octal na computação se deu 
efetivamente em função dessa característica, pois é muito mais simples para nós 
humanos tratarmos com abreviações de binários do que com todo o conjunto de 
binários envolvidos numa representação de dados. O sistema de numeração octal foi, 
portanto, utilizado por profissionais da área de computação/informática como uma 
importante ferramenta para a abreviação do conjunto de bits sendo manipulados.
Observe que o valor da potência da terceira coluna é 2 (dois), pelo fato dos 
valores das potências iniciarem em 0 (zero). Você observará que na computação/informática 
as representações iniciam do valor 0 (zero).
UNI
UNIDADE 2 | CONCEITOS FUNDAMENTAIS DA COMPUTAÇÃO
78
O sistema de numeração hexadecimal, ou de base 16, utiliza 16 (dezesseis) 
algarismos para sua representação. São eles (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, 
F). Os algarismos A, B, C, D, E e F representam, respectivamente, os valores 10, 
11, 12, 13, 14 e 15. Forouzan e Mosharraf (2011) relatam que o nome do sistema de 
numeração hexadecimal possui raízes no grego e no latim, pois é derivado da raiz 
grega hex (seis) e da raiz latina decem (dez).
Exemplo de codificação hexadecimal:
FIGURA 68 – PARALELO DE VALORES HEXADECIMAIS E DECIMAIS
Exadecimal Decimal
47 = 71
68 = 104
75 = 117
FONTE: O autor
Da mesma forma como o sistema de numeração octal, o hexadecimal é 
utilizado como uma notação abreviada para representar um conjunto de 4 (quatro) 
dígitos binários. Isso ocorre pelo fato do sistema de armazenamento utilizado nos 
computadores não ter relação direta com o sistema decimal. Os computadores 
utilizam dígitos binários, porém para os humanos poderem ler tais dígitos pode 
ser excessivamente extenso na maioria dos casos, logo utiliza-se o hexadecimal. 
O hexadecimal possui uma relação com o binário, pois é resultante da potência 4 
(quatro) sobre a base 2 (dois), ou seja, 24 = 16.
Atualmente a forma abreviada do binário mais utilizada é o hexadecimal. 
Isso se dá pelo fato da maioria dos sistemas computacionais não utilizarem mais 8 
bits em seus circuitos. A grande maioria utiliza 16, 32 e 64 bits nos circuitos, logo, o 
sistema hexadecimal se mostra bastante conveniente.
6 CONVERSÕES ENTRE SISTEMAS DE NUMERAÇÃO
A necessidade de conversão de valores entre os sistemas de numeração 
tornou-se uma consequência natural. Nós humanos entendemos com naturalidade 
apenas o sistema de numeração decimal, porém os computadores trabalham 
com o sistema binário. Para permitir que humanos utilizem valores decimais e 
computadores utilizem valores binários é necessário que o valor seja convertido de 
um sistema de numeração para outro.
Em função dessa necessidade e da importância do entendimento deste 
conteúdo, estudaremos as formas de conversões entre os sistemas de numeração 
decimal, binário, octal e hexadecimal.
5 SISTEMA DE NUMERAÇÃO HEXADECIMAL
TÓPICO 1 | SISTEMAS DE NUMERAÇÃO
79
Iniciaremos convertendo do sistema de numeração decimal para os 
demais sistemas (binário, octal e hexadecimal). Em seguida você aprenderá como 
converter de outros sistemas de numeração para o decimal e também entre os 
demais sistemas.
7 CONVERSÃO DE DECIMAL PARA BINÁRIO
A conversão de números representados no sistema decimal para o sistema 
de numeração binário é efetuada através de divisões sucessivas do número decimal 
pela base binária (2), até que se obtenha o quociente 0. Os restos das divisões 
tomados da direita para a esquerda é que formarão o número binário resultante.
Divisões sucessivas:
FIGURA 69 – EXEMPLO DE CONVERSÃO DE DECIMAL PARA BINÁRIO
FONTE: O autor
O exemplo apresentado na figura anterior demonstra que o valor inicial 14 
é primeiramente dividido por dois, otendo-se como quociente o valor 7. O valor 7 
multiplicado pela base 2 resulta em 14. Subtraindo-se 14 do valor inicial o resultado 
será resto = 0. É esse zero com os demais restos obtidos no processo de conversão 
que formarão o número binário resultante.
8 CONVERSÃO DE DECIMAL PARA OCTAL
Da mesma forma como a conversão para binário, a conversão de números 
representados no sistema decimal para o sistema de numeração octal pode ser 
efetuada através do método de divisões sucessivas.
UNIDADE 2 | CONCEITOS FUNDAMENTAIS DA COMPUTAÇÃO
80
FIGURA 70 – EXEMPLO DE CONVERSÃO DE DECIMAL PARA OCTAL
FONTE: O autor
A diferença neste caso resulta apenas no fato da divisão estar sendo 
realizada pela base em uso atualmente, ou seja, a base octal (8). Neste caso, os 
valores dos possíveis restos variam de 0 até 7. Perceba que o algarismo 0 (zero) 
tem muita importância na computação/informática. A importância é muito maior 
daquela que talvez você imaginaria que um simples 0 (zero) pudesse ter.
9 CONVERSÃO DE DECIMAL PARA HEXADECIMAL
A conversão de números representados no sistema decimal para o sistema 
de numeração hexadecimal pode ser efetuada através de divisões sucessivas pelo 
valor da base, ou seja, 16 (dezesseis).
FIGURA71 – EXEMPLO DE CONVERSÃO DE DECIMAL PARA 
HEXADECIMAL
FONTE: O autor
TÓPICO 1 | SISTEMAS DE NUMERAÇÃO
81
O processo de divisões sucessivas do número 175 resultou em dois restos. 
O primeiro resto obtido foi o valor 15 e o segundo o valor 10. Porém, quando 
se está tratando de um algarismo que deve representar o valor de uma posição 
num sistema de numeração posicional, não é possível que sejam utilizados dois 
algarismos para tal propósito. É justamente por este motivo que a partir do valor 
10 (dez) o sistema de numeração hexadecimal utiliza os algarismos A, B, C, D, E e 
F na sua representação. Com base nisso, o valor resultante da conversão realizada 
na Figura X é AF. O A se refere ao valor 10 (dez) do segundo resto obtido e o F se 
refere ao valor 15 (quinze) do primeiro resto obtido.
Parece estranho para você um sistema de numeração que utiliza letras em 
sua representação? Realmente, é estranho. Parece que voltamos ao passado anterior 
à popularidade do sistema de representação hindu-arábico, quando se utilizavam 
letras para representar valores. Estranho ou não, o importante é que o sistema 
hexadecimal é extremamente últil para os profissionais da computação/informática.
10 CONVERSÃO DE BINÁRIO PARA DECIMAL
A conversão de números representados no sistema binário para o sistema 
de numeração decimal é efetuada multiplicando-se cada dígito binário pela base 
(2) elevado à potência da respectiva posição, ou seja (..., 23, 22, 21, 20). Este método é 
denominado de soma dos termos. Veja um exemplo na figura a seguir.
FIGURA 72 – EXEMPLO DE CONVERSÃO DE BINÁRIO PARA DECIMAL
FONTE: O autor
O cálculo também pode ser efetuado utilizando-se o método denominado 
valores de posições. Este método consiste em multiplicar cada um dos dígitos pelo 
valor da sua posição. Veja na figura a seguir um exemplo de uso deste método.
UNIDADE 2 | CONCEITOS FUNDAMENTAIS DA COMPUTAÇÃO
82
FIGURA 73 – EXEMPLO DE CONVERSÃO DE BINÁRIO PARA DECIMAL
FONTE: O autor
Este método dispensa a necessidade de detalhar tanto o cálculo, pois 
sempre que houver um dígito zero, o valor resultante será zero. Isso implica no 
fato de que interessam para fins de cálculo apenas as posições em que houver 
valor 1 (um). Multiplicando-se os valores 1 pelo respectivo valor de sua posição e 
somá-los, se obterá o valor correspondente na base 10.
11 CONVERSÃO DE OCTAL PARA DECIMAL
A conversão de números representados no sistema octal para o sistema 
de numeração decimal pode ser efetuada utilizando-se o método da soma dos 
termos, conforme demonstrado na figura a seguir.
FIGURA 74 – EXEMPLO DE CONVERSÃO DE OCTAL PARA DECIMAL
FONTE: O autor
Esta conversão também pode ser efetuada utilizando-se o método de 
operações sucessivas e alternadas de multiplicação e adição. Veja na figura a seguir 
a demonstração de como proceder.
TÓPICO 1 | SISTEMAS DE NUMERAÇÃO
83
FIGURA 75 – EXEMPLO DE CONVERSÃO DE OCTAL PARA DECIMAL
FONTE: O autor
O método de operações sucessivas e alternadas de multiplicação e adição 
permite que o valor octal possa ser facilmente convertido para a base decimal. Este 
método consiste na multiplicação do primeiro algarismo octal da esquerda pela 
base 8 (oito) e em seguida somando o valor do algarismo seguinte. No caso do 
exemplo, o valor 4 foi multiplicado por 8, resultando em 32. A estes 32 foi somado 
o valor do próximo dígito, que é 5. 
O resultado da soma de 32 e 5 foi novamente multiplicado por 8 e o dígito 
seguinte somado. Este processo deve ser repetido até que todos os números de 
origem tenham sido utilizados. Chegando-se ao cálculo que envolveu o último dos 
números, chegou-se também ao resultado da conversão.
12 CONVERSÃO DE HEXADECIMAL PARA DECIMAL
A conversão de números representados no sistema hexadecimal para o 
sistema de numeração decimal pode ser efetuada através do método da soma dos 
termos, conforme apresentado na figura a seguir.
FIGURA 76 – EXEMPLO DE CONVERSÃO DE HEXADECIMAL PARA DECIMAL
FONTE: O autor
UNIDADE 2 | CONCEITOS FUNDAMENTAIS DA COMPUTAÇÃO
84
Esta conversão também pode ser efetuada através do método de operações 
sucessivas e alternadas de multiplicação e adição.
FIGURA 77 – EXEMPLO DE CONVERSÃO DE HEXADECIMAL PARA DECIMAL
FONTE: O autor
Da mesma forma como na conversão de octal para decimal, na conversão 
de hexadecimal para decimal pode-se utilizar o método de operações sucessivas e 
alternadas de multiplicação e adição. Na conversão de hexadecimal para decimal, 
o uso deste método faz ainda mais sentido, caso o profissional não disponha de 
uma calculadora que realize as conversões.
13 REGRAS DE FIXAÇÃO
Após ter estudado estes métodos de conversão, pode-se perceber que as 
conversões podem ser divididas em duas categorias. A primeira categoria é a das 
conversões de valores do sistema de numeração decimal para outros sistemas de 
numeração. E a segunda categoria, a das conversões de valores de outros sistemas 
de numeração para o decimal. Poderia-se argumentar ainda que há uma terceira 
categoria, que seria a das conversões entre sistemas de numeração que não 
envolvem o sistema decimal, porém, se considerarmos que todas as conversões 
podem ser realizadas convertendo-se primeiramente para o decimal e em seguida 
para o sistema de numeração destino, podemos considerar a existência de apenas 
duas categorias.
TÓPICO 1 | SISTEMAS DE NUMERAÇÃO
85
Ao convertermos um número da base decimal para outra base qualquer, 
utilizamos a operação de divisão. Para obter-se o equivalente ao valor decimal 
na base para a qual se deseja converter, realiza-se divisões sucessivas do valor 
decimal tantas vezes quantas possíveis. Após esta sucessão de divisões, agrupam-
se os restos das divisões tomados da direita para a esquerda, transcrevendo-os. A 
reunião dos restos das divisões é que formará o valor convertido na base destino.
Já a conversão de um número de uma base diferente da decimal para a 
base decimal é efetuada através das operações sucesivas de soma e multiplicação. 
Independente do método demonstrado neste Caderno de Estudos, ou seja, da 
forma mais detalhada ou da forma mais simplificada, será realizada uma sucessão 
de somas e subtrações para obter-se o valor na base de destino.
Estas regras de fixação são importantes para que você não esqueça a forma 
de realização das conversões entre sistemas de numeração. Porém, no seu dia a dia 
profissional é muito provável que utilize calculadoras científicas, as quais realizam 
estas operações de forma simples e rápida.
86
RESUMO DO TÓPICO 1
Caro acadêmico, nesse tópico você estudou que:
• Os sistemas de numeração são divididos em dois grupos: os sistemas de 
numeração não posicionais e os sistemas de numeração posicionais.
• Nos sistemas de numeração não posicionais, os valores dos símbolos ou 
algarismos utilizados não se alteram em função da posição que eles ocupam 
na composição do valor. Isso significa que o valor de um determinado símbolo 
será sempre o mesmo, independente da posição que ele ocupar na formação do 
número.
• Os sistemas de numeração posicionais, como é o caso do sistema de numeração 
decimal, são ligeiramente diferentes. Neles, a posição do símbolo ou algarismo 
na formação do número é que indica o seu valor. Isso significa que um algarismo 
7 na posição mais à direita do número terá valor de unidade e que uma posição 
à esquerda terá valor de dezena, centena, milhar e assim por diante.
• Para converter um número decimal para binário, octal ou hexadecimal é 
utilizada uma sucessão de divisões e subtrações pelo valor da respectiva base, 
obtendo-se os restos destas operações. Os restos das operações sucessivas de 
divisões e subtrações, tomados da direita para a esquerda, é que formarão o 
número resultante na base binária, octal ou hexadecimal.
• Para converter um número de binário,octal ou hexadecimal para decimal é 
utilizada uma sucessão de multiplicações pela respectiva base e somas.
87
AUTOATIVIDADE
Caro acadêmico, como forma de fixar o conteúdo estudado, realize a 
autoatividade proposta a seguir:
1 Converter os valores da base decimal para a base binária:
a) 89 = ______________________ 
b) 172 = _____________________
2 Converter os valores da base decimal para a base octal:
a) 125 = _____________________ 
b) 247 = ___________________
3 Converter os valores da base decimal para a base hexadecimal:
a) 158 = ____________________ 
b) 218 = ___________________
4 Converter os valores da base binária para a base decimal:
a) 100100101 = _____________ 
b) 111011001 = _____________
5 Converter os valores da base octal para a base decimal:
a) 137 = _______________ 
b) 253 = _______________
6 Converter os valores da base hexadecimal para a base decimal:
a) AF5 = _______________ 
b) B12 = _______________
88
89
TÓPICO 2
BASES COMPUTACIONAIS
UNIDADE 2
1 INTRODUÇÃO
Um sistema computacional é formado por diversos elementos que devem 
funcionar harmoniosamente. Estes elementos são formados tanto por dispositivos 
físicos, denominados de hardware, quanto de dispositivos virtuais, denominados 
de software.
A base de um sistema computacional é formada por dois elementos 
fundamentais. O primeiro se refere aos equipamentos físicos, sem os quais não 
existiria um sistema computacional. Estes equipamentos sofrem constante evolução 
e atualização. A tendência que tem se apresentado no momento da escrita deste 
Caderno de Estudos é a redução cada vez maior no tamanho dos dispositivos.
O segundo importante elemento que forma a base de um sistema 
computacional é o sistema operacional. Não é incomum ver profissionais da área de 
computação/informática discutindo fragilidades de seus sistemas computacionais, 
comparando-os segundo os sistemas operacionais utilizados.
Da mesma forma como a tendência de utilização de dispositivos cada vez 
menores e móveis, os sistemas operacionais tendem a prover recursos para atender 
às novas demandas de uso da sociedade. Os sistemas operacionais precisam ter 
capacidade para suportar novas e diferentes funcionalidades de maneira cada vez 
mais rápida e eficiente.
Para potencializar estes elementos existem as redes de computadores, as 
quais permitem o uso adequado dos dispositivos para realização das comunicações 
e obtenção e compartilhamento de informações. As redes de computadores 
possuem diferentes abrangências e finalidades, que serão estudadas neste tópico.
UNIDADE 2 | CONCEITOS FUNDAMENTAIS DA COMPUTAÇÃO
90
2 ARQUITETURA DE COMPUTADORES
A arquitetura de computadores também é tipicamente referenciada 
por arquitetura e organização de computadores, pois trata da forma como os 
elementos físicos de um sistema computacional estão dispostos ou organizados. 
Em relação à organização, os computadores podem ser divididos em três categorias 
ou subsistemas: a Unidade Central de Processamento, a memória principal e o 
subsistema de entrada e saída (FOROUZAN; MOSHARRAF, 2011).
A Unidade Central de Processamento, também referenciada por UCP ou 
CPU (Central Process Unit), é o dispositivo destinado à realização de operações sobre 
dados. Tipicamente, a CPU está organizada em três partes: unidade de aritmética e 
lógica, unidade de controle e os registradores (FOROUZAN; MOSHARRAF, 2011).
A unidade de aritmética e lógica, também conhecida pela sigla ULA, 
é responsável pelas atividades que envolvem operações lógicas, por exemplo, 
as operações AND (e), OR (ou), NOT (não) e XOR (ou exclusivo). Esta unidade 
também realiza operações de deslocamento e operações aritméticas sobre os 
dados. A unidade de controle é quem realiza o controle do funcionamento 
de cada subsistema. Já os registradores são localizações que armazenam os 
dados temporariamente para a realização de operações sobre eles. Os três tipos 
de registradores comumente encontrados nas arquiteturas modernas são os 
registradores de dados, os registradores de instrução e o contador de programa 
(FOROUZAN; MOSHARRAF, 2011).
A memória principal é a área para a qual são carregados dados e programas. 
Ela consiste de um conjunto de localizações únicas denominadas endereços. As 
memórias podem ser organizadas com base em diferentes grupos de bits. Esta 
quantidade de bits é denominada de palavra. Nos atuais computadores são 
encontradas palavras formadas por grupos de 8, 16, 32 ou 64 bits (FOROUZAN; 
MOSHARRAF, 2011).
O subsistema de entrada/saída é reponsável pela comunicação do 
computador com o mundo externo e pelo armazenamento de programas e 
dados. Este subsistema pode ser dividido em duas categorias: dispositivos 
de armazenamento e dispositivos sem armazenamento. Os dispositivos de 
armazenamento, também chamados de dispositivos de armazenamento auxiliar, 
permitem armazenamento de grandes quantidades de dados para posterior 
utilização. É o conjunto de dispositivos que utilizamos para guardar os dados de 
forma permanente. Já os dispositivos sem armazenamento são utilizados para 
a comunicação do computador com outros dispositivos, porém não realizam o 
armazenamento de dados (FOROUZAN; MOSHARRAF, 2011).
A unidade central de processamento é o elemento mais importante de um 
sistema computacional. A escolha adequada da unidade central de processamento 
de acordo com as necessidades de utilização é determinante para a obtenção dos 
benefícios desejados com um computador. No momento de definir a configuração 
TÓPICO 2 | BASES COMPUTACIONAIS
91
de um computador é importante que se tenha em mente a finalidade para a 
qual ele será utilizado. Assim pode-se dimensionar adequadamente os recursos 
necessários.
As arquiteturas mais comumente utilizadas atualmente são a CISC e RISC. 
A arquitetura CISC (Complex Instruction Set Computer) ou computador com conjunto 
de instruções complexas utiliza a estratégia de ter grande conjunto de instruções. 
Esta arquitetura permite que a atividade de programação destes computadores 
seja mais fácil do que outras arquiteturas (FOROUZAN; MOSHARRAF, 2011).
Já a arquitetura RISC (Reduced Instruction Set Computer) ou computador 
com conjunto reduzido de instruções utiliza a estratégia de possuir um conjunto 
de instruções que realizam o mínimo possível de operações simples. Isso torna a 
programação destes computadores mais árdua em relação à CISC (FOROUZAN; 
MOSHARRAF, 2011).
3 SOFTWARE
O computador é um sistema composto por duas partes importantes: 
hardware e software (FOROUZAN; MOSHARRAF, 2011). O hardware é composto 
pelos equipamentos físicos, ou seja, pelas máquinas e demais equipamentos 
ligados ao computador. Já o software é composto pelo conjunto de programas que 
são executados neste hardware. 
3.1 CATEGORIAS DE SOFTWARE
Quando um software está representado como instruções que podem 
ser executadas diretamente por um processador, dizemos que está escrito 
em linguagem de máquina. A execução de um software também pode ser 
intermediada por um programa interpretador, responsável por interpretar 
e executar cada uma de suas instruções. Uma categoria especial e notável de 
interpretadores são as máquinas virtuais, como a JVM (Java Virtual Machine - 
Máquina Virtual Java), que simulam um computador.
FONTE: Disponível em: <http://www.ideiait.com.br/produtos.asp?area=S&item=A>. Acesso em: 
12 jun. 2012.
O conjunto de softwares existentes pode ser dividido em categorias. As 
principais categorias de software existente são conhecidas como softwares básicos, 
softwares utilitários, softwares aplicativos e ferramentas de desenvolvimento.
UNIDADE 2 | CONCEITOS FUNDAMENTAIS DA COMPUTAÇÃO
92
3.1.1 Softwares básicos
Na categoria de softwares básicos estão principalmente os sistemas 
operacionais. Sistema Operacional é um softwareou um conjunto de programas 
cuja função é servir de interface entre um computador e o usuário. É comum 
utilizar-se a abreviatura SO (em português) ou OS (do inglês Operating System).
Um Sistema Operacional é complexo e em função disso é complexo também 
definí-lo. Forouzan e Mosharraf (2011) sugerem algumas definições comuns:
• Interface entre o hardware e o usuário;
• Programa que facilita a execução dos programas;
• Gerenciador que supervisiona as atividades dos componentes do sistema 
computacional.
Um sistema operacional pode ser visto como um programa de grande 
complexidade que é responsável por todo o funcionamento de uma máquina, 
desde o software até o hardware instalado na máquina. Todos os processos de um 
computador estão por detrás de uma programação complexa que comanda todas 
as funções que um usuário impõe à máquina. Existem vários sistemas operacionais, 
entre eles os mais utilizados no dia a dia. Normalmente os mais utilizados em 
computadores domésticos são o Windows, Linux e Mac OS X. Um computador 
com o sistema operacional instalado poderá não dar acesso a todo o seu conteúdo, 
dependendo do usuário que está utilizando. Com um sistema operacional podemos 
estabelecer permissões a vários usuários que trabalham com o mesmo. 
Existem dois tipos de contas que podemos criar num sistema operacional, 
as contas de Administrador e as contas Limitadas. A conta Administrador é uma 
conta que oferece todo o acesso à máquina, desde a gestão de pastas, arquivos e 
softwares de trabalho ou entretenimento, como também ao controle de todo o 
hardware instalado. A conta Limitada é uma conta que não tem permissões para 
acessar algumas pastas ou instalar software que seja instalado na raiz do sistema ou 
então que tenha ligação com algum hardware que altere o seu funcionamento normal 
ou personalizado pelo Administrador. Para que este tipo de conta possa ter acesso 
a outros conteúdos do disco ou de software, o administrador poderá personalizar a 
conta oferecendo permissões a algumas funções do sistema, como também poderá 
retirar acessos a certas áreas do sistema. 
O sistema operacional funciona com a iniciação de processos que este irá 
precisar para funcionar corretamente. Estes processos poderão ser arquivos que 
necessitam ser frequentemente atualizados, ou arquivos que processam dados úteis 
para o sistema. Poderemos ter acesso a vários processos do sistema operacional 
a partir do gerenciador de tarefas. No gerenciador de tarefas encontramos todos 
os processos que estão em funcionamento, desde a inicialização do sistema 
TÓPICO 2 | BASES COMPUTACIONAIS
93
operacional até a sua utilização atual. Podemos também visualizar a utilização da 
memória pelos processos. No caso de o sistema operacional começar a mostrar 
erros ou falhas de acesso a programas, tornando-se lento, podemos verificar 
no gerenciador de tarefas qual dos processos estará bloqueado ou com elevado 
número de processamento que está afetando o funcionamento.
FONTE: Disponível em: <http://aa-cienciasdacomputacao.wikidot.com/sistema-operacional>. 
Acesso em: 12 jun. 2012.
3.1.2 Softwares utilitários
Utilitários são programas utilizados para suprir deficiências dos sistemas 
operacionais ou como ferramentas auxiliares aos mesmos. Sua utilização poderá 
depender de licenças pagas, mas existem vários utilitários livres. Podemos incluir 
nos utilitários programas para compactação de dados, aumento de desempenho de 
máquinas, overclock, limpeza de discos rígidos, acesso à internet, compartilhamento 
de conexões, entre outros.
3.1.3 Softwares aplicativos
Software aplicativo é um programa de computador que tem por objetivo 
o desempenho de tarefas de índole prática, em geral ligadas ao processamento 
de dados, como o trabalho em escritório ou empresarial. A sua natureza é, 
portanto, diferente da de outros tipos de software, como sistemas operacionais e 
ferramentas a eles ligadas, jogos e outros softwares lúdicos, entre outros.
FONTE: Disponível em: <http://www.ldsystem.com.br/servicos.aspx>. Acesso em: 12 jun. 2012.
Os softwares aplicativos podem ter uma abrangência de uso de larga escala, 
muitas vezes em âmbito mundial; nestes casos, os programas tendem a ser mais 
robustos e mais padronizados. Programas escritos para um pequeno mercado têm 
um nível de padronização menor. Ainda é possível usar softwares aplicativos como 
software embarcado, destinado a funcionar dentro de uma máquina que não é um 
computador de uso geral e normalmente com uma finalidade muito específica.
FONTE: Disponível em: <http://www.dual-softwares.com/meu_primeiro_computador_conheca_ 
software.htm>. Acesso em: 12 jun. 2012.
UNIDADE 2 | CONCEITOS FUNDAMENTAIS DA COMPUTAÇÃO
94
Aplicativos, portanto, podem ser utilizados em diversas áreas de 
negórios. No cálculo de estruturas, planejamento e controle de projetos, pesquisas 
operacionais, problemas de engenharia de software. Na automação industrial, 
programação e controle de máquinas e equipamentos, controle de processos e 
calibração. Na automação comercial com reserva de passagens, contas correntes, 
pontos de venda, caixas automáticos. No apoio educacional como assistência a 
instruções e ensino auxiliado pelo computador. Em situações especiais e científicas 
como teleprocessamento, comunicações, militares, pesquisas espaciais, pesquisas 
meteorológicas. No ramo artístico em composição de imagens, sons, músicas, 
vídeos. No entretenimento com a execução de jogos, entre outros.
3.1.4 Ferramentas de desenvolvimento
As ferramentas de desenvolvimento são uma categoria especial de software, 
pois são utilizadas para produzir novos softwares. Ferramentas de desenvolvimento 
podem compreender diversos softwares para as mais diversas atividades do 
desenvolvimento. Em geral as ferramentas de desenvolvimento que mais são 
consideradas são os softwares conhecidos como compiladores.
Um compilador é um programa que, a partir de um código escrito em 
uma linguagem, o código fonte (source code), cria um programa semanticamente 
equivalente, porém, escrito em outra linguagem, código objeto (object code). Um 
compilador é um dos dois tipos mais gerais de tradutores, sendo que o segundo 
tipo que a ele deve ser comparado é um interpretador.
Normalmente, o código fonte é escrito em uma linguagem de programação 
de alto nível, com grande capacidade de abstração, e o código objeto é escrito em 
uma linguagem de baixo nível, como uma sequência de instruções a ser executada 
por um sistema operacional. O processo de compilação é composto de análise 
e síntese. A análise tem como objetivo entender o código fonte e representá-lo 
em uma estrutura intermediária. A síntese constrói o código objeto a partir desta 
representação intermediária.
A análise pode ser subdividida ainda em análise léxica, análise sintática e 
análise semântica. A síntese é mais variada, podendo ser composta pelas etapas 
de geração de código intermediário, otimização de código e geração de código 
final ou código de máquina, e somente esta última etapa é obrigatória.
Classicamente, um compilador traduz um programa de uma linguagem 
textual facilmente entendida por um ser humano para uma linguagem de 
máquina, específica para um processador e sistema operacional. Atualmente, 
porém, são comuns compiladores que geram código para uma máquina virtual 
que é, depois, interpretada por um interpretador.
TÓPICO 2 | BASES COMPUTACIONAIS
95
Em linguagens de programação híbridas, o compilador tem o papel 
de converter o código fonte em um código chamado de byte code, que é uma 
linguagem de baixo nível. Um exemplo deste comportamento é o do compilador 
da linguagem Java que, em vez de gerar código da máquina hospedeira (onde se 
está executando o compilador), gera código chamado Java Bytecode.
Um compilador é chamado de Just-in-time compiler (JIT) quando 
seu processo de compilaçãoacontece apenas quando o código é chamado. 
Normalmente, o usuário tem a percepção de que um compilador JIT é um 
interpretador.
Muitos compiladores incluem um pré-processador. Um pré-processador 
normalmente é responsável por mudanças no código fonte destinadas de acordo 
com decisões tomadas em tempo de compilação. Por exemplo, um programa 
em C permite instruções condicionais para o pré-processador que podem incluir 
ou não parte do código caso uma assertiva lógica seja verdadeira ou falsa, ou 
simplesmente um termo esteja definido ou não. Tecnicamente, pré-processadores 
são muito mais simples que compiladores e são vistos, pelos desenvolvedores, 
como programas à parte, apesar dessa visão não ser necessariamente 
compartilhada pelo usuário.
Outra parte separada do compilador que muitos usuários veem como 
integrada é o linker, cuja função é unir vários programas já compilados de uma 
forma independente e unificá-los em um programa executável. Isso inclui colocar 
o programa final em um formato compatível com as necessidades do sistema 
operacional para carregá-lo em memória e colocá-lo em execução.
FONTE: Disponível em: <http://pt.scribd.com/doc/65442350/O-que-e-Compilacao-Codigo-
Fonte-e-Objeto1>. Acesso em: 12 jun. 2012.
Para facilitar o trabalho dos desenvolvedores foram criadas as IDEs. A IDE 
(Integrated Development Environment - Ambiente de Desenvolvimento Integrado) é 
um programa de computador que reúne características e ferramentas de apoio ao 
desenvolvimento de software com o objetivo de agilizar este processo.
Geralmente as IDEs unem a técnica de RAD (Rapid Application Development), 
que consiste em permitir que os desenvolvedores obtenham um aproveitamento 
maior, desenvolvendo código com maior rapidez. As características e ferramentas 
mais comuns encontradas nas IDEs são editor, compilador, montador, depurador, 
modelagem, gerador de código e distribuição.
O editor permite editar o código-fonte do programa na(s) linguagem(ns) 
suportada(s) pela IDE. O compilador (compiler) permite compilar o código-fonte 
do programa, editado em uma linguagem específica e a transforma em linguagem 
de máquina. O montador (linker) organiza as várias partes do código-fonte, 
compilados em linguagem de máquina, em um programa executável que pode 
ser rodado ou executado em um computador ou outro dispositivo computacional. 
UNIDADE 2 | CONCEITOS FUNDAMENTAIS DA COMPUTAÇÃO
96
O depurador (debuger) auxilia no processo de encontrar e corrigir erros (bugs) no 
código-fonte do programa, na tentativa de aprimorar a qualidade do software.
A modelagem (modeling) permite a criação do modelo de classes, objetos, 
interfaces, associações e interações dos artefatos envolvidos no software com o objetivo 
de solucionar as necessidades do software. A geração de código é a característica mais 
explorada em ferramentas CASE. A geração de código também é encontrada em 
IDEs, contudo com um escopo mais direcionado a modelos de código comumente 
utilizados para solucionar problemas rotineiros. Todavia, em conjunto com 
ferramentas de modelagem, a geração de código pode gerar todo ou praticamente 
todo o código-fonte do programa com base no modelo proposto, tornando muito 
mais rápido o processo de desenvolvimento e distribuição do software.
A distribuição (deploy) auxilia no processo de criação do instalador do 
software, ou outra forma de distribuição do mesmo, seja via discos ou via internet. 
As ferramentas de testes automatizados (automated tests) realizam testes no software 
com base em scripts ou programas de testes previamente especificados, gerando 
um relatório dos mesmos, assim auxiliando na análise do impacto das alterações 
no código-fonte. Ferramentas deste tipo mais comuns no mercado são chamadas 
robôs de testes. A refatoração (refactoring) consiste na melhoria constante do código-
fonte do software, seja na construção de código mais otimizado, mais limpo e/ou 
com melhor entendimento pelos envolvidos no desenvolvimento do software. A 
refatoração, em conjunto com os testes automatizados, é uma poderosa ferramenta 
no processo de erradicação de bugs, tendo em vista que os testes visam garantir o 
mesmo comportamento externo do software ou da característica sendo reconstruída.
4 REDES DE COMPUTADORES
Na sociedade contemporânea a confiabilidade e qualidade da informação 
são fatores de importância fundamental. Mais e mais informações têm sido geradas 
e utilizadas na tomada de decisões, tanto em nível pessoal quanto profissional, 
definindo muitas vezes o sucesso de uma organização ou mesmo de toda uma nação. 
Toda essa informação armazenada serve como uma grande base de conhecimento 
que pode ser atualizada, consultada e utilizada para as mais diversas finalidades, 
objetivando a melhoria da qualidade de vida de toda a sociedade.
O valor da informação demonstra a importância do papel que as 
telecomunicações e a informática têm na sociedade atual. Esta estrutura permite que 
as pessoas se comuniquem de forma mais rápida e confiável e, em consequência, 
impulsionando o crescimento econômico do mundo como um todo. Esta 
característica faz com que a dependência dos sistemas de comunicação também se 
torne maior, o que exige também que estes sistemas se tornem mais eficientes, de 
forma a permitir que as empresas produzam e vendam mais e, consequentemente, 
gerem mais empregos e renda.
TÓPICO 2 | BASES COMPUTACIONAIS
97
Devido ao fato da quantidade de informação ser muito grande, é importante 
também a criação de mecanismos que permitam selecionar entre toda informação 
disponível o que realmente é importante para a finalidade em que se está focado. 
Isto nos leva à situação em que, tão importante quando o armazenamento e 
transmissão de informações, é a sua interpretação e compreensão. Para que haja 
a devida transmissão e recepção de informações de forma que a mesma possa 
ser corretamente interpretada e compreendida, é necessário que seja seguido um 
conjunto de símbolos e regras previamente estabelecidos utilizados como meio 
de codificação para o transporte desta informação. Este conjunto de códigos e 
regras previamente estabelecidos é o que podemos entender como uma espécie de 
protocolo de comunicação.
Os meios de comunicação, assim como a informática, evoluíram muito nas 
últimas décadas e ainda continuam em franco desenvolvimento. Equipamentos 
e tecnologias têm sido substituídos cada vez com mais frequência por outros de 
menor custo e maiores capacidades. Em paralelo, existem maiores possibilidades 
de utilização de equipamentos de diferentes fabricantes na mesma base de 
infraestrutura, permitindo que o crescimento seja mais flexível e econômico.
Num esquema de comunicação em que há um emissor e um receptor, pode-
se ter tanto pessoas quanto equipamentos utilizando uma linguagem conhecida de 
ambos, permitindo o entendimento das mensagens transmitidas. Num processo 
de comunicação existem quatro elementos básicos que devem ser considerados. 
Estes elementos são o emissor, a informação, o meio através do qual a informação 
é transmitida e o destinatário. Em algumas situações pode ser necessária ainda a 
utilização de uma interface para facilitar o processo. 
Para que a transmissão de dados ocorra é necessário que haja passagem 
de sinais através de meios físicos de comunicação, os quais compõem o que 
denominamos de redes. As questões de tecnologia que influenciam no projeto e 
construção de redes têm certa relação com as propriedades físicas dos meios de 
transmissão e também das características dos sinais transmitidos (SOARES, 1995).
Os sinais podem ser entendidos como ondas que são propagadas através de 
algum meio físico, o qual pode ser um cabo, o ar ou outros meios disponíveis. Para 
que o processo de transmissão de informação ocorra há necessidade da execução 
de uma sucessão de processos, os quais são relacionados a seguir:• A geração de um conteúdo a ser transmitido;
• A codificação deste conteúdo em um conjunto bem definido de símbolos;
• Esta codificação do conteúdo deve atender aos critérios necessários para que 
possa ser transmitido adequadamente através do meio físico utilizado;
• A realização da transmissão do conteúdo;
• A decodificação do conteúdo transmitido e a reprodução do mesmo;
• A recriação do conteúdo que foi transmitido, mesmo que haja certo grau de 
degradação da qualidade do conteúdo para o entendimento do destinatário. 
UNIDADE 2 | CONCEITOS FUNDAMENTAIS DA COMPUTAÇÃO
98
Na transmissão de dados em redes podemos classificar os sinais em dois tipos: 
sinais analógicos e sinais digitais. A figura a seguir representa a forma de variação 
de um determinado sinal analógico. Já a Figura 79 representa a forma de variação 
de um determinado sinal digital. Na transmissão de dados os tipos de sinais mais 
comumente utilizados são o analógico e o digital. A denominação do sinal analógico 
está associada à característica do sinal de ter uma variação contínua no tempo. Já 
a denominação do sinal digital está associada à característica do sinal de ter uma 
variação denominada discreta, ou seja, com variações em forma de pulsos. 
FIGURA 78 – REPRESENTAÇÃO DE UM SINAL ANALÓGICO
FONTE: Comer (2001)
Ambos os termos são bastante utilizados quando a transmissão de dados é 
o assunto em pauta. Estas definições permitem qualificar a natureza da informação 
quanto à característica dos sinais utilizados para a transmissão através dos meios 
físicos disponíveis.
FIGURA 79 – EPRESENTAÇÃO DE UM SINAL DIGITAL
FONTE: Comer (2001)
Para deixar mais clara a definição de analógico e digital, são apresentados 
dois exemplos. Equipamentos como computadores armazenam, processam e 
codificam dados em bits. Os bits permitem representar apenas os valores lógicos 
0 ou 1 (zero ou um). A esta característica dos bits de representarem apenas os 
valores 0 ou 1 é atribuído o termo digital. Equipamentos para emissão de som, 
por exemplo, representam sinais cuja variação tem continuidade ao longo de um 
determinado espaço de tempo.
TÓPICO 2 | BASES COMPUTACIONAIS
99
É importante observar que o tipo de informação a ser transmitida não 
depende do tipo de sinal utilizado. Podem-se transmitir dados ou informações 
que naturalmente são analógicos por meios digitais, da mesma forma que dados 
naturalmente digitais podem ser transmitidos através de sinais analógicos. 
Certamente, nesta situação há necessidade de conversão dos sinais de forma 
adequada para que a transmissão possa ocorrer. Após a transmissão este sinal deve 
novamente ser convertido para retornar ao formato em que naturalmente é utilizado.
As redes de computadores estão cada vez mais presentes no dia a dia das 
pessoas e instituições, através de diversos tipos de estruturas de organização. 
Ao longo do desenvolvimento das redes de computadores foram empregadas 
muitas teorias, modelos e técnicas para que se chegasse aos modelos disponíveis 
atualmente. Além da aplicação das teorias, modelos e técnicas, também foi 
necessário que muitos experimentos fossem realizados para provar a efetividade 
de determinadas teorias, modelos e técnicas. 
O crescimento das redes de computadores e principalmente das redes de 
longa distância se dá pela importância que elas representam para as organizações 
e pela quantidade de aplicações que dependem da comunicação de dados a longas 
distâncias. Exemplos podem ser transações bancárias, compras de produtos 
e serviços, bem como no campo do relacionamento humano, seja através da 
disponibilização de informações, pelo ensino remoto ou pela comunicação escrita 
ou falada.
As tecnologias atuais de redes de computadores, em geral, são classificadas 
em três grandes categorias. O parâmetro utilizado para esta classificação está 
associado ao tamanho da rede referenciada. Neste sentido, as redes podem ser 
locais, metropolitanas ou de longa distância. A figura a seguir ilustra a interligação 
destas redes.
FIGURA 80 – INTERLIGAÇÃO ENTRE REDES LOCAIS, METROPOLITANAS E DE LONGA DISTÂNCIA
FONTE: Senger (2008)
UNIDADE 2 | CONCEITOS FUNDAMENTAIS DA COMPUTAÇÃO
100
As redes locais, também conhecidas como LAN (Local Area Network), são 
redes que podem abranger um ou mais edifícios que estejam fisicamente próximos. 
Delimitar uma rede local em uma distância máxima específica é relativamente 
complicado, pois pode haver grandes organizações que tenham quilômetros de 
extensão e mesmo assim a rede ser classificada como uma rede local (COMER, 2001). 
A segunda categoria de redes, as metropolitanas, também referenciadas 
por MAN (Metropolitan Area Network), são redes que em geral cobrem a área física 
de uma cidade ou de uma região metropolitana (COMER, 2001). 
Finalmente, as redes de longa distância, também referenciadas por WAN 
(Wide Area Network), são redes que podem abranger múltiplas cidades, países ou 
continentes (COMER, 2001).
Em relação à abrangência, as redes podem ser classificadas em intranet, 
internet e extranet. A intranet é uma rede privada de uma organização que se 
vale da tecnologia da internet e que permite prover uma série de serviços que em 
geral facilitam o dia a dia dos usuários. A tecnologia da intranet está baseada nos 
mesmos dispositivos, serviços e protocolos utilizados pela internet, possibilitando 
melhorar a comunicação dentro da organização, além de melhorar a produtividade 
dos profissionais da mesma.
Dentre as principais ferramentas que podem ser utilizadas na intranet está 
o navegador (browser) e o banco de dados. A utilização do navegador facilita em 
muito a questão de atualização de software e dispensa a necessidade de instalação 
de softwares em todos os equipamentos em que o mesmo será utilizado. A utilização 
do banco de dados proporciona acesso imediato a todas as informações necessárias, 
além de permitir o registro de novas informações a qualquer momento.
Já a internet pode ser definida do ponto de vista dos componentes de 
hardware e software que a formam ou como uma infraestrutura de rede que fornece 
serviços de forma distribuída (KUROSE, 2003). A internet do ponto de vista dos 
componentes que a formam é uma rede de computadores de abrangência mundial, 
que conecta uma quantidade incalculável de equipamentos de computação. A maior 
parte dos componentes que formam esta gigantesca rede são microcomputadores, 
servidores de rede, servidores de e-mail, servidores de aplicação, dentre outros 
dispositivos de rede necessários para a comunicação.
A intranet utiliza a mesma estrutura da internet, o que facilita tanto os aspectos 
técnicos quanto os aspectos relacionados à capacitação dos usuários.
UNI
TÓPICO 2 | BASES COMPUTACIONAIS
101
A internet está baseada na infraestrutura das telecomunicações, no entanto, 
existe uma diferenciação entre redes telefônicas e a internet. A internet provê 
serviços através da comutação de pacotes, ou seja, sem necessidade de conexão 
fim-a-fim; já os serviços telefônicos utilizam comutação por circuito na qual a 
conexão deve ser estabelecida antes que a chamada telefônica possa ser iniciada. 
Uma parte dos recursos da rede é reservada para a chamada, de modo que 
nenhuma outra chamada possa utilizar aqueles recursos antes que a conexão seja 
encerrada. A maior vantagem do uso da comutação de pacotes é o fato de permitir 
que pacotes de diferentes fontes possam utilizar a mesma linha, permitindo 
otimizar o uso dos recursos instalados.
O conjunto de redes que formam a internet é interligado por redes de alta 
capacidade, denominadas backbone. Os backbones são canais de comunicação com 
largura de banda bastante expressiva, permitindo o tráfego de grande volume 
de dados. Além dos backbones, são utilizadas linhas telefônicas comuns, linhas 
de comunicação privadas, satélites, cabos submarinose diversos outros meios 
de comunicação e telecomunicação, com o objetivo de estabelecer a troca de 
informações e serviços.
A internet permite unir entidades de pesquisa, órgãos culturais, usuários 
particulares, órgãos governamentais, bibliotecas e empresas. O controle da 
internet é descentralizado, utilizando os protocolos TCP/IP como estrutura básica 
para comunicação e serviços de rede. Isto é devido ao fato da arquitetura TCP/IP 
fornecer não somente os protocolos que habilitam a comunicação de dados entre 
redes, mas também possuir uma série de características que contribuem para a 
eficiência da arquitetura.
Entre os serviços mais conhecidos da internet estão o correio eletrônico 
(protocolos SMTP, POP), a transferência de arquivos (FTP), a emulação de terminal 
remoto (Telnet) e acesso de informação em hipertexto (HTTP).
A extranet é uma extensão da intranet de uma organização. Através da 
extranet é possível realizar atividades da intranet a partir de qualquer local que 
tenha acesso à internet. As atividades que antes estavam disponíveis apenas na 
intranet corporativa, agora podem ser realizadas a partir de qualquer lugar por 
A internet utiliza o método de comutação de pacotes e a telefonia a comutação 
de circuito.
UNI
UNIDADE 2 | CONCEITOS FUNDAMENTAIS DA COMPUTAÇÃO
102
qualquer pessoa que tenha os direitos de acesso. O salto qualitativo em termos 
de valor agregado aos negócios das organizações é praticamente incalculável, se 
considerarmos a quantidade quase que ilimitada de diferentes oportunidades que 
podem ser geradas pelo uso desta tecnologia.
A intranet, embora possa ser utilizada por uma grande quantidade de 
usuários de uma corporação e abranger uma área geográfica considerável dentro 
da mesma, é uma rede local que utiliza a tecnologia da internet. A internet é a rede 
mundial de computadores que possibilita o compartilhamento de informações 
entre as pessoas conectadas à mesma. A internet é a maior rede de longa distância 
existente na atualidade. Já a extranet é a fusão da intranet com a internet.
A evolução dos meios de comunicação tem tornado a extranet uma 
importante ferramenta para os mais variados tipos de atividades profissionais. A 
aceitação da extranet por parte dos usuários é facilitada pelo fato de utilizar a 
mesma tecnologia da internet e esta ser de utilização relativamente comum pela 
maioria dos profissionais atualmente.
Dentre as vantagens da utilização de uma extranet podem ser destacadas 
a agilidade e facilidade na tramitação de informações entre parceiros, clientes e 
fornecedores, facilidade no arquivamento digital de documentos, além da redução 
no consumo de papel.
A extranet representa uma verdadeira revolução no processo de manipulação de 
informações.
UNI
103
RESUMO DO TÓPICO 2
Caro acadêmico, neste tópico você estudou que:
• A arquitetura de computadores se refere à forma como os elementos físicos de 
um sistema computacional estão organizados ou dispostos em um computador. 
Os três principais subsistemas de um computador são a Unidade Central de 
Processamento, a memória principal e os dispositivos de entrada e saída.
• A memória principal é a memória utilizada para carregar o Sistema Operacional 
e os demais programas que devem ser executados. Ela é utilizada como 
uma memória de trabalho, que armazena os dados apenas enquanto houver 
alimentação de energia e/ou aqueles dados estiverem em uso. A memória 
principal é volátil, ou seja, não realiza o armazenamento permanente dos dados.
• As memórias que realizam armazenamento permanente dos dados são 
as memórias secundárias. Neste conjunto entram todas as formas de 
armazenamento permanente, como HD, CD, DVD, pendrives etc. Pode parecer 
estranho as memórias secundárias serem as que mantêm os dados armazenados, 
mas se pensarmos que a memória principal é extremamente rápida e precisa dos 
dados apenas no momento que os estiver utilizando, o conceito se torna simples 
de compreender.
• O Sistema Operacional é o principal software de qualquer computador, pois é ele 
quem oferece uma interface entre o hardware e os demais softwares executados 
no mesmo. Pode-se dizer que um computador sem Sistema Operacional é inútil, 
pois não servirá mais do que de elemento de decoração.
• A comunicação é elemento essencial na sociedade contemporânea e grande parte 
da comunicação é provida através das redes de computadores. É praticamente 
impossível pensar numa organização que não tenha seus dados num servidor 
de arquivos ou compartilhados entre diversas máquinas através de uma rede.
104
AUTOATIVIDADE
Caro acadêmico, como forma de fixar o conteúdo estudado, realize a 
autoatividade proposta a seguir:
1 Descreva a função realizada pela Unidade de Lógica e Aritmética (ULA).
2 Descreva a função de um Sistema Operacional dentro de um sistema 
computacional.
3 Descreva a finalidade de uma ferramenta de desenvolvimento.
4 Descreva a diferença entre um sinal analógico e um sinal digital.
5 Qual a abrangência de uma rede WAN?
105
TÓPICO 3
SUPORTES COMPUTACIONAIS
UNIDADE 2
1 INTRODUÇÃO
A área de computação/informática é utilizada como suporte aos negócios há 
poucas décadas e passou por diversos ciclos, tanto em termos tecnológicos quanto 
em termos de como e quem executa as atividades de computação/informática nas 
organizações. 
Uma questão importante que deve ser levada em consideração é o fato de 
que a computação/informática em si deixou de ser fonte de diferencial estratégico. 
Atualmente o uso de recursos de computação/informática é uma necessidade 
do dia a dia das organizações. Cada organização tem um grau de dependência 
da computação/informática para execução de suas atividades e a margem de 
oportunidades para utilização da computação/informática como diferencial 
estratégico tem diminuído.
 Na mesma proporção que a computação/informática deixa de ter 
participação como diferencial estratégico, ela passa a se tornar uma área crítica 
em termos de dependência, pois uma empresa não pode deixar de faturar porque 
o software de faturamento não está disponível por problemas de infraestrutura de 
comunicação ou falhas na atualização de versão do software, entre outros possíveis 
motivos. 
A infraestrutura de computação/informática precisa estar disponível 24 
horas por dia, sete dias por semana, caso contrário poderá representar um gargalo 
para o crescimento dos negócios. Esta questão requer não apenas disponibilidade, 
mas um corpo de recursos humanos providos de qualificação e motivação para 
atender às demandas existentes.
Observe que, conforme avaliamos a participação da computação/
informática na organização, podemos caracterizá-la de diferentes formas. 
Obviamente que ainda há uma grande gama de possibilidades de utilização da 
computação/informática como diferencial estratégico em uma parcela significativa 
de organizações de diversas áreas.
106
UNIDADE 2 | CONCEITOS FUNDAMENTAIS DA COMPUTAÇÃO
2 ENGENHARIA DE SOFTWARE
Quando se fala em Engenharia de Software logo imagina-se que, por se tratar 
de uma engenharia, tenha um cunho técnico relativamente alto. Porém, embora as 
questões técnicas precisem ser consideradas, elas são apenas meios para atingir os 
objetivos. Para a Engenharia de Software o computador, a teoria da computação e 
até mesmo os algoritmos são apenas ferramentas necessárias para prover a solução 
de um problema (PFLEEGER, 2004).
A Engenharia de Software tem como enfoque lidar com os aspectos de 
produção de software em todas as fases do seu ciclo de vida (SOMMERVILLE, 
2003). O ciclo de vida de um software inicia no momento em que são registradas 
as primeiras especificações de funcionamento, até o momento em que o software 
deixa de ser utilizado pelos seus usuários. Isso significa que tipicamente um 
software possui um ciclo de vida longo, se considerarmoso esforço necessário para 
a produção de um software.
Por outro lado, a Engenharia de Software pode ser vista como um framework 
para o planejamento, conceituação e projeto de software (PETER; PEDRYCS, 
2001). Na abordagem de framework pode-se considerar o conjunto de aspectos 
construtivos, seus desafios e considerações sobre produzir tudo ou adquirir partes 
e fazer com que as mesmas funcionem de maneira sintonizada.
Acrescentaria ainda a estas abordagens a abordagem de gestão das 
pessoas que realizam os processos de software. A produção de software é altamente 
dependente de pessoas e seus talentos e habilidades, logo, também é tarefa da 
Engenharia de Software a gestão adequada desse importante componente. “A adição 
de recursos humanos a um projeto de software atrasado irá atrasá-lo ainda mais” 
(BROOKS, 2009, p. 24). Considerando que a afirmação de Brooks é verdadeira, 
incorporar novos elementos à equipe ou substituir componentes da mesma pode 
comprometer severamente o resultado final do projeto de software.
O fato é que, independente da abordagem que se utilize, a Engenharia de 
Software lida com desafios constantemente. Produzir algo que ninguém sabe o que 
e como será, de forma que não se pode demonstrar de forma precisa, é no mínimo 
um trabalho a ser respeitado.
De forma bastante resumida, pode-se dizer que a Engenharia de Software lida 
basicamente com as preocupações de como produzir software de qualidade. Sendo 
que o termo qualidade, neste caso, pode ter diversos significados, dependendo do 
ponto de vista pelo qual é analisado.
 
A qualidade de software, portanto, se torna a meta principal da Engenharia 
de Software. Diante disso, é adequado conhecer o que algumas autoridades em 
qualidade argumentam em relação ao assunto. Neste contexto foram selecionados 
Crosby, Deming, Feigenbaum, Ishikawa, Juran e Shewhart.
TÓPICO 3 | SUPORTES COMPUTACIONAIS
107
Crosby (1979) considera que o primeiro pressuposto incorreto sobre 
qualidade é o de que ela signifique durabilidade, luxo ou beleza. A palavra 
qualidade é frequentemente utilizada para significar o valor relativo de algo 
em frases como boa qualidade, má qualidade e qualidade de vida, o que possui 
significados diferentes para cada pessoa. 
Desta forma, qualidade pode ser definida como conformidade aos 
requisitos que estão sendo gerenciados. Consequentemente, as não conformidades 
identificadas significam ausência de qualidade, problemas de não conformidade se 
tornam problemas de qualidade e então pode-se passar a definir o que é qualidade 
(CROSBY, 1979).
Através da forma como Crosby (1979) descreve seu conceito de qualidade 
pode-se identificar claramente que, para ele, qualidade significa conformidade 
com as especificações. Mesmo assim, ele também defende a importância de 
compreender as expectativas que se tem em relação às questões relacionadas à 
qualidade de produção, bem como outras perspectivas externas. 
Crosby (1979) defende também a importância de definir qualidade de forma 
clara para que se possa medir e gerenciar o conceito. A perspectiva de qualidade 
de Crosby (1979) pode ser sumarizada em 14 passos que estão apoiados em quatro 
fundamentos absolutos de gestão da qualidade:
1 Qualidade é definida como conformidade com os requisitos, não como 
durabilidade ou beleza;
2 A forma para obter qualidade é a prevenção, não inspeção. Isto é, a forma de 
qualidade para os fornecedores atenderem aos requisitos dos clientes é fazer certo da 
primeira vez. Crosby é um forte defensor da prevenção ao invés da inspeção. Numa 
organização com cultura orientada às ideias de Crosby, todos são responsáveis pelo 
resultado de seu trabalho. Não há ninguém para encontrar erros;
3 O padrão de desempenho deve ser zero defeitos, não sendo aceito o “está bom 
o suficiente”. Crosby defende que a noção de que zero erros pode e deve ser o 
objetivo;
4 A medida da qualidade é o custo da qualidade. Uma imperfeição tem um 
efeito imediato na redução do desempenho, podendo refletir na relação com o 
cliente. Neste caso, investimentos precisam ser feitos com treinamentos e outras 
atividades que permitam eliminar os erros e recuperar o custo das perdas.
A dificuldade em definir qualidade reside em traduzir futuras necessidades 
dos usuários em características mensuráveis, assim um produto pode ser projetado 
e produzido de forma a satisfazer às necessidades a um preço que os usuários 
estarão dispostos a pagar. Isto não é fácil, e quanto mais se aproxima do produto 
ideal, descobre-se que as necessidades dos usuários mudaram, os concorrentes se 
aproximam e etc. (DEMING, 1988).
108
UNIDADE 2 | CONCEITOS FUNDAMENTAIS DA COMPUTAÇÃO
Um dos pontos importantes do conceito segundo Deming (1988) é que a 
qualidade deve ser definida em termos de satisfação dos usuários, o qual é um 
conceito muito mais amplo que a definição de qualidade como sendo conformidade 
com as especificações.
 Deming defende que a qualidade deve ser definida apenas em termos do 
agente, ou seja, quem julga a qualidade. Para implementar sua perspectiva sobre 
qualidade, Deming introduziu 14 pontos de gerenciamento para ajudar as pessoas 
a entenderem e implementarem a transformação necessária:
1 criar constância de propósito para melhoria de produtos e serviços;
2 adotar a nova filosofia;
3 cessar a dependência de inspeção em massa;
4 deixar de basear os negócios em preços;
5 melhorar constantemente e continuamente o sistema de produção e serviços;
6 instituir treinamentos;
7 instituir liderança;
8 eliminar o medo;
9 quebrar barreiras entre departamentos;
10 eliminar slogans, exortações e metas numéricas;
11 eliminar cotas numéricas e padrões de trabalho;
12 remover barreiras para poder orgulhar-se das habilidades;
13 instituir um vigoroso programa de educação;
14 agir para conquistar a transformação.
Qualidade é algo determinado pelo cliente, não por um engenheiro, nem 
pelo marketing, nem pela administração geral. Ela é baseada sobre a experiência 
atual do cliente com o produto ou serviço, medido contra os requisitos definidos 
pelo cliente. Tais requisitos podem estar declarados ou não, realizados em consenso 
ou não, tecnicamente operacionais ou completamente subjetivos. 
É importante que as metas devem representar sempre movimento no 
sentido de atender um mercado competitivo. Qualidade de produto ou serviço 
pode ser definida como: A composição total das características de marketing, 
engenharia, manufatura e manutenção de produtos e serviços através dos quais o 
uso atenderá às expectativas dos clientes (FEIGENBAUM, 1983).
A definição de qualidade de Feigenbaum (1983) pode ser resumida 
como atender às necessidades dos clientes, embora ele vá além, defendendo o 
atendimento atual e futuro das necessidades dos clientes. Isto significa que para 
ele o conceito de qualidade não é estático, mas que deve ser atualizado conforme 
mudarem as necessidades dos clientes.
A realização do controle de qualidade objetiva obter produtos cuja 
qualidade possa satisfazer aos requisitos dos clientes. O simples fato de atender 
padrões ou especificações nacionais não é o suficiente. Os padrões internacionais 
definidos pela ISO (International Organization for Standardization) ou pela IEC 
(International Eletrotechnical Commission) não são perfeitos. 
TÓPICO 3 | SUPORTES COMPUTACIONAIS
109
Eles possuem muitas falhas. Os clientes podem não estar satisfeitos 
com um produto que atenda estes padrões. É necessário ter em mente que os 
requisitos dos clientes mudam de um ano para outro e mesmo padrões atualizados 
frequentemente não podem acompanhar o ritmo dos requisitos dos clientes. 
A forma de interpretar o termo qualidade é importante, pois se for 
interpretada de forma focada significará qualidade de produtos, mas se for 
interpretada de forma abrangente, o termo significará qualidade de produtos,serviços, informações, processos, pessoas, sistemas etc. (ISHIKAWA, 1985).
A perspectiva de qualidade de Ishikawa (1985) está voltada para a definição 
de que qualidade é atender às necessidades dos clientes e que acompanha as 
mudanças de expectativas. Isto significa que qualidade é um conceito dinâmico, 
pois as necessidades, os requisitos e as expectativas dos clientes mudam 
continuamente. Desta forma, qualidade deve ser definida de forma compreensiva 
e dinâmica. Além disso, Ishikawa (1985) defende que o preço é um atributo de 
qualidade, ou seja, um produto com preço alto pode não satisfazer ao cliente e, 
consequentemente, não ter alta qualidade.
Para Juran, a palavra qualidade tem múltiplos significados. Dois destes 
significados são os mais importantes: 1) Qualidade consiste nas características 
do produto que atende às necessidades dos clientes, provendo um produto que 
atenda suas necessidades. 2) Qualidade consiste na inexistência de deficiências. De 
forma simplificada, o termo qualidade pode ser definido como adequado para uso 
(fitness for use) (JURAN, 1988).
A definição de qualidade de Juran destaca a questão de que não se pode 
utilizar a palavra qualidade apenas em termos de satisfação das expectativas ou 
especificações dos clientes, pelo fato de ser muito difícil atingi-la. Ao invés disso, 
ele define qualidade como adequado ao uso, o que indica referências a requisitos e 
características do produto. Desta forma, a definição de Juran pode ser interpretada 
como uma definição mais voltada para conformidade com as especificações do que 
uma definição de atendimento das necessidades dos clientes. Juran propôs três 
processos para o gerenciamento da qualidade:
• Planejamento da qualidade;
• Controle da qualidade;
• Melhoria da qualidade.
Para Shewhart, há dois aspectos comuns na qualidade: o primeiro deles 
diz respeito à consideração da qualidade como um objetivo independente da 
existência do homem. O segundo diz respeito a como se pensa, sente e percebe a 
realidade, ou seja, o lado subjetivo da qualidade (SHEWHART, 1931).
Embora o conceito de qualidade de Shewhart seja de 1920, pode ser 
considerado como um dos melhores, pois define os lados objetivo e subjetivo da 
qualidade, enquadrando-se nas definições de conformidade com as especificações 
e atendimento das necessidades dos clientes.
110
UNIDADE 2 | CONCEITOS FUNDAMENTAIS DA COMPUTAÇÃO
Porém, para que se possa verificar os índices de qualidade é necessário que 
haja uma forma de realizar esta verificação. Para que se possa medir é necessário 
que haja uma forma de medição. Medição é “o processo pelo qual números ou 
símbolos são atribuídos a atributos de entidades do mundo real, de maneira a 
descrevê-las de acordo com regras claramente definidas” (FENTON; PFLEEGER, 
1997, p. 5). Uma entidade pode ser entendida como um evento ou objeto que será 
medido e um atributo como uma característica específica que pode ser utilizada 
como parâmetro. 
A medição permite aos profissionais de software medir e prever os processos 
de software e recursos necessários para o desenvolvimento de um projeto (PETERS, 
2001). A norma ISO/IEC 15939 define como objetivos da medição de software apoiar 
a gerência e a melhoria de processos e de produtos de software (ISO/IEC, 2002). 
A medição de software é reconhecida como uma forma utilizada para 
o entendimento, monitoramento, controle, predição e melhoria de projetos de 
desenvolvimento e manutenção de software (BRIAND; DIFFERDING; ROMBACH, 
1997). De forma simplificada, pode-se dizer que o objetivo da medição é fornecer 
informação que melhora a tomada de decisões a tempo para afetar o resultado do 
negócio.
As medições permitem aumentar o conhecimento sobre o processo através 
do qual o produto é desenvolvido, permitindo que se possa administrar de forma 
mais efetiva através da quantificação (PRESSMAN, 1995). A medição permite 
aos profissionais de software medir e prever os processos de software e recursos 
necessários para o desenvolvimento de um projeto (PETERS e PEDRYCS, 2001). 
A medição também é uma fonte de informações, fundamental para 
fornecer respostas sobre questões relevantes relacionadas aos processos adotados 
e os resultados obtidos com a utilização dos mesmos. Algumas das respostas que 
podem ser obtidas permitem identificar se os processos técnicos e gerenciais estão 
adequados e ainda permitem obter subsídios para a melhoria daqueles que não 
estiverem satisfatórios. (DeMARCO, 1991). 
Pelo fato da medição dar o suporte necessário para ações de melhoria da 
qualidade, esta tem se tornado cada vez mais importante no contexto da Engenharia 
de Software (ROCKENBACH, 2003). 
Na norma ISO/IEC 15939 a medição é definida como um conjunto de 
operações cujo objetivo é a determinação do valor de medidas (ISO/IEC, 2002). 
Medição é o processo pelo qual números ou símbolos são atribuídos a atributos 
de entidades no mundo real, descrevendo-os de acordo com regras claramente 
definidas (FENTON; LITTLEWOOD, 1991). 
Uma medida é uma indicação quantitativa da extensão, quantidade, 
dimensão, capacidade ou tamanho de um produto ou processo (ISO/IEC, 2002). Já 
uma métrica é qualquer tipo de medição que se refira a um software, processo ou 
documentação relacionada (SOMMERVILLE, 2003).
TÓPICO 3 | SUPORTES COMPUTACIONAIS
111
Kettelerij (2006) argumenta que dentre as abordagens existentes para a 
medição de software, as que têm se destacado pela utilização na prática são GQM – 
Goal Question Metric (BASILI e WEISS, 1984) e PSM – Practical Software and Systems 
Measurement (PSM, 2003). A seguir estes métodos são descritos em detalhes.
GQM
Em organizações cuja gestão esteja fortemente apoiada em sistemas de 
gerenciamento organizacional, o sucesso pode ser comprometido se a estratégia 
de negócio não puder ser traduzida em um conjunto de objetivos operacionais no 
software. É necessário, portanto, que os objetivos organizacionais sejam traduzidos 
em objetivos de medição para que os dados obtidos contribuam nas decisões de 
alto nível da organização (BASILI et al., 2007). 
A abordagem GQM tem se mostrado bastante útil em diversos contextos 
organizacionais no apoio ao estabelecimento do gerenciamento quantitativo de 
projetos de software (BASILI et al., 2007).
O GQM – Goal/Question/Metric (BASILI; WEISS, 1984) é uma abordagem 
de medição cuja orientação está voltada aos objetivos de medição de processos e 
produtos de software. Originalmente o método GQM foi desenvolvido por Victor 
Basili e David Weiss na Universidade de Maryland, de forma cooperada com o 
Software Engineering Laboratory do NASA Goddard Space Flight Center. 
O GQM é uma abordagem que permite sistematizar a adaptação e 
integração de objetivos com base nas necessidades específicas de cada projeto e de 
uma organização, aos modelos dos processos de software, produtos e perspectivas 
de interesse de qualidade (BASILI; CALDIERA; ROMBACH, 1994).
O método GQM, desenvolvido por Victor R. Basili e David M. Weiss, foi 
estendido com outros conceitos por Dieter H. Rombach. O método GQM é resultado 
de diversos anos de experiência prática e pesquisas acadêmicas (SOLINGEN e 
BERGHOUT, 1999). A ideia básica do GQM é derivar métricas de software a partir 
de perguntas e objetivos. 
A adoção sistemática de medições é tipicamente realizada através de um 
programa de medição. Programas de medição podem apresentar diversos tipos de 
benefícios. O mais desejável é o atendimento dos objetivos de melhoria explícitos, 
os quais podem estar relacionados a produtos ou processos. 
Um programa de medição pode proporcionar também a melhoria na 
comunicação com a equipe do projeto, definição dos processos e execução dos 
processos. A questão dos benefícios financeiros diretos é de difícil medição, pois 
existem muitos fatores indiretos envolvidos (SOLINGEN; BERGHOUT, 1999).
A abordagemGQM está fundamentada em dois princípios. O primeiro 
princípio diz que um programa de medição deve ter como base um conjunto de 
objetivos e não estar baseado em medidas. O segundo princípio diz que cada 
organização deve realizar a definição de objetivos e medidas específicos para sua 
realidade (SOLINGEN; BERGHOUT, 1999).
112
UNIDADE 2 | CONCEITOS FUNDAMENTAIS DA COMPUTAÇÃO
No roteiro de um programa de medição estabelecido com base na abordagem 
GQM as atividades devem iniciar pela definição dos objetivos de medição. Uma vez 
definidos os objetivos de medição, deve-se realizar o refinamento de cada objetivo 
em questões a partir das quais são definidas medidas que permitam prover as 
informações necessárias para responder as questões elaboradas.
 
São os dados obtidos pela medição que permitem responder às questões 
que, por sua vez, são analisadas para identificar se os objetivos de medição 
estabelecidos foram ou não atingidos. Este roteiro demonstra que a abordagem 
suporta a definição de um programa de medição de forma top-down e a análise e 
interpretação dos dados de medição de forma bottom-up.
PSM
O PSM - Practical Software and Systems Measurement é uma abordagem 
que descreve um processo de medição orientado por informações que tratam dos 
objetivos técnicos e de negócios de uma organização (PSM, 2003). O desenvolvimento 
do PSM é patrocinado pelo Departamento de Defesa dos EUA (DoD) e US Army. 
O desenvolvimento do PSM tem sido baseado em experiências práticas de medição 
realizadas pelo DoD, governo americano e indústria (PSM, 2003). 
O PSM foi utilizado como modelo de referência para o padrão ISO 15939, 
o qual foi utilizado como base para a definição da área de processos (PA - Process 
Area) do CMMI (KETTELERIJ, 2006). A documentação do PSM possui a descrição 
de como realizar a definição e execução de um programa de medição de forma a 
atender às necessidades de informação das organizações que adquirem e fornecem 
softwares e sistemas (PSM, 2003).
O principal foco do PSM está voltado para o nível de projetos, apresentando 
uma abordagem para a definição e implementação eficaz de um processo de 
medição para projetos de software e de sistemas. O PSM tem como objetivo prover 
aos gerentes de projeto e gerentes técnicos informações quantitativas necessárias 
para a tomada de decisões que possam afetar o cronograma e custo do projeto, 
bem como os objetivos de desempenho técnico. 
Embora a abordagem PSM esteja com o foco em nível de projeto, o processo 
de medição baseado em informações pode ser estendido para o tratamento de 
requisitos de medição em nível de organização (PSM, 2003). 
Um detalhe relevante a ser destacado é que a abordagem GQM é orientada a 
objetivos e a abordagem do PSM está orientada ao fornecimento de informações. A 
implementação de um programa de medição que inclua o PSM envolve a definição 
da necessidade de informações da organização e dos projetos e então selecionar 
as medições que forneçam as informações que atendam a tais necessidades 
(KETTELERIJ, 2006).
TÓPICO 3 | SUPORTES COMPUTACIONAIS
113
A medição no PSM é descrita como um processo sistemático, mas flexível, 
podendo ser adaptado para satisfazer necessidades de informação e características 
específicas de cada projeto. As medições podem ser selecionadas das seguintes 
categorias (KETTELERIJ, 2006): cronograma e progresso, recursos e custos, 
estabilidade e tamanho do produto, qualidade do produto, desempenho do processo, 
efetividade tecnológica e satisfação do usuário. A abordagem PSM possui um 
processo para seleção das medições apropriadas com base em questões e objetivos 
relevantes a um projeto de desenvolvimento de software (BASILI et al., 2007).
As atividades de adaptação de medidas e aplicação de medidas formam 
o centro do processo de medição que fornece informações diretamente aos 
responsáveis pela tomada de decisões. A atividade de implementação do processo 
envolve as atividades que estabelecem o processo de medição dentro de uma 
organização. Na atividade de avaliação da medição são identificadas as tarefas de 
avaliação e melhoria que servirão para todo o programa de medição (PSM, 2003). 
O processo de medição deve estar integrado aos demais processos que fazem 
parte do ciclo de vida dos projetos de software e de sistemas. Em situações em que os 
processos do ciclo de vida são dinâmicos, o processo de medição deve acompanhar 
o dinamismo das mudanças e adaptações ao projeto. Estas atividades de adaptação 
e aplicação de medidas são iterativas durante todo o ciclo de vida do projeto. As 
questões, medidas e técnicas de análise podem mudar com o passar do tempo, com 
o objetivo de atender às necessidades do projeto que está sendo executado.
114
UNIDADE 2 | CONCEITOS FUNDAMENTAIS DA COMPUTAÇÃO
3 BANCO DE DADOS
O armazenamento de dados, por muito tempo, ocorreu na forma de 
arquivos. Cada novo software que era desenvolvido implementava também as 
rotinas necessárias para a criação, inserção, consulta e exclusão dos dados de 
arquivos.
A utilização dessa forma de tratamento do armazenamento foi sendo 
gradativamente extinta a partir do momento em que o conceito de banco de dados 
se popularizou na comunidade da área de computação/informática.
Mas, antes de continuarmos, o que realmente é um banco de dados? 
(FOROUZAN; MOSHARRAF, 2011) definem que “banco de dados é um conjunto 
de dados relacionados, logicamente coerentes, utilizado por programas da 
aplicação em uma organização”.
Tomando esta definição, pode-se entender que um banco de dados 
congrega um conjunto de dados que estejam relacionados a determinado assunto, 
aplicação, departamento, empresa, etc. Estes dados devem ser organizados de 
forma adequada para que façam sentido aos usuários que os utilizarão quando 
necessário através de suas aplicações.
Para atender às necessidades e demandas dos usuários, um banco de dados 
deve possuir mais funcionalidades do que apenas as de permitir armazenar e 
recuperar dados de uma base. Em função disso, boa parte dos modernos bancos 
de dados é formada, na verdade, por Sistemas de Gerenciamento de Banco de 
Dados (SGBD).
Um sistema de gerenciamento de banco de dados permite a definição, 
criação, acesso e manutenção de um conjunto de dados. Ele é formado pela 
combinação de cinco componentes: hardware, software, dados, usuários e 
procedimentos (FOROUZAN; MOSHARRAF, 2011).
Um sistema de gerenciamento de banco de dados possui diversas vantagens 
sobre o armazenamento de dados em arquivos. Num sistema de banco de dados 
há menor redundância, pois, tipicamente, sistemas que realizam armazenamento 
em arquivos realizam a duplicação de certos conjuntos de dados.
Num sistema de banco de dados há menos inconsistências, pois tipicamente 
o uso do modelo relacional é mais fortemente aplicado. Isso faz com que quaisquer 
alterações nos dados sejam refletidas de forma consistente nos demais locais que 
utilizam aquela informação.
A eficiência também é privilegiada, pelo fato do sistema de banco de dados 
possuir esquemas de acesso a dados bastante sofisticados. Da mesma forma, num 
sistema de banco de dados é gerenciada a integridade do conteúdo armazenado. 
Além destas vantagens, pode-se apontar a questão da maior confidencialidade 
TÓPICO 3 | SUPORTES COMPUTACIONAIS
115
do conteúdo armazenado num sistema de banco de dados em relação ao 
armazenamento em arquivos.
Para Garcia-Molina (2001), os recursos que um sistema de banco de 
dados deve oferecer aos usuários são armazenamento persistente, interface de 
programação e gerenciamento de transações. Além de permitir o armazenamento 
de uma grande quantidade de dados, um sistema de banco de dados deve permitir 
que tais dados existam de forma independente de processos que utilizem estes 
dados. Além disso, implementa estruturas de dados que permitem agilidadeno 
acesso, mesmo em grande quantidade de dados.
A interface de programação permite ao usuário acessar os dados através 
de uma linguagem de consulta. Tipicamente a linguagem utilizada é a SQL 
(Structured Query Language), que permite a manipulação de dados de forma muito 
mais robusta e avançada que a simples leitura de gravação de dados em arquivos. 
O gerenciamento de transação permite o gerencimento de acessos concorrentes 
por diferentes processos ao mesmo conjunto de dados. Com o uso de transações 
há a garantia de que cada processo executou de forma consistente as alterações 
necessárias na base de dados (GARCIA-MOLINA, 2001).
116
RESUMO DO TÓPICO 3
Caro acadêmico, nesse tópico você estudou que:
• A Engenharia de Software tem a finalidade de tratar dos aspectos relacionados ao 
desenvolvimento de software em todas as fases do ciclo de vida de software. Estes 
aspectos podem estar relacionados à dimensão, pessoas, processo e tecnologias.
• Um dos aspectos muito importantes a serem considerados na Engenharia 
de Software é a questão das pessoas, pois a atividade de desenvolvimento de 
software, por exemplo, é fortemente dependente do fator humano. Neste aspecto 
é importante observar também que a inclusão de mais pessoas na equipe de 
desenvolvimento em um projeto atrasado poderá torná-lo ainda mais atrasado.
• Quando se fala em qualidade de software, diversas definições são defendidas, 
porém os aspectos de conformidade com as especificações e atendimento das 
necessidades dos usuários não podem ser ignorados. Estes aspectos contemplam 
as dimensões objetiva e subjetiva da qualidade.
• Um programa de medição permite o atendimento de objetivos de melhoria 
explícitos que podem estar relacionados a produtos ou processos, proporcionando 
inclusive melhoria na definição e execução dos processos, além da comunicação 
com a equipe de projeto.
• Um sistema de gerenciamento de banco de dados tem a finalidade de permitir a 
definição, criação, acesso e manutenção de um conjunto de dados. Ele é formado 
pela combinação de hardware, software, dados, usuários e procedimentos.
117
Caro acadêmico, como forma de fixar o conteúdo estudado, realize a 
autoatividade proposta a seguir:
1 Qual é o principal enfoque da Engenharia de Software?
2 Quais são os quatro fundamentos absolutos de gestão da qualidade, de 
acordo com Crosby (1979)?
3 Quais são os processos definidos por Juran (1988) para o gerenciamento da 
qualidade?
4 Quais os objetivos da realização do processo de medição?
5 Qual é o recurso de um sistema de banco de dados que permite o 
gerencimento de acessos concorrentes por diferentes processos ao mesmo 
conjunto de dados?
AUTOATIVIDADE
118
119
TÓPICO 4
INTELIGÊNCIA COMPUTACIONAL
UNIDADE 2
1 INTRODUÇÃO
Nas primeiras décadas em que os computadores passaram a ser utilizados 
para o processamento de dados fora do meio científico, o principal uso dos 
mesmos estava restrito ao processamento de dados de alta importância e valor 
agregado. Este direcionamento era causado, basicamente, em função das restrições 
de recursos computacionais da época. Quando nos referimos a essa questão, não 
significa que boa parte não estivesse disponível, mas que a relação entre custo e 
benefício encontrava-se em um patamar bastante diferente do que encontramos 
atualmente. 
Pode-se citar como exemplo o custo de processamento do registro de uma entrada 
de numerários em caixa, que chegou a custar vários dólares. É certo que, além dos altos 
custos de processamento e armazenamento de dados, o poder de processamento era 
bastante limitado em relação ao que há disponível no mercado atual.
Se tomarmos as décadas de 1960, 1970 e até mesmo a de 1980, os recursos de 
memória, processador, armazenamento e de infraestrutura de telecomunicações 
eram bastante limitados, além de terem custos bastante elevados. Esta escassez 
de recursos obrigava os usuários de informática a otimizarem ao máximo a sua 
utilização, medindo de maneira bastante cautelosa a relação entre custo e benefício 
no momento de decidir, por exemplo, pela inclusão de qualquer dado num arquivo 
ou tabela de armazenamento. 
Nas primeiras décadas da computação, os recursos de processamento e 
transmissão de dados eram bastante escassos e de custo bastante elevado.
UNI
120
UNIDADE 2 | CONCEITOS FUNDAMENTAIS DA COMPUTAÇÃO
A decisão da inclusão de qualquer dado precisava ser tomada com base 
em critérios concretos que justificassem a existência de tal dado a mais, pois o 
mesmo seria armazenado na memória, processado, armazenado e quem sabe até 
transmitido através dos dispositivos de teleprocessamento. É certo que este dado 
processado representava um custo pouco expressivo, mas se multiplicado pela 
quantidade de transações realizadas, poderia se tornar significativo.
Felizmente a tecnologia da informação não parou de evoluir e a partir da 
década de 1990 pudemos começar a obter novos benefícios proporcionados pela 
evolução e pelo barateamento do acesso aos recursos computacionais, tanto no 
sentido da computação propriamente dita, quanto na questão das comunicações 
utilizando a infraestrutura das redes de computadores. 
A internet revolucionou, entre outras coisas, a forma como os seres humanos 
se relacionam, pois permite que as pessoas se comuniquem à distância através 
de diversos meios, como correio eletrônico (e-mail), bate papo (chat), grupos de 
discussão (fóruns), comunidades virtuais ou redes sociais, entre outras.
A internet não é apenas um luxo, como pode ser considerado por alguns. 
Acesso à internet é permitir acesso a um novo mundo. Nesse pode-se explorar 
uma quantidade muito vasta de informações, conhecimentos científicos, 
relacionamento com pessoas distantes ou próximas fisicamente. Enfim, incluir 
digitalmente a população é, acima de qualquer outra coisa, prover igualdade de 
acesso a informações e outras possibilidades. Informações que permitirão, entre 
outras coisas, compreender melhor o mundo em que vivemos. 
2 CONCEITOS BÁSICOS
Como forma de facilitar o entendimento dos conceitos apresentados ao 
longo desta unidade, é apresentada a definição de alguns dos termos utilizados. 
Um termo que será utilizado por diversas vezes é tempo real. Este termo necessita 
ser bem entendido, para que você aproveite bem o conteúdo estudado. O termo 
tempo real se refere à restrição de tempo de resposta existente na execução de 
determinada aplicação. Isso significa que o tempo real não é necessariamente 
instantâneo, mas sim o tempo de resposta necessário (COULORIS, 2007).
Também é importante que se conheça o significado dos termos sinal 
analógico e sinal digital. Um sinal analógico é aquele cuja característica tem 
uma variação contínua no tempo, ou seja, não sofre variações bruscas de forma 
instantânea. Já um sinal digital possui uma variação discreta (abrupta) em relação 
ao tempo. Isto não significa que um sinal digital não possa representar valores 
dependentes do tempo.
A multimídia pode ser entendida como um ponto de convergência 
entre publicidade, informática, consumidores de dispositivos de áudio e vídeo, 
telecomunicações, indústria de televisão e cinema (FLUCKIGER, 1995). O 
TÓPICO 4 | INTELIGÊNCIA COMPUTACIONAL
121
crescimento da multimídia se deu em função da disponibilidade de recursos e do 
interesse na utilização da mesma. A disponibilidade de recursos, principalmente 
no âmbito computacional e de comunicação, foi a grande mola propulsora que 
permitiu a utilização conjunta de diversas mídias. 
A palavra multimídia, portanto, designa a coexistência de diversas formas, 
neste caso, diversos formatos de dados, como textos, sons, vídeos, entre outros. 
A utilização da palavra multimídia pode ser encontrada também composta 
com outras, como, por exemplo, rede multimídia, tecnologia multimídia, placa 
multimídia,aplicação multimídia, dispositivo de armazenamento multimídia, 
plataforma multimídia, entre outras.
A tecnologia multimídia está possibilitando a utilização de informações 
de maneiras inovadoras. A quantidade de pessoas que utilizam a tecnologia 
multimídia, principalmente de forma remota, é crescente. Este crescimento 
demonstra a importância que tal tecnologia representa no cotidiano da sociedade. 
Os recursos da tecnologia multimídia têm sido utilizados em diversas áreas de 
conhecimento.
A tecnologia multimídia tem auxiliado as pessoas na busca de novos 
conhecimentos, divertindo e facilitando a geração de negócios para as empresas. 
A multimídia é, portanto, a integração de textos, imagens, vídeos, sons e quaisquer 
outros meios, cujas informações possam ser representadas, transmitidas, armazenadas e 
processadas digitalmente. A multimídia torna o computador um atrativo meio para diversão e 
realização de atividades.
A palavra multimídia é composta do prefixo multi e do radical mídia (FLUCKIGER, 
1995). O prefixo multi, originário do latim multus, significa numerosas, diversas ou várias. Este 
mesmo radical é utilizado em outras palavras, como multicolor (várias cores) e multiformis 
(que possui várias formas). Já o radical mídia, originário do latim medium, significa centro ou 
meio. No contexto da multimídia, o radical mídia está relacionado aos tipos de dados utilizados, 
ou seja, os formatos de apresentação. 
UNI
UNI
122
UNIDADE 2 | CONCEITOS FUNDAMENTAIS DA COMPUTAÇÃO
Isto demonstra que ela não está restrita a um pequeno conjunto de aplicações, mas 
sim, limitado apenas à criatividade e imaginação de quem faz ou pretenda fazer 
uso da mesma.
O processo de comunicação utilizando recursos multimídia potencializa a 
capacidade de expressão dos usuários. Tal tecnologia também facilita o processo 
de aprendizagem, pois permite o uso de formas mais atrativas de ensino e 
apresentação de conteúdos que os meios tradicionalmente empregados. Neste 
contexto, o aluno deixa de ter um papel passivo e passa a desempenhar um papel 
participativo no processo de ensino-aprendizagem. A possibilidade de utilização 
de um ambiente interativo torna as aplicações mais interessantes aos alunos.
3 TIPOS DE MÍDIA
Os diversos tipos de mídia conhecidos e utilizados podem ser classificados 
segundo suas características. Esta classificação ajuda no entendimento da 
multimídia. Os tipos de mídia, portanto, podem ser classificados em mídias 
capturadas, sintetizadas, discretas e contínuas (WILLRICH, 2002). Isso não 
significa dizer que é a única forma de classificação e muito menos de que elas são 
autoexcludentes, pois podemos ter mídias capturadas discretas e também mídias 
capturadas contínuas. Da mesma forma, podemos ter mídias sintetizadas discretas 
e contínuas. Além disso, podemos ter todos os tipos sendo utilizados em conjunto 
num mesmo momento.
A tecnologia multimídia é um importante meio para facilitar o processo de ensino-
aprendizagem, permitindo ao usuário desempenhar um papel participativo.
UNI
TÓPICO 4 | INTELIGÊNCIA COMPUTACIONAL
123
FIGURA 81 – ALGUNS TIPOS DE MÍDIAS
FONTE: O autor
Bem, antes de você continuar os estudos sobre este assunto, é importante que 
seja esclarecido o que são mídias capturadas, sintetizadas, discretas e contínuas. As 
mídias capturadas são aquelas obtidas do mundo real, ou seja, os sons, imagens e 
vídeos obtidos a partir de elementos do mundo real. Uma fotografia é um exemplo 
de mídia capturada. Uma mídia sintetizada é aquela produzida em computador. 
Um texto é um exemplo de mídia sintetizada. 
FIGURA 82 – EXEMPLO DE FOTOGRAFIA
FONTE: O autor
124
UNIDADE 2 | CONCEITOS FUNDAMENTAIS DA COMPUTAÇÃO
Uma mídia discreta também é caracterizada como mídia estática, pois possui 
apenas dimensões espaciais, ou seja, são independentes da passagem do tempo, 
representando apenas um único instante de tempo. Um gráfico é um exemplo de 
mídia discreta. Já uma mídia contínua, que também pode ser caracterizada como 
uma mídia dinâmica, possui dimensões temporais, ou seja, são dependentes da 
passagem do tempo. Um vídeo é um exemplo de mídia contínua.
FIGURA 83 – EXEMPLO DE QUADROS DE UM VÍDEO
FONTE: O autor
As mídias capturadas são resultantes de elementos obtidos do mundo real e as 
sintetizadas são as puramente produzidas em computador.
UNI
TÓPICO 4 | INTELIGÊNCIA COMPUTACIONAL
125
É importante observar que a principal característica das mídias discretas é a de 
não haver dependência da passagem do tempo para que o conteúdo tenha significado. 
Já as mídias contínuas dependem da passagem do tempo para que se obtenha o 
significado do conteúdo da mesma. 
Este conceito é simples de entender se utilizarmos uma foto e um vídeo 
como exemplos. Numa foto, não há necessidade de passagem de tempo para que 
seu conteúdo e/ou significado possa ser entendido pelo observador; já num vídeo 
há necessidade da passagem do tempo para que os quadros sejam apresentados 
dando o significado do conteúdo do mesmo. Para que haja a reprodução adequada 
de informações multimídia, tipicamente, os fluxos de dados são volumosos. Isso 
implica na necessidade de melhor desempenho de processamento e maior largura 
de banda para a transmissão. 
O aumento da utilização de multimídia tem ocorrido de forma praticamente 
natural, pelo fato de tais conteúdos estimularem um ou mais sensos de quem os 
utiliza. Os sentidos são estimulados de diferentes formas quando diferentes mídias 
são utilizadas. A utilização de mídias puramente sintetizadas e discretas pode 
ser pouco interessante em alguns casos, mas a utilização de mídias capturadas e 
contínuas, mesmo que em conjunto com as sintetizadas e discretas, melhora muito 
a atratividade, tornando mais prazerosa a experiência das pessoas.
4 SISTEMAS MULTIMÍDIA
Os sistemas computacionais convencionais foram desenvolvidos com o 
objetivo de realizar processamento sobre um conjunto de dados tipicamente de 
tipo alfanumérico. Isto implica no fato de não atenderem de forma eficiente os 
sistemas multimídia, os quais necessitam de novas tecnologias que atendam às 
características e requisitos de tais aplicações. As aplicações multimídia utilizam, de 
forma simultânea, múltiplos tipos de mídia, e estes requerem que sejam mantidas 
as relações temporais e espaciais existentes entre as mesmas. A necessidade de 
sincronização entre imagem e som num vídeo é um bom exemplo para entender a 
importância da relação temporal e espacial. Um vídeo em que a voz dos personagens 
esteja atrasada em relação ao movimento da boca faz com que o sentido possa ser 
perdido.
Os dados multimídia se caracterizam pela intensidade, o que pode requerer 
a utilização de esquemas de compressão, utilização de redes de alta velocidade 
e sistemas computacionais (hardware e software) que atendam aos requisitos de 
processamento. Os dados multimídia têm a característica da dimensão temporal, 
exigindo transmissão, processamento e apresentação em taxas que atendam aos 
requisitos de tempo real. O armazenamento de dados multimídia ainda pode não 
se enquadrar nos esquemas convencionais de armazenamento, exigindo outras 
formas de reconhecimento, indexação e recuperação (WILLRICH, 2002).
126
UNIDADE 2 | CONCEITOS FUNDAMENTAIS DA COMPUTAÇÃO
O conhecimento dos tipos de mídia facilita o entendimento da definição 
de sistemas multimídia, o qual é um sistema com a capacidade de manipular 
digitalmente pelo menos um tipo de mídia discreta e um tipo de mídia contínua. 
Os sistemas multimídia standalone são aqueles que fazem uso apenas dos 
recursos presentes no sistema computacional local, sem o uso de quaisquer recursos 
que não estejam presentes no mesmo (WILLRICH, 2002). Desta forma, todos os 
recursos de processamento dependem exclusivamente do equipamento local. Este 
equipamento deve conter os recursosnecessários para permitir que o processamento 
multimídia seja realizado. Entre os dispositivos pode-se citar os de captura e 
apresentação multimídia, como câmeras, microfones, alto-falantes, entre outros. 
Os sistemas multimídia standalone devem armazenar localmente todos os 
dados multimídia necessários, pois os mesmos não têm capacidade para utilização 
de recuros de armazenamento realizado de forma remota. Exemplos de sistemas 
multimídia standalone são as ferramentas de composição de músicas, tutoriais 
multimídia, treinamentos baseados em computador, entre outros.
Já os sistemas multimídia distribuídos são aqueles que fazem uso de 
recursos de outros dispositivos através de uma rede de comunicação de dados 
(WILLRICH, 2002). Pelo fato de utilizarem de recursos de rede de comunicação 
de dados, eles podem suportar a utilização de aplicações em rede, fornecendo 
serviços de comunicação à distância, como distribuição de pacotes de vídeo e 
áudio, videoconferências, entre outros. 
Segundo a classificação da ITU (International Telecommunications Union), 
as aplicações e serviços multimídia podem ser classificados como serviços de 
conversação, serviços de mensagens, serviços de recuperação e serviços de 
distribuição. Os serviços de conversação são aqueles que proveem a interação entre 
seres humanos ou de humanos com um sistema computacional. Exemplos destes 
serviços são sistemas de telessegurança, videofonia, videoconferência, entre outros. 
Os sistemas multimídia são divididos nas categorias standalone e distribuídos.
Os sistemas multimídia distribuídos fazem uso intensivo de recursos das redes de 
comunicação de dados para transferência e sincronização de informações.
UNI
UNI
TÓPICO 4 | INTELIGÊNCIA COMPUTACIONAL
127
Os serviços de mensagem proveem a troca de mensagens multimídia 
assíncronas, também classificadas como não tempo real. Os serviços de recuperação 
proveem um grande conjunto de tipos de acessos aos servidores de conteúdo 
multimídia de tempo real. Os dados multimídia são distribuídos sob a coordenação 
de um servidor. 
Com o aumento da capacidade de processamento dos computadores de 
uso geral e a largura de banda das redes, a utilização de sistemas multimídia 
distribuídos foi viabilizada para tal infraestrutura. Muitos sistemas multimídia, 
embora de tempo real, geralmente não são de missão crítica, como na aviação, 
aplicações de videoconferência comercial, medicina à distância e controle de 
processos de fabricação. Grande parte das aplicações multimídia comporta certa 
tolerância a pequenas falhas ou perdas na reprodução de conteúdos envolvendo 
imagens, áudio e vídeo (COULOURIS, 2007).
5 REPRESENTAÇÃO DE MÍDIAS
Uma vez entendidos alguns conceitos importantes da tecnologia multimídia, 
vamos explanar o processo de conversão de sinais de mídias contínuas em sinais 
discretos. É importante observar que, para a transmissão, manipulação e utilização 
adequada dos dados multimídia, é importante que estejam em formato digital. 
O formato dos dados utilizado em aplicações multimídia leva em 
consideração uma série de fatores, que requereram, inclusive, estudos das 
percepções humanas para o desenvolvimento de muitas das tecnologias atuais. 
As principais características estudadas foram relacionadas à visão e audição, para 
permitir o desenvolvimento de formatos de dados mais compactos e facilmente 
distribuíveis através de redes de computadores de uso geral e a internet.
Nesta unidade estudaremos apenas algumas características da visão e 
formas encontradas para representar imagens.
6 DADOS MULTIMÍDIA
Para melhorar o entendimento das reais diferenças entre os dados 
convencionais e os dados multimídia, é necessário conhecermos algumas questões 
que tiveram que ser estudadas pelos responsáveis pela criação das principais 
tecnologias multimídia e que permitem seu uso da forma como conhecemos 
atualmente.
128
UNIDADE 2 | CONCEITOS FUNDAMENTAIS DA COMPUTAÇÃO
FIGURA 84 – REFLEXO DA LUZ NUMA IMAGEM 
FONTE: O autor
Uma imagem vista por um observador é produto da reflexão de radiações 
eletromagnéticas, ou seja, luz, a qual estimula os olhos permitindo a percepção da 
imagem. Diferentemente do que possamos imaginar, a captura de uma imagem 
pela visão não é uma atividade realizada de forma discreta e sim através de 
elementos contínuos, ou seja, através de ondas (WILLRICH, 2002). 
O formato destas ondas muda conforme a intensidade de luz que é refletida 
a partir da imagem que está sendo observada, pois em determinadas partes de 
uma imagem monocromática, por exemplo, existem diferentes tons de cinza, e a 
luz refletida nestes diversos pontos forma diversas ondas, levando nossa visão a 
perceber as tonalidades através de tais ondas. 
Numa imagem colorida são refletidos variados comprimentos de onda 
que são percebidos pela visão como diversas cores. Isto implica em um sistema 
complexo, utilizando a conjunção de várias funções bidimencionais para descrever 
as imagens. Estudos realizados sobre a visão humana mostraram que a mesma 
resposta visual pode ser obtida através de distribuições espectrais diferentes. Isto 
A observação de uma imagem é obtida pela reflexão da luz que estimula a 
percepção dos olhos.
UNI
TÓPICO 4 | INTELIGÊNCIA COMPUTACIONAL
129
significa que algumas combinações de cores podem criar a mesma sensação visual, 
ou seja, a sensação de que as cores são idênticas (WILLRICH, 2002). 
No início de 1802, Thomas Young desenvolveu a teoria das cores, a qual 
define que quaisquer sensações de cores podem ser reproduzidas pela combinação 
apropriada de três luzes primárias coloridas. Uma cor é dita primária pelo fato da 
combinação de duas outras cores primárias não poder produzir a mesma. Com 
base na teoria de Young, a CIE (Commission Internationale de l’Eclairage) definiu a 
utilização de três fontes de luz através do seu comprimento de onda. Isto permite 
que qualquer imagem colorida plana possa ser representada por um conjunto de 
três funções bidirecionais. 
A utilização das três cores primárias em valores iguais permite gerar as 
cores do preto ao branco. Estes valores formam uma escala de cinza dentro do 
conjuto das demais cores. As pesquisas realizadas sobre a percepção humana da 
variação de cores apontam que 256 diferentes variações de cada uma das cores 
primárias do RGB são suficientes para a maioria das aplicações, pois permitem 
gerar um número de cores superior à capacidade da visão de distinguir a variação 
de duas cores próximas na escala. 
Diferentemente do que se possa imaginar, no sistema RGB a escala (0, 
0, 0), ou seja, intensidade zero de vermelho, verde e azul, forma a cor preta. 
Já a intensidade máxima de cada uma das cores, ou seja (255, 255, 255), forma 
a cor branca. As imagens podem ser classificadas em imagem binária, imagem 
monocromática, imagem policromática e imagem policromática multiespectral. 
As três cores definidas pelo CIE foram o Vermelho, o Verde e o Azul. Estas cores 
formam o sistema RGB (Red, Green, Blue – vermelho, verde, azul). O sistema de cores RGB é de 
uso comum em sistemas computacionais. A utilização se dá pela combinação de intensidade 
de cada uma das cores. Através das combinações de cores do sistema RBG é possível reproduzir 
quaisquer tipos de cores.
A imagem binária é aquela caracterizada apenas pela existência da cor branca 
ou preta, ou seja, ligado ou desligado. Na imagem monocromática cada ponto possui uma 
intensidade de luminosidade associada, caracterizando tonalidades entre o branco e o preto.
UNI
UNI
130
UNIDADE 2 | CONCEITOS FUNDAMENTAIS DA COMPUTAÇÃO
A imagem policromática é um tipo de imagem colorida que faz uso de uma 
tabela que referencia de forma direta cada uma das cores. A imagem policromática 
multiespectral também é conhecida como True Color, pois é formada pela 
combinação das coresbásicas do sistema RGB. Existem diferentes quantidades 
de tonalidades associados ao formato True Color, existindo formatos com menos 
tonalidades ou mais tonalidades, dependendo da quantidade de cores resultantes 
necessárias.
7 CARACTERÍSTICAS DA VISÃO
O entendimento da sensação de que uma sequência de quadros 
apresentados numa determinada sequência e velocidade seja um vídeo contínuo 
se dá pelo entendimento de um fenômeno da visão humana. Este fenômeno é 
denominado de persistência da visão. A persistência da visão é o tempo que uma 
imagem capturada pela retina permanece no cérebro (GROB, 1979). 
Este tempo é de 50 milissegundos. Além disso, existe o tempo de 
sensibilização, que consome outros 50 milissegundos para que a imagem capturada 
pela retina chegue ao cérebro (GROB, 1979). De outra forma, poderíamos dizer que 
uma imagem capturada pelos olhos demora 50 milissegundos para ser transmitida 
até o cérebro.
FIGURA 85 – SEQUÊNCIA DE QUADROS DE UM VÍDEO 
A sensação de continuidade de uma imagem é dada pela velocidade em que um 
conjunto de quadros sucessivos é apresentado ao observador.
UNI
TÓPICO 4 | INTELIGÊNCIA COMPUTACIONAL
131
FONTE: O autor
Uma vez entendido o fenômeno da persistência da visão, pode-se concluir 
que um vídeo pode ser simulado através da sucessão finita de imagens estáticas, 
desde que as imagens sejam trocadas num espaço de tempo menor que o tempo 
de persistência da visão, dando a sensação de continuidade dos movimentos. A 
velocidade de troca de imagens é denominada de frequência de amostragem.
8 CAPTURA E REPRODUÇÃO DE IMAGEM
A captura de imagens do mundo real para utilização em sistemas multimídia 
tipicamente é realizada através da utilização de câmeras. As câmeras realizam 
a captura de uma imagem que atravessa sua lente e atinge os fotossensores, 
denominados CCD (Charge-Coupled Device). A intensidade de iluminação de 
cada parte é convertida em uma carga elétrica pela camada fotossensível, a qual 
é varrida por um feixe de elétrons que captura as cargas elétricas convertendo a 
imagem em um sinal elétrico contínuo.
FIGURA 86 – REPRESENTAÇÃO DE UM CCD 
FONTE: UFRGS (2011)
132
UNIDADE 2 | CONCEITOS FUNDAMENTAIS DA COMPUTAÇÃO
A captura de imagens em preto e branco ou em cores é realizada de forma 
bastante similar, mudando apenas a capacidade do dispositivo de captura, o qual 
pode simplesmente capturar as diferentes intensidades de iluminação utilizando 
um fotossensor monocromático, ou um sensor colorido que realiza a captura de 
três cores primárias que permitem a sua posterior reprodução. Na captura de 
uma imagem colorida a luz é dividida em seus componentes de cores vermelho, 
verde e azul, focalizados em sensores específicos para cada cor, convertendo-as em 
sinais elétricos separados. Além desta forma, existem outros métodos de captura e 
padrões de vídeo analógico (WILLRICH, 2002).
Para utilização em sistemas multimídia, o sinal analógico de vídeo é 
convertido para o formato digital. O formato digital facilita o processamento, 
armazenamento e transmissão do vídeo. No momento em que o mesmo deve ser 
apresentado é necessário que seja novamente convertido para o formato analógico.
Num sistema de vídeo analógico a imagem precisa ser capturada na 
quantidade de tempo em que se deseja apresentá-la; além disso, há a necessidade 
de todos os componentes (câmera, transmissor, receptor e monitor) operarem 
de forma sincronizada. Num sistema digital a imagem é armazenada, podendo 
ser apresentada de forma independente do tempo de captura. Além disso, os 
componentes são independentes, podendo operar em diferentes velocidades, 
dependendo da capacidade de processamento, largura de banda para transmissão, 
quantidade de quadros eventualmente perdidos etc. 
FIGURA 87 – EPRESENTAÇÃO DE Tristimulus 
FONTE: SC (2011)
A captura de imagens do mundo real é realizada através de dispositivos 
fotossensíveis que convertem a imagem em sinais elétricos.
UNI
TÓPICO 4 | INTELIGÊNCIA COMPUTACIONAL
133
É certo que a capacidade do canal de comunicação (quantidade de dados 
que pode ser transmitida por segundo) representa uma das principais restrições do 
sistema digital, principalmente em se tratando de vídeo, cuja quantidade de dados 
é relativamente maior pelo fato dos requisitos temporais associados à reprodução 
de movimentos e sons. Isso implica no fato da necessidade de disponibilidade 
de uma largura de banda bastante grande para a transmissão de tais dados. Para 
resolver esta situação e permitir que vídeos sejam transmitidos e apresentados 
em sistemas com largura de banda bastante restrita é necessário utilizar recursos 
tecnológicos que permitam tal execução. O recurso viável do ponto de vista 
tecnológico e econômico é a compressão de vídeo.
Boa parte dos dispositivos de reprodução de imagens utilizados na 
atualidade é composta por monitores CRT (Cathode Ray Tube). Estes monitores 
podem reproduzir as imagens de forma monocromática ou em cores. Na forma 
monocromática eles possuem uma camada de fósforo fluorescente a qual é varrida 
por um feixe de elétrons. No momento em que este feixe de elétrons atinge o 
fósforo, ele emite luz momentaneamente e a intensidade da luz emitida depende 
da força do feixe. Na forma em cores, são baseados na teoria Tristimulus. Nestes 
monitores há três tipos de fósforos fluorescentes que emitem luzes nas respectivas 
cores quando atingidos pelos feixes de elétrons, produzindo um ponto de cor 
(WILLRICH, 2002).
9 MÍDIAS COM BASE EM IMAGEM
As mídias com base em imagem são largamente utilizadas atualmente. A 
utilização de elementos visuais em substituição a um grande volume de textos 
torna a comunicação mais rápida e atrativa. Na internet e em outras aplicações 
a utilização de imagens é cada vez mais explorada, como forma de facilitar a 
atividade dos usuários.
9.1 IMAGENS ESTÁTICAS
Tipicamente, uma imagem estática pode ser representada através de uma 
estrutura denominada mapa de bits. Um mapa de bits é uma matriz de pontos 
que representam o menor elemento de resolução de uma imagem. A denominação 
utilizada para estes pontos de cores é pixel.
O conceito Tristimulus define que qualquer cor, utilizando luz, pode ser reproduzida 
pela combinação de vermelho, verde e azul.
UNI
134
UNIDADE 2 | CONCEITOS FUNDAMENTAIS DA COMPUTAÇÃO
Numa imagem, a resolução horizontal é dada pela quantidade de linhas de 
pixels e a resolução vertical é dada pela quantidade de colunas de pixels. A resolução 
espacial é dada pelo produto das resoluções horizontal e vertical. A resolução 
espacial permite estabelecer a frequência de amostragem final da imagem. Esta 
resolução, porém, não é suficiente para a obtenção da resolução real da imagem, 
pois esta é dependente do tamanho do dispositivo físico de apresentação. 
Uma forma melhor de medir a resolução de uma imagem é através da 
utilização da densidade de resolução da imagem. Esta densidade se refere à 
quantidade de pixels concentrados em uma polegada. Esta medida é denominada 
dpi (dot per inch - pontos por polegada). Neste contexto, o formato bitmap (mapa de 
bits) é um formato que ocupa bastante espaço de armazenamento, pois cada ponto 
utiliza a mesma quantidade de dados para representação de cores, independente 
do que está sendo representado. A figura a seguir representa a configuração de 
uma imagem bitmap.
FIGURA 88 – CONFIGURAÇÃO DE IMAGEM bitmap
FONTE: CASACURTA (1998)
A resolução espacial de uma imagem é dada pelo produto das resoluções 
horizontal e vertical.
UNI
TÓPICO 4 | INTELIGÊNCIA COMPUTACIONAL
135
Esse tipo de formato não considera a semântica do conteúdo armazenado, 
ou seja, se o ponto de imagem que está sendo representado é uma parte de uma 
imagem do mar, da praia ou de uma árvore, o espaço ocupado será sempre o 
mesmo, independente de conteúdo ecor. Isso significa que duas imagens diferentes 
com a mesma dimensão ocuparão exatamente o mesmo espaço de armazenamento, 
independente do conteúdo representado. Formatos que consideram a semântica 
do conteúdo, como é o caso de gráficos, ocupam diferentes quantidades de espaço 
de armazenamento, dependendo do conteúdo representado.
9.2 IMAGENS DINÂMICAS
Um dos tipos de imagem dinâmica mais conhecida é o vídeo. Dentre 
os formatos de vídeo analógicos estão o padrão americano denominado NTSC 
(National Television System Committee), que utiliza as iniciais do nome do instituto 
que o padronizou. Na Franca e Europa Ocidental foi criado o SECAM (Sequentiel 
Couleur Avec Memoire) e o padrão PAL (Phase Alternating Line), utilizado no restante 
da Europa. Pode-se citar ainda o padrão HDTV (High Definition TeleVision), o qual 
permite a produção de imagens mais nítidas por aumentar consideravelmente o 
número de linhas de varredura (TANENBAUM, 1997). 
Outro tipo de imagem dinâmica é a animação. Numa animação, cada 
imagem ou gráfico é denominado quadro (frame). O conjunto de quadros que 
formam uma animação deve ser apresentado na sequência adequada e a uma 
taxa relativamente fixa para que a animação seja compreensível pela pessoa que 
o esteja assistindo. No caso de animações e vídeos, a frequência de quadros se 
refere à quantidade de quadros apresentados por segundo ou fps (frames per 
second). Existem três fatores a serem considerados na determinação da taxa de 
quadros de uma animação: reproduzir a sensação de movimento, capacidade do 
canal de comunicação necessária para transmissão e frequência de atualização na 
apresentação (WILLRICH, 2002). 
A palavra vídeo é originária do latim, cujo significado é “eu vejo”. Um vídeo é 
definido pela representação de imagens em movimento. A representação de imagens em 
movimento pode ter a origem a partir da captura do mundo real ou produzida através de 
uma animação composta por uma sucessão de imagens, que combinadas em sequência e 
velocidade, representem movimento.
UNI
136
UNIDADE 2 | CONCEITOS FUNDAMENTAIS DA COMPUTAÇÃO
Para reproduzir a sensação de movimento é necessário que a taxa de quadros 
seja alta o suficiente para que não sejam percebidas as trocas de quadros. Se a taxa 
de quadros for inferior a 10 quadros por segundo ou 10 fps, será percebida uma 
apresentação de imagens sucessivas. Uma taxa de quadros entre 10 e 16 fps causa 
a impressão de existência de movimentos, embora com a sensação de arrancos. 
Apenas acima de 16 fps é que o efeito de movimento passa a ser percebido de 
forma mais natural. As imagens de cinema, por exemplo, têm uma taxa de quadros 
de 24 fps (WILLRICH, 2002).
Uma particularidade que também deve ser considerada nas imagens de 
cinema é que a taxa de quadros de 24 fps é suficiente para proporcionar o efeito de 
continuidade das imagens, mas insuficiente para resolver o problema da variação 
da intensidade de luminosidade, percebida pelo olho humano como a cintilação da 
iluminação. A cintilação da iluminação deixa de ser percebida pelo olho humano a 
partir de uma taxa de 48 fps. A solução dada é reproduzir cada quadro duas vezes, 
obtendo uma frequência de cintilação de 48 fps com uma frequência de amostragem 
de 24 fps. O quadro a seguir apresenta algumas das frequências de quadros utilizadas.
QUADRO 4 – FREQUÊNCIAS DE QUADROS
Quadros por segundo Descrição
< 10 Apresentação sucessiva de imagens
10 à 16 Impressão de movimentos, mas com sensação de arrancos
> 16 Início do efeito de movimento
24 Cinema
25 Padrão de TV europeia
30 Padrão de TV americana
60 Padrão HDTV
FONTE: Willrich (2002)
A capacidade do canal de comunicação necessária para a transmissão de 
animações e vídeos é proporcional à taxa de quadros que se deseja ou que sejam 
necessários apresentar. Quanto maior a taxa de quadros, mais alta deverá ser a 
capacidade do canal de comunicação necessária para a transmissão do conteúdo. 
Isso implica no fato da capacidade do canal de comunicação disponível limitar a 
taxa de frequência de quadros que podem ser apresentados. 
Na determinação da taxa de quadros de uma animação deve-se considerar a 
necessidade de reproduzir a sensação de movimento, a capacidade do canal de comunicação 
necessária para transmissão e frequência de atualização necessária na apresentação.
UNI
TÓPICO 4 | INTELIGÊNCIA COMPUTACIONAL
137
Uma técnica utilizada para minimizar a necessidade de capacidade do canal 
de comunicação para a transmissão de quadros de vídeos é a de vídeos entrelaçados, 
permitindo reduzir pela metade a quantidade de quadros a serem transmitidos. Na 
técnica de vídeo entrelaçado as linhas pares e ímpares são transmitidas de forma 
intercalada e separadamente (TANENBAUM, 1997). 
Quando um quadro é apresentado usando a técnica de vídeo entrelaçado, 
primeiro são apresentadas todas as linhas ímpares e depois todas as linhas pares. 
Cada conjunto de linhas pares e ímpares é denominado campo. A técnica de vídeo 
entrelaçado permite reduzir a percepção de tremulação da imagem, utilizando 
taxas de quadro menores que os necessários em vídeos progressivos, ou não-
entrelaçados (TANENBAUM, 1997).
Uma animação de imagem, geralmente, é originada a partir da captura 
de imagens do mundo real por algum dispositivo que armazena as cenas em 
um conjunto de quadros sucessivos que podem estar comprimidos ou não. 
As características de uma animação de imagem são bastante similares às 
características das imagens estáticas, pois não possuem uma descrição semântica 
e, em consequência disso, requerem um grande espaço de armazenamento. 
Outra categoria de imagem dinâmica são os gráficos animados, os quais são 
obtidos a partir da apresentação sucessiva de objetos a uma frequência que permita 
ao usuário ter a sensação de movimento. Os gráficos animados requerem uma 
capacidade do canal de comunicação relativamente menor que uma animação de 
imagem, pois são compostas por um conjunto de objetos com atributos temporais. 
Neste caso, reduz-se a necessidade de capacidade do canal de comunicação e 
aumenta-se a necessidade de poder de processamento no equipamento no qual os 
gráficos animados estão sendo apresentados.
FIGURA 89 – IMAGEM DE GRÁFICO ANIMADO
FONTE: O autor 
Para que o efeito de tremor do conteúdo apresentado seja evitado é necessária 
uma frequência de atualização de 50 Hz.
UNI
138
UNIDADE 2 | CONCEITOS FUNDAMENTAIS DA COMPUTAÇÃO
A grande característica de um gráfico animado é o fato de grande parte da 
imagem permanecer estática e apenas algumas partes dela sofrerem mudanças 
temporais, sugerindo movimento desses elementos.
Existem também os vídeos híbridos, que fazem uso de técnicas avançadas 
de tratamento que incluem, inclusive, a técnica de reconhecimento de padrões. Os 
vídeos híbridos são assim denominados pelo fato de combinarem formas híbridas 
como animações gráficas e vídeos capturados. Tal combinação de animações 
gráficas com vídeos capturados é realizada através de softwares, os quais requerem 
equipamentos com grande capacidade de processamento.
9.3 COMPRESSÃO DE DADOS
Levando em consideração uma série de fatores relacionados ao volume de 
dados envolvidos em sistemas multimídia, a questão da capacidade de transmissão 
se torna importante. Utilizando meios de transmissão com capacidade do canal de 
comunicação limitada e, mesmo assim, querendo ou precisando trafegar dados 
multimídia, há necessidade de fazer uso de recursos que permitam a transmissão 
de tais dados. 
É notório que a transmissão de dados multimídia no formato original 
através de redes com baixa velocidade seria impraticável ou inaceitável pelos 
usuários. Imagine acessar um vídeo na internet e ter que esperar um tempão pela 
transmissão para poder assisti-lo. Da mesma forma, imagine querer comprar um 
CD de músicas pela internet e levar horas parapoder ouvir uma pequena parte de 
cada música para poder decidir pela compra, ou não.
A solução encontrada para viabilizar a transmissão de dados multimídia 
através de redes de computadores foi a compressão de dados. Os sistemas de 
compressão de dados utilizam um algoritmo para compressão dos dados e outro 
algoritmo para a descompressão. O algoritmo de compressão é tecnicamente 
conhecido como algoritmo de codificação e o algoritmo de descompressão como 
algoritmo de decodificação (TANENBAUM, 1997). 
Com relação aos algoritmos de codificação e decodificação é importante 
observarmos que, na maioria das aplicações, um documento multimídia é codificado 
apenas uma vez e decodificado inúmeras vezes. Isso significa que um conjunto de 
A principal solução utilizada para viabilizar a transmissão de dados multimídia 
através de redes de uso geral é a compressão de dados.
UNI
TÓPICO 4 | INTELIGÊNCIA COMPUTACIONAL
139
dados multimídia pode ser codificado apenas uma vez e disponibilizado para ser 
reproduzido, e consequentemente decodificado, diversas vezes. Levando este fator 
em consideração, é aceitável a utilização de mais recursos e tempo para realizar a 
codificação, desde que a decodificação se torne mais rápida e não requeira muitos 
recursos (TANENBAUM, 1997).
Quando consideramos a multimídia em tempo real, tanto a codificação quanto 
a decodificação deverão ser rápidas. É importante que se esclareça que o termo tempo 
real se refere ao limite de tempo de resposta da aplicação que está sendo executada. 
Utilizando um vídeo como exemplo, pode-se dizer que o limite é o tempo máximo 
entre a troca de quadros que não cause a perda da sensação de continuidade das 
cenas. Neste processo podem ser considerados os sistemas de codificação com perda 
e sem perda. Os sistemas com perda são aqueles cujo conteúdo decodificado não é 
exatamente igual ao conteúdo originalmente codificado. Já nos sistemas sem perda o 
conteúdo decodificado é extamente igual ao conteúdo original antes da codificação. 
A aplicação e o ambiente é que serão fatores para a decisão do sistema a ser utilizado.
As estratégias de codificação e decodificação podem ser categorizadas 
em codificação por entropia e codificação na origem. A estratégia de codificação 
por entropia não leva em conta o significado do conteúdo codificado, mas não 
causa perda, sendo o conteúdo totalmente reversível ao estado original, anterior à 
codificação. Na estratégia de codificação na origem é considerado o significado dos 
dados e utilizadas tais propriedades para obter melhores resultados em termos de 
compressão, em geral, sem perda (TANENBAUM, 1997). 
Um dos esquemas de codificação por entropia mais simples de entender é 
denominado de run-length. Este tipo de estratégia leva em consideração a existência 
de sequências de bytes repetidos, substituindo-os por um marcador seguido de um 
valor que representa a quantidade de repetições. 
Na estratégia de codificação na origem, vamos exemplificar com o esquema 
denominado codificação diferencial, cujo método representa o símbolo seguinte 
através de sua diferença em relação ao anterior. Neste tipo de codificação deve ser 
levada em consideração a possibilidade de perdas de informações em situações em 
que a diferença entre um ponto e outro é superior à capacidade de representação 
da cadeia de bits destinada ao armazenamento do valor da diferença.
9.4 IMAGENS NA INTERNET
Para a utilização de multimídia na internet é necessário que os formatos 
utilizados levem em consideração que a velocidade de acesso à internet por parte 
de uma pessoa para outra pode mudar bastante em função da tecnologia de 
acesso utilizada. Este acesso pode ser por 3G (celular), conexão discada, ADSL, 
entre outras. Para tanto, vamos conhecer um pouco sobre os principais formatos 
utilizados na internet, o JPEG e o MPEG.
140
UNIDADE 2 | CONCEITOS FUNDAMENTAIS DA COMPUTAÇÃO
O JPEG (Joint Photographic Experts Group) é um formato de compressão de 
imagens estáticas e de tom contínuo. Este formato foi desenvolvido principalmente 
por especialistas em fotografia. O esquema de compressão utilizado pelo formato 
JPEG leva em consideração a luminância e a cromância da imagem. No processo de 
compressão ocorrem perdas, mas estas são pouco perceptíveis pelo olho humano, 
pelo fato deste perceber mais as variações de luminância do que de cromância 
(TANENBAUM, 1997). 
O formato JPEG permite obter uma taxa média de compressão de 20:1. Por 
este fato, é um formato largamente utilizado, principalmente em aplicações onde 
a limitação do volume de armazenamento ou transmissão é um fator importante. 
No formato JPEG, o tempo de codificação e de decodificação é praticamente o 
mesmo (TANENBAUM, 1997).
O MPEG (Motion Picture Experts Group) é um formato de compressão de 
vídeos. Isso significa que o formato MPEG não comprime apenas as imagens, mas 
também os sons existentes em um vídeo. A codificação de áudio e vídeo é realizada 
de maneira independente, sendo sincronizados no momento da decodificação 
(TANENBAUM, 1997). 
Na compressão de vídeo do formato MPEG são consideradas a redundância 
espacial e temporal. A redundância espacial se refere à questão de que cada quadro 
pode ser codificado utilizando as estratégias do JPEG. Já a redundância temporal 
se refere à questão da quantidade de tempo em que determinado conteúdo é 
apresentado. Além do MPEG se valer das técnicas do JPEG para a compressão das 
imagens, também é explorada a sobreposição de sons para a compressão de áudio 
(TANENBAUM, 1997). 
10 MÍDIAS COM BASE EM ÁUDIO
As mídias com base em áudio, da mesma forma como as baseadas em 
imagem, estão sendo cada vez mais utilizadas. A utilização de aplicações multimídia 
que tenham puramente áudio ou áudio combinado com outras mídias é cada vez 
maior. Na internet é possível baixar músicas para reproduzir em computador ou 
em pequenos dispositivos portáteis com capacidade limitada de armazenamento.
O formatro JPEG é largamente utilizado para apresentação de imagens na internet.
UNI
TÓPICO 4 | INTELIGÊNCIA COMPUTACIONAL
141
10.1 ÁUDIO
Da mesma forma como as imagens, o som é um elemento percebido pelos 
sentidos humanos de forma contínua, ou seja, através de ondas. Estas ondas são 
formadas por um período, uma amplitude e uma frequência. O período é o tempo 
transcorrido para a realização de um ciclo da onda. A frequência é a medida da 
quantidade de períodos ocorridos em uma unidade de tempo, tipicamente medida 
em Hertz (Hz) ou ciclos por segundo (cps). 
O áudio é percebido pelo ouvido humano através da pressão de ar exercida 
no aparelho auditivo. O aparelho auditivo percebe a pressão de ar exercida na 
faixa de frequência de 20 Hz a 20 KHz como elementos audíveis. Além da 
frequência, o som pode ser medido através da amplitude, cuja unidade de medida 
utilizada é decibéis (dB). O som é uma onda contínua em frequência e amplitude 
(TANENBAUM, 1997). 
A fala é uma das principais formas de comunicação utilizadas pelas pessoas. 
Para que haja comunicação é necessário que haja um emissor, uma mensagem e 
um receptor. Emissor e receptor, neste caso, tipicamente, são seres humanos, e para 
que a mensagem possa ser compreendida pelo receptor é necessário que ela tenha 
semântica, ou seja, significado. O significado não está simplesmente relacionado 
ao conteúdo falado, mas também ao tom de voz utilizado, na velocidade em que 
as palavras são ditas e até mesmo no tempo de pausa entre uma palavra e outra.
 
Todos estes elementos estão relacionados com a semântica da comunicação. 
É importante a preocupação com a questão da semântica, pois na transmissão da 
voz estes elementos devem ser considerados para permitir uma comunicação 
adequada. Para tanto é importante saber que a faixa de frequência da voz está 
entre 50 Hz e 10 KHz, com isso pode-se calcular a capacidadedo canal necessária 
para a transmissão da mesma (WILLRICH, 2002). 
A sensibilidade do ouvido humano permite perceber variações de sons com 
tempo de duração de apenas alguns milésimos de segundo. Já a visão não percebe a 
variação de luminosidade, que leva apenas alguns milissegundos. Esta observação 
do funcionamento dos sentidos humanos é importante para o entendimento de 
que um ruído numa transmissão de dados multimídia envolvendo som e imagem 
será melhor percebido pela audição do que pela visão (TANENBAUM, 1997).
10.2 ÁUDIO NA MULTIMÍDIA
Para que o áudio seja utilizado por um sistema multimídia é necessário que 
o mesmo seja convertido de analógico para digital. Uma das formas de captura de 
áudio do mundo real é através de microfones. Um microfone captura a onda de 
áudio e a converte em um sinal elétrico contínuo, que geralmente é medido em 
Volts. Este sinal elétrico é então convertido para o formato digital através de um 
dispositivo denominado de conversor analógico-digital (WILLRICH, 2002). 
142
UNIDADE 2 | CONCEITOS FUNDAMENTAIS DA COMPUTAÇÃO
Os dados do áudio convertidos para o formato digital devem ser amostrados 
de forma contínua e em uma taxa fixa para que possam ser futuramente reconvertidos 
para o formato analógico e compreendidos conforme os dados originais. Para que 
o áudio possa ser novamente apresentado de forma compreensível, é necessário 
que o mesmo seja novamente convertido para o formato analógico. O quadro a 
seguir apresenta as taxas de amostragem de algumas aplicações de áudio.
QUADRO 5 – TAXAS DE AMOSTRAGEM DE ÁUDIO
Aplicação Número 
de canais
Taxa de 
amostragem
Bits por 
amostragem
Taxa de bits
CD-Áudio 2 44.1 KHz 16 1,41 Mbps
DAT 2 48 KHz 16 1,53 Mbps
Telefone digital 1 8 KHz 8 64 Kbps
Rádio digital, long play DAT 2 32 KHz 16 1,02 Mbps
FONTE: Willrich (2002)
Esta transformação requer que os dados sejam transformados em uma 
forma de onda que seja percebida pelo aparelho auditivo. A conversão de tais 
dados é feita por um dispositivo denominado conversor digital-analógico, os 
quais transformam os dados digitais em uma onda física reproduzida tipicamente 
por alto-falantes.
O áudio é uma mídia contínua e geralmente caracterizado por uma 
determinada taxa mínima de dados que deve ser transmitida numa unidade de 
tempo para que não haja perda na semântica da informação. A taxa de transmissão 
de áudio é calculada com base na taxa de amostragem e no volume de dados 
utilizados por amostragem. O resultado deste cálculo da taxa de amostragem e do 
volume de dados utilizados por amostragem determina a taxa de dados que deve 
ser suportada pelo canal de comunicação. 
Os dados de áudio são capturados em formato analógico, convertidos para o 
formato digital e novamente reconvertidos no momento da apresentação.
UNI
TÓPICO 4 | INTELIGÊNCIA COMPUTACIONAL
143
10.3 ÁUDIO NA INTERNET
Da mesma forma como a utilização de imagens na internet requer formatos 
que levem em consideração as diferentes velocidades de acesso que podem estar 
sendo utilizadas, também a utilização de áudio deve considerar estas restrições. 
Neste caso o formato mais utilizado é o MP3.
O MP3 é um formato de compressão de áudio para ser utilizado em 
computadores pessoais. O objetivo do MP3 é permitir a codificação de áudio com 
qualidade, utilizando o mínimo possível de espaço para armazenamento, ou seja, 
com uma taxa de compressão considerável. O objetivo é realizar a compressão de 
sons que estejam dentro da faixa audível até 20 KHz. 
O MP3 ou MPEG-1 Áudio pode suportar um ou dois canais de áudio, 
podendo ser um único, dois independentes ou um sinal estéreo. O processamento do 
sinal estéreo pode ser realizado de forma independente ou em conjunto, explorando a 
redundância estéreo. O formato MP3 é resultante do esforço conjunto do IIS (Institut 
Integrierte Schaltungen) da Alemanha e da Universidade de Erlangen em um projeto 
de codificação perceptual de áudio para transmissão digital. 
O padrão MPEG-2 Áudio pode realizar a codificação multicanal com cinco 
canais. Os canais utilizados pelo padrão MPEG-2 Áudio são dois canais surround, o 
canal esquerdo, direito e central. O MPEG-2 Áudio também estende a estratégia de 
codificação mono e estéreo do MPEG-1 Áudio com taxas de amostragem adicionais.
O padrão MPEG Áudio possui três estratégias de codificação de áudio 
denominadas de Layer-1, Layer-2 e Layer-3. Destas estratégias de codificação 
a mais popular é o MPEG 1 Layer-3, que é conhecido como MP3. A principal 
característica e vantagem do MP3 e que fez com que o formato se tornasse tão 
popular é a capacidade de compressão. 
O formato MP3 permite a codificação de músicas com qualidade, utilizando o 
mínimo necessário de espaço para armazenamento.
UNI
144
UNIDADE 2 | CONCEITOS FUNDAMENTAIS DA COMPUTAÇÃO
Pelo fato dos arquivos de áudio MP3 necessitarem de menos espaço de 
armazenamento, eles também podem ser transmitidos mais facilmente através 
de redes de uso comum e, consequentemente, podem ser mais facilmente 
compartilhados.
O MP3, na realidade, é um método de compressão de áudio que consiste 
em utilizar somente as frequências sonoras que são captadas pelo ouvido humano. 
Isso significa que as demais frequências são descartadas e consequentemente não 
ocupam espaço para armazenamento (WILLRICH, 2002). 
As tecnologias estudadas nesta unidade permitem a você obter uma visão 
dos recursos proporcionados em favor das comunicações, independente da mídia. 
Estes recursos são ferramentas poderosas na sua prática diária.
A leitura complementar desta unidade do Caderno de Estudos é um texto 
do livro de Frederick Phillips Brooks Jr. que trata da questão da quantidade de 
pessoas envolvidas em um processo de desenvolvimento de software, ou seja, o 
mítico homem-mês. Esta é uma questão que não pode simplemente ser ignorada 
no momento do estabelecimento de um cronograma de trabalho e o texto de Brooks 
esclarece esta importância de maneira bastante clara. Boa leitura!
LEITURA COMPLEMENTAR
O mítico homem-mês
Em sua maioria, projetos de software falharam mais por falta de tempo no 
calendário do que em função da combinação de todas as outras causas. Por que 
isso é tão comum?
Em primeiro lugar, porque nossas técnicas para estimativa são muito 
pouco desenvolvidas. Na verdade, elas refletem uma premissa não verbalizada e 
completamente falsa, que é a de que tudo correrá bem.
Em segundo lugar, porque nossas técnicas de estimativa falaciosamente 
confundem esforço com progresso, escondendo a premissa de que homens e meses 
são intercambiáveis.
Em terceiro lugar, porque não temos certeza das nossas estimativas. Aos 
gerentes de software costuma faltar a insistência cordial do chef do restaurante 
Antoine.
Em quarto lugar, porque o cronograma de progresso é monitorado de 
forma precária. Técnicas comprovadas, que são rotina em outras disciplinas de 
engenharia, são consideradas inovações radicais em engenharia de software.
TÓPICO 4 | INTELIGÊNCIA COMPUTACIONAL
145
Em quinto lugar, porque, quando se admite um atraso no cronograma, a 
resposta natural (e tradicional) é a edição de mais força de trabalho. Assim como 
combater um incêndio com gasolina, essa resposta torna a situação pior, muito 
pior. Mais fogo requer mais gasolina e, assim, inicia-se um ciclo degenerativo que 
termina em um desastre.
O monitoramento do cronograma será assunto de ensaio à parte. Vamos 
considerar outros aspectos do problema, com mais detalhes.
Otimismo
Todos os programadores são otimistas. Talvez essa feitiçaria moderna 
atraia, especialmente, aqueles que acreditam em finais felizes e fadas madrinhas. 
Talvez as centenas de pequenas frustrações afastem todos, menos aqueles que se 
focam, habitualmente, no objetivo final. Talvez otimismo seja meramente porque 
os computadores são jovens, os programadoresmais jovens ainda e os jovens 
sempre são otimistas. Mas, independentemente da forma pela qual funciona o 
processo seletivo, o resultado é inegável: “Desta vez, com certeza, vai funcionar”, 
ou “Acabo de encontrar o último erro”.
Assim, a primeira falsa premissa inerente à confecção do cronograma de 
programação de um sistema é a de que tudo irá bem, isto é, que cada tarefa tomará 
apenas o tempo que “deve” tomar.
A disseminação do otimismo entre programadores merece mais do que 
uma rápida análise. Dorothy Sayers, em seu excelente livro The Mind of the Maker 
(A metade do criador), divide a atividade criativa em três estágios: a ideia, a 
implementação e a interação. Assim, um livro, um computador ou um programa 
passam a existir primeiro com um construto ideal, feito do tempo e do espaço, mas 
completa a mente do autor. Depois tornam-se reais no tempo e no espaço, com 
caneta, tinta e papel, ou com fios, silício e ferrite. A criação está concluída quando 
alguém lê o livro, usa o computador ou executa o programa, interagindo dessa 
forma com a mente do criador.
A descrição que a senhoria Sayers utiliza para esclarecer não apenas a 
criatividade humana, mas doutrina cristã da Santíssima Trindade, nos ajudará 
em nossa tarefa presente. Como criadores humanos de coisas, a incompletude e 
inconsistência de nossas ideias tornam-se claras apenas durante sua implementação. 
Assim, a escrita, a experiência e o exercício são disciplinas essenciais ao teórico.
Em muitas atividades criativas, o meio de execução é intratável. A madeira 
racha, a tinta corre, e os circuitos elétricos dão choque. Essas limitações físicas do 
meio cerceiam ideias que poderiam ser expressas e também criam dificuldades 
inesperadas em sua implementação.
A implementação, então, consome tempo e suor, tanto em função do meio 
físico como da inadequação das ideias que o utilizam. Temos a tendência de culpar o 
146
UNIDADE 2 | CONCEITOS FUNDAMENTAIS DA COMPUTAÇÃO
meio físico pela maioria das dificuldades de implementação, pois o meio não é “nosso” 
da mesma maneira que as ideias o são, e nosso orgulho colore nossos julgamentos.
A programação de computadores, ao contrário, dá-se em um meio 
excepcionalmente tratável. O programador constrói a partir do pensamento puro, 
com conceitos e representações extremamente flexíveis. Como o meio é tratável, 
esperamos poucas dificuldades de implementação, daí esse otimismo dominante.
Mas como nossas ideias têm falhas, nós temos problemas. Por isso, tanto 
otimismo não se justifica.
Em uma única tarefa, a premissa de que tudo correrá bem tem um 
efeito probabilístico com programa. Pode até acontecer que ela dê conforme o 
planejado, já que existe a probabilidade de atrasos que serão solucionados, sendo 
que ‘nenhum atraso” tem também uma probabilidade finita. Um grande esforço 
de programação, porém, consiste em muitas tarefas, algumas encadeadas em 
dependências de outras. A probabilidade de que tudo vá bem torna-se mínima.
O Homem-Mês 
A segunda falácia se manifesta na própria unidade de esforço usada em 
estimativas e cronogramas: o homem-mês. O custo, de fato, varia como o produto 
de números de pessoas envolvidas e da qualidade de meses. O processo não. Dessa 
forma, o uso do homem-mês como unidade para medir o tamanho de trabalho é 
um mito perigoso e enganoso. Ele implica no fato de que homens e meses são 
intercambiáveis.
Homens e meses são intercambiáveis apenas quando uma tarefa pode ser 
dividida entre muitos trabalhadores que não se comuniquem entre si (figura 2.1). 
Isso é verdade quando se debulha trigo ou se colhe algodão, mas não é sequer 
aproximadamente real quando se trata de programação de sistemas.
FIGURA 2.1: Tempo versus número de trabalhadores em uma tarefa 
perfeitamente divisível
TÓPICO 4 | INTELIGÊNCIA COMPUTACIONAL
147
Quando uma tarefa não pode ser dividida em função de limitações 
sequenciais, a aplicação de mais esforço não tem efeito algum no cronograma 
(figura 2.2). Ter um filho leva nove meses, independentemente de quantas mulheres 
sejam responsáveis pela tarefa. Muitas tarefas de software têm essa característica 
em função da natureza sequencial de uma deputação (debugging).
FIGURA 2.2: Tempo versus número de trabalhadores em uma tarefa 
indivisível
Em tarefas que podem ser divididas, mas que necessitam de comunicação 
entre as subtarefas, o esforço de comunicação deve ser adicionado à qualidade de 
trabalho a ser realizado. Assim, o melhor que pode ser feito é algo mais ineficaz do 
que a troca parelha entre meses e homens (figura 2.3)
FIGURA 2.3: Tempo versus número de trabalhadores em uma tarefa 
divisível que requer comunicação
148
UNIDADE 2 | CONCEITOS FUNDAMENTAIS DA COMPUTAÇÃO
O peso adicional da comunicação é composto de duas partes: treinamento e 
intercomunicação. Cada trabalhador deve ser treinado de tecnologia, nos objetivos 
do trabalho, na estratégia geral e no planejamento de execução. Esse treinamento 
não pode ser dividido, assim, parte do esforço adicional varia linearmente com o 
número de trabalhadores.
A intercomunicação é um fator mais grave. Se cada porção da tarefa 
deve ser separadamente coordenada com demais, o esforço aumenta em n(n-
1)/2. Três trabalhadores requerem três vezes mais comunicação entre pares do 
que dois trabalhadores: quatro requerem seis vezes mais do que dois. Se, além 
disso, há necessidade de conferência entre três, quatro ou mais trabalhadores, 
para resolver questões em conjunto, a situação fica ainda pior. O esforço adicional 
de comunicação pode ir totalmente contra a divisão da tarefa original e levar à 
situação da figura 2.4.
Como a construção de software é, por natureza, um trabalho sistemático – 
um exercício em inter-relações complexas –, o esforço de comunicação é grande 
e rapidamente domina a diminuição do tempo de cada tarefa individual que foi 
estabelecido na sua divisão. A adição de mais homens, portanto, aumenta, e não 
diminui, o tempo no cronograma.
FIGURA 2.4: Tempo versus número de trabalhadores em uma tarefa com 
inter-relações complexas
FONTE: BROOKS, Frederick Phillips. O mítico homem-mês: ensaios sobre engenharia de 
software. Rio de Janeiro: Elsevier, 2009, p. 14 – 19.
149
RESUMO DO TÓPICO 4
Caro acadêmico, neste tópico você estudou que:
• As mídias capturadas são aquelas obtidas do mundo real, como uma foto de uma 
paisagem. Já uma mídia sintetizada é uma mídia artificial, ou seja, produzida 
através de dispositivos eletrônicos. Independente da mídia sintetizada ser 
artificial, ela pode reproduzir com grande grau de realismo elementos do mundo 
real.
• A resolução de uma imagem é dada pela quantidade de pontos existentes para 
formação da mesma. Quanto maior a quantidade de pontos de cores, maior será 
a resolução e, consequentemente, a sensação de perfeição da imagem. Caso a 
quantidade de pontos de cores for reduzida, a sensação de serrilhamento na 
imagem aumenta. 
• O meio utilizado para apresentação de elementos multimídia também deve 
ter capacidade para apresentação de pontos de cor compatível à necessidade 
do usuário. Quem trabalha com tratamento de imagens utilizando software 
como Photoshop ou Corel Draw deve ter capacidade de processamento e 
resolução de monitor compatível para obter bons resultados. Caso os recursos 
de processamento e apresentação sejam limitados, os resultados poderão ser 
prejudicados.
• A estratégia de apresentação de imagens denominada mapa de bits não 
considera a semântica do conteúdo, ou seja, cada ponto de cor ocupará a mesma 
quantidade de dados necessária para a representação. Já estratégias como o 
caso de gráficos consideram a semântica da imagem, logo, diferentes gráficos 
do mesmo tamanho com conteúdos diferentes ocuparão diferentes espaços de 
armazenamento.
• O áudio pode ser uma mídia capturada ou sintetizada, porém é uma mídiacontínua, pois requer a passagem do tempo para que o conteúdo faça sentido. O 
formato de áudio mais adequado para uso na internet atualmente é o MP3, pois 
utiliza a técnica de sobreposição para tornar pequena a quantidade de dados 
necessários na sua representação. O MP3 é um formato de áudio comprimido 
que leva em consideração a limitação da audição humana.
150
Caro acadêmico, como forma de fixar o conteúdo estudado, realize a 
autoatividade proposta a seguir:
1 Uma mídia capturada pode ser contínua? Explique e exemplifique.
2 Uma mídia sintetizada pode ser discreta? Explique e exemplifique.
3 Quais são as categorias em que são divididos os sistemas multimídia?
4 Qual o nome do fenômeno da sensação de continuidade das imagens em 
um vídeo?
5 Qual a principal solução utilizada para viabilizar a transmissão de dados 
mutimídia na internet?
AUTOATIVIDADE
151
UNIDADE 3
LÓGICA DE PROGRAMAÇÃO
OBJETIVOS DE APRENDIZAGEM
PLANO DE ESTUDOS
A partir desta unidade você será capaz de:
• compreender os fundamentos de lógica de programação;
• entender as estruturas de controle;
• compreender subalgoritmos e escopo de identificadores;
• conhecer os tipos estruturados.
Esta unidade está dividida em quatro tópicos, sendo que ao final de 
cada um deles você encontrará atividades que lhe auxiliarão na apropriação 
dos conhecimentos.
TÓPICO 1 – FUNDAMENTOS DE LÓGICA DE PROGRAMAÇÃO
TÓPICO 2 – ESTRUTURAS DE CONTROLE
TÓPICO 3 – SUBALGORITMOS E ESCOPO DE IDENTIFICADORES
TÓPICO 4 – TIPOS ESTRUTURADOS
152
153
TÓPICO 1
FUNDAMENTOS DE LÓGICA DE 
PROGRAMAÇÃO
UNIDADE 3
1 INTRODUÇÃO
O dia a dia de pessoas e instituições tem sido largamente facilitado pelo 
uso de softwares das mais variadas naturezas. Seu uso crescente requer que mais e 
melhores softwares sejam desenvolvidos para atender diversas áreas de aplicação.
O desenvolvimento de software, porém, ainda é uma tarefa árdua e requer 
profissionais altamente qualificados para sua execução. A maturidade lógica do 
profissional de programação é um elemento essencial para o sucesso do software 
que será construído por ele. 
Estes profissionais devem ter em mente que grande parte do sucesso 
de um software depende de uma definição clara das regras de negócio a serem 
implementadas no mesmo. Deve-se desenvolver estas regras de negócio visando 
alto desempenho e eficiência nos resultados obtidos.
Embora seja altamente sistemático, o desenvolvimento de software não 
deve ser encarado como uma atividade puramente técnica. O profissional de 
desenvolvimento deve levar em consideração o fato de que geralmente softwares 
são criados para o atendimento de necessidades de pessoas. Quem pontua a 
qualidade do software são as pessoas que os utilizam. 
Tão importante quanto o bom desempenho e eficiência é o atendimento das 
necessidades dos usuários. Neste sentido, os fatores ergonômicos são relevantes e 
também devem ser considerados.
UNIDADE 3 | LÓGICA DE PROGRAMAÇÃO
154
2 FUNDAMENTOS DE LÓGICA DE PROGRAMAÇÃO
Objetivando tornar o uso do conteúdo do Caderno de Estudos o mais claro 
e produtivo possível, neste tópico são descritos alguns conceitos que auxiliarão no 
aprendizado e entendimento do conteúdo dos demais tópicos.
Software
Software é a denominação genérica que pode ser aplicada a um conjunto 
de dados e elementos lógicos necessários para execução de tarefas utilizando 
computadores. Pode-se dizer também que um software é uma unidade de controle 
programado que utiliza instruções na sua composição.
Os softwares são classificados em quatro categorias. Estas categorias são 
sistemas operacionais, utilitários, aplicativos e linguagens de programação.
Os sistemas operacionais controlam o funcionamento do equipamento e 
sua interação com os demais softwares. Os utilitários têm por finalidade a execução 
de tarefas específicas, tipicamente em auxílio a funções do Sistema Operacional ou 
atividades acessórias que não sejam de competência dos Sistemas Operacionais 
nem dos softwares aplicativos. Aplicativos são softwares para auxiliar os usuários 
em suas atividades diárias, como, por exemplo, sistemas administrativos, 
contábeis e ferramentas de escitório. Linguagens de Programação permitem o 
desenvolvimento de novos softwares.
Programa
Programa é uma unidade de software destinada à execução de determinada 
tarefa. Geralmente atribui-se esta denominação a uma unidade de software que 
tenha um conjunto reduzido de funcionalidades.
Sistema
Para fins computacionais, sistema pode ser definido como um conjunto 
inter-relacionado de programas. Um sistema geralmente permite a execução 
de um número maior de funcionalidades. Estas funcionalidades podem estar 
organizadas em programas diferentes. Um exemplo é o sistema operacional. Ele 
possui uma série de pequenos programas que auxiliam no seu funcionamento e na 
execução das tarefas.
Rotina
A rotina é uma pequena unidade dentro de um programa que geralmente 
executa uma tarefa bastante específica. Um exemplo pode ser a rotina de cálculo de 
média. Este trecho de programa é denominado rotina, pois executa uma tarefa específica 
e que sempre ocorre e é tratada da mesma maneira. Nas linguagens de programação 
as rotinas geralmente são implementadas na forma de funções ou procedimentos.
TÓPICO 1 | FUNDAMENTOS DE LÓGICA DE PROGRAMAÇÃO
155
Sub-rotina
A sub-rotina é um trecho bastante particular do software que geralmente 
auxilia uma rotina. Pode-se dizer que uma sub-rotina é o refinamento de uma 
rotina.
Nas linguagens de programação, tanto as rotinas quanto as sub-rotinas 
podem ser encontradas na forma de funções (function) ou procedimentos (procedure).
Comando
O comando é uma palavra ou símbolo que indica uma ordem para execução 
de uma ação. Os comandos são imperativos. Por exemplo: leia, escreva, escolha, 
entre outros.
Instrução
Instrução é uma das tarefas que devem ser executadas para a obtenção 
do resultado desejado através do software. Esta tarefa pode ser um cálculo, uma 
atribuição, uma chamada de sub-rotina, entre outras.
Linguagem de Programação
As linguagens de programação são softwares destinados ao desenvolvimento 
de novos softwares. É através delas que são escritos códigos de programação 
entendidos e executados pelos computadores.
Sintaxe
Sintaxe é a forma de organização das instruções para que seja obtido o 
resultado desejado, seguindo-se as regras da linguagem utilizada. É o conjunto 
de regras que indicam o formato de escrita das instruções. Considera também a 
sequência em que as instruções devem ser escritas para atender aos requisitos da 
linguagem utilizada, pois não basta apenas a escrita estar correta, é necessário que 
haja coerência na instrução. 
A sintaxe considera a escrita correta das instruções.
Exemplo(s):
Correta: “Vamos aprender algoritmos.”
Incorreta: “Aprende argoritmos vamo.”
Semântica
A Semântica refere-se ao significado das instruções, ou o que um conjunto 
de instruções quer informar. Na semântica, um conjunto de instruções deve ser 
escrito de forma que elas possam ser correta e coerentemente executadas. 
UNIDADE 3 | LÓGICA DE PROGRAMAÇÃO
156
A semântica considera o significado das instruções.
Exemplo(s):
Correta: “Diga a cor dos seus olhos.”
Incorreta: “Diga qual a cor sua idade.”
Teste de Mesa
O teste de mesa é uma técnica de validação de algoritmos que visa testar os 
resultados obtidos em relação ao objetivo para o qual o algoritmo foi construído.
O teste de mesa consiste na definição de um conjunto de dados de entrada 
e resultados esperados, após o processamento destes dados. Submissão destes 
dados às instruções do algoritmo e a obtenção do resultado deste processamento. 
Caso o resultado do teste de mesa seja o mesmo que o resultado esperado, há 
grande possibilidade do algoritmoestar correto. Num teste de mesa é fundamental 
validar todas as situações previstas no algoritmo.
Exemplo(s):
Neste algoritmo a variável Primeiro_Numero receberá 10 e a variável 
Segundo_Numero receberá 5, então espera-se que, ao final da execução, a variável 
Total tenha o valor 15.
1 Algoritmo Soma;
2 variáveis
3 Primeiro_Numero : inteiro;
4 Segundo_Numero : inteiro;
5 Total: inteiro;
6 início
7 escreva(’Informe o primeiro número: ’);
8 leia(Primeiro_Numero); { 10 }
9 escreva(’Informe o segundo número: ’);
10 leia(Segundo_Numero); { 5 }
11 Total ← Primeiro_Numero + Segundo_Numero;{10 + 5}
12 escreva(Total); { 15 }
13 fim.
Neste exemplo as linhas do algoritmo foram numeradas para que se possa 
fazer referência direta ao que ocorre nas mesmas. O teste de mesa deste algoritmo 
pode ser efetuado da seguinte forma: Na linha 7 é solicitado ao usuário uma entrada 
de um número e na linha 8 é obtido número solicitado. No exemplo, o número 
informado foi 10. As linhas 9 e 10 repetem o mesmo processo das linhas 7 e 8, mas 
neste caso o número informado foi 5. Na linha 11 é efetuada a soma dos dados 
TÓPICO 1 | FUNDAMENTOS DE LÓGICA DE PROGRAMAÇÃO
157
informados e que estão armazenados nas variáveis Primeiro_Numero e Segundo_
Numero. O resultado da soma dos conteúdos será atribuído à variável Total. Na 
linha 12 o conteúdo da variável total é apresentado ao usuário. Caso o resultado 
apresentado seja o resultado esperado (15), obteve-se sucesso no teste de mesa.
Dado
O dado é um elemento ou conjunto de elementos que não possuem 
significado completo. Por exemplo, se for informado para alguém simplesmente o 
dado 9, o receptor provavelmente não entenderá o significado do mesmo.
Informação
A informação é um conjunto de elementos que transmitem uma mensagem 
ao seu receptor. Pode-se dizer que a informação é o resultado da agregação de 
valor aos dados pela sua associação.
Utilizando o exemplo do dado fornecido no conceito anterior, acrescenta-
se mais um dado, a palavra “média”, ou seja: “média 9”. Neste caso aumentou a 
probabilidade do receptor destes dados entender o que se pretende transmitir com 
os mesmos. Acrescentando mais alguns dados tem-se: “A média da aluna Käthlyn 
na disciplina é 9”. Este conjunto de dados certamente transmite ao receptor uma 
mensagem que possui significado completo, ou seja, uma informação.
Comentário
O comentário é uma informação agregada ao algoritmo que informa 
ao programador algo importante e que deve ser considerado no momento de 
interpretar ou alterar o algoritmo.
É aconselhável que junto à declaração de variáveis e procedimentos sejam 
acrescentados comentários descrevendo seus significados e finalidades. Regras 
de negócios também podem ser descritas em comentários, facilitando futuras 
manutenções.
Nos algoritmos desenvolvidos neste livro serão utilizadas chaves { } para 
delimitar o início e fim de comentários.
Endentação
A endentação é o alinhamento das instruções de forma a simplificar a 
identificação da subordinação dos blocos de instruções. A endentação também é 
chamada de indentação ou identação na área de programação.
É altamente recomendável que os algoritmos, assim como os programas, 
sejam endentados, pois facilita o entendimento.
UNIDADE 3 | LÓGICA DE PROGRAMAÇÃO
158
Para a maioria das linguagens de programação a endentação não exerce 
influência. Nestes casos, quem é beneficiado pela endentação é a pessoa que 
precisa ler e entender o código escrito.
3 LÓGICA PARA PROGRAMAÇÃO
A lógica está presente no dia a dia das pessoas em diversas atividades. 
Utiliza-se lógica até mesmo para a realização das atividades consideradas mais 
elementares. Embora a palavra lógica remeta apenas às ciências exatas, ela também 
é utilizada em outras ciências.
O estudo de lógica para programação visa exercitar a organização do 
raciocínio para a descrição das etapas a serem seguidas na execução de uma 
determinada tarefa. 
Existem várias formas de desenvolver o raciocínio lógico. As mais comuns 
são o desenvolvimento de operações matemáticas e cálculos estatísticos. Os jogos 
de estratégia também são um meio interessante de exercitar o raciocínio.
Este tópico trata especificamente o exercício da organização do raciocínio 
objetivando o desenvolvimento de softwares. Assim como na realização de operações 
matemáticas, na construção de softwares é necessário seguir um conjunto de regras 
para a obtenção de resultados precisos e previsíveis.
Algoritmo
Algoritmo é um conjunto finito de instruções que devem ser executadas 
para a obtenção de um resultado desejado. Algoritmos podem ser representados 
de forma gráfica ou textual. Na forma gráfica geralmente utiliza-se o fluxograma 
ou o diagrama estruturado. Já na representação textual utiliza-se um conjunto 
padronizado de palavras para representar as instruções que podem ser facilmente 
entendidas e traduzidas para uma linguagem de programação.
Num algoritmo, os elementos fundamentais são as instruções e os dados 
manipulados.
Descrição Narrativa
A descrição narrativa é a representação escrita das instruções que devem 
ser executadas. Esta forma de representação de algoritmos também é conhecida 
como pseudocódigo ou metalinguagem.
Uma característica importante desta representação é permitir a definição 
clara dos dados envolvidos e o detalhamento de como eles deverão estar 
estruturados. 
TÓPICO 1 | FUNDAMENTOS DE LÓGICA DE PROGRAMAÇÃO
159
A descrição narrativa é uma técnica amplamente utilizada, pelo fato de 
facilitar a transcrição das instruções para uma linguagem de programação.
Exemplo(s):
Algoritmo que lê e soma dois números e escreve o total.
Algoritmo Calcula;
variáveis
 Primeiro_Numero: inteiro;
 Segundo_Numero: inteiro;
 Soma: inteiro;
início
 escreva(’Informe o primeiro número: ’);
 leia(Primeiro_Numero);
 escreva(’Informe o segundo número: ’);
 leia(Segundo_Numero);
 Soma ← Primeiro_Numero + Segundo_Numero;
 escreva(Soma);
fim.
Algoritmo que lê um número diferente de 10, verifica e escreve se é maior 
ou menor que 10.
Algoritmo Compara;
variáveis
 Numero : inteiro;
início
 escreva(’Informe um número: ’);
 leia(Numero);
 se (Numero < 10) então
 início se
 escreva(’O numero é menor.’);
 fim se
 senão
 início senão
 escreva(’O numero é maior.’);
 fim senão;
fim.
UNIDADE 3 | LÓGICA DE PROGRAMAÇÃO
160
Algoritmo que executa dez vezes e em cada vez escreve o número da 
execução.
Algoritmo Looping;
variáveis
 Quantidade : inteiro;
início
 Quantidade ← 1;
 enquanto (Quantidade <= 10) faça 
 início enquanto
 escreva(Quantidade, ’ª vez.’);
 Quantidade ← Quantidade + 1;
 fim enquanto;
fim.
Estrutura Básica de um Algoritmo
Para que um algoritmo possa ser traduzido de forma simplificada para 
uma linguagem de programação, é aconselhável que ele seja escrito nos mesmos 
princípios estruturais. A estrutura básica de um algoritmo compreende as seguintes 
partes:
Cabeçalho do algoritmo
 Definição de constantes
 Definição de tipos de dados
 Definição de variáveis
 Descrição das funções e procedimentos
Início do bloco principal do algoritmo
 Corpo principal do algoritmo
Fim do bloco principal do algoritmo
Identificadores
O identificador é a distinção dos elementos utilizados no desenvolvimento 
de software. Identificadores são utilizados para a distinção de constantes, tipos de 
dados, variáveis, entre outros.
A declaração de um identificador deve seguir a seguinte regra: iniciar por 
uma letra (a .. z, A .. Z) ou underline ( _ ), podendo ser complementado por letras (a 
.. z, A .. Z), números (0 .. 9) ou underlines. 
TÓPICO 1 | FUNDAMENTOS DE LÓGICA DE PROGRAMAÇÃO
161
Nãopodem ser utilizados na composição de um identificador caracteres 
especiais e símbolos ($, #, @, !, %, &, ?, >, ], entre outros).
Exemplo(s):
Nome
Cor_dos_Olhos 
_Valor
Encontrou
Idade
Constantes
Constantes são identificadores que recebem um determinado conteúdo, o 
qual não será alterado durante a execução do programa. Existem situações em que 
as constantes são extremamente úteis, poupando tempo e gerando segurança no 
momento da manutenção do programa.
Exemplo(s):
Quando há um valor que será utilizado em vários locais de um algoritmo, 
é interessante o uso de uma constante com esse valor. Um exemplo é o valor de 
pi, ou seja, π = 3,141592. Definindo uma constante com esse valor, a possibilidade 
de erro no uso do valor de π no algoritmo é reduzido. Poderá ocorrer um erro se 
o valor definido na constante estiver errado ou se em algum lugar do algoritmo 
estiver sendo feita uma atribuição do valor 3,141592. Neste caso, o valor atribuído 
poderá acidentalmente estar diferente do valor da constante, causando diferença 
no cálculo e dificultando a localização do problema.
Supondo que se escreva um algoritmo para calcular o imposto de uma 
nota fiscal, neste algoritmo poderá ser declarada uma constante que irá armazenar 
o valor percentual do imposto. Caso a legislação mude, basta alterar o valor da 
constante, assim todos os locais onde ela está sendo utilizada serão automaticamente 
atualizados com o novo valor.
Tipos de Dados
O tipo de dado define o conjunto de valores que um identificador pode 
assumir ou armazenar. Nas linguagens de programação estão disponíveis vários 
tipos de dados. Para fins de desenvolvimento de algoritmos utilizam-se os tipos 
de dados primitivos, pois as variações de tipos são definidas conforme os recursos 
disponibilizados pela linguagem de programação e a necessidade de representação 
ou armazenamento.
Os tipos de dados primitivos são: inteiro, real, caractere e lógico.
UNIDADE 3 | LÓGICA DE PROGRAMAÇÃO
162
Variáveis
Variáveis, como o nome sugere, são identificadores utilizados para 
armazenar conteúdos que poderão variar durante a execução do programa. As 
variáveis são importantes na escrita de programas, pois são elas que auxiliam no 
processamento e armazenam os valores resultantes do mesmo.
Muito embora se imagine que ao iniciar a execução de um programa as 
variáveis estarão carregadas com conteúdos padrões, isso não ocorre. O conteúdo 
que as variáveis contêm antes de receberem a primeira atribuição podem ser 
quaisquer valores da faixa que elas podem armazenar. Por este motivo, quando se 
precisa garantir um conteúdo inicial numa variável, este deve ser explicitamente 
atribuído. Esta atribuição explícita no início da utilização das variáveis chama-se 
inicialização de variáveis.
Exemplo(s):
Um algoritmo que lê vários valores e no final mostra o somatório destes 
valores poderá fazer uso de uma variável chamada “Total”. Cada leitura somará 
o valor a ela e no final, para apresentar o resultado, basta mostrar o conteúdo da 
variável “Total”.
Se um algoritmo tem a função de comparar dois números, é necessário 
que neste algoritmo estejam declaradas pelo menos duas variáveis. Cada variável 
receberá o valor de um número para que posteriormente sejam comparados. É 
importante lembrar que, para que a comparação possa ocorrer, as variáveis devem 
ser do mesmo tipo de dado.
Operadores Aritméticos
Os operadores aritméticos são utilizados para a realização de operações 
matemáticas. Os operadores estão relacionados no quadro a seguir.
QUADRO 6 – OPERADORES ARITMÉTICOS
Operador Função
+ adição e concatenação
- subtração
* multiplicação
/ divisão de valores reais
div divisão de valores inteiros
mod resto da divisão de valores inteiros
FONTE: O autor
TÓPICO 1 | FUNDAMENTOS DE LÓGICA DE PROGRAMAÇÃO
163
Operadores Lógicos
Os operadores lógicos são utilizados para o tratamento de relações lógicas. 
O resultado obtido destas operações é sempre o valor verdadeiro ou falso. No 
quadro a seguir estão relacionados os operadores lógicos.
QUADRO 7 – OPERADORES LÓGICOS
FONTE: O autor
Operador Função
e conjunção
ou disjunção
não negação
Operadores Relacionais
Os operadores relacionais são utilizados para a realização de comparações 
entre dois elementos do mesmo tipo de dado. O resultado obtido a partir de 
operações com estes operadores é sempre o valor verdadeiro ou falso. Tais 
operadores estão relacionados no quadro a seguir.
QUADRO 8 – OPERADORES RELACIONAIS
Operador Função
= igual
> maior
>= maior ou igual
< menor
<= menor ou igual
<> diferente
FONTE: O autor
Observe que o operador diferente (<>) utilizado aqui está baseado na sintaxe da 
linguagem de programação Pascal. Na linguagem de programação C o operador é o sinal de igual (=).
UNI
UNIDADE 3 | LÓGICA DE PROGRAMAÇÃO
164
4 COMANDOS BÁSICOS
Os comandos básicos são instruções elementares utilizadas na maioria dos 
softwares. Estas instruções são atribuição, leitura e escrita.
Atribuição
O comando de atribuição permite atribuir conteúdo a um determinado 
identificador. Este conteúdo pode ser um dado que está armazenado em outro 
identificador, o resultado de um cálculo, o retorno de uma sub-rotina (função), 
entre outros. É importante observar que à esquerda do símbolo de atribuição deve 
haver apenas um identificador.
A atribuição deve levar em consideração a compatibilidade do conteúdo com 
o tipo do identificador. A atribuição de conteúdo incompatível ao suportado pelo 
tipo de dado pode causar erros de compilação ou de execução. Em consequência 
desta incompatibilidade, o programa pode terminar de forma brusca ou gerar 
resultados inconsistentes.
Neste livro, para o desenvolvimento de algoritmos, o comando de 
atribuição será representado pelo símbolo ←. Esta seta para a esquerda significa a 
atribuição do conteúdo da direita para o identificador da esquerda. Na maioria das 
linguagens de programação, porém, a atribuição é representada por = (igual) ou := 
(dois pontos e igual).
Exemplo(s):
Continuar ← verdadeiro;
Aluna ← ’Manuela’;
Quantidade ← 7;
Total_Bruto ← A + B;
Indice ← Indice + 1;
Nome ← ’Eduardo’;
Prosseguir ← ’S’;
Nota ← 9.50;
 Leitura
Dependendo da situação, os operadores poderão ser utilizados de forma 
combinada,permitindo resolver operações mais complexas. Estas operações 
poderão ser aritméticas, lógicas, relacionais ou combinações entre as mesmas.
TÓPICO 1 | FUNDAMENTOS DE LÓGICA DE PROGRAMAÇÃO
165
O comando de leitura permite a obtenção de dados do meio externo para 
o programa. Em algoritmos, esta entrada de dados geralmente é feita através do 
teclado. A leitura pode se referir ainda à obtenção de conteúdos de um arquivo, de 
um banco de dados, de uma porta de comunicação, entre outros.
 A sintaxe deste comando é leia ( identificador ). O identificador 
utilizado neste comando indica onde o dado deve ser armazenado.
 Exemplo(s):
leia(Continuar);
leia(Total_Bruto);
leia(Idade); 
leia(Nome);
leia(Prosseguir);
Escrita
O comando de escrita permite interagir com o usuário do software através 
da apresentação do resultado de um processamento ou a solicitação de uma nova 
entrada de dados. A escrita pode se referir ainda ao armazenamento de dados num 
arquivo, num banco de dados, no envio de conteúdo para uma impressora, entre 
outros.
A representação é escreva ( [identificador, conteúdo] ). Os parâmetros 
deste comando podem ser um ou mais identificadores, que podem ser combinados 
com um ou mais conteúdos predeterminados (caracteres, textos, números e outros 
identificadores).
Exemplo(s):
Escreva(’Primeiro Algoritmo.’);
Escreva(’Total: ’, Total_Bruto);
Escreva(’Sua idade é: ’, Idade);
Escreva(’Deseja prosseguir? (S/N): ’);
Escreva(’Informe seu nome: ’);
166
Caro acadêmico,neste tópico você estudou que:
• Os softwares são classificados nas categorias de sistemas operacionais, utilitários, 
aplicativos e linguagens de programação. Os sistemas operacionais tornam o 
computador útil, pois sem eles não poderíamos executar os aplicativos para 
desempenhar as atividades do dia a dia.
• A sintaxe de um programa se refere à escrita correta das instruções que deverão 
ser executadas. Tipicamente se entende a sintaxe como sendo o conjunto de 
palavras reservadas de uma linguagem de programação. Já a semântica se refere 
ao significado que um conjunto de instruções irá gerar.
• Os tipos de dados são o conjunto de valores que um determinado identificador 
daquele tipo poderá assumir. Também pode-se entender que é o conjunto de 
valores que ele poderá representar. O conjunto de valores se refere tanto ao 
formato (caractere, inteiro, real, etc.) quanto ao tamnho do conjunto que pode 
ser representado (0..255, -32768..32767, etc).
• As variáveis são o conjunto de memórias auxiliares que ajudam o programador 
na realização das operações necessárias nos programas. A declaração de 
variáveis deve seguir uma regra para que os identificadores delas sejam aceitos 
pelas linguagens de programação. Esta regra diz que uma variável deve iniciar 
com uma letra ou sublinha (_), conter nos demais elementos letras, números e/
ou sublinha.
RESUMO DO TÓPICO 1
167
Caro acadêmico, como forma de fixar o conteúdo estudado, realize a 
autoatividade proposta a seguir:
1 Assinale os identificadores corretamente definidos:
a) ( ) _Soma b) ( ) 2Numero c) ( ) Numero2
d) ( ) primeirovalor e) ( ) índice f) ( ) caminhão
g) ( ) c_avião h) ( ) sNome i) ( ) $Valor
j) ( ) #Telefone k) ( ) TotalBruto l) ( ) Total
m) ( ) Data n) ( ) endereco_32 o) ( ) A&C
p) ( ) a q) ( ) rel&gio r) ( ) X_y_Z
s) ( ) HoRa t) ( ) Continua u) ( ) H2O
2 Defina o tipo de dado mais adequado para as variáveis segundo o conteúdo 
a ser armazenado:
a) Nome
a) ( ) inteiro b) ( ) real c) ( ) caractere d) ( ) lógico
b) Metros
a) ( ) inteiro b) ( ) real c) ( ) caractere d) ( ) lógico
c) Quantidade
a) ( ) inteiro b) ( ) real c) ( ) caractere d) ( ) lógico
d) Endereço
a) ( ) inteiro b) ( ) real c) ( ) caractere d) ( ) lógico
e) Achou
a) ( ) inteiro b) ( ) real c) ( ) caractere d) ( ) lógico
3 Assinale o tipo de operador utilizado em cada expressão, considerando que 
uma expressão pode conter mais de um operador:
a) 198 + 12
a) ( ) Aritmético 
b) ( ) Aritmético e Lógico 
c) ( ) Relacional e Aritmético
AUTOATIVIDADE
168
b) (Parar = Sim) ou (Sinal = ‘Vermelho’)
a) ( ) Aritmético e Lógico 
b) ( ) Aritmético e Relacional
c) ( ) Lógico e Relacional
c) ((10 / 5) + (3 * 2)) = 8
a) ( ) Aritmético 
b) ( ) Aritmético e Lógico 
c) ( ) Aritmético e Relacional
d) (Soma >= 5) e (Soma <= 50 )
a) ( ) Aritmético e Lógico 
b) ( ) Lógico e Relacional 
c) ( ) Relacional e Lógico
e) (Valor_Compra – Desconto) > LimiteCredito
a) ( ) Aritmético e Relacional 
b) ( ) Relacional e Lógico 
c) ( ) Relacional
4 Desenvolva os algoritmos propostos a seguir.
a) Elabore um algoritmo que leia o preço de compra, o percentual de acréscimo 
e calcule o preço de venda de uma mercadoria. Ao final escreva o preço de 
compra, o acréscimo aplicado e o preço de venda.
b) Construa um algoritmo que leia o capital e uma taxa de rendimento a ser 
aplicada. Escreva o capital, a taxa de rendimento, o rendimento e o montante 
(capital + rendimento).
c) Elabore um algoritmo que leia um número, identifique se é par ou ímpar e 
escreva o resultado.
d) Faça um algoritmo que leia quatro notas de um aluno e escreva a média 
obtida.
e) Um mercado resolveu oferecer três condições de pagamento a prazo aos 
clientes (15, 30 ou 45 dias). Construa um algoritmo para ler o valor da compra 
e a taxa de juros para cada um dos prazos e escreva quanto o cliente irá pagar 
em cada condição.
169
TÓPICO 2
ESTRUTURAS DE CONTROLE
UNIDADE 3
1 INTRODUÇÃO
As estruturas de controle permitem determinar como um conjunto de 
instruções deverá ser executado para a realização das tarefas desejadas. Esta 
determinação pode ser a ordem em que as instruções deverão ser executadas, a 
submissão a determinadas condições ou o refinamento do processamento.
É importante observar que não existe uma regra de subordinação básica ou 
única para a utilização das estruturas de controle. Pode-se utilizar as estruturas de 
controle em qualquer combinação de subordinação. 
As estruturas de controle que serão abordadas neste capítulo são: sequência, 
seleção e repetição.
Sequência
Esta estrutura de controle permite a definição da sequência em que as 
instruções deverão ser executadas. A finalidade desta estrutura é definir a ordem 
em que as instruções devem ser executadas. Uma inversão na ordem de execução 
das instruções pode modificar significativamente o resultado.
Exemplo(s):
Algoritmo Calcula;
variáveis
 Primeiro: inteiro;
 Segundo: inteiro;
 Resultado: inteiro;
início
 Primeiro ← 0;
 Segundo ← 0;
 escreva(’Informe o primeiro número: ’);
 leia(Primeiro);
 escreva(’Informe o segundo número: ’);
 leia(Segundo);
 Resultado ← (Primeiro * 3) + Segundo;
 escreva(Resultado);
fim. 
170
UNIDADE 3 | LÓGICA DE PROGRAMAÇÃO
Neste algoritmo são solicitados dois números; em seguida, o primeiro 
número é multiplicado por três e somado ao segundo número. Se alterarmos a 
sequência conforme o exemplo seguinte, o resultado seria diferente, pois o valor 
do segundo número seria zero no momento do cálculo e depois receberia um valor 
que não seria utilizado dentro do algoritmo.
Algoritmo Calcula;
variáveis
 Primeiro : inteiro;
 Segundo : inteiro;
 Resultado : inteiro;
início
 Primeiro ← 0;
 Segundo ← 0;
 escreva(’Informe o primeiro número: ’);
 leia(Primeiro);
 Resultado ← (Primeiro * 3) + Segundo;
 escreva(’Informe o segundo número: ’);
 leia(Segundo);
 escreva(Resultado);
fim.
Objetivando possibilitar maiores oportunidades de aprendizagem, 
são descritos exemplos de algoritmos em descrição narrativa e também com 
implementação nas linguagens de programação C++ e Pascal. 
Exemplo 1: Algoritmo que lê e soma dois números e escreve o total.
Implementação em descrição narrativa
Algoritmo Soma;
variáveis
 Primeiro_Numero : inteiro;
 Segundo_Numero : inteiro;
 Total : inteiro;
início
 escreva(’Informe o primeiro número: ’);
 leia(Primeiro_Numero);
 escreva(’Informe o segundo número: ’);
 leia(Segundo_Numero);
 Total ← Primeiro_Numero + Segundo_Numero;
 escreva(Total);
fim.
Implementação em C++
TÓPICO 2 | ESTRUTURAS DE CONTROLE
171
#include <iostream.h>
main()
{
 int Primeiro_Numero;
 int Segundo_Numero;
 int Total;
 char Tecla;
 cout << “\n”;
 cout << “Informe o primeiro número: “;
 cin >> Primeiro_Numero;
 cout << “Informe o segundo número: “;
 cin >> Segundo_Numero;
 Total = Primeiro_Numero + Segundo_Numero;
 cout << Total;
 cout << “\n”;
 cout << “Pressione uma tecla para continuar...”;
 cin >> Tecla;
 return 0;
}
Implementação em Pascal
Program Soma;
uses crt;
var
 Primeiro_Numero : integer;
 Segundo_Numero : integer;
 Total : integer;
begin
 clrscr;
 write(‘Informe o primeiro número: ‘);
 readln(Primeiro_Numero);
 write(‘Informe o segundo número: ‘);
 readln(Segundo_Numero);
 Total := Primeiro_Numero + Segundo_Numero;
 writeln(Total);
 write(‘Pressione qualquer tecla para continuar...’);
 readkey;
end.
Exemplo 2: Algoritmo que lê um número, verifica e escreve se o número 
é menor que 10 ou maior ou igual a 10.
172
UNIDADE 3 | LÓGICA DE PROGRAMAÇÃO
Implementação em descrição narrativa
AlgoritmoCompara;
variáveis
 Numero : inteiro;
início
 escreva(’Informe um número: ’);
 leia(Numero);
 se (Numero < 10) então
 início se
 escreva(’O número é menor que 10.’);
 fim se
 senão
 início senão
 escreva(’O número é maior ou igual a 
10.’);
 fim senão;
fim.
 
Implementação em C++
#include <iostream.h>
main()
{
 int Numero;
 char Tecla;
 cout << “\n”;
 cout << “Informe um número: “;
 cin >> Numero;
 if (Numero < 10)
 {
 cout << “O número é menor que 10.”;
 }
 else
 {
 cout << “O número é maior ou igual a 10.”;
 }
 cout << “\n”;
 cout << “Pressione uma tecla para continuar...”;
 cin >> Tecla;
 return 0;
}
TÓPICO 2 | ESTRUTURAS DE CONTROLE
173
Implementação em Pascal
Program Compara;
uses crt;
var
 Numero : integer;
begin
 clrscr;
 write(‘Informe um número: ‘);
 readln(Numero);
 if (Numero < 10) then
 begin
 writeln(‘O número é menor que 10.’);
 end
 else
 begin
 writeln(‘O número é maior ou igual a 10.’);
 end;
 write(‘Pressione qualquer tecla para 
continuar...’);
 readkey;
end.
Exemplo 3: Algoritmo que lê dois números, multiplica o primeiro 
número por 3 e soma ao segundo.
Implementação em descrição narrativa
Algoritmo Calcula;
variáveis
 Primeiro : inteiro;
 Segundo : inteiro;
 Resultado : inteiro;
início
 escreva(’Informe o primeiro número: ’);
 leia(Primeiro);
 escreva(’Informe o segundo número: ’);
 leia(Segundo);
 Resultado ← (Primeiro * 3) + Segundo; 
 escreva(Resultado);
fim.
Implementação em C++
#include <iostream.h>
174
UNIDADE 3 | LÓGICA DE PROGRAMAÇÃO
main()
{
 int Primeiro;
 int Segundo;
 int Resultado;
 char Tecla;
 cout << “\n”;
 cout << “Informe o primeiro número: “;
 cin >> Primeiro;
 cout << “Informe o segundo número: “;
 cin >> Segundo;
 Resultado = (Primeiro * 3) + Segundo;
 cout << Resultado;
 cout << “\n”;
 cout << “Pressione uma tecla para 
continuar...”;
 cin >> Tecla;
 return 0;
}
Implementação em Pascal
Program Calcula;
uses crt;
var
 Primeiro : integer;
 Segundo : integer;
 Resultado : integer;
begin
 clrscr;
 write(‘Informe o primeiro número: ‘);
 readln(Primeiro);
 write(‘Informe o segundo número: ‘);
 readln(Segundo);
 Resultado := (Primeiro * 3) + Segundo;
 writeln(Resultado);
 write(‘Pressione qualquer tecla para 
continuar...’);
 readkey;
end.
Seleção
TÓPICO 2 | ESTRUTURAS DE CONTROLE
175
A estrutura de seleção permite a definição de uma condição para que um 
conjunto de instruções seja ou não executado. Por este motivo as estruturas de 
seleção também são conhecidas como estruturas condicionais.
O importante é saber que a estrutura de seleção deve ser utilizada quando 
há a necessidade de testar uma condição, e que em função do resultado da mesma, 
poderá ser gerado um desvio no processamento.
A seleção pode ser subdividida em quatro tipos: simples, composta, 
encadeada e múltipla.
Seleção Simples
A seleção simples é resolvida com a utilização do comando se então.
Exemplo(s):
se (A > 10) então
se (Prosseguir = verdadeiro) então 
se (Nome <> ’ ’) então
se ((A > 10) e (A < 20)) então
se não Terminou então
Seleção Composta
A seleção composta é resolvida com a utilização do comando se então 
auxiliado pelo senão. Na realidade, o comando se então define se as instruções 
subordinadas a ele serão executadas e o senão permite a subordinação das 
instruções que deverão ser executadas caso a condição submetida ao se então seja 
falsa.
Exemplo(s):
se (A > 10) então
 início se
 escreva(A, ’ é maior que 10.’);
 fim se
senão
 início senão
 escreva(A, ’ é menor que 10.’);
 fim senão;
Seleção Encadeada
A seleção encadeada é resolvida com a utilização do comando se então 
subordinado a outro se então. Esta subordinação ou encadeamento pode ter vários 
elementos envolvidos.
176
UNIDADE 3 | LÓGICA DE PROGRAMAÇÃO
Exemplo(s):
se ((A >= 10) e (A <= 20)) então
 início se
 se (A <= 15) então
 início se
 escreva(A, ’ está entre 10 e 15’);
 fim se
 senão
 início senão
 escreva(A, ’ está entre 16 e 20’);
 fim senão;
 fim se
senão
 início senão
 escreva(A, ’ não está entre 10 e 20’);
 fim senão;
Seleção Múltipla
Na resolução de seleções múltiplas utiliza-se o comando escolha caso. 
Exemplo(s):
escolha Numero 
 caso 1: escreva(’*’);
 caso 2: escreva(’**’);
 caso 3: escreva(’***’);
senão
 escreva(’Este número está fora da 
faixa.’);
fim escolha.
Objetivando possibilitar maiores oportunidades de aprendizagem, são 
descritos exemplos de algoritmos de estruturas de seleção em descrição narrativa 
e também com implementação nas linguagens de programação C++ e Pascal.
Exemplo 4: Algoritmo que lê um número de um a três e escreve a 
quantidade lida em ‘*’.
Implementação em descrição narrativa
Algoritmo Escolha;
variáveis
 Numero : inteiro;
início
TÓPICO 2 | ESTRUTURAS DE CONTROLE
177
 escreva(’Informe um número de 1 a 3: ’);
 leia(Numero);
 escolha Numero 
 caso 1: escreva(’*’);
 caso 2: escreva(’**’);
 caso 3: escreva(’***’);
 senão
 escreva(’Este número está fora da 
faixa.’);
 fim escolha;
fim.
Implementação em C++
#include <iostream.h>
main()
{
 int Numero;
 char Tecla;
 cout << “\n”;
 cout << “Informe um número de 1 a 3: “;
 cin >> Numero;
 switch(Numero)
 { 
 case 1 : cout << “*”; break;
 case 2 : cout << “**”; break;
 case 3 : cout << “***”; break;
 default : cout << “O número está fora da 
faixa.”;
 }
 cout << “\n”;
 cout << “Pressione uma tecla para 
continuar...”;
 cin >> Tecla;
 return 0;
}
Implementação em Pascal
Program Escolha;
uses crt;
var
 Numero : integer;
begin
178
UNIDADE 3 | LÓGICA DE PROGRAMAÇÃO
 clrscr;
 write(‘Informe um número de 1 a 3: ‘);
 readln(Numero);
 case Numero of
 1 : writeln(‘*’);
 2 : writeln(‘**’);
 3 : writeln(‘***’);
 else
 writeln(‘Este número está fora da faixa.’);
 end;
 write(‘Pressione qualquer tecla para 
continuar...’);
 readkey;
end.
Repetição
Permite a execução de uma instrução ou conjunto de instruções por um 
número determinado de vezes ou até que uma determinada condição seja satisfeita. 
Esta estrutura também é conhecida por laço ou looping.
Para a construção de uma estrutura de repetição existem três comandos 
que podem ser utilizados: enquanto faça, para faça e repita até.
Enquanto faça
O comando enquanto faça é o mais adequado para situações em que a 
condição de término da repetição deve ser testada antes da execução das instruções 
subordinadas à estrutura de controle.
Exemplo(s):
Quantidade ← 0;
enquanto (Quantidade <= 5) faça
 início enquanto 
 Quantidade ← Quantidade + 1;
 escreva(Quantidade, ’ª execução.’);
 fim enquanto;
Para faça
A utilização do comando para faça é recomendada para situações em que 
se conhece previamente a quantidade de vezes que o conjunto de instruções deve 
ser executado. Esta quantidade de vezes também é conhecida como limite inferior 
e limite superior.
TÓPICO 2 | ESTRUTURAS DE CONTROLE
179
Exemplo(s):
para Quantidade de 1 até 5 faça
 início para 
 escreva(Quantidade, ’ª execução.’); 
 fim para;
Repita até
O comando repita até é mais adequado para situações em que as instruções 
subordinadas à estrutura de controle deverão ser executadas pelo menos uma vez, 
antes do teste da condição de término.Em algumas linguagens de programação 
o comando repita até pode ser encontrado como uma variante do enquanto faça.
Exemplo(s):
Quantidade ← 0;
repita
 Quantidade ← Quantidade + 1;
 escreva(Quantidade, ’ª execução.’);
até (Quantidade >= 5);
Objetivando possibilitar maiores oportunidades de aprendizagem, 
são descritos exemplos de algoritmos em descrição narrativa e também com 
implementação nas linguagens de programação C++ e Pascal.
Exemplo 5: Algoritmo que executa cinco vezes e em cada vez escreve o 
número da execução utilizando o comando enquanto faça.
Implementação em descrição narrativa
Algoritmo Enquanto_Faca;
variáveis
 Quantidade : inteiro;
início
 Quantidade ← 1;
 enquanto (Quantidade <= 5) faça 
 início enquanto
 escreva(Quantidade, ’ª vez.’);
 Quantidade ← Quantidade + 1;
 fim enquanto;
fim.
Implementação em C++
#include <iostream.h>
main()
180
UNIDADE 3 | LÓGICA DE PROGRAMAÇÃO
{
 int Quantidade;
 char Tecla;
 Quantidade = 1;
 while (Quantidade <= 5)
 {
 cout << “\n”;
 cout << Quantidade << “ª vez.”;
 Quantidade++;
 }
 cout << “\n”;
 cout << “Pressione uma tecla para continuar...”;
 cin >> Tecla;
 return 0;
}
Implementação em Pascal
Program Enquanto_Faca;
uses crt;
var
 Quantidade : integer;
begin
 clrscr;
 Quantidade := 1;
 while (Quantidade <= 5) do
 begin
 writeln(Quantidade, ‘ª vez.’);
 Quantidade := Quantidade + 1;
 end;
 write(‘Pressione qualquer tecla para continuar...’);
 readkey;
end.
Exemplo 6: Algoritmo que executa cinco vezes e em cada vez escreve o 
número da execução utilizando o comando para faça.
Implementação em descrição narrativa
Algoritmo Para_Faca;
variáveis
 Quantidade : inteiro;
início
 para Quantidade de 1 até 5 faça
 início para 
TÓPICO 2 | ESTRUTURAS DE CONTROLE
181
 escreva(Quantidade, ’ª vez.’); 
 fim para;
fim.
Implementação em C++
#include <iostream.h>
main()
{
 int Quantidade;
 char Tecla;
 cout << “\n”;
 for (Quantidade = 0; Quantidade < 5; 
Quantidade++)
 {
 cout << “\n”;
 cout << Quantidade << “ª vez.”;
 }
 cout << “\n”;
 cout << “Pressione uma tecla para 
continuar...”;
 cin >> Tecla;
 return 0;
}
Implementação em Pascal
Program Para_Faca;
uses crt;
var
 Quantidade : integer;
begin
 clrscr;
 for Quantidade := 1 to 5 do
 begin
 writeln(Quantidade, ‘ª vez.’);
 end;
 write(‘Pressione qualquer tecla para 
continuar...’);
 readkey;
end.
Exemplo 7: Algoritmo que executa cinco vezes e em cada vez escreve o 
número da execução utilizando o comando repita até.
182
UNIDADE 3 | LÓGICA DE PROGRAMAÇÃO
Implementação em descrição narrativa
Algoritmo Repita_Ate;
variáveis
 Quantidade : inteiro;
início
 Quantidade ← 1;
 repita
 escreva(Quantidade, ’ª vez.’);
 Quantidade ← Quantidade + 1;
 até (Quantidade > 5);
fim.
Implementação em C++
#include <iostream.h>
main()
{
 int Quantidade;
 char Tecla;
 cout << “\n”;
 Quantidade = 1;
 do {
 cout << “\n”;
 cout << Quantidade << “ª vez.”;
 Quantidade++;
 }
 while (Quantidade <= 5);
 cout << “\n”;
 cout << “Pressione uma tecla para 
continuar...”;
 cin >> Tecla;
 return 0;
}
Implementação em Pascal
Program Repita_Ate;
uses crt;
var
 Quantidade : integer;
begin
 clrscr;
 Quantidade := 1;
TÓPICO 2 | ESTRUTURAS DE CONTROLE
183
 repeat
 writeln(Quantidade, ‘ª vez.’);
 Quantidade := Quantidade + 1;
 until (Quantidade > 5);
 write(‘Pressione qualquer tecla para 
continuar...’);
 readkey;
end.
184
Caro acadêmico, neste tópico você estudou que:
• Os algoritmos são baseados quase em sua totalidade nas estruturas descritas por 
Lady Ada no século XIX. As estruturas descritas por ela são sequência, seleção 
e repetição. Com isso, quem aprender a utilizar bem estas estruturas poderá 
programar grande parte dos softwares existentes atualmente. Exceção pode se 
dar em casos que utilizem tecnologias mais avançadas.
• A estrutura de sequência define a ordem em que as instruções devem ser 
executadas para que o resultado definido para o algoritmo seja atingido. Caso 
a estrutura de sequência não seja obedecida, os resultados obtidos por tal 
algoritmo são imprevisíveis, pois as instruções dependentes podem estar sendo 
executadas antes daquelas que as deveriam preceder.
• A estrutura de seleção permite a definição de desvios condicionados às condições 
definidas na expressão do comando de seleção definido. A estrutura de seleção 
pode ser subdividida nos tipos: simples, composta, encadeada e múltipla. Na 
seleção simples, composta e encadeada é utilizado o comando se (ou if na maioria 
das linguagens de programação) e na seleção encadeada é utilizado o comando 
escolha caso (ou case nas linguagens like Pascal e switch case nas linguagens like 
C).
• A estrutura de repetição visa permitir a execução de um conjunto de instruções 
na quantidade de vezes necessárias de acordo com a condição estabelecida na 
expressão de controle do laço. As estruturas de seleção são: enquanto faça, para 
faça e repita até (é o mesmo que o comando do while, nas linguagens like C).
• É importante observar que as estruturas de seleção e repetição utilizam expressões 
como forma de definir o que deve ser executado. Estas expressões demonstram 
o quanto a computação/informática tem suas raízes na área da matemática. 
Portanto, conhecimentos e habilidades com lógica são muito importantes para 
profissionais da área de computação/informática.
RESUMO DO TÓPICO 2
185
AUTOATIVIDADE
Caro acadêmico, como forma de fixar o conteúdo estudado, realize a 
autoatividade proposta a seguir:
1 Desenvolva os algoritmos propostos a seguir.
a) Elabore um algoritmo onde será lido o valor de vários itens de compra e ao 
final escreva o valor a ser pago. O algoritmo deverá continuar lendo itens 
enquanto o valor digitado for diferente de zero.
b) Uma loja deseja saber quantos clientes compram 1 = à vista, 2 = 30 dias e 3 
= 60 dias. Desenvolva um algoritmo que leia uma quantidade ilimitada de 
clientes. Ao informar zero, o algoritmo será finalizado e deverá apresentar 
quantos clientes foram digitados em cada condição.
c) Construa um algoritmo para calcular e escrever o IMC (Índice de Massa 
Corporal) de uma pessoa. São fornecidos o nome da pessoa, o peso e a altura. 
A fórmula para calcular o IMC é o peso dividido pela altura ao quadrado. 
Com base no resultado do cálculo do IMC, escreva o resultado conforme as 
seguintes faixas:
até 20,0 (inclusive) = abaixo do peso
acima de 20,0 e abaixo de 25,0 = peso normal
entre 25,0 e abaixo de 30,0 = sobrepeso
entre 30,0 e abaixo de 40,0 = obeso
40,0 e acima = obeso mórbido
O algoritmo deverá ser executado até que seja informado “FIM” no nome da 
pessoa.
d) Faça um algoritmo que leia o nome de uma pessoa e várias ligações 
telefônicas (número do telefone e valor da ligação), enquanto o número do 
telefone informado for diferente de zero. Ao final escreva o nome do cliente 
e o valor da conta telefônica.
e) No controle de qualidade de uma empresa são classificadas as mercadorias 
como de primeira, de segunda e refugo. Elabore um algoritmo para ler 100 
peças e no final escreva quantas são de primeira, quantas são de segunda e 
quantas são refugo.
186
187
TÓPICO 3
SUBALGORITMOS E ESCOPO DE 
IDENTIFICADORES
UNIDADE 3
1 INTRODUÇÃO
Os subalgoritmos são uma forma de organização que visa especializar 
um conjunto de instruções e tornar ainda mais clara a descrição de cada parte da 
solução.
Quando a quantidade de instruções torna-semuito elevada e principalmente 
quando um mesmo bloco de instruções precisa ser utilizado várias vezes, é 
aconselhável o uso de subalgoritmos. A estrutura básica de um subalgoritmo 
compreende as seguintes partes:
Cabeçalho do subalgoritmo
 Definição de constantes
 Definição de tipos de dados
 Definição de variáveis
Início do subalgoritmo
 Corpo principal do subalgoritmo
Fim do subalgoritmo.
Conforme se pode perceber na estrutura de um subalgoritmo, ele segue o 
mesmo princípio estrutural de um algoritmo.
Um subalgoritmo pode ser chamado a partir do corpo principal do 
algoritmo ou de outro subalgoritmo.
Exemplo(s):
Exemplo 8: Este algoritmo demonstra a utilização de um subalgoritmo.
Implementação em descrição narrativa
Algoritmo Soma;
variáveis
 Primeiro : inteiro;
 Segundo : inteiro;
 subalgoritmo SomaValores(N1, N2 : inteiro);
 início
UNIDADE 3 | LÓGICA DE PROGRAMAÇÃO
188
 SomaValores ← N1 + N2;
 fim;
início
 Primeiro ← 0;
 Segundo ← 0;
 escreva(’Informe o primeiro número: ’);
 leia(Primeiro);
 escreva(’Informe o segundo número: ’);
 leia(Segundo);
 escreva(SomaValores(Primeiro, Segundo));
fim.
Implementação em C++
#include <iostream.h>
 int SomaValores(int N1, int N2)
 {
 return (N1 + N2);
 };
 
main()
{
 int Primeiro;
 int Segundo;
 int Resultado;
 char Tecla;
 cout << “\n”;
 cout << “Informe o primeiro número: “;
 cin >> Primeiro;
 cout << “Informe o segundo número: “;
 cin >> Segundo;
 cout << SomaValores(Primeiro, Segundo);
 cout << “\n”;
 cout << “Pressione uma tecla para continuar...”;
 cin >> Tecla;
 return 0;
}
Implementação em Pascal
Program Soma;
uses crt;
var
TÓPICO 3 | SUBALGORITMOS E ESCOPO DE IDENTIFICADORES
189
 Primeiro : integer;
 Segundo : integer;
 function SomaValores(N1, N2 : integer): integer;
 begin
 SomaValores := N1 + N2;
 end;
begin
 clrscr;
 write(‘Informe o primeiro número: ‘);
 readln(Primeiro);
 write(‘Informe o segundo número: ‘);
 readln(Segundo);
 writeln(SomaValores(Primeiro, Segundo));
 write(‘Pressione qualquer tecla para continuar...’);
 readkey;
end.
2 ESCOPO DE IDENTIFICADORES
O escopo de identificadores (constantes, tipos e variáveis) define a 
abrangência de utilização dos mesmos. O escopo define onde um identificador 
pode ser utilizado.
Os elementos declarados no cabeçalho podem ser utilizados em qualquer 
ponto do algoritmo. Este tipo de declaração é conhecido como declaração global. 
Exemplo(s):
Variáveis do tipo Global (Primeiro, Segundo e Resultado) podem ser vistas 
por todo o algoritmo.
Exemplo 9: Subalgoritmo com uso de variáveis globais (Primeiro, 
Segundo e Resultado), as quais podem ser vistas por todo o algoritmo.
Implementação em descrição narrativa
Algoritmo Calcula;
variáveis
 Primeiro : inteiro;
 Segundo : inteiro;
 Resultado : inteiro;
 subalgoritmo SomaValores(N1, N2 : inteiro);
UNIDADE 3 | LÓGICA DE PROGRAMAÇÃO
190
 início
 Resultado ← N1 + N2;
 fim;
início
 escreva(’Informe o primeiro número: ’);
 leia(Primeiro);
 escreva(’Informe o segundo número: ’);
 leia(Segundo);
 SomaValores(Primeiro, Segundo);
 escreva(Resultado);
fim.
Implementação em C++
#include <iostream.h>
int Resultado;
 void SomaValores(int N1, int N2)
 {
 Resultado = N1 + N2;
 };
main()
{
 int Primeiro;
 int Segundo;
 char Tecla;
 cout << “\n”;
 cout << “Informe o primeiro número: “;
 cin >> Primeiro;
 cout << “Informe o segundo número: “;
 cin >> Segundo;
 SomaValores(Primeiro, Segundo);
 cout << Resultado;
 cout << “\n”;
 cout << “Pressione uma tecla para 
continuar...”;
 cin >> Tecla;
 return 0;
}
Implementação em Pascal
TÓPICO 3 | SUBALGORITMOS E ESCOPO DE IDENTIFICADORES
191
Program Calcula;
uses crt;
var
 Primeiro : integer;
 Segundo : integer;
 Resultado : integer;
 procedure SomaValores(N1, N2 : integer);
 begin
 Resultado := N1 + N2;
 end;
begin
 clrscr;
 write(‘Informe o primeiro número: ‘);
 readln(Primeiro);
 write(‘Informe o segundo número: ‘);
 readln(Segundo);
 SomaValores(Primeiro, Segundo);
 writeln(Resultado);
 write(‘Pressione qualquer tecla para continuar...’);
 readkey;
end.
Já as declarações feitas no cabeçalho de um subalgoritmo podem ser 
utilizadas apenas no corpo do subalgoritmo. Fora do subalgoritmo estas declarações 
não são conhecidas. Este tipo de declaração é chamado local.
Exemplo(s):
Variáveis do tipo local (Soma) só podem ser vistas por quem a declarou.
Algoritmo Calcula;
variáveis
 Primeiro : inteiro;
 Segundo : inteiro;
 Resultado : inteiro;
 subalgoritmo SomaValores(N1, N2 : inteiro);
 variáveis
 inteiro : Soma;
 início
 Soma ← N1 + N2;
 fim;
UNIDADE 3 | LÓGICA DE PROGRAMAÇÃO
192
início
 escreva(’Informe o primeiro número: ’);
 leia(Primeiro);
 escreva(’Informe o segundo número: ’);
 leia(Segundo);
 escreva(SomaValores(Primeiro, Segundo));
fim.
Passagem de parâmetros
Um subalgoritmo, além de processar, pode receber e devolver dados. 
O recebimento de dados é utilizado em situações em que é necessário fornecer 
valores específicos para serem manipulados no subalgoritmo.
A passagem de parâmetros permite generalizar a solução através da 
indicação de comportamentos específicos passados nos parâmetros.
Exemplo(s):
Exemplo 10: Neste algoritmo são passadas por parâmetro duas notas 
lidas e o subalgoritmo carrega a variável global “Media” com a média do aluno.
Implementação em descrição narrativa
Algoritmo Media;
variáveis
 inteiro : Nota1;
 inteiro : Nota2;
 real : Media;
 subalgoritmo CalculaMedia(N1, N2 : inteiro);
 início
 Media ← (N1 + N2) / 2;
 fim;
início
 escreva(’Informe a primeira nota: ’);
 leia(Nota1);
 escreva(’Informe a segunda nota: ’);
 leia(Nota2);
 CalculaMedia(Nota1, Nota2);
 escreva(Media);
fim.
Implementação em C++
TÓPICO 3 | SUBALGORITMOS E ESCOPO DE IDENTIFICADORES
193
#include <iostream.h>
float Media;
 void CalculaMedia(int N1, int N2)
 {
 Media = (N1 + N2) / 2;
 };
main()
{
 int Nota1;
 int Nota2;
 char Tecla;
 cout << “\n”;
 cout << “Informe a primeira nota: “;
 cin >> Nota1;
 cout << “Informe a segunda nota: “;
 cin >> Nota2;
 CalculaMedia(Nota1, Nota2);
 cout << Media;
 cout << “\n”;
 cout << “Pressione uma tecla para continuar...”;
 cin >> Tecla;
 return 0;
}
Implementação em Pascal
Program Media;
uses crt;
var
 Nota1 : integer;
 Nota2 : integer;
 Media : real;
 procedure CalculaMedia(N1, N2 : integer);
 begin
 Media := (N1 + N2) / 2;
 end;
begin
 clrscr;
 write(‘Informe a primeira nota: ‘);
UNIDADE 3 | LÓGICA DE PROGRAMAÇÃO
194
 readln(Nota1);
 write(‘Informe a segunda nota: ‘);
 readln(Nota2);
 CalculaMedia(Nota1, Nota2);
 writeln(Media:2:2);
 write(‘Pressione qualquer tecla para continuar...’);
 readkey;
end.
Na maioria das linguagens de programação a passagem de parâmetros 
pode ser efetuada de duas formas: por cópia e por referência.
Passagem de parâmetros por cópia
Nesta forma de passagem de parâmetros, uma cópia do conteúdo da 
variável informada no parâmetro é fornecida ao subalgoritmo. Após copiado, o 
conteúdo pode ser manipulado no subalgoritmo sem que a variável de origem seja 
afetada ou alterada.
Exemplo(s):
Exemplo 11: Algoritmo com passagem de parâmetros por cópia.
Implementação em descrição narrativa
Algoritmo Emprestimo;
variáveis
 ValorInicial : real;
 ValorFinal: real;
 Taxa : inteiro;
 subalgoritmo CalculaJuros(Valor : real; Tx : 
inteiro): real;
 início
 CalculaJuros ← (Valor * Tx) / 100;
 fim;
início
 escreva(’Informe o valor a emprestar: ’);
 leia(ValorInicial);
 escreva(’Informe a taxa de juros: ’);
 leia(Taxa);
 escreva(‘O valor dos juros é ‘,
 CalculaJuros(ValorInicial, Taxa));
 ValorFinal ← ValorInicial + 
 CalculaJuros(ValorInicial, Taxa);
TÓPICO 3 | SUBALGORITMOS E ESCOPO DE IDENTIFICADORES
195
 escreva(‘O valor a pagar é ‘, ValorFinal);
fim.
Implementação em C++
#include <iostream.h>
 float CalculaJuros(float Valor, int Tx)
 {
 return (Valor * Tx) / 100;
 };
main()
{
 float ValorInicial;
 float ValorFinal;
 int Taxa;
 char Tecla;
 cout << “\n”;
 cout << “Informe o valor a emprestar: “;
 cin >> ValorInicial;
 cout << “Informe a taxa de juros: “;
 cin >> Taxa;
 cout << “O valor dos juros é “;
 cout << CalculaJuros(ValorInicial, Taxa);
 ValorFinal = ValorInicial + 
 CalculaJuros(ValorInicial, Taxa);
 cout << “O valor a pagar é “ << ValorFinal;
 cout << “\n”;
 cout << “Pressione uma tecla para continuar...”;
 cin >> Tecla;
 return 0;
}
Implementação em Pascal
Program Emprestimo;
uses crt;
var
 ValorInicial : real;
 ValorFinal : real;
 Taxa : integer;
 function CalculaJuros(Valor : real; Tx : integer): 
real;
UNIDADE 3 | LÓGICA DE PROGRAMAÇÃO
196
 begin
 CalculaJuros := (Valor * Tx) / 100;
 end;
begin
 clrscr;
 write(‘Informe o valor a emprestar: ‘);
 readln(ValorInicial);
 write(‘Informe a taxa de juros: ‘);
 readln(Taxa);
 writeln(‘O valor dos juros é ‘,
 CalculaJuros(ValorInicial, Taxa):6:2);
 ValorFinal := ValorInicial + 
 CalculaJuros(ValorInicial, Taxa);
 write(‘O valor a pagar é ‘, ValorFinal:6:2);
 write(‘Pressione qualquer tecla para continuar...’);
 readkey;
end.
Passagem de parâmetros por referência
Na passagem de parâmetros por referência não é feita uma cópia do 
conteúdo. Neste caso é passada uma referência à variável de origem e as alterações 
realizadas refletem diretamente sobre esta variável.
Exemplo(s):
Exemplo 12: Algoritmo com passagem de parâmetros por referência.
Implementação em descrição narrativa
Algoritmo Juros;
variáveis
 ValorInicial : real;
 ValorFinal : real;
 Taxa : inteiro;
 subalgoritmo CalculaJuros(Valor : real; 
 Taxa : inteiro; 
 ValorFin : variaveis 
real): real;
 início
 ValorFin <- Valor + (Valor * Taxa);
 CalculaJuros <- Valor * Taxa;
 fim;
TÓPICO 3 | SUBALGORITMOS E ESCOPO DE IDENTIFICADORES
197
início
 escreva(’Informe o valor a emprestar: ’);
 leia(ValorInicial);
 escreva(’Informe a taxa de juros: ’);
 leia(Taxa);
 escreva(‘O valor dos juros é ‘,
 CalculaJuros(ValorInicial, Taxa, ValorFinal));
 escreva(‘O valor valor a pagar é ‘, ValorFinal);
fim.
Implementação em C++
#include <iostream.h>
 float CalculaJuros(float Valor, 
 int Tx, 
 float& Retorno)
 {
 Retorno = Valor + ((Valor * Tx) / 100);
 return (Valor * Tx) / 100;
 };
main()
{
 float ValorInicial;
 float ValorFinal;
 int Taxa;
 char Tecla;
 cout << “\n”;
 cout << “Informe o valor a emprestar: “;
 cin >> ValorInicial;
 cout << “Informe a taxa de juros: “;
 cin >> Taxa;
 cout << “O valor dos juros é “;
 cout << CalculaJuros(ValorInicial, Taxa, ValorFinal);
 cout << “O valor a pagar é “ << ValorFinal;
 cout << “\n”;
 cout << “Pressione uma tecla para continuar...”;
 cin >> Tecla;
 return 0;
}
Implementação em Pascal
UNIDADE 3 | LÓGICA DE PROGRAMAÇÃO
198
Program Juros;
uses crt;
var
 ValorInicial : real;
 ValorFinal : real;
 Taxa : integer;
 function CalculaJuros(Valor : real; 
 Tx : integer; 
 var Retorno : real): real;
 begin
 Retorno := Valor + (Valor * Tx) / 100;
 CalculaJuros := (Valor * Tx) / 100;
 end;
begin
 clrscr;
 write(‘Informe o valor a emprestar: ‘);
 readln(ValorInicial);
 write(‘Informe a taxa de juros: ‘);
 readln(Taxa);
 writeln(‘O valor dos juros é : ‘,
 CalculaJuros(ValorInicial, Taxa, ValorFinal):6:2);
 write(‘O valor a pagar é : ‘, ValorFinal:6:2);
 write(‘Pressione qualquer tecla para continuar...’);
 readkey;
end.
TÓPICO 3 | SUBALGORITMOS E ESCOPO DE IDENTIFICADORES
199
A diferença fundamental entre estas formas de passagem de parâmetros é 
que na primeira os dados de origem não são afetados e, na segunda, são os dados 
de origem que estão sendo alterados.
É importante que se conheça as consequências do uso de ambos para 
utilizar cada forma nas situações que forem mais adequadas, evitando eventuais 
falhas na execução por problemas na lógica empregada.
200
Caro acadêmico, neste tópico você estudou que:
• Os subalgoritmos são estruturas de programação que possuem praticamente 
todas as características e potencialidades de algoritmos. Eles permitem que seja 
definido um novo tipo de dado, declaradas constantes, declaradas variáveis 
e em algumas linguagens de programação, até que se definam subalgoritmos 
deles.
• É importante observar que os tipos de dados, constantes e variáveis declarados 
num subalgoritmo possuem escopo de utilização apenas no subalgoritmo. As 
variáveis, por exemplo, são chamadas de variáveis locais. Isso significa que elas 
possuem “vida” apenas dentro do subalgoritmo, não estando disponíveis para 
uso por outras partes do algoritmo/programa.
• A passagem de parâmetros é um recurso bastante útil nos subalgoritmos. A 
maioria das linguagens de programação permite que se utilize duas formas de 
passagem de parâmetros: por cópia e por referência.
• Na passagem de parâmetros por cópia, os dados são copiados para o subalgoritmo 
para o qual estão sendo passados e utilizados em seu escopo. Isso significa que 
os dados passam para o subalgoritmo e podem ser alterados em seu interior, 
sem que os dados a partir dos quais foram copiados sejam alterados.
• Na passagem de parâmetros por referência, o endereço da variável é levado 
para dentro do subalgoritmo, de forma que quaisquer alterações no conteúdo 
da variável são realizados diretamente nela, com base no seu endereço. Isso 
significa que é necessária muita atenção ao utilizar passagem de parâmetros 
por referência, pois ao final da execução do subalgoritmo as variáveis passadas 
poderão ter os valores alterados.
RESUMO DO TÓPICO 3
201
AUTOATIVIDADE
Caro acadêmico, como forma de fixar o conteúdo estudado, realize a 
autoatividade proposta a seguir:
1 Desenvolva os algoritmos propostos a seguir.
a) Elabore um algoritmo que leia 30 números inteiros e utilizando um 
subalgoritmo que recebe como parâmetro se deve mostrar os números pares 
ou ímpares. Ao final, mostre os números pares e depois os números ímpares.
b) Para manter uma conta corrente, um banco cobra R$ 29,90 mensais de taxa. 
Construa um algoritmo que leia quantos correntistas o banco possui e mostre 
quanto o banco arrecadará em um ano. O cálculo deverá ser realizado por 
um subalgoritmo.
c) Em uma competição de agilidade são cadastrados 20 cães. Construa um 
algoritmo que leia o nome, a raça e a pontuação do cão. Ao final, utilize um 
subalgoritmo para mostrar os dados em ordem crescente de pontuação.
d) Faça um algoritmo que leia a descrição e o valor de cada item de uma lista de 
material escolar. Em seguida, mostre a lista (descrição e valor) e o percentual 
que cada item representa em relação ao valor total da compra. O percentual 
deverá ser calculado porum subalgoritmo.
e) Em um cinema são apresentados cinco filmes. Construa um algoritmo que 
leia o nome do filme, a categoria, o gênero e a bilheteria alcançada. Utilizando 
um subalgoritmo, mostre qual foi o campeão de bilheteria e quanto em 
percentual ele está à frente do último colocado.
202
203
TÓPICO 4
TIPOS ESTRUTURADOS
UNIDADE 3
1 INTRODUÇÃO
A partir do momento em que se passa a construir algoritmos mais 
sofisticados, aumenta proporcionalmente a necessidade de elementos que deem 
suporte a esta construção.
Utilizando apenas os tipos de dados primitivos, os algoritmos podem ser 
bastante restritos e limitados. Felizmente, os tipos estruturados permitem romper as 
barreiras desta limitação.
Tipos estruturados são tipos de dados construídos a partir de outros 
tipos de dados. Os tipos de dados utilizados como base para a criação dos tipos 
estruturados podem ser tipos primitivos ou tipos estruturados que já tenham sido 
previamente definidos.
Exemplo(s):
Registro:
 TCadastroProdutos = registro
 Codigo : inteiro;
 Descricao : caractere;
 fim registro;
Vetor:
 TNomes = Vetor[1..10] de caractere;
Matriz:
 TMatriz = Vetor[1..3, 1..3] de inteiro;
Registros
Registros permitem a criação de tipos de dados heterogêneos. Os elementos 
que compõem o registro são chamados de campos. Estes campos devem ter nomes 
(identificadores) diferentes e podem ter o mesmo tipo de dado ou tipos de dados 
diferentes, conforme a necessidade.
Em algumas linguagens de programação a construção do tipo registro 
pode ser encontrada com o nome estrutura (struct).
204
UNIDADE 3 | LÓGICA DE PROGRAMAÇÃO
Exemplo(s):
Exemplo 13: O algoritmo a seguir contém um registro que armazena o 
código, o nome e o endereço de uma pessoa.
Implementação em descrição narrativa
Algoritmo Registro; 
tipo 
 TCadastroPessoas = registro
 Codigo : inteiro;
 Nome : caracter;
 Endereco : caracter;
 fim registro;
variaveis
 CadastroPessoas : TCadastroPessoas;
início
 escreva(’Informe o código: ’);
 leia(CadastroPessoas.codigo);
 escreva(’Informe o nome: ’);
 leia(CadastroPessoas.nome);
 escreva(’Informe o endereço: ’);
 leia(CadastroPessoas.endereco);
fim.
Implementação em C++
#include <iostream.h>
main()
{
 struct TcadastroPessoas
 {
 int Codigo;
 char Nome[50];
 char Endereco[50];
 };
 TCadastroPessoas CadastroPessoas;
 char Tecla;
 cout << “\n”;
 cout << “Informe o código: “;
 cin >> CadastroPessoas.Codigo;
 cout << “Informe o nome: “;
 cin >> CadastroPessoas.Nome;
 cout << “Informe o endereço: “;
TÓPICO 5 | TIPOS ESTRUTURADOS
205
 cin >> CadastroPessoas.Endereco;
 cout << “\n”;
 cout << “Pressione uma tecla para 
continuar...”;
 cin >> Tecla;
 return 0;
}
Implementação em Pascal
Program Registro;
uses crt;
type
 TCadastroPessoas = Record
 Codigo : integer;
 Nome : string;
 Endereco : string;
 end;
var
 CadastroPessoas : TCadastroPessoas;
begin
 clrscr;
 write(‘Informe o código: ‘);
 readln(CadastroPessoas.Codigo);
 write(‘Informe o nome: ‘);
 readln(CadastroPessoas.Nome);
 write(‘Informe o endereço: ‘);
 readln(CadastroPessoas.Endereco);
 write(‘Pressione qualquer tecla para 
continuar...’); 
 readkey;
end.
Vetores
Vetor é o nome atribuído a um tipo estruturado que armazena um conjunto 
unidimensional de elementos homogêneos. Os vetores são conjuntos homogêneos, 
pois todos os elementos que o compõem são do mesmo tipo.
Vetor simples
Um vetor simples é composto por elementos com apenas um campo. Este 
conjunto poderá ter vários elementos e em cada elemento poderá ser armazenado 
apenas um valor.
206
UNIDADE 3 | LÓGICA DE PROGRAMAÇÃO
Exemplo(s):
Exemplo 14: O algoritmo a seguir implementa um vetor com capacidade 
para armazenar 10 números do tipo inteiro.
Implementação em descrição narrativa
Algoritmo VetorSimples; 
tipo 
 TNumeros = Vetor[1..10] de inteiro;
variáveis 
 VetorNumeros : TNumeros;
 Contador : inteiro;
início
 para Contador de 1 até 10 faça
 início para
 escreva(’Informe um número: ’);
 leia(VetorNumeros[Contador]);
 fim para;
fim.
Implementação em C++
#include <iostream.h>
main()
{
 int VetorNumeros[10];
 int Contador;
 char Tecla;
 cout << “\n”;
 for (Contador = 0; Contador < 10; Contador++)
 {
 cout << “\n”;
 cout << “Informe um número: “;
 cin >> VetorNumeros[Contador];
 }
 cout << “\n”;
 cout << “Pressione uma tecla para continuar...”;
 cin >> Tecla;
 return 0;
}
Implementação em Pascal
TÓPICO 5 | TIPOS ESTRUTURADOS
207
Program VetorSimples;
uses crt;
type
 TNumeros = Array[1..10] of integer;
var
 VetorNumeros : TNumeros;
 Contador : integer;
begin
 clrscr;
 for Contador := 1 to 10 do
 begin
 write(‘Informe um número: ‘);
 readln(VetorNUmeros[Contador]);
 end;
 write(‘Pressione qualquer tecla para continuar...’);
 readkey;
end.
Vetor estruturado
Um vetor estruturado é composto por elementos cujo tipo de dado utilizado 
é derivado de outros tipos de dados. Um vetor estruturado também é conhecido 
como um vetor de registros.
Exemplo(s):
Exemplo 15: Este algoritmo armazena o código e a idade de 10 alunos em 
um vetor homogêneo estruturado com registro de apenas um tipo de dado.
Implementação em descrição narrativa
Algoritmo VetorEstruturadoUm; 
tipo 
 TCadastroAluno = registro
 Codigo : inteiro;
 Idade : inteiro;
 Fim registro;
 TAlunos = Vetor[1..10] de TCadastroAluno;
variáveis 
 VetCadAlu : TAlunos;
 Contador : inteiro;
início
 para Contador de 1 até 10 faça
 início para
 escreva(’Informe o código do aluno: ’);
208
UNIDADE 3 | LÓGICA DE PROGRAMAÇÃO
 leia(VetCadAlu[Contador].Codigo);
 escreva(’Informe a idade do aluno: ’);
 leia(VetCadAlu[Contador].Idade);
 fim para;
fim.
Implementação em C++
#include <iostream.h>
main()
{
 struct TcadastroAluno
 {
 int Codigo;
 int Idade;
 };
 TCadastroAluno VetCadAlu[10];
 int Contador;
 char Tecla;
 cout << “\n”;
 for (Contador = 0; Contador < 10; Contador++)
 {
 cout << “\n”;
 cout << “Informe o código do aluno: “;
 cin >> VetCadAlu[Contador].Codigo;
 cout << “Informe a idade do aluno: “;
 cin >> VetCadAlu[Contador].Idade;
 }
 cout << “\n”;
 cout << “Pressione uma tecla para 
continuar...”;
 cin >> Tecla;
 return 0;
}
Implementação em Pascal
Program VetorEstruturadoUm;
uses crt;
type
 TCadastroAluno = Record
 Codigo : integer;
 Idade : integer;
TÓPICO 5 | TIPOS ESTRUTURADOS
209
 end;
 TAlunos = Array[1..10] of TCadastroAluno;
var
 VetCadAlu : TAlunos;
 Contador : integer;
begin
 clrscr;
 for Contador := 1 to 10 do
 begin
 write(‘Informe o código do aluno: ‘);
 readln(VetCadAlu[Contador].Codigo);
 write(‘Informe a idade do aluno: ‘);
 readln(VetCadAlu[Contador].Idade);
 end;
 write(‘Pressione qualquer tecla para 
continuar...’);
 readkey;
end.
É importante observar que para criar um vetor homogêneo estruturado 
deve-se, primeiro, criar um registro com os dados necessários. O passo seguinte 
é criar um vetor que usará o tipo de dado criado no registro e então declarar uma 
variável do tipo do vetor. O registro pode ter um ou vários tipos de dados.
Matrizes
Matriz é o nome atribuído a um tipo estruturado que armazena um conjunto 
bidimensional de elementos homogêneos. As matrizes são conjuntos homogêneos, 
pois todos os elementos que a compõemsão do mesmo tipo.
Nas matrizes, além do limite inferior e superior do eixo X, há também o 
limite inferior e superior do eixo Y.
Assim como nos vetores, as matrizes também podem ser compostas por 
elementos baseados em tipos de dados primitivos ou estruturados.
Matriz simples
Uma matriz simples é composta por elementos com apenas um campo. 
Este conjunto poderá ter vários elementos em cada dimensão e em cada elemento 
poderá ser armazenado apenas um valor.
Exemplo(s):
Exemplo 16: Este algoritmo tem capacidade de armazenar nove números do 
tipo inteiro.
210
UNIDADE 3 | LÓGICA DE PROGRAMAÇÃO
Implementação em descrição narrativa
Algoritmo MatrizSimples; 
tipo 
 TMatriz = Vetor[1..3, 1..3] de inteiro;
variáveis 
 Matriz : TMatriz;
 Linha : inteiro;
 Coluna : inteiro;
início
 para Linha de 1 até 3 faça
 início para
 para Coluna de 1 até 3 faça
 início para
 escreva(’Informe um número para 
 a ’, Coluna, ’ª coluna da ’,
 Linha, ’ª Linha: ’);
 leia(Matriz[Linha, Coluna]);
 fim para;
 fim para;
fim.
Implementação em C++
#include <iostream.h>
main()
{
 int Matriz[3][3];
 int Linha;
 int Coluna;
 char Tecla;
 cout << “\n”;
 for (Linha = 0; Linha < 3; Linha++)
 {
 for (Coluna = 0; Coluna < 3; Coluna++)
 {
 cout << “\n”;
 cout << “Informe um número para a: 
“;
 cout << (Coluna + 1) << һ coluna da 
“;
 cout << (Linha + 1) << “ª linha: “;
TÓPICO 5 | TIPOS ESTRUTURADOS
211
 cin >> Matriz[Linha][Coluna];
 }
 }
 cout << “\n”;
 cout << “Pressione uma tecla para 
continuar...”;
 cin >> Tecla;
 return 0;
}
Implementação em Pascal
Program MatrizSimples;
uses crt;
type
 TMatriz = Array[1..3, 1..3] of integer;
var
 Matriz : TMatriz;
 Linha : integer;
 Coluna : integer;
begin
 clrscr;
 for Linha := 1 to 3 do
 begin
 for Coluna := 1 to 3 do
 begin
 write(‘Informe um número para a : ‘, 
 Coluna, ‘ª Coluna da ‘, Linha, ‘ª Linha: ‘);
 readln(Matriz[Linha, Coluna]);
 end;
 end;
 write(‘Pressione qualquer tecla para continuar...’);
 readkey;
end.
Neste exemplo a matriz de 3 X 3 com tipo de dado inteiro foi carregada 
com números na seguinte ordem:
• primeira coluna da primeira linha;
• segunda coluna da primeira linha; 
• terceira coluna da primeira linha; 
• primeira coluna da segunda linha; 
• segunda coluna da segunda linha; 
• terceira coluna da segunda linha; 
• primeira coluna da terceira linha; 
• segunda coluna da terceira linha; e 
• terceira coluna da terceira linha.
212
UNIDADE 3 | LÓGICA DE PROGRAMAÇÃO
Matriz estruturada
Uma matriz estruturada é composta por elementos cujo tipo de dado 
utilizado é derivado de outros tipos de dados. Uma matriz estruturada também é 
conhecida como uma matriz de registros.
Exemplo(s):
Exemplo 17: Este algoritmo armazena os dados de 25 alunos em uma matriz 
de registros onde cada célula da matriz recebe o código e a idade de um aluno.
Implementação em descrição narrativa
Algoritmo MatrizEstruturadaUm; 
constantes
 MaxLin = 5;
 MaxCol = 5;
tipo 
 TAlu = registro
 Codigo : inteiro;
 Idade : inteiro;
 fim registro;
 TMatAlu = Vetor[1..MaxLin, 1..MaxCol] de 
TAlu; 
variaveis 
 Matriz : TMatAlu;
 Linha : inteiro;
 Coluna : inteiro;
início
 para Linha de 1 até MaxLin faça
 início para
 para Coluna de 1 até MaxCol faça
 início para
 escreva(’Informe o código do aluno
 da ’, Coluna, ’ª coluna da ’, 
 Linha, ’ª Linha: ’);
 leia(Matriz[Linha, Coluna].Codigo);
 escreva(’Informe a idade do aluno 
 da ’, Coluna, ’ª coluna da ’, 
 Linha, ’ª Linha: ’);
 leia(Matriz[Linha, Coluna].Idade);
 fim para;
 fim para;
fim.
TÓPICO 5 | TIPOS ESTRUTURADOS
213
Implementação em C++
#include <iostream.h>
main()
{
 const int MaxLin = 5;
 const int MaxCol = 5;
 struct TAlu
 {
 int Codigo;
 int Idade;
 };
 TAlu Matriz[MaxLin][MaxCol];
 int Linha;
 int Coluna;
 char Tecla;
 cout << “\n”;
 for (Linha = 0; Linha < MaxLin; Linha++)
 {
 for (Coluna = 0; Coluna < MaxCol; Coluna++)
 {
 cout << “\n”;
 cout << “Informe o código do aluno da: “;
 cout << (Coluna + 1) << “ª coluna da “;
 cout << (Linha + 1) << “ª linha: “;
 cin >> Matriz[Linha][Coluna].Codigo;
 cout << “Informe a idade do aluno da: “;
 cout << (Coluna + 1) << “ª coluna da “;
 cout << (Linha + 1) << “ª linha: “;
 cin >> Matriz[Linha][Coluna].Idade;
 }
 }
 cout << “\n”;
 cout << “Pressione uma tecla para 
continuar...”;
 cin >> Tecla;
 return 0;
}
Implementação em Pascal
Program MatrizEstruturadaUm;
214
UNIDADE 3 | LÓGICA DE PROGRAMAÇÃO
uses crt;
const
 MaxLin = 5;
 MaxCol = 5;
type
 TAlu = Record
 Codigo : integer;
 Idade : integer;
 end;
 TMatAlu = Array[1..MaxLin, 1..MaxCol] of TAlu;
var
 Matriz : TMatAlu;
 Linha : integer;
 Coluna : integer;
begin
 clrscr;
 for Linha := 1 to MaxLin do
 begin
 for Coluna := 1 to MaxCol do
 begin
 write(‘Informe o código do aluno da : ‘,
 Coluna, ‘ª Coluna da ‘, Linha, ‘ª 
Linha:‘);
 readln(Matriz[Linha, Coluna].Codigo);
 write(‘Informe a idade do aluno da : ‘,
 Coluna, ‘ª Coluna da ‘, Linha, ‘ª Linha:‘);
 readln(Matriz[Linha, Coluna].Idade);
 end;
 end;
 write(‘Pressione qualquer tecla para continuar...’);
 readkey;
end.
Exemplo 18: Neste algoritmo é possível armazenar os dados de 50 pessoas 
em uma matriz de registros onde cada célula da matriz recebe o código, o nome, o 
endereço e a renda de uma pessoa.
Implementação em descrição narrativa
Algoritmo MatrizEstruturadaDois; 
constantes
 MaxLin = 10;
 MaxCol = 5;
tipo 
 TCadPes = registro
TÓPICO 5 | TIPOS ESTRUTURADOS
215
 Codigo : inteiro;
 Nome : caracter;
 Endereco : caracter;
 Renda : real; 
 fim registro;
 TCad = Vetor[1..MaxLin, 1..MaxCol] de TCadPes; 
variáveis 
 {Declaração da variável do tipo TCad}
 Cad : TCad;
 Linha : inteiro;
 Coluna : inteiro;
início
 para Linha de 1 até MaxLin faça
 início para
 para Coluna de 1 até MaxCol faça
 início para
 escreva(’Informe o codigo da pessoa
 da ’, Coluna, ’ª coluna da ’, 
 Linha, ’ª Linha: ’);
 leia(Cad[Linha, Coluna].Codigo);
 escreva(’Informe o nome da pessoa
 da ’, Coluna, ’ª coluna da ’, 
 Linha, ’ª Linha: ’);
 leia(Cad[Linha, Coluna].Nome);
 escreva(’Informe o endereço da
 pessoa da ’, Coluna, ’ª coluna da ’,
 Linha, ’ª Linha: ’);
 leia(Cad[Linha, Coluna].Endereco);
 escreva(’Informe a renda mensal da
 pessoa da ’, Coluna, ’ª coluna da ’,
 Linha, ’ª Linha: ’);
 leia(Cad[Linha, Coluna].Renda);
 fim para;
 fim para;
fim.
Implementação em C++
#include <iostream.h>
main()
{
 const int MaxLin = 10;
 const int MaxCol = 5;
 struct TCadPes
216
UNIDADE 3 | LÓGICA DE PROGRAMAÇÃO
 {
 int Codigo;
 char Nome[50];
 char Endereco[50];
 float Renda;
 };
 TCadPes Cad[MaxLin][MaxCol];
 int Linha;
 int Coluna;
 char Tecla;
 cout << “\n”;
 for (Linha = 0; Linha < MaxLin; Linha++){
 for (Coluna = 0; Coluna < MaxCol; Coluna++)
 {
 cout << “\n”;
 cout << “Informe o código da pessoa da “;
 cout << (Coluna + 1) << “ª coluna da “;
 cout << (Linha + 1) << “ª linha: “;
 cin >> Cad[Linha][Coluna].Codigo;
 cout << “Informe o nome da pessoa da “;
 cout << (Coluna + 1) << “ª coluna da “
 cout << (Linha + 1) << “ª linha: “;
 cin >> Cad[Linha][Coluna].Nome;
 cout << “Informe o endereço da pessoa da 
“;
 cout << (Coluna + 1) << “ª coluna da “;
 cout << (Linha + 1) << “ª linha: “;
 cin >> Cad[Linha][Coluna].Endereco;
 cout << “Renda mensal da pessoa da “;
 cout << (Coluna + 1) << “ª coluna da “;
 cout << (Linha + 1) << “ª linha: “;
 cin >> Cad[Linha][Coluna].Renda;
 }
 }
 cout << “\n”;
 cout << “Pressione uma tecla para continuar...”;
 cin >> Tecla;
 return 0;
}
Implementação em Pascal
Program MatrizEstruturadaDois;
uses crt;
TÓPICO 5 | TIPOS ESTRUTURADOS
217
const
 MaxLin = 10;
 MaxCol = 5;
type
 TCadPes = Record
 Codigo : integer;
 Nome : string;
 Endereco : string;
 Renda : real;
 end;
 TCad = Array[1..MaxLin, 1..MaxCol] of TCadPes;
var
 Cad : TCad;
 Linha : integer;
 Coluna : integer;
begin
 clrscr;
 for Linha := 1 to MaxLin do
 begin
 for Coluna := 1 to MaxCol do
 begin
 write(‘Informe o código da pessoa da ‘,
 Coluna, ‘ª Coluna da ‘, Linha, ‘ª 
Linha:‘);
 readln(Cad[Linha, Coluna].Codigo);
 write(‘Informe o nome da pessoa da ‘,
 Coluna, ‘ª Coluna da ‘, Linha, ‘ª 
Linha:‘);
 readln(Cad[Linha, Coluna].Nome);
 write(‘Informe o endereço da pessoa da 
‘,
 Coluna, ‘ª Coluna da ‘, Linha, ‘ª 
Linha:‘);
 readln(Cad[Linha, Coluna].Endereco);
 write(‘Renda mensal da pessoa da ‘,
 Coluna, ‘ª Coluna da ‘, Linha, ‘ª 
Linha:‘);
 readln(Cad[Linha, Coluna].Renda);
 end;
 end;
 write(‘Pressione qualquer tecla para 
continuar...’);
 readkey;
end.
218
UNIDADE 3 | LÓGICA DE PROGRAMAÇÃO
A leitura complementar desta unidade do Caderno de Estudos é um texto 
do livro de André Koscianski e Michel dos Santos Soares que trata de alguns 
aspectos relacionados aos fatores de qualidade na programação de computadores. 
Observe que não basta apenas saber utilizar adequadamente as estruturas de 
programação estudadas, é necessário utilizá-las de forma adequada no contexto 
em que se está inserido. Boa leitura!
LEITURA COMPLEMENTAR
PROGRAMAÇÃO: fatores de qualidade
A implementação de um software não é consequência apenas de um 
projeto de arquitetura. As atividades de concepção e implementação devem ser 
planejadas desde a escolha de ferramentas e técnicas até o preparo de cronogramas 
e administração de mudanças.
O sucesso de um projeto de software depende da realização correta de 
todas as várias atividades que compõem o ciclo de vida. A programação deve ser a 
continuação natural da análise e projeto e não a simples confecção de código para 
implementar o sistema.
Muitos programadores praticam essa atividade de maneira um tanto 
intuitiva, segundo uma compreensão geral “do que o software deva fazer”. Embora 
essa forma de trabalhar aparentemente se enquadre em projetos atrasados e com 
requisitos mal gerenciados, dificilmente garante a qualidade dos resultados e 
pode ser totalmente inadequada em ambientes organizados, como empresas que 
implementam o CMMI.
Durante o desenvolvimento de software existem inúmeras trocas de 
informação entre as pessoas. As falhas de comunicação são um problema recorrente 
e, por esse motivo, são mencionadas em diversos pontos deste livro.
Os desentendimentos entre as pessoas possuem algo em comum com um 
conceito usado em informática, a chamada distância semântica ou gap semântico. 
Uma busca em alguns artigos revela diversas definições, um pouco diferentes 
entre si:
• A falta de coincidência entre a informação e sua interpretação;
• A distância entre o conhecimento sobre o domínio de aplicação e o formalismo 
para representá-la;
• A diferença entre uma representação computacional e o mundo real.
O conceito é usado normalmente para se referir à diferença de significado 
entre dois conceitos que, na verdade, deveriam representar exatamente a mesma 
coisa. Um exemplo simples permitirá uma discussão inicial das consequências que 
podem resultar dessa diferença.
TÓPICO 5 | TIPOS ESTRUTURADOS
219
As três representações a seguir são aparentemente idênticas:
Matemática
 y
 x = -
 z
Linguagem C
 x = y / z;
Linguagem C++
 x = y / z;
A semelhança é só visual, ou seja, não é válida para o significado dos textos. 
A representação matemática de uma divisão guarda seu sentido tradicional. Já nos 
dois outros casos – linguagens de programação –, para ter certeza do que cada 
trecho faz é preciso começar examinando a declaração das variáveis.
O código em linguagem C continuará perfeitamente válido se utilizarmos 
qualquer uma destas declarações:
int x, y, z;
char x, y, z;
void *x; char y; int z;
Pode parecer estranho dividir um caractere por outro ou, ainda, dividir 
um caractere por um número e atribuir o resultado a um ponteiro. Embora o 
compilador possa emitir avisos (warnings) ao detectar as misturas de tipos de 
dados, o código é compilado.
Em linguagem C++, a situação é mais confusa. Fazendo sobrecarga do 
operador divisão, torna-se possível aceitar virtualmente qualquer tipo de dado 
e realizar qualquer operação com as variáveis. Por exemplo, o código a seguir é 
perfeitamente legal em C++.
int *C::operator / (C a) {
return (int*)(n + a.n);
 }
 ...
int *x; C y, z;
x = y / z;
As variáveis y e z são do tipo C e o operador de divisão foi redefinido para 
somar dois atributos. É possível que o programador desse código tivesse seguido 
estritamente as especificações que lhe foram apresentadas. Também é possível que tais 
especificações sigam exatamente o que foi prescrito pelo cliente. Entretanto, o texto-
fonte contraria o senso comum e trará dúvidas a alguém responsável por uma futura 
manutenção. Além disso, um código tão confuso dificilmente não conterá defeitos.
FONTE: KOSCIANSKI, André; SOARES, Michel dos Santos. Qualidade de software: aprenda as 
metodologias e técnicas mais modernas para o desenvolvimento de software. p. 277-279. São 
Paulo: Novatec, 2006.
220
RESUMO DO TÓPICO 4
Caro acadêmico, neste tópico você estudou que:
• Os tipos estruturados ou estruturas de dados estáticas são arranjos de dados 
que permitem o armazenamento e navegação no conjunto de dados de modo 
simples e rápido.
• Os registros (record nas linguagens like Pascal ou struct nas linguagens like 
C) são estruturas nas quais são definidos conjuntos de dados que podem ser 
utilizados em vetores, matrizes ou mesmo em listas dinamicamente alocadas na 
memória. Este conjunto de dados pode conter diferentes tipos de dados, pois o 
registro é uma nova definição de tipo de dado.
• Vetores são estruturas homogêneas que permitem a rápida navegação pelos 
elementos. Os vetores com os quais lidamos neste Caderno de Estudos 
são estruturas estáticas, ou seja, o seu tamanho deve ser definido em tempo 
de programação e a alocação é feita uma única vez na carga do programa. 
Vetores são especialmente úteis para tratamento de dados intermediários cuja 
quantidade seja pequena e previamente conhecida. Vetores estáticos não são 
muito aconselháveis em situações em que não se conhece a quantidade de 
elementos ou esta quantidade seja grande.
• Matrizes são estruturas homogêneas cuja diferença dos vetores é a possibilidade 
de definir quantidadede linhas superior a uma. Os vetores permitem a definição 
da quantidade de colunas, porém a quantidade de linhas é sempre uma. As 
matrizes são especialmente úteis em situações em que é necessário armazenar e 
navegar em um conjunto de dados bidimensional.
221
AUTOATIVIDADE
Caro acadêmico, como forma de fixar o conteúdo estudado, realize a 
autoatividade proposta a seguir:
1 Elabore os algoritmos propostos a seguir.
a) Elabore um algoritmo que implemente uma matriz de 15 X 12 onde as linhas 
são os produtos em estoque e as colunas são as quantidades incluídas em 
cada mês do ano. Ao terminar a inclusão dos dados, liste a matriz.
b) Faça um algoritmo que leia uma matriz de 5 X 5 e multiplique cada um dos 
seus elementos por um número qualquer. Carregue uma segunda matriz 
com os valores multiplicados. Ao final, liste a matriz original e a matriz com 
os números multiplicados.
c) Construa um algoritmo que leia duas matrizes de 3 X 3 e ao final mostre as 
matrizes e uma terceira matriz com a soma das duas.
d) Uma empresa de turismo solicitou uma pesquisa que coletou dados sobre 
o local onde as pessoas gostam de estar nos dias de feriado. A pesquisa 
disponibilizou as opções: em casa, na praia ou no campo e dividiu em faixas 
de idade: até 15 anos, de 16 a 25, de 26 a 40 e acima de 40 anos. Faça um 
algoritmo que armazene os dados solicitados em uma matriz de 3 X 5 onde 
as linhas são as opções e as colunas são as faixas de idade. Ao final, mostre, 
do total de pessoas pesquisadas, qual o local mais escolhido e qual o local 
que as pessoas acima de 40 anos preferem.
e) Para controlar a qualidade da água de uma fonte são retiradas três amostras 
de manhã e três amostras à tarde. Uma análise considera o grau de turbidez, 
que varia de 0 a 5 pontos. Construa um algoritmo com uma matriz de 2 X 
3 que armazene estes dados e ao final mostre em qual período a água se 
encontrava melhor, qual o grau de turbidez, em qual período se encontrava 
pior e o grau de turbidez.
222
223
REFERÊNCIAS
ALMEIDA, Marcus Garcia de. Fundamentos de Informática. Rio de Janeiro: 
Brasport, 2002.
APPLE. Apple Inc. Disponível em: <http://www.apple.com>. Acesso em: 14 nov. 
2011.
BASILI, Victor R.; CALDIERA, Gianluigi; ROMBACH, H. Dieter. Goal 
Question Metric Paradigm. In: MARCINIAK, John J. Encyclopedia of Software 
Engineering. John Wiley & Sons, 1994.
BASILI, Victor; HEIDRICH, Jens; LINDVALL, Mikael; MÜNCH, Jürgen; 
REGARDIE, Myrna; ROMBACH, Dieter; SEAMAN, Carolyn; TRENDOWICZ, 
Adam. Bridging the Gap between Business Strategy and Software Development. 
ICIS 2007 Proceedings. Dusseldorf. Germany. April 2007.
BASILI, Victor R.; WEISS, David M. A methodology for collectin valid software 
engineering data. IEEE Transactions on Software Engineering. v. SE-10, n. 6, 1984.
BOYER, Carl B. História da Matemática. São Paulo: Edgard Blücher, 1996.
BRIAND, Lionel C.; DIFFERDING, Christiane M.; ROMBACH, H. Dieter. 
Practical guidelines for measurement-based process improvement. Software 
Process Improvement and Practice. v. 2, 1997.
BROOKS, Frederick Phillips. O mítico homem-mês: ensaios sobre engenharia de 
software. Rio de Janeiro: Elsevier, 2009.
CASACURTA, Alexandre et al. Computação gráfica: introdução, Rio Grande 
do Sul, set. 1998. Disponível em: <http://www.inf.unisinos.br/~osorio/CG-Doc/
cg.pdf>. Acesso em: 15 dez. 2002.
COMER, Douglas E. Redes de computadores e Internet. Porto Alegre: Bookman, 
2001.
COMPUTADORES E INFORMATICA. Disponível em: <http://www.
computadoreseinformatica.com.br>. Acesso em: 19 nov. 2011.
COULOURIS, George. Sistemas Distribuídos: conceitos e projeto. Porto Alegre: 
Bookman, 2007.
CROSBY, P. B. Quality is free: the art of making quality certain. New York: 
McGraw-Hill, 1979.
224
DeMARCO, Tom. Controle de projetos de software: gerenciamento, avaliação, 
estimativa. Rio de Janeiro: Campus, 1991.
DEMING, W. E. Out of the crisis: quality, productivity and competitive position. 
Cambridge University Press, 1988.
FEIGENBAUM, A. V. Total quality control. Singapore: McGraw-Hill, 1983.
FENTON, N.; LITTLEWOOD, B. Software Reliability and Metrics. Elsevier 
Applied Science. London, 1991.
FENTON, Norman E.; PFLEEGER, Shari Lawrence. Software Metrics: a rigorous 
and practical approach. 2. ed. Boston: PWS, 1997.
FLUCKIGER, François. Understanding Networked Multimedia: Applications 
and Technology. Prentice Hall International, 1995.
FOROUZAN, Behrouz; MOSHARRAF, Firouz. Fundamentos da Ciência da 
Computação. São Paulo: Cengage Learning, 2011.
GARCIA-MOLINA, Hector. Implementação de sistemas de bancos de dados. 
Rio de Janeiro: Campus, 2001.
GROB, B. Televisão Básica. Rio de Janeiro: Guanabara Dois, 1979.
HODGES, Andrew. The Alan Turing Home Page. Disponível em: <http://www.
turing.org.uk>. Acesso em: 10 dez. 2011.
HP. Disponível em: <http://www.hp.com>. Acesso em: 11 dez. 2011.
IBM. Um pouco de história. Disponível em: <www.ibm.com>. Acesso em: 13 fev. 
2007. 
 
IBM. The Harvard Mark I. Disponível em: <www.ibm.com>. Acesso em: 10 dez. 
2011.
ISHIKAWA, K. What is total quality control?: the Japanase way. Prentice-Hall, 
1985.
ISO/IEC – International Organization for Standardization and International 
Electrotechnical Commission. ISO/IEC 15939 Software engineering – Software 
measurement process. 2002.
JURAN, J. M. Juran´s Quality Control Handbook. New York: McGraw-Hill, 
1988.
KETTELERIJ, Richard. Designing a Measurement Programme for Software 
Development Projects. Master’s Thesis. Faculty of Science. University of 
Amsterdam. The Netherlands, 2006.
225
KISHIMOTO, Tizuko Morchida (Org.). Jogo, brinquedo, brincadeira e a 
educação. 3 ed. São Paulo: Cortez, 1999.
KOSCIANSKI, André; SOARES, Michel dos Santos. Qualidade de software: 
aprenda as metodologias e técnicas mais modernas para o desenvolvimento de 
software. São Paulo: Novatec, 2006. 
KUROSE, James S. Redes de Computadores e a Internet: uma nova abordagem. 
São Paulo: Addison Wesley, 2003.
MARINHO. Elton. Novas Tecnologias de Informação e Comunicação. Disponível 
em: <www.ebah.com.br>. Acesso em: 17 nov. 2011.
McLAUGHLIN, John; WEIMERS, Leigh; WINSLOW, Ward. Silicon Valley: 110 
Years Renaissance. Palo Alto: Santa Clara Valley Historical Association, 2008.
MICROSOFT. Disponível em: <http://www.microsoft.com>. Acesso em: 11 dez. 
2011.
MURCIA, J. A. M. et al. Aprendizagem através do jogo. Porto Alegre: Artmed, 
2005.
PAPERT. Daily Papert. Disponível em: <http://dailypapert.com>. Acesso em: 10 
dez. 2011.
PETERS, James F.; PEDRYCS, Witold. Engenharia de Software. Rio de Janeiro: 
Campus, 2001.
PFLEEGER, Shari Lawrence. Engenharia de Software: teoria e prática. 2 ed. São 
Paulo: Prentice Hall, 2004.
PRESSMAN, Roger S. Engenharia de Software. São Paulo: Makron Books, 1995.
PSM – Practical Software and Systems Measurement. Practical Software and 
Systems Measurement: a foundation for objective project management, Version 
4.0c. 2003. Disponível em: <http://www.psmsc.com>. Acesso em: 25 jan. 2008.
ROCHA, Luiz Augusto de Giordano. Jogos de empresa: desenvolvimento de um 
modelo para aplicação no ensino de custos industriais. 1997. 56f. Dissertação 
(Mestrado em Engenharia de Produção) – Programa de Pós-Graduação em 
Engenharia de Produção, Universidade Federal de Santa Catarina, Florianópolis, 
1997.
ROCKENBACH, Renato. FWMetric: framework para métricas. 2003. 98 f. 
Dissertação (Mestrado em Ciência da Computação) – Programa de Pós-
Graduação em Ciência da Computação, Universidade Federal de Santa Catarina, 
Florianópolis, 2003.
226
SC. University of South Carolina. Disponível em: <http://www.sc.edu>. Acesso 
em: 17 nov. 2011.
SENGER, Hermes. Redes Locais, Metropolitanas e de Longa Distância. 
Disponível em: <www-usr.inf.ufsm.br/~candia/aulas/espec/Aula_2_LAN_MAN_
WAN.pdf>. Acesso em: 29 jan.2008.
SHEWHART, Walter Andrew. Economic control of quality of manufactured 
product. New York: D. Van Nostrand Company, 1931.
SOARES, Luiz Fernando Gomes. Redes de computadores: das LANs, MANs e 
WANs às 
redes ATM. Rio de Janeiro: Campus, 1995.
SOLINGEN, Rini van; BERGHOUT, Egon. The Goal/Question/Metric Method: 
a practical guide for quality improvement of software development. London: 
McGraw-Hill, 1999.
SOMMERVILLE, Ian. Engenharia de Software. São Paulo: Pearson Addison 
Wesley, 2003.
STRATHERN, Paul. Turing e o computador em 90 minutos. Rio de Janeiro: Jorge 
Zahar Ed., 2000.
TAM. The Apple Museum. Disponível em: <http://www.theapplemuseum.com>. 
Acesso em: 10 dez. 2011.
TANENBAUM, Andrew S. Redes de Computadores. Rio de Janeiro: Campus, 
1997.
VIDAS FAMOSAS. Tim John Berners-Lee, el padre de la Web. Disponível em: 
<http://vidasfamosas.com>. Acesso em: 10 dez. 2011.
UFRGS. Universidade Federal do Rio Grande do Sul. Disponível em: <http://
www.ufrgs.br>. Acesso em: 16 nov. 2011.
WILLRICH, Roberto. Apostila: sistemas multimídia distribuídos. Curso de 
Mestrado em Ciências da Computação, Florianópolis (SC), UFSC, 2002.
WOSNIAK, Steve. iWoz: a verdadeira história da Apple segundo seu 
cofundador. São Paulo: Évora, 2011.
227
ANOTAÇÕES
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
228
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
229
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
230
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
________________________________________________________________________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
231
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
232
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________
____________________________________________________________

Mais conteúdos dessa disciplina