Buscar

Bases Computacionais da Ciência

Prévia do material em texto

Bases
Computacionais
da Ciência
Universidade Federal do ABC
Esta obra foi licenciada com a Licenc¸a Crea-
tive Commons Attribution-NonCommercial-NoDerivs 3.0 Unported.
Para ver uma co´pia desta licenc¸a, visite http://creativecommons.org/
licenses/by-nc-nd/3.0/ ou envie um
pedido por carta para Creative Commons, 444 Castro Street, Suite 900,
Mountain View, California, 94041, USA.
Lista de Figuras
2.1 Uma maquina de Computaca˜o de propo´sito u´nico . . . . . . . 9
2.2 Um computador baseado no modelo de Turing . . . . . . . . . 10
2.3 Mesmo programa, diferentes dados de entrada - (FOROUZAN;
MOSHARRAF, 2011) . . . . . . . . . . . . . . . . . . . . . . . . 11
2.4 Mesmos dados de entrada, diferentes programas- (FOROUZAN;
MOSHARRAF, 2011) . . . . . . . . . . . . . . . . . . . . . . . . 11
2.5 O modelo de von Neumann - (FOROUZAN; MOSHARRAF, 2011) 12
2.6 Computador Pessoal - Desktop . . . . . . . . . . . . . . . . . 17
2.7 Computador Pessoal - Laptop . . . . . . . . . . . . . . . . . . 17
2.8 Computador Pessoal - Tablet . . . . . . . . . . . . . . . . . . 17
2.9 Sistema Computacional Embutido - Celular . . . . . . . . . . 18
2.10 Sistema Computacional Embutido - GPS . . . . . . . . . . . . 18
2.11 Sistema Computaciolna Embutido - Smart Card . . . . . . . . 18
2.12 Sistema Computaciolna Embutido - Smart Label . . . . . . . . 19
2.13 Unidade Central de Processamento ou CPU dos computadores
pessoais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.14 Microship dos Smart Cardl . . . . . . . . . . . . . . . . . . . . 20
2.15 Dispositivo de armazenamento Principal - Memo´ria RAM . . . 20
2.16 Dispositivo de armazenamento Secunda´rio - HD ou Disco R´ıgido 21
2.17 Dispositivo de armazenamento Secunda´rio - HD Externo . . . 21
2.18 Dispositivo de armazenamento Secunda´rio - Pen Drive . . . . 21
2.19 Dispositivo de armazenamento Secunda´rio - Carta˜o de Celuar 22
2.20 Dispositivo de armazenamento Secunda´rio - Placa Ma˜e . . . . 22
2.21 Gabinete dos computadores de mesa onde e´ localizado Placa
ma˜e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.22 Localizac¸a˜o da placa ma˜e em um computador porta´til . . . . . 23
2.23 Abrir Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.24 Processar Texto . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.25 Salvar Texto . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.26 Divisa˜o das a´reas em Cieˆncia da Computac¸a˜o . . . . . . . . . 26
2.27 Divisa˜o das a´reas em Cieˆncia da Computac¸a˜o . . . . . . . . . 27
3.1 Exemplo de extrapolac¸a˜o: os pontos cheios sa˜o os dados da
pesquisa realizada entre os anos de 2000 e 2009; a curva cheia
e´ uma func¸a˜o matema´tica que descreve os dados obtidos nes-
tes anos; a curva tracejada e´ a func¸a˜o extrapolada em datas
futuras; os pontos vazios sa˜o os dados futuros (desconhecidos). 32
ii
3.2 Espac¸o em func¸a˜o do tempo para um movimento uniforme-
mente variado. Em (a) e (c) temos os pontos onde o corpo
esta´ em s = 0, enquanto que (b) ilustra o valor ma´ximo de s . 33
3.3 Gra´fico de f(x) dada por (3.2) . . . . . . . . . . . . . . . . . . 33
3.4 Regia˜o em torno das ra´ızes de (3.2) . . . . . . . . . . . . . . . 33
3.5 Resposta de treˆs elevadores a um comando. . . . . . . . . . . . 34
3.6 Exemplo de laˆmpada ligada a um gerador. . . . . . . . . . . . 35
3.7 Nu´mero de moles de C em func¸a˜o do valor de K . . . . . . . . 36
3.8 Gra´fico da func¸a˜o seno . . . . . . . . . . . . . . . . . . . . . . 41
3.9 Gra´fico da func¸a˜o seno . . . . . . . . . . . . . . . . . . . . . . 42
3.10 Gra´fico obtido no item (2) da Atividade 1. . . . . . . . . . . 45
3.11 Gra´fico da BER em func¸a˜o da SNR usando escala linear nos
dois eixos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.12 Gra´fico do logar´ıtmo da BER em func¸a˜o da SNR. . . . . . . . 49
3.13 Gra´fico usado no exerc´ıcio 2. . . . . . . . . . . . . . . . . . . . 50
3.14 Gra´ficos usados no Exerc´ıcio 3. . . . . . . . . . . . . . . . . . 53
4.1 Localizac¸a˜o de me´dia, mediana e moda em uma distribuic¸a˜o
assime´trica. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
4.2 Gra´fico de frequeˆncia relativa . . . . . . . . . . . . . . . . . . 71
4.3 Histograma mostrando distribuic¸a˜o da idade (em anos) em
uma amostra de 50 pessoas. . . . . . . . . . . . . . . . . . . . 71
4.4 Gra´fico de dispersa˜o . . . . . . . . . . . . . . . . . . . . . . . 72
4.5 Gra´fico de dispersa˜o, nu´mero de acidentes em func¸a˜o de tempo
de treinamento. . . . . . . . . . . . . . . . . . . . . . . . . . . 74
4.6 Gra´fico de dispersa˜o, consumo de bens em func¸a˜o do aumento
da renda me´dia. . . . . . . . . . . . . . . . . . . . . . . . . . . 74
4.7 Gra´fico de dispersa˜o, QI em func¸a˜o do peso da pessoa. . . . . 75
4.8 Exemplo de correlac¸a˜o na˜o-linear. . . . . . . . . . . . . . . . . 75
4.9 Outro exemplo de correlac¸a˜o na˜o-linear. . . . . . . . . . . . . 75
4.10 Diversos exemplos de relac¸o˜es entre varia´veis e respectivos co-
eficientes de correlac¸a˜o. Fonte: http://en.wikipedia.org/
wiki/File:Correlation_examples . . . . . . . . . . . . . . . 76
4.11 Representac¸a˜o gra´fica do intervalo poss´ıvel para o coeficiente
de correlac¸a˜o. . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
4.12 Gra´fico de dispersa˜o para os dados da Tabela 4.10. . . . . . . 77
4.13 Gra´fico de dispersa˜o, nu´mero de cegonhas versus populac¸a˜o
da cidade de Oldemberg. . . . . . . . . . . . . . . . . . . . . . 78
4.14 Reta de regressa˜o, exprimindo relac¸a˜o entre faltas e nota final. 80
4.15 Curva de regressa˜o exponencial . . . . . . . . . . . . . . . . . 81
4.16 Curva de regressa˜o logar´ıtmica . . . . . . . . . . . . . . . . . . 81
iii
4.17 Curva de regressa˜o polinomial . . . . . . . . . . . . . . . . . . 82
4.18 Curva de regressa˜o de poteˆncia . . . . . . . . . . . . . . . . . 82
4.19 Dados para construc¸a˜o do gra´fico de correlac¸a˜o. . . . . . . . . 83
4.20 Escolhendo gra´fico de dispersa˜o . . . . . . . . . . . . . . . . . 83
4.21 Definic¸a˜o do intervalo de dados . . . . . . . . . . . . . . . . . 84
4.22 Selec¸a˜o das colunas de dados . . . . . . . . . . . . . . . . . . . 84
4.23 Inserindo nome . . . . . . . . . . . . . . . . . . . . . . . . . . 85
4.24 Inserindo coluna X . . . . . . . . . . . . . . . . . . . . . . . . 85
4.25 Inserindo coluna Y . . . . . . . . . . . . . . . . . . . . . . . . 86
4.26 Escolha de t´ıtulo e nome das varia´veis. . . . . . . . . . . . . . 86
4.27 Gra´fico de dispersa˜o . . . . . . . . . . . . . . . . . . . . . . . 87
4.28 Tela de selec¸a˜o do tipo de regressa˜o . . . . . . . . . . . . . . . 87
4.29 Resultado da regressa˜o . . . . . . . . . . . . . . . . . . . . . . 88
4.30 Selecionando func¸a˜o correlac¸a˜o. . . . . . . . . . . . . . . . . . 88
4.31 Selecionando as colunas de dados. . . . . . . . . . . . . . . . 89
4.32 Resultado final com o valor do coeficiente de correlac¸a˜o. . . . 89
4.33 Entrada de dados na planilha . . . . . . . . . . . . . . . . . . 90
4.34 Inserindo func¸a˜o . . . . . . . . . . . . . . . . . . . . . . . . . . 91
4.35 Selecionando func¸o˜es estat´ısticas . . . . . . . . . . . . . . . . . 91
4.36 Selecionando a func¸a˜o me´dia . . . . . . . . . . . . . . . . . . . 92
4.37 Selecionando coluna de dados . . . . . . . . . . . . . . . . . . 92
4.38 Resultado da me´dia . . . . . . . . . . . . . . . . . . . . . . . . 93
4.39 Escolhendo func¸a˜o mediana . . . . . . . . . . . . . . . . . . . 94
4.40 Escolhendo a func¸a˜o moda . . . . . . . . . . . . . . . . . . . . 94
4.41 Resultados das medidas de tendeˆncia central . . . . . . . . . . 95
4.42 Apareˆncia da planilha de dados logo apo´s ser carregada. . . . 96
4.43 Atribuindo ro´tulos a linhas onde as medidas sera˜o inseridas. . 96
4.44 Selecionando a faixa de valores. . . . . . . . . . . . . . . . . . 97
4.45 Selecionando a colunaonde os valores de frequeˆncia sera˜o in-
seridos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
4.46 Selecionando a func¸a˜o frequeˆncia. . . . . . . . . . . . . . . . . 98
4.47 Selecionando dados para a construc¸a˜o do histograma. . . . . . 99
4.48 Selecionando limites dos intervalos (classes) do histograma. . . 99
4.49 Inserindo coluna de ro´tulos. . . . . . . . . . . . . . . . . . . . 100
4.50 Selecionando tipo de gra´fico. . . . . . . . . . . . . . . . . . . . 100
4.51 Selecionando coluna de ro´tulos. . . . . . . . . . . . . . . . . . 100
4.52 Inserindo t´ıtulo. . . . . . . . . . . . . . . . . . . . . . . . . . . 101
4.53 Histograma final. . . . . . . . . . . . . . . . . . . . . . . . . . 101
5.1 Exemplo de co´digo de barras (extra´ıdo da livraria virtual Ama-
zon.com (AMAZON. . . , 2011)) . . . . . . . . . . . . . . . . . . . 108
iv
5.2 Livro relacionado ao co´digo de barras (extra´ıdo da livraria
virtual Amazon.com (AMAZON. . . , 2011)) . . . . . . . . . . . . 109
5.3 Lista de supermercado. . . . . . . . . . . . . . . . . . . . . . . 110
5.4 Atividade 1. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
5.5 Atividade 1: janela para importar arquivo “.csv”. . . . . . . . 122
5.6 Atividade 1: janela para formatar ce´lulas. . . . . . . . . . . . 122
5.7 Atividade 1: janela para definir valores va´lidos para os dados. 123
5.8 Atividade 1: janela para definir alerta de erro caso seja digi-
tado um dado inva´lido. . . . . . . . . . . . . . . . . . . . . . . 123
5.9 Atividade 1: janela Classificar. . . . . . . . . . . . . . . . . 124
5.10 Atividade 1: janela para calcular subtotais. . . . . . . . . . . . 125
5.11 Janela para definic¸a˜o do filtro. (Atividade 5.) . . . . . . . . . 126
5.12 Sistema de Amortizac¸a˜o Constante. . . . . . . . . . . . . . . . 127
6.1 Janela do RoboMind com o controle remoto aberto. . . . . . 134
6.2 Janela do RoboMind com comandos para o roboˆ percorrer
um quadrado. . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
6.3 Criac¸a˜o do cena´rio para o RoboMind . . . . . . . . . . . . . . 138
6.4 Visualizac¸a˜o do mapa criado dentro do RoboMind . . . . . . . 138
6.5 Representac¸a˜o de um plano cartesiano . . . . . . . . . . . . . 139
6.6 Uma poss´ıvel resposta para o exerc´ıcio de percorrer os treˆs
pontos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
6.7 Controle de execuc¸a˜o do programa . . . . . . . . . . . . . . . 140
6.8 Um poss´ıvel caminho para o exerc´ıcio de percorrer os treˆs pontos140
6.9 Console do Scilab: I´cone para abrir o SciNotes (Figura 6.10). 143
6.10 Janela do SciNotes para editar o co´digo-fonte. . . . . . . . . . 143
7.1 Descric¸a˜o do mapa com uma caixa . . . . . . . . . . . . . . . 151
7.2 Cena´rio com uma caixa . . . . . . . . . . . . . . . . . . . . . . 151
7.3 Descric¸a˜o do mapa com duas caixas . . . . . . . . . . . . . . . 153
7.4 Cena´rio com duas caixas . . . . . . . . . . . . . . . . . . . . . 153
8.1 Algoritmo de Euclides do Ma´ximo Divisor Comum de dois
nu´meros inteiros positivos: MDC(320,250) = 10. . . . . . . . . 164
9.1 Experimento Real de Crash-Test. . . . . . . . . . . . . . . . . 171
9.2 Proto´tipo do Roboˆ PEOPLER-II. . . . . . . . . . . . . . . . . 171
9.3 Resultado Experimental no Chaveamento de Roda para Perna. 172
9.4 Exemplos de Modelos F´ısicos Representados por um Mapa do
Brasil e uma Maquete de Avia˜o em (a) e (b), respectivamente. 173
9.5 Modelo e suas Varia´veis. . . . . . . . . . . . . . . . . . . . . . 176
v
9.6 Ambiente Exemplo com a identificac¸a˜o dos Roboˆs, Paredes e
a Sa´ıda. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
9.7 (a) Mapa na Memo´ria no In´ıcio da Simulac¸a˜o. (b) O Mesmo
Mapa ao Te´rmino da Simulac¸a˜o. . . . . . . . . . . . . . . . . . 179
9.8 Roboˆ “da Vinci” Utilizado em Cirurgias (VINCI, 2011). . . . . 183
9.9 Simulador de Pec¸as. . . . . . . . . . . . . . . . . . . . . . . . . 183
9.10 Projeto RobCup Rescue e seus Ambiente de Simulac¸a˜o para
Resgate em Situac¸o˜es de Desastre. Fonte: (RESCUE, 2011). . . 184
9.11 Movimentac¸a˜o dos Agentes em Direc¸a˜o a` Sa´ıda Formando um
Arco (FRANc¸A, 2010). . . . . . . . . . . . . . . . . . . . . . . . 186
9.12 Ciclo de Vida de uma Simulac¸a˜o Computacional. . . . . . . . 187
9.13 Circunfereˆncia Circunscrita em um Quadrado. . . . . . . . . . 191
9.14 Circunfereˆncia circunscrita em um quadrado e com uma se´rie
de pontos aleatoriamente distribu´ıdos sobre a area do quadrado.193
9.15 A Distaˆncia d entre qualquer ponto A e o centro da circunfe-
reˆncia pode ser calculada atrave´s de um ca´lculo de uma hipo-
tenusa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194
9.16 Ambiente Scilab® e SciNotes. . . . . . . . . . . . . . . . . . . 195
9.17 Ambiente de Resgate no RoboMind. . . . . . . . . . . . . . . . 198
9.18 Mapa Utilizado para a Criac¸a˜o do Cena´rio no RoboMind. . . . 199
9.19 Fluxograma do Cena´rio de Resgate. . . . . . . . . . . . . . . 200
9.20 Nova Posic¸a˜o da Vı´tima Apo´s ser Resgatada. . . . . . . . . . . 204
9.21 Comandos para se Implementar o Me´todo de Newton no Am-
biente SciNotes. . . . . . . . . . . . . . . . . . . . . . . . . . . 205
9.22 Ana´lise Gra´fica do Polinoˆmio. . . . . . . . . . . . . . . . . . . 208
10.1 Lanc¸amento de um proje´til. . . . . . . . . . . . . . . . . . . . 215
10.2 Lanc¸amento de proje´teis em diferentes condic¸o˜es iniciais. . . . 215
10.3 Estrutura atoˆmica de uma mole´cula de a´gua. Os a´tomos esta˜o
mostrados como esferas e coloridos por tipo atoˆmico, enquanto
as ligac¸o˜es covalentes esta˜o mostradas como varetas. . . . . . . 219
10.4 Energia potencial relativa ao estiramento de uma ligac¸a˜o cova-
lente O-H. Para o gra´fico, foram empregados k1 = 553kcal.mol−1.A˚−2,
k2 = 276,5kcal.mol−1.A˚−2, k3 = 1106kcal.mol−1.A˚−2 e x0 =
0.9572A˚. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 220
10.5 Mole´cula de a´gua. Qual deve ser a energia potencial desta
mole´cula? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
vi
Lista de Tabelas
2.1 Exemplos de Sistemas Operacionais . . . . . . . . . . . . . . . 23
2.2 Exemplos de Aplicativos . . . . . . . . . . . . . . . . . . . . . 24
4.1 Prefereˆncias dos estudantes por cursos . . . . . . . . . . . . . 62
4.2 Distribuic¸a˜o de alunos . . . . . . . . . . . . . . . . . . . . . . 62
4.3 Prefereˆncias dos alunos, em porcentagem . . . . . . . . . . . . 63
4.4 Um exemplo de ca´lculo de frequeˆncia acumulada. . . . . . . . 65
4.5 Tabela de notas de uma classe. . . . . . . . . . . . . . . . . . 66
4.6 Tabela para ca´lculo de mediana . . . . . . . . . . . . . . . . . 67
4.7 Exemplo de distribuic¸a˜o unimodal . . . . . . . . . . . . . . . . 67
4.8 Exemplo de distribuic¸a˜o bimodal. . . . . . . . . . . . . . . . . 68
4.9 Exemplos de pares de varia´veis cujas relac¸o˜es podem ser estu-
dadas usando correlac¸a˜o e/ou regressa˜o . . . . . . . . . . . . . 73
4.10 Tabela de notas e faltas para cada aluno. . . . . . . . . . . . . 77
4.11 Valores intermedia´rios usados no ca´lculo do coeficiente de cor-
relac¸a˜o. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
4.12 Distribuic¸a˜o de escolaridade segundo tipo de resideˆncia. . . . . 102
4.13 Distribuic¸a˜o dos sobreviventes de acordo com o sexo. . . . . . 103
4.14 Distaˆncias obtidas pelos vencedores do salto triplo masculino
em Olimp´ıadas. . . . . . . . . . . . . . . . . . . . . . . . . . . 103
4.15 Taxa de crescimento ma´xima em func¸a˜o de intensidade de luz. 104
4.16 Dados para ana´lise de regressa˜o . . . . . . . . . . . . . . . . . 105
5.1 Diciona´rio de dados do arquivo idh.csv. . . . . . . . . . . . . . 128
7.1 Comandos de observac¸a˜o do ambiente. . . . . . . . . . . . . . 148
7.2 Conectores lo´gicos e a sua interpretac¸a˜o . . . . . . . . . . . . 150
7.3 Sintaxe paraas operac¸o˜es de comparac¸a˜o entre nu´meros no
SciLab. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
vii
Suma´rio
1 Prefa´cio 2
1.1 Estrutura do Livro . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2 O Conteu´do da Disciplina . . . . . . . . . . . . . . . . . . . . 3
1.3 Demais Recursos da Disciplina . . . . . . . . . . . . . . . . . . 4
1.4 Agradecimentos . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2 Fundamentos da Computac¸a˜o 6
2.1 Introduc¸a˜o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
2.2 O Computador . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2.2.1 Modelo de Turing . . . . . . . . . . . . . . . . . . . . . 9
2.2.2 Modelo de Von Newman . . . . . . . . . . . . . . . . . 12
2.2.3 Histo´rico . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.3 Sistemas Computacionais e Seus Componentes . . . . . . . . . 16
2.3.1 Hardware . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3.2 Software . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2.3.3 Exemplo de Funcionamento de um Sistema Computa-
cional e Seus Componentes . . . . . . . . . . . . . . . . 23
2.4 Organzac¸a˜o da Cieˆncia da Computac¸a˜o . . . . . . . . . . . . . 24
2.4.1 A´reas de Software . . . . . . . . . . . . . . . . . . . . . 26
2.4.2 A´reas de Hardware . . . . . . . . . . . . . . . . . . . . 29
2.5 Considerac¸o˜es Finais . . . . . . . . . . . . . . . . . . . . . . . 29
2.6 Conjunto de Pra´ticas . . . . . . . . . . . . . . . . . . . . . . . 30
3 Representac¸a˜o Gra´fica de Func¸o˜es 31
3.1 Introduc¸a˜o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
3.2 Emprego do Scilab® para fazer gra´ficos . . . . . . . . . . . . . 36
3.2.1 Operadores Ba´sicos . . . . . . . . . . . . . . . . . . . . 37
3.2.2 Fazendo o gra´fico de uma func¸a˜o simples . . . . . . . . 39
3.2.3 Cuidados com outros tipos de func¸o˜es . . . . . . . . . . 42
3.3 Atividades em Aula . . . . . . . . . . . . . . . . . . . . . . . . 43
3.4 Exerc´ıcios Ba´sicos . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.5 Exerc´ıcios Avanc¸ados . . . . . . . . . . . . . . . . . . . . . . . 52
3.6 Considerac¸o˜es Finais . . . . . . . . . . . . . . . . . . . . . . . 54
4 Noc¸o˜es de Estat´ıstica, Correlac¸a˜o e Regressa˜o 56
4.1 Introduc¸a˜o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
4.2 Conceitos Ba´sicos . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.2.1 Tipos de Dados . . . . . . . . . . . . . . . . . . . . . . 60
viii
4.2.2 Distribuic¸a˜o de Frequeˆncias . . . . . . . . . . . . . . . 61
4.2.3 Medidas de Tendeˆncia Central . . . . . . . . . . . . . . 65
4.2.4 Medidas de Dispersa˜o . . . . . . . . . . . . . . . . . . 69
4.2.5 Visualizac¸a˜o de Dados Amostrais . . . . . . . . . . . . 70
4.3 Correlac¸a˜o e Regressa˜o . . . . . . . . . . . . . . . . . . . . . . 72
4.3.1 Gra´ficos de dispersa˜o e tipos de correlac¸a˜o . . . . . . . 73
4.3.2 Coeficiente de Correlac¸a˜o . . . . . . . . . . . . . . . . . 74
4.3.3 Causalidade versus Correlac¸a˜o . . . . . . . . . . . . . . 77
4.3.4 A Reta da Regressa˜o Linear Estimada . . . . . . . . . 79
4.3.5 O Coeficiente de Determinac¸a˜o . . . . . . . . . . . . . 80
4.3.6 Outros tipos de correlac¸a˜o . . . . . . . . . . . . . . . . 81
4.3.7 Criando um gra´fico de correlac¸a˜o com o BrOffice Calc 81
4.4 Exerc´ıcio da Aula Pra´tica . . . . . . . . . . . . . . . . . . . . 90
4.5 Exerc´ıcios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
4.6 Considerac¸o˜es Finais . . . . . . . . . . . . . . . . . . . . . . . 104
5 Base de Dados 106
5.1 Introduc¸a˜o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
5.2 Entendendo a Base de Dados . . . . . . . . . . . . . . . . . . 108
5.2.1 Dados e Informac¸o˜es . . . . . . . . . . . . . . . . . . . 108
5.2.2 O que e´ uma Base de Dados? . . . . . . . . . . . . . . 109
5.3 Organizac¸a˜o de Dados . . . . . . . . . . . . . . . . . . . . . . 112
5.3.1 Tipos de Dados e Domı´nios . . . . . . . . . . . . . . . 114
5.4 Arquivos Estruturados . . . . . . . . . . . . . . . . . . . . . . 118
5.5 Consultas em Bases de Dados . . . . . . . . . . . . . . . . . . 119
5.6 Exerc´ıcios da Aula Pra´tica . . . . . . . . . . . . . . . . . . . . 120
5.7 Exerc´ıcios Complementares . . . . . . . . . . . . . . . . . . . 126
5.8 Considerac¸o˜es Finais . . . . . . . . . . . . . . . . . . . . . . . 128
6 Lo´gica de Programac¸a˜o: Varia´veis e Estruturas
Sequ¨enciais 130
6.1 Introduc¸a˜o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130
6.2 Delegando tarefas - O Conceito de Instruc¸a˜o . . . . . . . . . . 131
6.3 Sequeˆncia de Instruc¸o˜es - Estruturas Sequenciais . . . . . . . . 132
6.4 Exerc´ıcios para Sala de Aula . . . . . . . . . . . . . . . . . . . 137
6.5 Exerc´ıcios com o Robomind . . . . . . . . . . . . . . . . . . . 141
6.6 Ilustrando os conceitos aprendidos com o Scilab . . . . . . . 142
6.6.1 Entrada e sa´ıda . . . . . . . . . . . . . . . . . . . . . . 144
6.7 Exerc´ıcios com o Scilab . . . . . . . . . . . . . . . . . . . . . . 145
ix
7 Lo´gica de Programac¸a˜o: Estruturas Condicionais 147
7.1 Introduc¸a˜o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
7.2 Tomando deciso˜es - Estruturas Condicionais . . . . . . . . . . 147
7.3 Exerc´ıcios para Sala de Aula . . . . . . . . . . . . . . . . . . . 150
7.4 Exerc´ıcios com o Robomind . . . . . . . . . . . . . . . . . . . 153
7.5 Ilustrando os Conceitos Aprendidos usando Scilab . . . . . . 155
7.5.1 Exerc´ıcios com o Scilab . . . . . . . . . . . . . . . . . . 157
8 Lo´gica de Programac¸a˜o: Estruturas de Repetic¸a˜o 159
8.1 Introduc¸a˜o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 159
8.2 Repetindo as mesmas instruc¸o˜es . . . . . . . . . . . . . . . . . 159
8.3 Criando programas complexos . . . . . . . . . . . . . . . . . . 161
8.4 Exerc´ıcios para Sala de Aula . . . . . . . . . . . . . . . . . . . 161
8.5 Exerc´ıcios com o Robomind . . . . . . . . . . . . . . . . . . . 162
8.6 Ilustrando os Conceitos Aprendidos usando Scilab . . . . . . 163
8.7 Exerc´ıcios com o Scilab . . . . . . . . . . . . . . . . . . . . . . 166
9 Modelagem e Simulac¸a˜o Computacional: Conceitos Fun-
damentais 168
9.1 Introduc¸a˜o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
9.2 Definic¸a˜o de Sistema . . . . . . . . . . . . . . . . . . . . . . . 169
9.2.1 Formas de se Estudar um Sistema . . . . . . . . . . . . 170
9.3 Definic¸a˜o de Modelo . . . . . . . . . . . . . . . . . . . . . . . 176
9.3.1 Construc¸a˜o de Modelos . . . . . . . . . . . . . . . . . . 176
9.3.2 Modelos de Simulac¸a˜o . . . . . . . . . . . . . . . . . . 180
9.4 Simulac¸a˜o Computacional . . . . . . . . . . . . . . . . . . . . 182
9.4.1 Sistemas Computacionais para Simulac¸a˜o . . . . . . . . 182
9.4.2 Verificac¸a˜o e Validac¸a˜o . . . . . . . . . . . . . . . . . . 185
9.4.3 Metodologia para o Desenvolvimento de Simulac¸o˜es Com-
putacionais . . . . . . . . . . . . . . . . . . . . . . . . 187
9.5 Exerc´ıcios da Aula Pra´tica . . . . . . . . . . . . . . . . . . . . 189
9.5.1 Estimando o Valor de pi no Scilab® com o Me´todo de
Monte Carlo . . . . . . . . . . . . . . . . . . . . . . . . 189
9.5.2 O Domı´nio de Resgate no RoboMind . . . . . . . . . . 197
9.6 Conjunto de Pra´ticas . . . . . . . . . . . . . . . . . . . . . . . 203
9.6.1 RoboMind e o Controle de Enchentes . . . . . . . . . . 204
9.6.2 ?? Me´todo de Newton-Raphson . . . . . . . . . . . . . 204
10 Modelagem e Simulac¸a˜o Computacional: A Ci-
eˆncia na Pra´tica 210
10.1 Introduc¸a˜o . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210
x
10.2 Simulac¸a˜o como um Laborato´rio: Integrando os Me´todos de
Deduc¸a˜o e Induc¸a˜o . . . . . . . . . . . . . . . . . . . . . . . . 210
10.3 Exerc´ıcios da Aula Pra´tica . . . . . . . . . . .. . . . . . . . . 212
10.3.1 Simulac¸a˜o da Trajeto´ria de um Proje´til . . . . . . . . . 212
10.4 Conjunto de Pra´ticas . . . . . . . . . . . . . . . . . . . . . . . 218
10.4.1 ?? Ca´lculo de Energias em um Sistema Atoˆmico Atra-
ve´s de Modelagem Molecular . . . . . . . . . . . . . . . 218
1
1 Prefa´cio
Hoje em dia, encontramos a tecnologia da informac¸a˜o em (quase) todos os
domı´nios da vida. Especialmente no ambiente acadeˆmico, o trabalho com
computadores se faz necessa´rio em todas as a´reas, das Cieˆncias Naturais,
Matema´tica, Computac¸a˜o, Biologia, Qu´ımica, F´ısica, Engenharias, Licenci-
aturas, ate´ as Cieˆncias Sociais e as Artes. Por isto, o uso de computadores
e ferramentas computacionais deveria fazer parte do conhecimento de alunos
de qualquer mate´ria universita´ria desde o in´ıcio dos estudos. A UFABC criou
para este fim a disciplina Bases Computacionais da Cieˆncia.
A disciplina faz parte de um conjunto de seis disciplinas “de base” do
curr´ıculo da UFABC. As outras disciplinas deste conjunto sa˜o Bases Mate-
ma´ticas, Base Experimental das Cieˆncias Naturais, Estrutura da Mate´ria,
Origem da Vida e Diversidade dos Seres Vivos e Bases Epistemolo´gicas
da Cieˆncia Moderna. Este conjunto de mate´rias e´ cursado no primeiro ano
tanto do Bacharelado em Cieˆncia e Tecnologia (BC&T) como do Bacha-
relado em Cieˆncias e Humanidades (BC&H). O propo´sito e´ criar um base
homegeˆnea de conhecimento para os alunos de todas as a´reas de graduac¸a˜o
oferecidas pela UFABC. Ale´m de serem importantes para o andamento dos
estudos seguintes, as disciplinas de base representam o primeiro contato do
aluno com a interdisciplinaridade, ponto central do projeto pedago´gico da
UFABC. A interdisciplinaridade visa a` percepc¸a˜o do aluno, de que as a´reas
da cieˆncia sa˜o interligadas, e de que para o bom entendimento de uma ma-
te´ria o conhecimento das a´reas relacionadas e´ indispensa´vel.
Para enfatizar a sua importaˆncia, parte dos exerc´ıcios apresentados neste
livro tratam de assuntos das outras disciplinas deste conjunto, assim de-
monstrando como as bases computacionais sa˜o aplicadas em outras a´reas da
cieˆncia.
O objetivo deste livro e´ auxiliar o aluno a estudar a disciplina Bases Com-
putacionais da Cieˆncia, apresentando as bases teo´ricas e um grande nu´mero
de exerc´ıcios, ja´ que o uso do computador se aprende principalmente atrave´s
da pra´tica. Esperamos que este livro seja uma importante ferramenta dida´-
tica para os alunos da disciplina e outras pessoas que gostariam de aprender
os conceitos ba´sicos da Computac¸a˜o. Desejamos um aprendizado frut´ıfero e
prazeroso.
2
1.1 Estrutura do Livro
A disciplina consiste, ale´m das provas e do projeto final, de nove aulas, cada
uma representada nos cap´ıtulos deste livro. Em cada cap´ıtulo ha´ uma intro-
duc¸a˜o sobre o conteu´do da aula, enunciando-se seus objetivos. Na sequ¨eˆncia
sec¸o˜es apresentam a parte teo´rica da aula, ilustrada por exemplos pra´ticos.
Em seguida ha´ duas sec¸o˜es de exerc´ıcios pra´ticos, uma contendo os exerc´ıcios
a serem feitos em sala de aula apo´s a apresentac¸a˜o do conteu´do pelo pro-
fessor, e outra sec¸a˜o com os exerc´ıcios de casa. Cada cap´ıtulo e´ finalizado
com as considerac¸o˜es finais e as refereˆncias bibliogra´ficas citadas no texto,
ou recomendadas para o estudo mais aprofundado do assunto da aula.
1.2 O Conteu´do da Disciplina
A disciplina Bases Computacionais da Cieˆncia pode ser dividida em quatro
grandes a´reas:
ˆ Fundamentos da Computac¸a˜o, cujos conceitos sa˜o apresentados no Ca-
p´ıtulo 2;
ˆ Representac¸a˜o e Ana´lise de Dados, com os conteu´dos apresentado nos
cap´ıtulos 3 a 5;
ˆ Lo´gica de Programac¸a˜o, com os conceitos apresentados nos cap´ıtulos 6
a 8.
ˆ Modelagem e Simulac¸a˜o Computacional, apresentadas nos cap´ıtulos 9
e 10.
Na aula Fundamentos da Computac¸a˜o sa˜o apresentados o pro´prio compu-
tador, seu histo´rico, seus componentes, os conceitos de hardware e software
e a organizac¸a˜o da Cieˆncia da Computac¸a˜o.
Na aula seguinte, aprende-se a empregar o software Scilab® para a repre-
sentac¸a˜o gra´fica e algumas operac¸o˜es de func¸o˜es. O software BrOffice Calc®
e´ usado na aula seguinte, Noc¸o˜es de Estat´ıstica, Correlac¸a˜o e Regressa˜o, onde
sa˜o apresentados os conceitos ba´sicos de va´rias medidas de tendeˆncia central
e dispersa˜o, e da visualizac¸a˜o de dados amostrais.
Em Base de Dados sa˜o explicados os termos dado, informac¸a˜o e base de
dados. Tambe´m, tem-se a apresentac¸a˜o de como usar o software BrOffice
Calc® para a organizac¸a˜o de dados, o trabalho com arquivos estruturados e
para fazer consultas em bases de dados.
3
Nas treˆs aulas sobre Lo´gica de Programac¸a˜o, e´ usado o programa RoboMind®
para familiarizar-se com a lo´gica de programac¸a˜o, e com estruturas condici-
onais e de repetic¸a˜o, que sa˜o frequ¨entemente usadas na programac¸a˜o.
Nas u´ltimas duas aulas aprende-se a representar sistemas simples por
modelos computacionais e fazer simulac¸o˜es.
1.3 Demais Recursos da Disciplina
A principal ferramenta para esta disciplina ale´m deste livro e´, logicamente,
um computador, idealmente conectado a` Internet. Na Internet encontra-se a
ambiente virtual de aprendizagem Tidia1, que sera´ utilizado nesta disciplina
para atividades tais como: disponibilizac¸a˜o do material dida´tico, transfereˆn-
cia de arquivos e a comunicac¸a˜o entre os alunos e entre aluno e professor,
para a entrega de exerc´ıcios e fo´runs interativos. Dentre os materiais dida´-
ticos dispon´ıveis no Tidia cita-se a versa˜o em PDF deste livro, bem como
tutoriais dos softwares usados nos exerc´ıcios pra´ticos. O acesso e o uso do
Tidia sa˜o ensinados na primeira aula.
Para fazer os exerc´ıcios pra´ticos e´ necessa´rio instalar no computador os
seguintes softwares :
ˆ Um navegador de Internet (por exemplo o Mozilla Firefox®) para aces-
sar o Tidia e fazer pesquisas online;
ˆ Scilab®, um software para computac¸a˜o nume´rica e a vizualizac¸a˜o de
func¸o˜es matema´ticas;
ˆ BrOffice Calc®, um programa de ca´lculos de planilha, que faz parte do
pacote OpenOffice® (ou BrOffice®);
ˆ RoboMind®, um programa para o ensino de Lo´gica de Programac¸a˜o.
Todos estes softwares sa˜o gratuitos e podem ser baixados, instalados e
utilizados para fins na˜o-comerciais sem pagamento de licenc¸as de uso.
1.4 Agradecimentos
A elaborac¸a˜o deste livro so´ foi poss´ıvel grac¸as ao apoio, confianc¸a, dedicac¸a˜o
e colaborac¸a˜o de muitas pessoas que ajudaram a torna´-lo uma realidade. Por
isso, fazemos questa˜o de registrar aqui nossos agradecimentos.
1Dispon´ıvel em http://tidia.ufabc.edu.br:8080
4
Em primeiro lugar, agradecemos quem acreditou no projeto quando este
era apenas uma ide´ia. Agradecemos a` Pro´-Reitoria de Graduac¸a˜o, em es-
pecial a` Professora Denise Consonni, ao Professor Da´cio Roberto Matheus
e ao Professor Derval dos Santos Rosa, pela iniciativa em estruturar uma
discussa˜o integrada em toda a UFABC sobre as seis disciplinas iniciais dos
bacharelados interdisciplinares, quais sejam: Base Experimental das Cieˆncias
Naturais, Bases Computacionais da Cieˆncia, Bases Epistemolo´gicas da Cieˆn-
cia Moderna, Bases Matema´ticas, Estrutura da Mate´ria, Origem da Vida e
Diversidade dos Seres Vivos.
De maneira especial, gostariamos de agradecer nominalmente aos profes-
sores que elaboraram este livro, sempre de maneira cooperativa e interativa.
Sa˜o eles: Alessandro Nascimento, Aline Neves, Carlos da Silva dos San-
tos, Cristiane Otero Reis Salum, Delmo Alves de Moura, Edson Pinheiro
Pimentel, Harlen Costa Batagelo, Humberto Luiz Razente, Irineu Antunes
Junior, Joa˜o Paulo Gois, Juliana Cristina Braga, Let´ıcia Rodrigues Bueno,
Luiz Carlos da Silva Rozante, Maria Camila Nardini Barioni, Maria das Gra-
c¸as Bruno Marietto, Ma´rcio Eisencraft, Ma´rcio K. Oikawa, Peter Claessens,
RicardoSuyama, Ronaldo Cristiano Prati e Wagner Tanaka Botelho.
A contribuic¸a˜o de cada um destes professores demonstra o domı´nio cient´ı-
fico e te´cnico nos temas abordados em cada cap´ıtulo. Entretanto, a preocupa-
c¸a˜o de todos foi muito ale´m da transmissa˜o pura e direta dos conhecimentos.
O processo de formac¸a˜o acadeˆmica dos alunos que utilizara˜o este material
dida´tico sempre foi o norte de nossas as discusso˜es. Sendo assim, as deciso˜es
de como seria a transmissa˜o dos conhecimentos foram direcionadas por per-
guntas tais como: (i) como apresentar conhecimentos amplos e complexos,
de maneira que os alunos iniciantes entendam seus significados e abrangeˆn-
cia? (ii) como apresentar os conhecimento de Computac¸a˜o na˜o como um fim
em si mesmo, mas como uma importante e indispensa´vel ferramentas para
todos os profissionais do se´culo XXI? (iii) como expor os alunos, de maneira
gradativa e coerente, a va´rias situac¸o˜es de estudo e pesquisa que envolvem a
vida acadeˆmica?
Agradecemos, tambe´m, a Robson dos Santos Franc¸a, que nos auxiliou de
maneira efetiva na parte te´cnica de editorac¸a˜o deste livro.
Maria das Grac¸as Bruno Marietto
Ma´rio Minami
Pieter Willem Westera
—– Santo Andre´, Sa˜o Paulo, Maio de 2012.
5
2 Fundamentos da Computac¸a˜o
Edson Pinheiro Pimentel
Juliana Cristina Braga
—– Universidade Federal do ABC
2.1 Introduc¸a˜o
Atualmente, e´ praticamente impensa´vel fazer pesquisa cient´ıfica sem o uso de
computac¸a˜o. A presenc¸a de instrumentos computadorizados coletando da-
dos o tempo todo e em todo lugar gera dados cient´ıficos em volumes que na˜o
podem mais ser entendidos sem ca´lculos simples e muitas vezes computac¸o˜es
complexas. Por exemplo, a Sloan Digital Sky Survey esta´ mapeando o ce´u
com um telesco´pio dedicado e nos primeiros cinco anos de operac¸a˜o, gerou
cerca de 6 TB de dados. Da mesma forma, simulac¸o˜es em grande escala de
modelos clima´ticos a reatores de fusa˜o geram enormes conjuntos de dados
em semanas ou dias devido a disponibilidade de computadores cada vez mais
ra´pidos. Tal volume de dados tem de ser analisado por te´cnicas de com-
putac¸a˜o. A` luz desta evoluc¸a˜o da cieˆncia, as futuras gerac¸o˜es de cientistas
devem compreender que precisara˜o envolver cada vez mais computac¸a˜o em
seu trabalho (HAMBRUSCH et al., 2009).
De fato, diversas a´reas de pesquisa esta˜o se tornando cada vez mais de-
pendentes da computac¸a˜o. Segundo George Johnson, no artigo ”All Science
is Computer Science” publicado no New York Times on the Web em 2001,
toda cieˆncia, ao que parece, esta´ se tornando cieˆncia da computac¸a˜o. Eis
alguns depoimentos que embasam esta afirmac¸a˜o (JOHNSON, 06/05/2011):
ˆ ”F´ısica e´ quase inteiramente computacional agora”, disse Thomas B.
Kepler, vice-presidente para assuntos acadeˆmicos do Santa Fe Institute,
um centro de pesquisa multidisciplinar, no Novo Me´xico. ”Ningue´m
sonharia em fazer esses grandes experimentos do acelerador sem uma
tremenda quantidade de poder computacional para analisar os dados.”
ˆ Mas a maior mudanc¸a, segundo ele, foi em biologia. ”Dez anos atra´s,
os bio´logos desconsideravam a necessidade de computac¸a˜o”, disse o Dr.
6
Kepler. ”Agora eles esta˜o cientes de que na˜o podem realmente fazer
biologia sem ele.”
ˆ Ha´ qu´ımica computacional, neurocieˆncia computacional, gene´tica com-
putacional, imunologia computacional e biologia molecular computaci-
onal. Mesmo a´reas como a sociologia e a antropologia esta˜o lentamente
sucumbindo a` mudanc¸a. No Instituto Santa Fe´, modelos de computa-
dor sa˜o usados para estudar os fatores que podem ter levado a` ascensa˜o
e queda de culturas complexas, - uma espe´cie de arqueologia artificial.
Segundo (HENDERSON et al., 2007) o Racioc´ınio Computacional (Com-
putational Thinking) e´ o nu´cleo de toda as disciplinas modernas nas a´reas
de Cieˆncias, Tecnologia, Engenharia e Matema´tica e e´ intr´ınseco a todas as
outras disciplinas, de A a Z. E´ utilizado na vida cotidiana desde ao fazer
um bolo, trocar um pneu ou escovar nossos dentes. O ce´rebro humano esta´
preparado para pensar computacionalmente, como esta˜o os modernos dispo-
sitivos de computac¸a˜o moderna. De certo modo, precisamos apenas despertar
o racioc´ınio computacional para melhor aplica´-los quando e onde precisarmos.
Racioc´ınio Computacional e´ um processo de resoluc¸a˜o de problemas que
inclui (mas na˜o se limita) a`s seguintes caracter´ısticas (WING, 2006):
ˆ Formulac¸a˜o de problemas de modo que permita fazer uso do computa-
dor e outras ferramentas para ajudar a resolveˆ-los; item Representac¸a˜o
de dados atrave´s da abstrac¸a˜o, tais como, modelagem e simulac¸a˜o
ˆ Automatizac¸a˜o de soluc¸o˜es atrave´s do pensamento algor´ıtmico (uma
sequeˆncia de instruc¸o˜es)
ˆ Generalizac¸a˜o e transfereˆncia do processo de soluc¸a˜o de um problema
para uma grande variedade de problemas.
Assim, seja qual for o campo de atuac¸a˜o escolhido, sera´ inevita´vel estudar
e entender um pouco de Computac¸a˜o ou Informa´tica.
A informa´tica e´ a te´cnica propulsora do processo de transformac¸a˜o tecno-
lo´gica e cultural que hoje muda, e continuara´ mudando a realidade subjetiva
e social, mas ela e´ apenas a parte imersa do ı´ceberg. Isso se deve ao fato de
que, enquanto o uso de palavras como software, hardware, CPU, micropro-
cessador, CD-ROM e´ apresentado como meta a ser alcanc¸ada na corrida a`
”alfabetizac¸a˜o”, as caracter´ısticas e os efeitos da introduc¸a˜o das novas tecno-
logias parecem estar cada vez mais reservados ao conhecimento de poucos.
O processo em questa˜o requer uma visa˜o global, unita´ria, uma observac¸a˜o
7
que, ao contra´rio do que vem ocorrendo, seja fruto de diversas abordagens
disciplinares e cient´ıficas.
Ao longo da histo´ria o homem tem precisado constantemente tratar e trans-
mitir informac¸a˜o, por isso nunca parou de criar ma´quinas e me´todos para
processa´-la. Com esta finalidade, surge a informa´tica como uma cieˆncia en-
carregada do estudo e desenvolvimento dessas ma´quinas e me´todos.
A informa´tica nasceu da ide´ia de auxiliar o homem nos trabalhos rotineiros
e repetitivos, em geral de ca´lculo e gerenciamento. O termo Informa´tica foi
criado na Franc¸a em 1962, e prove´m da contrac¸a˜o das palavras:
Information automatique (Informac¸a˜o automa´tica).
Uma das definic¸o˜es mais comumente aceitas: Informa´tica e´ a cieˆncia que
estuda o tratamento automa´tico e racional da informac¸a˜o.
Entre as principais func¸o˜es da informa´tica destacam-se:
ˆ desenvolvimento de novas ma´quinas;
ˆ desenvolvimento de novos me´todos de trabalho;
ˆ construc¸a˜o de aplicac¸o˜es automa´ticas;
ˆ melhoria de me´todos e aplicac¸o˜es existentes
2.2 O Computador
Do ponto de vista informa´tico, o elemento f´ısico utilizado para o tratamento
de dados e a obtenc¸a˜o de informac¸a˜o e´ o computador. O computador e´ uma
ma´quina composta de elementos f´ısicos do tipo eletroˆnico, capaz de realizar
uma grande variedade de trabalhos com alta velocidade e precisa˜o, desde que
receba as instruc¸o˜es adequadas.
Ao conjunto de ordens dadas a um computador para a realizac¸a˜o de um
determinado processo da´-se o nome de programa. Ao conjunto de um ou
va´rios programas que realizam determinado trabalho completo da´-se o nome
de aplicac¸a˜o informa´tica. A informac¸a˜o e´ o elemento a ser tratado e e´ defi-
nida como tudo aquilo que permite adquirir qualquer tipo de conhecimento
e portanto, existira´ informac¸a˜o sempre que se der a conhecer algo que ate´
enta˜o se desconhecia (FOROUZAN; MOSHARRAF, 2011).
8
2.2.1 Modelo de Turing
A ideia de um dispositivo de computac¸a˜o universal foi descrita, pela primeira
vez, por Alan Turing, em 1937, propondo que toda a computac¸a˜o poderia
ser realizada por um tipo especial de ma´quina, enta˜o chamada Ma´quina de
Turing. Embora Turing tenha apresentado sua descric¸a˜omatema´tica, estava
mais interessado na definic¸a˜o filoso´fica de computac¸a˜o do que em construir
a ma´quina propriamente dita. O modelo por ele descrito tinha como base
as ac¸o˜es que as pessoas realizam quando envolvidas na computac¸a˜o. En-
ta˜o, abstraindo essas ac¸o˜es, Turing criou um proto´tipo para uma ma´quina
computacional que realmente transformou o mundo.
Processadores de dados
Antes de discutirmos o modelo de Turing, vamos definir um computador
como um processador de dados. Utilizando essa definic¸a˜o, um computador
age como uma caixa-preta que aceita a inserc¸a˜o de dados, processa-os e cria
informac¸o˜es referentes aos resultados (Figura 2.1). Embora esse modelo possa
definir a funcionalidade de um computador, na atualidade tornou-se muito
gene´rico, porque, a partir dessa definic¸a˜o, uma calculadora de bolso tambe´m
e´ um computador (o que realmente e´ verdade, em um sentido literal).
Figura 2.1: Uma maquina de Computaca˜o de propo´sito u´nico
Outro problema desse modelo e´ que ele na˜o especifica o tipo de proces-
samento nem se e´ poss´ıvel mais de um tipo. Em outras palavras, na˜o esta´
claro quantos tipos ou conjuntos de operac¸o˜es podem ser realizados por uma
ma´quina que tem como base esse modelo. E´ uma ma´quina de propo´sito
espec´ıfico ou de propo´sito geral? Esse modelo poderia representar um com-
putador de propo´sito espec´ıfico (ou processador) que foi projetado para fazer
um trabalho simples, como o controle da temperatura de um edif´ıcio ou o uso
de combust´ıvel em um carro. No entanto, computadores, do modo como o
termo e´ utilizado hoje em dia, sa˜o ma´quinas de propo´sito geral. Eles podem
desempenhar muitos tipos de tarefas diferentes, o que implica que precisa-
mos transforma´-los no modelo de Turing para que seja poss´ıvel refletir os
reais computadores da atualidade.
9
Processadores de dados programa´veis
O modelo de Turing e´ melhor para um computador de propo´sito geral, porque
acrescenta um elemento extra de computac¸a˜o espec´ıfica: o programa. Um
programa e´ um conjunto de instruc¸o˜es que diz ao computador o que fazer
com os dados. A Figura 2.2 mostra o modelo de Turing. Nesse modelo, os
dados de sa´ıda dependem da combinac¸a˜o de dois fatores: os dados de entrada
e o programa. Com os mesmos dados de entrada podemos gerar diferentes
resultados, se modificarmos o programa. De modo similar, com o mesmo
programa, podemos gerar diferentes resultados, se modificarmos os dados de
entrada. Por fim, se esses dados e o programa permanecerem os mesmos, o
resultado tambe´m sera´ o mesmo. Vamos observar esses treˆs casos.
Figura 2.2: Um computador baseado no modelo de Turing
Mesmo programa, diferentes dados de entrada
A Figura 2.3 mostra o mesmo programa de ordenac¸a˜o com diferentes dados
de entrada. Embora o programa seja o mesmo, os resultados sa˜o diferentes,
porque diferentes dados de entrada sa˜o processados.
Mesmos dados de entrada, programas diferentes
A Figura 2.4 mostra os mesmos dados de entrada com diferentes programas.
Cada programa faz que o computador realize diferentes operac¸o˜es sobre esses
dados. O primeiro programa ordena os dados, o segundo os adiciona e o
terceiro encontra o menor nu´mero.
Naturalmente, espera-se o mesmo resultado a cada vez se os dados de en-
trada e o programa forem os mesmos. Em outras palavras, quando o mesmo
programa e´ executado com os mesmos dados de entrada, espera-se os mesmos
resultados.
A Maquina Universal de Turing
A Ma´quina Universal de Turing pode realizar qualquer ca´lculo se o programa
apropriado for fornecido; essa foi a primeira descric¸a˜o de um computador mo-
derno. Pode-se provar que um computador muito poderoso e uma Ma´quina
Universal de Turing podem fazer as mesmas coisas. Precisamos apenas forne-
10
Figura 2.3: Mesmo programa, diferentes dados de entrada - (FOROUZAN;
MOSHARRAF, 2011)
Figura 2.4: Mesmos dados de entrada, diferentes programas- (FOROUZAN;
MOSHARRAF, 2011)
cer os dados de entrada e o programa - a descric¸a˜o de como realizar o ca´lculo
- para qualquer uma das ma´quinas. Na verdade, a Ma´quina Universal de
Turing e´ capaz de calcular qualquer coisa que seja calcula´vel.
11
2.2.2 Modelo de Von Newman
Os computadores constru´ıdos com base na Ma´quina Universal de Turing
armazenam dados em sua memo´ria. Por volta de 1944-1945, John von Neu-
mann propoˆs que, se o programa e os dados sa˜o logicamente os mesmos, os
programas tambe´m devem ser armazenados na memo´ria de um computador.
Quatro subsistemas
Os computadores constru´ıdos com base no modelo de von Neumann dividem
o hardware do computador em quatro subsistemas: memo´ria, unidade de
lo´gica e aritme´tica, unidade de controle entrada/sa´ıda (Figura 2.5).
Figura 2.5: O modelo de von Neumann - (FOROUZAN; MOSHARRAF, 2011)
Memo´ria
A memo´ria e´ a a´rea de armazenamento; e´ onde os programas e os dados
sa˜o armazenados durante o processamento. Mais adiante discutiremos, neste
cap´ıtulo, as razo˜es para o armazenamento de programas e dados.
Unidade de lo´gica e aritme´tica
A unidade de lo´gica e aritme´tica (ULA) e´ onde ocorrem as operac¸o˜es de lo´gica
e de ca´lculos. Para um computador agir como um processador de dados, ele
deve ser capaz de realizar operac¸o˜es aritme´ticas sobre dados (como adiciona´-
los em uma lista de nu´meros) e tambe´m operac¸o˜es lo´gicas sobre dados.
Unidade de controle
A unidade de controle controla as operac¸o˜es da memo´ria, a ULA e o subsis-
tema de entrada/sa´ıda.
Entrada/Sa´ıda
O subsistema de entrada aceita a entrada de dados e programas vindos
de fora do computador, ao passo que o de sa´ıda envia os resultados do pro-
cessamento para o mundo externo. A definic¸a˜o do sistema de entrada/sa´ıda
e´ muito ampla: tambe´m inclui dispositivos de armazenamento secunda´rios,
como discos ou fitas, que armazenam dados e programas para processamento.
Quando um disco armazena dados que resultam de processamento, e´ consi-
derado um dispositivo de sa´ıda; quando os dados sa˜o lidos a partir do disco,
12
ele e´ considerado um dispositivo de entrada.
O conceito de programa armazenado
O modelo de von Neumann determina que o programa deve ser armaze-
nado na memo´ria. Isso e´ totalmente diferente da arquitetura dos primeiros
computadores, nos quais somente os dados eram armazenados na memo´ria:
os programas para as respectivas tarefas eram implementados pela manipu-
lac¸a˜o de um conjunto de comutadores ou modificac¸a˜o do sistema de fios. A
memo´ria dos computadores modernos mante´m um programa e seus dados
correspondentes. Isso implica que os dados e programas devem ter o mesmo
formato, uma vez que sa˜o armazenados na memo´ria. Na verdade, sa˜o arma-
zenados como padro˜es bina´rios na memo´ria - uma sequeˆncia de 0s e 1s.
Execuc¸a˜o sequencial de instruc¸o˜es
Um programa no modelo de von Neumann e´ composto de um nu´mero
finito de instruc¸o˜es. Nele, a unidade de controle busca uma instruc¸a˜o da
memo´ria, decodifica-a e, enta˜o, a executa. Em outras palavras, as instruc¸o˜es
sa˜o executadas uma depois da outra. Naturalmente, uma instruc¸a˜o pode
requerer que a unidade de controle salte para alguma instruc¸a˜o anterior ou
posterior, o que na˜o significa que as instruc¸o˜es na˜o sejam executadas sequen-
cialmente. Esse tipo de execuc¸a˜o de um programa foi a exigeˆncia inicial de
um computador com base no modelo de von Neumann. Os computadores da
atualidade executam programas na ordem que for mais eficiente.
2.2.3 Histo´rico
A Informa´tica e´ uma cieˆncia que passou a ser tratada como tal ha´ poucos
anos, sendo que a ela esta´ associada uma se´rie de fatos e descobertas anterio-
res, que serviram para que atualmente seja uma das cieˆncias a` qual o homem
esta´ dedicando maior atenc¸a˜o e atribuindo cada vez mais importaˆncia. Nesta
sec¸a˜o, analisa-se brevemente a histo´ria da computac¸a˜o e dos computadores,
dividida em treˆsper´ıodos.
Maquinas mecaˆnicas (antes de 1930)
Durante esse per´ıodo, foram inventadas diversas ma´quinas de computac¸a˜o
que teˆm pouca semelhanc¸a com o moderno conceito de um computador.
ˆ No se´culo XVII, Blaise Pascal, um matema´tico e filo´sofo franceˆs, in-
ventou Pascaline, uma calculadora mecaˆnica para fazer operac¸o˜es de
adic¸a˜o e subtrac¸a˜o. No se´culo XX, quando Niklaus Wirth inventou
uma linguagem de programac¸a˜o estruturada, deu-lhe o nome Pascal,
em homenagem ao inventor da primeira calculadora mecaˆnica.
13
ˆ No final do se´culo XVII, o matema´tico alema˜o Gottfried Leibnitz inven-
tou uma calculadora mecaˆnica mais sofisticada, que podia fazer multi-
plicac¸o˜es e diviso˜es, ale´m de adic¸o˜es e subtrac¸o˜es. Essa calculadora foi
chamada Roda de Leibnitz.
ˆ A primeira ma´quina que utilizou a ideia de armazenamento e progra-
mac¸a˜o foi o tear de Jacquard, inventado por Joseph-Marie Jacquard,
no in´ıcio do se´culo XIX. O tear utilizava carto˜es perfurados (como um
programa armazenado) para controlar o aumento dos fios da urdidura
na fabricac¸a˜o de tecidos.
ˆ Em 1823, Charles Babbage inventou a Ma´quina Diferencial, que po-
dia fazer mais do que simples operac¸o˜es aritme´ticas - tambe´m resolvia
equac¸o˜es polinomiais. Posteriormente, ele inventou a chamada Ma´-
quina Anal´ıtica, que, ate´ certo ponto, compara-se a` ide´ia dos compu-
tadores modernos. Ela tinha quatro componentes: uma engrenagem
(correspondente a uma moderna ULA), um local de armazenamento
(memo´ria), um operador (unidade de controle) e sa´ıda (entrada/sa´ıda).
ˆ Em 1890, Herman Hollerith, trabalhando no Ministe´rio de Recense-
amento dos Estados Unidos, projetou e construiu uma ma´quina pro-
grama´vel que podia, automaticamente, ler, registrar e ordenar dados
armazenados em carto˜es perfurados. O nascimento dos computado-
res eletronicos (1930 - 1950) Entre 1930 e 1950, va´rios computadores
foram inventados por cientistas, que podem ser considerados os pio-
neiros da indu´stria dos computadores. Os primeiros computadores ele-
troˆnicos Os primeiros computadores desse per´ıodo na˜o armazenavam o
programa na memo´ria - todos eram programados externamente. Cinco
computadores tornaram-se proeminentes durante esses anos:
ˆ O primeiro computador de propo´sito espec´ıfico, que codificava as in-
formac¸o˜es eletricamente, foi inventado por John V. Atanasoff e seu
assistente, Clifford Berry, em 1939. Chamado ABC (Atanasoff Berry
Computer), foi projetado especificamente para resolver um sistema de
equac¸o˜es lineares.
ˆ Ao mesmo tempo, um matema´tico alema˜o chamado Konrad Zuse pro-
jetou uma ma´quina de propo´sito geral, chamada Z1.
ˆ Na de´cada de 1930, a Marinha dos Estados Unidos e a IBM patro-
cinaram um projeto na Harvard University, sob a direc¸a˜o de Howard
Aiken, para construir um computador chamado Mark I, que utilizava
componentes ele´tricos e mecaˆnicos.
14
ˆ Na Inglaterra, Alan Turing inventou um computador chamado Colos-
sus, que foi projetado para decifrar o co´digo conhecido como German
Enigma (Enigma Alema˜o).
ˆ O primeiro computador de propo´sito geral, totalmente eletroˆnico, foi
fabricado por John Mauchly e J. Presper Eckert, chamado ENIAC
(Electronic Numerical Integrator and Calculator, ou calculadora e in-
tegradora nume´rica eletroˆnica). Ele foi conclu´ıdo em 1946, utilizava 18
mil tubos de va´cuo, media 30 metros de comprimento por 3 metros de
altura e pesava 30 toneladas.
Computadores baseados no modelo de von Neumann
Os cinco computadores precedentes utilizavam memo´ria somente para ar-
mazenamento de dados e eram programados externamente, utilizando fios ou
comutadores. John von Neumann propoˆs que o programa e os dados deveriam
ser armazenados na memo´ria. Dessa maneira, todas as vezes que utilizamos
um computador para realizar uma nova tarefa, precisamos somente modifi-
car o programa, em vez de religar a ma´quina ou ligar e desligar centenas de
comutadores. O primeiro computador com base nas ide´ias de von Neumann,
chamado EDVAC, foi fabricado em 1950, na University of Pennsylvania. Ao
mesmo tempo, um computador similar, EDSAC, foi constru´ıdo por Maurice
Wilkes, na Cambridge University, na Inglaterra.
Gerac¸o˜es de computadores (1950 - e´poca atual)
Os computadores constru´ıdos depois de 1950 seguiram, aproximadamente,
o modelo de Von Neumann. Apesar de se tornarem mais ra´pidos, meno-
res e mais baratos, o princ´ıpio era quase o mesmo. Historiadores dividem
esse per´ıodo em gerac¸o˜es, sendo que cada uma delas testemunhou alguma
importante transformac¸a˜o em hardware ou software (mas na˜o no modelo).
Primeira gerac¸a˜o - A primeira gerac¸a˜o (aproximadamente de 1950 a 1959)
foi caracterizada pelo surgimento de computadores comerciais. Durante essa
e´poca, eles eram utilizados somente por profissionais. Ficavam trancados em
salas com acesso limitado somente ao operador ou especialista. Tais com-
putadores eram muito volumosos e utilizavam tubos de va´cuo como chaves
eletroˆnicas. Naquele tempo, eram acess´ıveis somente a`s grandes organizac¸o˜es.
Segunda gerac¸a˜o - Os computadores da segunda gerac¸a˜o (aproximada-
mente de 1959 a 1965) utilizavam transistores, em vez de tubos de va´cuo.
Isso reduziu seu tamanho, assim como seu custo, e os tornou mais acess´ıveis
para as companhias de pequeno e me´dio portes. As duas linguagens de pro-
gramac¸a˜o de alto n´ıvel, Fortran e Cobol (veja o Cap´ıtulo 9), foram inventadas
15
e tornaram a programac¸a˜o mais fa´cil; separavam a tarefa de programac¸a˜o da
de operac¸a˜o dos computadores. Um engenheiro civil, por exemplo, pode-
ria escrever um programa em Fortran para resolver um problema, sem se
envolver com os detalhes eletroˆnicos da arquitetura do computador.
Terceira gerac¸a˜o - A invenc¸a˜o dos circuitos integrados (transistores, fia-
c¸a˜o e outros componentes em um u´nico chip) reduziu ainda mais o custo e o
tamanho dos computadores. Os minicomputadores, enta˜o, surgiram no mer-
cado. Programas ”enlatados”,1 popularmente conhecidos como pacotes de
software, tornaram-se dispon´ıveis. Uma pequena corporac¸a˜o podia comprar
um pacote, por exemplo, para contabilidade, em vez de precisar escrever seu
pro´prio programa. Surgiu, enta˜o, uma nova indu´stria, a de software. Esta
gerac¸a˜o durou, aproximadamente, de 1965 a 1975.
Quarta gerac¸a˜o - A quarta gerac¸a˜o (aproximadamente de 1975 a 1985)
viu o surgimento dos microcomputadores. A primeira calculadora desktop, o
Altair 8800, tornou-se dispon´ıvel em 1975. Avanc¸os na indu´stria eletroˆnica
permitiram que completos subsistemas de computadores se adequassem a
uma u´nica placa de circuito. Esta gerac¸a˜o tambe´m viu o aparecimento das
redes de computadores.
Quinta gerac¸a˜o - Esta e´ a atual, comec¸ou em 1985 e ainda na˜o terminou.
Ela tem testemunhado o surgimento dos computadores laptop e palmtop, o
desenvolvimento de aperfeic¸oamentos nos meios de armazenamento secunda´-
rio (CD-ROM, DVD e assim por diante), o uso da multimı´dia e o fenoˆmeno
da realidade virtual.
2.3 Sistemas Computacionais e Seus
Componentes
Um sistema computacional e´ um conjunto de componentes que realizam pro-
cessamentos automa´ticos sobre dados de entrada, e fornecem uma sa´ıda con-
tendo esses dados transformados. Existem va´rios tipos de sistemas computa-
cionais, os mais comuns sa˜o os computadores pessoais dentre eles: computa-
dores de mesa (Desktops - Fig. 2.6 ) e os computadores porta´teis (Laptops-
Fig. 2.7 e Tablet PC - Fig. 2.8 ).
Outro tipo de sistema computacional que tem se tornado cada dia mais
comum sa˜o os sistemas computacionais embarcados. Esses conteˆm um sis-
tema computacional embutido (HANSMANN et al., 2003). Diferentemente dos
computadores pessoais, que possuem propo´sito geral, os sistemas embarca-
dos realizam tarefas espec´ıficas como, por exemplo: falar ao telefone, emitir
rotas, autenticar usua´rios,rastrear objetos, etc. Exemplos: Celulares (Fig.
16
2.9), GPS (Global Position System - Fig. 2.10), Smart Cards (Fig. 2.11),
Smart Labels (Fig. 2.12).
Figura 2.6: Computador Pessoal - Desktop
Figura 2.7: Computador Pessoal - Laptop
Figura 2.8: Computador Pessoal - Tablet
O conjunto de componentes dos sistemas computacionais pode ser divi-
dido em duas grandes categorias:
ˆ Hardware; e
ˆ Software.
ˆ A seguir uma descric¸a˜o mais detalhada de cada uma dessas categorias.
2.3.1 Hardware
Hardware sa˜o os componentes mecaˆnicos e eletromecaˆnicos dos sistemas com-
putacionais, que podem ser classificados em 4 subcategorias:
17
Figura 2.9: Sistema Computacional Embutido - Celular
Figura 2.10: Sistema Computacional Embutido - GPS
ˆ Dispositivos de entrada;
ˆ Dispositivos de sa´ıda;
ˆ Unidade de processamento; e
ˆ Dispositivos de armazenamento.
Os dispositivos de entrada sa˜o os hardwares responsa´veis por capturar os
dados de entrada do sistema. Exemplos: teclado, mouse, caˆmera de v´ıdeo,
tela de toque.
Os dispositivos de sa´ıda sa˜o os hardwares responsa´veis por apresentar
os dados transformados. Exemplos: monitores, impressoras, dispositivos de
emissa˜o de voz, etc.
Figura 2.11: Sistema Computaciolna Embutido - Smart Card
18
Figura 2.12: Sistema Computaciolna Embutido - Smart Label
A unidade central de processamento e´ o hardware responsa´vel por pro-
cessar os dados de entrada e transforma´-los nos dados de sa´ıda. Exemplos:
unidade central de processamento (CPU) ou processadores dos computadores
pessoais (Fig. 2.13), processadores dos celulares e microships do smart cards
(Fig. 2.14), etc.
Os dispositivos de armazenamento sa˜o os responsa´veis por armazenar
dados de entrada e/ou sa´ıda. Existem 2 tipos principais de dispositivos de
armazenamento: armazenamento principal e armazenamento secunda´rio.
Os dispositivos de armazenamento principal fornecem aos dispositivos de
processamento as informac¸o˜es necessa´rias para a transformac¸a˜o dos dados
de entrada em sa´ıda. Nessa categoria encontra-se, por exemplo, a memo´ria
RAM (Random Access Memory- Fig. 2.15).
A memo´ria RAM e´ vola´til, pois seus dados sa˜o perdidos depois que o
sistema e´ desligado.
Os dispositivos de armazenamento secunda´rio guardam dados que podem
ser recuperados apo´s o desligamento do sistema computacional. Exemplos
desses dispositivos: disco r´ıgido (Hard Disk - HD - Fig. 2.16),disco r´ıgido
externo (HD externo - Fig. 2.17), pen drive (Fig. 2.18), carta˜o de memo´ria
dos celulares (Fig. 2.19).
No caso dos computadores de mesa ou porta´teis, todos os 4 componentes
sa˜o integrados atrave´s de um hardware chamado de placa ma˜e (Fig. 2.20).
Os dispositivos de armazenamento principal e de processamento sa˜o ge-
ralmente embutidos na placa ma˜e, ja´ os dispositivos de entrada, sa´ıda e
armazenamento secunda´rio sa˜o conectados na placa ma˜e atrave´s de cabos.
A placa ma˜e e´, em geral, localizada dentro do gabinete dos computadores
de mesa (Fig. 2.21) ou abaixo do teclado nos Laptops (Fig. 2.22).
Ja´ para os sistemas embarcados a integrac¸a˜o entre os componentes variam
de acordo com o sistema computacional.
19
Figura 2.13: Unidade Central de Processamento ou CPU dos computadores
pessoais
Figura 2.14: Microship dos Smart Cardl
2.3.2 Software
Softwares sa˜o programas de computadores que permitem explorar os recursos
dos hardwares, executar determinadas tarefas e resolver problemas de forma
automa´tica.
E´ atrave´s do software que interagimos com a ma´quina e tornamos o sis-
tema computacional operacional.
Os treˆs principais tipos de softwares sa˜o: softwares de sistema, softwares
de aplicac¸a˜o e softwares de servic¸o.
Os softwares de sistema permite interagir com os componentes de hard-
ware do computador, exemplos desses softwares: BIOS, Drivers, Sistema
Operacional.
O mais importante software de sistema e´ o Sistema Operacional (SO).
O SO e´ responsa´vel por gerenciar os recursos computacionais e fazer a co-
Figura 2.15: Dispositivo de armazenamento Principal - Memo´ria RAM
20
Figura 2.16: Dispositivo de armazenamento Secunda´rio - HD ou Disco R´ıgido
Figura 2.17: Dispositivo de armazenamento Secunda´rio - HD Externo
municac¸a˜o (ou interface) entre os componentes de hardware e os aplicativos.
Sem um sistema operacional, na˜o e´ poss´ıvel utilizar os softwares de aplica-
c¸a˜o instalados em um computador. No mercado, existem va´rios sistemas
operacionais, a Tabela2.1 mostra os mais comuns.
Os softwares de aplicac¸a˜o ou aplicativos sa˜o programas criados para resol-
ver tarefas espec´ıficas como: acessar a internet, enviar e receber mensagens,
navegar pelo computador, editar um texto, desenhar uma imagem, etc. A
Tabela2.2 mostra exemplos de alguns aplicativos e suas funcionalidades.
Existem tambe´m os aplicativos embarcados, que sa˜o aqueles destinados
a funcionar dentro de um sistema computacional embarcado (celulares, gps,
eletrodome´sticos, etc). Exemplos desses softwares: aplicativo para envio de
Figura 2.18: Dispositivo de armazenamento Secunda´rio - Pen Drive
21
Figura 2.19: Dispositivo de armazenamento Secunda´rio - Carta˜o de Celuar
Figura 2.20: Dispositivo de armazenamento Secunda´rio - Placa Ma˜e
mensagens de um celular para outro, aplicativo para emitir rotas em um
GPS, aplicativos de autenticac¸a˜o dos smart cards.
Os softwares de servic¸o, tambe´m chamados de aplicativos web, sa˜o aqueles
que na˜o precisam ser instalados em um sistema computacional e sim utiliza-
dos diretamente na Internet atrave´s de um navegador. Exemplos: Google,
Google Maps, Tidia.
Figura 2.21: Gabinete dos computadores de mesa onde e´ localizado Placa
ma˜e
22
Figura 2.22: Localizac¸a˜o da placa ma˜e em um computador porta´til
Sistema Operacional Sistema Computacional
Windows Computadores de mesa e porta´teis
Linux Computadores de mesa e porta´teis
Mac OS Computadores de mesa e porta´teis
Windows Tablet Edition Tablets
Google Andorid Tablets, celulares
iOS Tablets, celulares
Windows Embedded Sistemas embarcados (GPS, eletrodome´sticos, celulares, etc)
Tabela 2.1: Exemplos de Sistemas Operacionais
2.3.3 Exemplo de Funcionamento de um Sistema
Computacional e Seus Componentes
Essa sec¸a˜o apresenta um exemplo do funcionamento de um sistema compu-
tacional inserido em um contexto real. O objetivo principal do exemplo e´
mostrar a integrac¸a˜o dos componentes de hardware e de software. Para esse
exemplo considere:
ˆ O sistema computacional como sendo um computador pessoal.
ˆ O contexto como sendo o uso de um software aplicativo para editar
textos (editor de texto).
Normalmente, para utilizar um editor de texto em um computador pessoal
e´ necessa´rio executar os 4 passos descritos abaixo.
Passo 1 - Ligar o Computador
Ao ligar o computador, o sistema operacional e´ carregado na memo´ria
RAM (memo´ria principal) passando assim a ser poss´ıvel interagir com outros
componentes computacionais.
Passo 2 - Abrir o Editor de Texto
O editor de texto e´ um software de aplicac¸a˜o que ao ser aberto (Fig.
2.23) tambe´m passa a ser armazenado na memo´ria RAM. Nesse momento,
23
Aplicativo Funcionalidade Exemplos
Navegadores Acessar sites na Internet Internet Explorer,
FireFox, Google Crome, Opera
Editores de Texto Editar documentos Br Office Writer, Word Pad,
Bloco de Notas, Microsoft Word
Planilhas eletroˆnicas Realizar ca´lculos, plotar gra´ficos, Br Office Calc,
analisar dados Microsoft Excel
Processadores de imagens Criar e editar imagens Microsoft Paint, Adob Photoshop
Tabela 2.2: Exemplos de Aplicativos
suas informac¸o˜es podem ser compartilhadas com os outros componentes. A
escrita de um texto nada mais e´ do que a entrada de dados em um sistema
computacional. Neste caso, essa entrada e´ feita atrave´s do teclado (disposi-
tivo deentrada). Ja´ a sa´ıda de dados e´ realizada atrave´s de um monitor de
v´ıdeo (dispositivo de sa´ıda). A comunicac¸a˜o entre os dispositivos de entrada
e dispositivo de sa´ıda e´ realizada pelo sistema operacional (neste exemplo o
Windows) e pela placa ma˜e no caso dos computadores pessoais.
Passo 3 - Processar texto
O processamento do texto e´ realizado atrave´s das func¸o˜es de formatac¸a˜o
do editor de texto. Neste exemplo, essas func¸o˜es sa˜o: aumentar o tamanho
da fonte para 18 e mudar cor da fonte para vermelho (Fig. 2.24). Esse
processamento e´ realizado pela unidade de processamento (CPU).
Passo 4 - Salvar o texto
Ate´ o passo 3, tudo que foi realizado com o editor de texto esta´ arma-
zenado somente na memo´ria RAM. Essa memo´ria e´ vola´til, ou seja, o texto
formatado sera´ perdido caso o computador seja desligado. Para que o sis-
tema seja desligado sem existir perda de informac¸o˜es, e´ necessa´rio armazenar
o texto na memo´ria secunda´ria (neste exemplo HD) . Para isso, basta execu-
tar o procedimento de salvar o texto (Fig. 2.25).
2.4 Organzac¸a˜o da Cieˆncia da Computac¸a˜o
De acordo com o curr´ıculo de refereˆncia da ACM (Association for Computer
Machinery), a computac¸a˜o pode ser dividida em 14 a´reas: 1-Estruturas Dis-
cretas (ED), 2-Fundamentos da programac¸a˜o (FP), 3-Algoritmos e Complexi-
dade (AC), 4-Organizac¸a˜o e Arquitetura dos Computadores (OA), 5-Sistemas
Operacionais (SO), 6-Computac¸a˜o Centrada em Redes (CR), 7-Linguagem
de Programac¸a˜o (LP), 8-Interface Humano Computador (IH), 9-Computac¸a˜o
Gra´fica e Visual (GV), 10- Sistemas Inteligentes (SI), 11-Gesta˜o e Admi-
24
Figura 2.23: Abrir Editor
Figura 2.24: Processar Texto
nistrac¸a˜o da Informac¸a˜o (GI), 12-Questo˜es Sociais e Profissionais (SP), 13-
Engenharia de Software (ES) e 14-Cieˆncia Computacional (CC).
Neste livro, essas 14 a´reas foram agrupadas em dois grupos: Grupo das
a´reas de Softwares e Grupo das a´reas de Hardware. A Fig. 2.26 demonstra
claramente essa divisa˜o.
Observa-se que pela Fig. 2.26, que a cieˆncia da computac¸a˜o enfatiza as
a´reas pertencentes ao grupo de software. Esse grupo preocupa-se basicamente
com a produc¸a˜o de diferentes tipos de softwares como, por exemplo: sistemas
operacionais, aplicativos convencionais, aplicativos para sistemas embarcados
e aplicac¸o˜es web. Veja Tabela2.2 para recordar exemplos desses aplicativos.
Por possuir muitas a´reas, o grupo de software foi agrupado nesse docu-
mento em 6 suba´reas: Computac¸a˜o Cient´ıfica, Interface Gra´fica, Desenvol-
25
Figura 2.25: Salvar Texto
Figura 2.26: Divisa˜o das a´reas em Cieˆncia da Computac¸a˜o
vimento de Sistemas, Teoria da Computac¸a˜o, Sistemas Inteligentes, Gesta˜o
e Administrac¸a˜o da Informac¸a˜o e Questo˜es Sociais e Profissionais . A Fig.
2.27 mostra a subdivisa˜o do grupo de a´reas de softwares.
2.4.1 A´reas de Software
Computac¸a˜o Cient´ıfica
A a´rea de computac¸a˜o cient´ıfica reu´ne conceitos fundamentais da cieˆncia
da computac¸a˜o e possui forte conexa˜o com a matema´tica discreta. Alguns
conceitos dessa a´rea de conhecimento sa˜o: func¸o˜es, teoria dos conjuntos,
lo´gica, teoria dos grafos e probabilidade discreta, ana´lise de algoritmos, crip-
tografia, algoritmos paralelos, modelagem e simulac¸a˜o e pesquisa operacional.
Exemplo de aplicac¸o˜es:
26
Figura 2.27: Divisa˜o das a´reas em Cieˆncia da Computac¸a˜o
ˆ Simulac¸a˜o de reproduc¸a˜o de uma cultura de bacte´ria baseado no jogo
da vida: http://code.google.com/p/lazbacterias/
ˆ Simulador neuromuscular: http://remoto.leb.usp.br/remoto/index.html
Desenvolvimento de Sistemas
O desenvolvimento de sistemas reu´ne conceitos relacionados a algoritmos,
implementac¸a˜o de sistemas computacionais e processos de desenvolvimento.
Alguns conceitos dessa a´rea de conhecimento sa˜o: algoritmos, estruturas de
dados, recursividade, programac¸a˜o orientada a objetos, fundamentos e segu-
ranc¸a da informac¸a˜o, paradigmas de programac¸a˜o e engenharia de software.
Exemplo de aplicac¸o˜es:
ˆ JMOL - Qu´ımica (estruturas moleculares): http://jmol.sourceforge.net/
ˆ Aplicac¸o˜es de Cognic¸a˜o (neuroimagens, neurofisiologia)
ˆ Aplicac¸o˜es em F´ısica (dinaˆmica de flu´ıdos)
ˆ Aplicac¸o˜es para celulares
ˆ Aplicac¸o˜es para GPS
ˆ Aplicac¸o˜es para TV Digital
ˆ Aplicac¸o˜es Internet
Gesta˜o e Administrac¸a˜o da Informac¸a˜o
Essa a´rea fornece o entendimento de como armazenar, organizar e buscar
os dados em sistemas computacionais. Alguns conceitos abordados nessa a´rea
27
de conhecimento: sistema de banco de dados, modelagem de dados, minera-
c¸a˜o de dados, hipermı´dia, arquitetura da informac¸a˜o, bibliotecas digitais.
Exemplo de aplicac¸o˜es:
ˆ Um supermercado pode analisar os dados de consumo de seus clientes
para identificar quais novos produtos devem oferecer a cada um deles.
Interface Gra´fica
A a´rea de Interface gra´fica reu´ne conceitos para o desenvolvimento de
sistemas gra´ficos, realidade virtual, processamento de imagens, design, avali-
ac¸a˜o de usabilidade e acessibilidade. Alguns conceitos abordados nessa a´rea
de conhecimento: interface-humano computador, processamento de imagens,
animac¸a˜o por computador, realidade virtual, computac¸a˜o gra´fica.
Exemplos de aplicac¸o˜es:
ˆ Software para leituras em voz de sites web: http://webanywhere.cs.washington.edu/
ˆ Visualizac¸a˜o das arte´rias corona´rias epica´rdicas em contraste de micro-
bolhas 3D imagens ecogra´ficas para auxiliar no diagno´stico.
Sistemas Inteligentes
Essa a´rea apresenta te´cnicas para desenvolver sistemas que reproduzem a
capacidade racional do ser humano para resolver problemas. Alguns concei-
tos abordados nessa a´rea de conhecimento: representac¸a˜o do conhecimento,
aprendizagem de ma´quina, robo´tica, agentes Inteligentes.
Exemplos de aplicac¸o˜es:
ˆ Software que joga xadrez
ˆ Futebol de roboˆs
ˆ Busca inteligente na Web (Google)
Questo˜es Sociais e Profissionais (SP)
Essa a´rea fornece conhecimento de como um profissional de cieˆncia da
computac¸a˜o devera´ comportar-se eticamente no mercado, aborda questo˜es
relacionadas com crimes virtuais e questo˜es sociais. Alguns conceitos abor-
dados nessa a´rea de conhecimento: histo´rica da computac¸a˜o, e´tica, crimina-
lidade na computac¸a˜o.
Exemplos de aplicac¸o˜es:
ˆ Compuac¸a˜o Verde
ˆ Direito de propriedade de softwares e materiais dispon´ıveis na Internet
ˆ Computac¸a˜o Forense
28
2.4.2 A´reas de Hardware
As a´reas pertencentes ao grupo de hardware preocupam-se com o entendi-
mento dos componentes dos sistemas computacionais, suas caracter´ısticas,
desempenho e interac¸o˜es. Tambe´m possui eˆnfase na infraestrutura, conexa˜o
e seguranc¸a de redes (Internet, redes sem fio, conexo˜es, etc). Alguns concei-
tos abordados nessa a´rea de conhecimento: lo´gica e representac¸a˜o dos dados,
arquitetura e organizac¸a˜o de computadores, multiprocessamento, gerencia-
mento de memo´ria, sistemas de arquivos, toleraˆncia a falhas, forense digital,
redes de comunicac¸a˜o, seguranc¸a de redes, administrac¸a˜o de redes, computa-
c¸a˜o mo´vel e sem fio, sistemas paralelos e distribu´ıdos, compreender o modelo
de programa armazenado de von Neumann e sua relac¸a˜o com as arquitetura
e organizac¸a˜o de computadores de uso geral.
Exemplos de aplicac¸o˜es:
ˆ Suporte de equipamentos
ˆ Redes de computadores (sem fio, internet, etc)
2.5 Considerac¸o˜es Finais
A sec¸a˜o 2 desse cap´ıtulo relatou os fundamentos da computac¸a˜o como Modelo
de Turing, Von Newman e o Histo´rico da Computac¸a˜o. Esses fundamentos
sa˜o antigos, mas apesar da evoluc¸a˜o tecnolo´gica, ainda sa˜o utilizados como
referencial teo´rico nos dias de hoje.
Na sec¸a˜o 3 foram apresentados diversos sistemas computacionais como
desktops, laptops, tablets e alguns dispositivos embarcados (celular, smart
label).Tambe´m foi descrito sobre os componentes de hardwares e softwares
de um sistema computacional e a interac¸a˜o entre eles.
A sec¸a˜o 4 apresentou a divisa˜o da cieˆncia da computac¸a˜o em 14 a´reas do
conhecimento. Essa sec¸a˜o demostrou, atrave´s de exemplos, o potencial de
aplicac¸a˜o da a´rea da Cieˆncia da Computac¸a˜o em outras a´reas do conheci-
mento.
Em suma, este cap´ıtulo demonstra que a computac¸a˜o e´ uma cieˆncia que
possui fortes fundamentos, esta´ evoluindo rapidamente e ficando cada dia
mais ub´ıqua.
No pro´ximo cap´ıtulo sera´ estudado representac¸a˜o gra´fica de func¸o˜es. Esse
assunto pode ser considerado como uma abordagem da computac¸a˜o cient´ıfica
mostrada na sec¸a˜o 4 do Cap´ıtulo 1. O Cap´ıtulo 2 tambe´m mostrara´ como
aplicar os conceitos de gra´ficos e func¸o˜es utilizando um software pra desktop
chamado de Scilab.
29
2.6 Conjunto de Pra´ticas
1. Descreva um exemplo de funcionamento de um sistema computacional
e seus componentes considerando como sistema computacional um celular e
como processamento o envio de mensagens de texto (SMS). Utilize o to´pico
3.3 como modelo.
2. Descreva mais 2 outros exemplos de funcionamento de um sistema
computacional e seus componentes. Procure ser original e criativo.
3. Assista o v´ıdeo sobre a histo´ria dos computadores e responda a questa˜o:
Como voceˆ imagina o futuro dos sistemas computacionais? Vı´deo dispon´ıvel
em: http://www.youtube.com/watch?v=F3qWg1JBPZg
4. O Google sites e´ um exemplo de software de servic¸o. Utilize esse
softwares para criar uma pa´gina Web com seu curr´ıculo. Siga o tutorial
dispon´ıvel no link: http://www.youtube.com/watch?v=B4WmVeBxGqM
5- Responda: o que e´ computac¸a˜o ub´ıqua?
6- Procure na Internet exemplos de sistemas computacionais que sa˜o utili-
zados nas seguintes a´reas do conhecimento: Base Experimental das Cieˆncias
Naturais, Bases Epistemolo´gicas da Cieˆncia Moderna, Bases Matema´ticas,
Estrutura da Mate´ria e Origem da Vida e Diversidade dos Seres Vivos. E´
necessa´rio pelo menos um exemplo de cada a´rea.
7- Classifique os sistemas encontrados no exerc´ıcio 6 em uma das 6 suba´-
reas de software estudadas na sec¸a˜o 4 deste cap´ıtulo.
30
3 Representac¸a˜o Gra´fica de Func¸o˜es
Aline Neves
Irineu Antunes Junior
Marcio Eisencraft
—– Universidade Federal do ABC
Neste cap´ıtulo, discutimos questo˜es envolvidas na representac¸a˜o gra´fica
de func¸o˜es e mostramos alguns casos onde tais gra´ficos podem ser u´teis no
aux´ılio do entendimento de um problema. E´ apresentada uma ferramenta
computacional que permite realizar ca´lculos cient´ıficos e gra´ficos de maneira
ra´pida e pra´tica.
3.1 Introduc¸a˜o
A Cieˆncia e a Engenharia sempre buscam modelar fenoˆmenos naturais e
f´ısicos por func¸o˜es matema´ticas que possam, pelo menos de maneira simplifi-
cada, reproduzir os comportamentos observados na Natureza. Neste sentido,
podemos citar como exemplos leis que regem o comportamento de gases,
escoamento de fluidos, propagac¸a˜o de ondas, movimento de corpos, cresci-
mento de populac¸o˜es, ale´m de muitos outros. Muitas vezes, dado o modelo
matema´tico de um sistema, encontramos a necessidade de visualizar o com-
portamento do mesmo, ou enta˜o precisamos encontrar uma soluc¸a˜o mas na˜o
sabemos ao certo por onde comec¸ar a procura´-la. Nestes casos, gra´ficos das
func¸o˜es em questa˜o podem auxiliar no entendimento e podem, inclusive, for-
necer uma primeira aproximac¸a˜o para a soluc¸a˜o procurada.
Suponha, por exemplo, que deseja-se prever a taxa de crescimento de uma
faixa so´cio econoˆmica da populac¸a˜o num per´ıodo de anos na˜o abordado numa
pesquisa. Seria necessa´rio fazer um modelo matema´tico em cima do gra´fico
obtido com os dados dispon´ıveis para se conseguir a informac¸a˜o desejada
atrave´s de uma extrapolac¸a˜o. A figura 3.1 ilustra tal processo.
Exemplo 1 Para iniciar este estudo, considere um caso bastante simples
de um movimento uniformemente variado definido pela equac¸a˜o:
s = s0 + v0t +
at2
2
(3.1)
onde s e´ a posic¸a˜o atual do corpo em movimento, s0 e´ a posic¸a˜o na qual ele
comec¸ou o movimento, v0 e´ a sua velocidade inicial, a e´ sua acelerac¸a˜o e t
31
Figura 3.1: Exemplo de extrapolac¸a˜o: os pontos cheios sa˜o os dados da
pesquisa realizada entre os anos de 2000 e 2009; a curva cheia e´ uma func¸a˜o
matema´tica que descreve os dados obtidos nestes anos; a curva tracejada e´ a
func¸a˜o extrapolada em datas futuras; os pontos vazios sa˜o os dados futuros
(desconhecidos).
e´ o tempo decorrido desde o in´ıcio do movimento. Como exemplo, vamos
supor s0 = 0, v0 = 20 m/s e a = −5 m/s2, ou seja, o corpo esta´ freando.
Se quisermos visualizar como a posic¸a˜o s ira´ variar em func¸a˜o do tempo t,
podemos fazer um gra´fico relacionando estas duas grandezas. A figura 3.2
ilustra o movimento em questa˜o. Observando o gra´fico, podemos facilmente
obter algumas caracter´ısticas do movimento: como o corpo esta´ freando, a
posic¸a˜o ma´xima que ele ira´ atingir e´ s = 40 m e ele levara´ 4 segundos para
atingi-la, como mostrado pelo ponto (b) na figura 3.2. Neste ponto a sua
velocidade sera´ nula. A partir da´ı, a acelerac¸a˜o negativa pode ser vista como
uma acelerac¸a˜o em sentido contra´rio e, portanto, o corpo comec¸ara´ a voltar
e atingira´ a posic¸a˜o s = 0 novamente em t = 8 s (ilustrado pelo ponto (c) na
figura). Os dados observados graficamente podem ser facilmente conferidos
atrave´s da substituic¸a˜o dos valores citados na equac¸a˜o (3.1). Em particular,
os instantes em que s = 0 sa˜o facilmente encontrados calculando-se as ra´ızes
da equac¸a˜o.
Em alguns casos, no entanto, a resoluc¸a˜o anal´ıtica do problema pode ser
bastante complicada, sena˜o imposs´ıvel.
Exemplo 2 Considere, por exemplo, a obtenc¸a˜o das ra´ızes, ou seja, dos
pontos nos quais a seguinte func¸a˜o se anula:
f (x) = sen(x) + cos(1 + x2)− 1 (3.2)
32
0 1 2 3 4 5 6 7 8
0
5
10
15
20
25
30
35
40
Tempo (s)
s 
(m
)
(a)
(b)
(c)
Figura 3.2: Espac¸o em func¸a˜o do tempo para um movimento uniformemente
variado. Em (a) e (c) temos os pontos onde o corpo esta´ em s = 0, enquanto
que (b) ilustra o valor ma´ximo de s
Neste caso, o gra´fico da func¸a˜o pode ser u´til para auxiliar a soluc¸a˜o do pro-
blema. Observando o gra´fico de f (x) para x ∈ [0,4], ilustrado na figura 3.3,
veˆ-se que f (x) sera´ nula para dois valores de x neste intervalo: x1 e x2. Alte-
rando a escala do gra´fico (figura 3.4), vemos que a primeira raiz se encontra
em x1 ≈ 1.9 e a segunda em x2 ≈ 2.5.
0 0.5 1 1.5 2 2.5 3 3.5 4
−3
−2.5
−2
−1.5
−1
−0.5
0
0.5
1
x
f(x
)
x2
x1
Figura 3.3: Gra´fico de f(x) dada por
(3.2)
1.8 2 2.2 2.4 2.6
−0.4
−0.2
0
0.2
0.4
0.6
0.8
x
f(x
)
x1 x2
Figura 3.4: Regia˜o em torno das ra´ı-
zes de (3.2)
Por outro lado, nem sempre esta abordagem e´ poss´ıvel. Te´cnicas mais
33
sofisticadas de busca de ra´ızes de func¸o˜es sa˜o estudadas na disciplina de
Ca´lculo Nume´rico.
Um gra´fico tambe´m pode auxiliar na visualizac¸a˜o de um problema mesmo
que na˜o se conhec¸a seu modelo em detalhes. Atrave´s do gra´fico, tem-se uma
ide´ia do comportamento geral de sistemas empregados na pra´tica. Este e´ o
caso dos exemplos abaixo.
Exemplo3 Suponha que um elevador sera´ usado para levar uma carga ao
4◦ andar de um edif´ıcio.
Na Figura 3.5 e´ mostrado o comportamento de treˆs elevadores diferentes
apo´s receberem um comando que solicita que o elevador se desloque para o
4◦ andar.
0 5 10 15
0
1
2
3
4
5
6
tempo (segundos)
A
nd
ar
 
 
comando
Elevador 1
Elevador 2
Elevador 3
Figura 3.5: Resposta de treˆs elevadores a um comando.
Pense em voceˆ dentro de um destes elevadores. Qual proporcionaria a
viagem mais eficiente e conforta´vel? Claramente, o Elevador

Continue navegando