LivroBasesComputacionaisI

242
7/18/2019 LivroBasesComputacionaisI http://slidepdf.com/reader/full/livrobasescomputacionaisi 1/242 BASES COMPUTACIONAIS DA CIÊNCIA MARIA DAS GRAÇAS BRUNO MARIETTO MÁRIO MINAMI PIETER WILLEM WESTERA (ORGS.)

Transcript of LivroBasesComputacionaisI

  • basescomputacionais da cincia maria das Graas bruno mariettomrio minami

    pieter Willem Westera(orGs.)

  • CATALOGAO NA FONTESISTEMA DE BIBLIOTECAS DA UNIVERSIDADE FEDERAL DO ABC

    Responsvel: Roberta Kelly Amorim de Frana CRB: 7660

    Universidade Federal do ABC

    Prof. Dr. Helio Waldman - ReitorProf. Dr. Gustavo Dalpian - Vice-ReitorNcleo de Cincia, Tecnologia e SociedadeProf Dr Maria Gabriela S. M. C. Marinho - CoordenaoProf Dr Maria de Lourdes Pereira Fonseca - Vice-CoordenaoCleiton Fabiano Klechen - Secretrio Editorial

    511.3BASE Bases computacionais da cincia / Organizado por Maria das Graas Bruno Marietto, Mrio Minami, Pieter Willem Westera. Santo Andr: Universidade Federal do ABC, 2013.

    242 p. ISBN: 987 - 85 - 65212 - 21

    1. Computao teoria e prtica 2.Comunicao e Informao 3. Bacharelados Interdisciplinares de Cincias - UFABC I. MARIETTO, Maria das Graas Bruno. II. MINAMI, Mrio. III. WESTERA, Pieter Willem.

  • relao dos organizadores, por ordem alfabtica, e suas respectivas instituiesMaria das Graas Bruno MariettoUniversidade Federal do ABCMrio MinamiUniversidade Federal do ABCPieter Willem WesteraUniversidade Federal do ABC

    relao de autores, por ordem alfabtica, e suas respectivas instituiesAlessandro S. NascimentoUniversidade de So PauloAline NevesUniversidade Federal do ABCCarlos da Silva dos SantosUniversidade Federal do ABCCristiane Otero Reis SalumUniversidade Federal do ABCDelmo Alves de MouraUniversidade Federal do ABCEdson Pinheiro PimentelUniversidade Federal do ABCHarlen Costa BatageloUniversidade Federal do ABCHumberto Luiz RazenteUniversidade Federal de Uberlndia Irineu Antunes JuniorUniversidade Federal do ABCJoo Paulo GoisUniversidade Federal do ABCJuliana Cristina BragaUniversidade Federal do ABCLetcia Rodrigues BuenoUniversidade Federal do ABCLuiz Carlos da Silva RozanteUniversidade Federal do ABCMaria Camila Nardini BarioniUniversidade Federal de Uberlndia Maria das Graas Bruno MariettoUniversidade Federal do ABCMrcio EisencraftUniversidade Federal do ABCMrcio Kaitsumi OikawaUniversidade Federal do ABCPeter Maurice Erna ClaessensUniversidade Federal do ABCRicardo SuyamaUniversidade Federal do ABCRonaldo Cristiano PratiUniversidade Federal do ABCWagner Tanaka BotelhoUniversidade Federal do ABC

  • 7 prefcio

    11 capitulo 1 Fundamentos da computao

    41 capitulo 2 Representao grfica de funes

    63 capitulo 3 Noes de estatstica, correlao e regresso

    113 capitulo 4 Base de dados

    143 capitulo 5 Lgica de programao: Variveis e estruturas sequenciais

    161 capitulo 6 Lgica de programao: Estruturas condicionais

    175 capitulo 7 Lgica de programao: Estruturas de repetio

    185 capitulo 8 Modelagem e simulao computacional: Conceitos fundamentais

    218 capitulo 9 Modelagem e simulao computacional: A cincia na prtica

    sumrio

  • 7prefcioAtualmente, utilizamos a tecnologia da informao em quase todos os domnios da vida. No ambiente acadmico, por exemplo, o trabalho com computadores se faz necessrio em reas tais como Cincias Naturais, Matemtica, Computao, Biologia, Qumica, Fsica, Engenharias, Licenciaturas, Cincias Sociais e Artes. Por esse motivo, o uso de computadores e ferramentas computacionais deve fazer parte do conhe-cimento de alunos no nvel universitrio desde o incio dos seus estudos. Para esse fim, na UFABC, h a oferta da disciplina Bases Computacionais da Cincia.

    Esta disciplina faz parte de um conjunto de seis disciplinas de base do currculo da UFABC. As outras disciplinas deste conjunto so Bases Matemticas, Base Experimental das Cincias Naturais, Estrutura da Matria, Origem da Vida e Diversidade dos Seres Vivos e Bases Epistemolgicas da Cincia Moderna. A maior parte destas disciplinas cursada pelos alunos dos dois bacharelados interdisciplinares da UFABC: Bacharelado em Cincia e Tecnologia (BC&T) e Bacharelado em Cincias e Humanidades (BC&H). O propsito criar uma base homognea de conhecimento para os alunos de todas as reas de graduao oferecidas pela UFABC. Alm 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 pedaggico da UFABC. A interdisciplinaridade visa percepo do aluno de que as reas da cincia so interligadas, sendo que, para o bom entendimento de um dado assunto, o conhecimento das reas relacionadas a ele indispensvel.

    O objetivo deste livro dar apoio disciplina Bases Computacionais da Cincia, apre-sentando os seus conceitos tericos elementares juntamente com um grande nmero de exerccios, j que o uso do computador se aprende principalmente atravs da prtica. Esperamos que este livro seja uma ferramenta didtica importante para os alunos da disciplina e outras pessoas que gostariam de aprender os conceitos bsicos da rea de Computao. Desejamos um aprendizado frutfero e prazeroso.

    estrutura do livroA disciplina consiste, alm das provas e do projeto final, de nove aulas, cada uma das quais se encontra representada nos captulos deste livro. Em cada captulo h uma introduo sobre o contedo da aula, enunciando-se seus objetivos. Na sequncia, h uma seo que apresenta a parte terica da aula, ilustrada com exemplos prticos. Na sequncia, a Seo Atividades em aula oferece exerccios prticos a serem realizados em sala de aula, sob a orientao do professor. Na Seo Consideraes finais so apresentadas as observaes finais, relacionadas aos contedos apresentados. Por fim, a Seo Exerccios apresenta alguns exerccios para assimilao do contedo estudado.

  • 8recursos computacionais da disciplinaAlm deste texto, outro recurso educacional importante o emprego de um com-putador pessoal, preferencialmente com acesso Internet. Na Internet, encontra-se o ambiente virtual de aprendizagem TIDIA, disponvel em http://tidia-ae.ufabc.edu.br/portal, o qual utilizado nesta disciplina para atividades tais como: disponibilizao do material didtico, transferncia de arquivos, comunicao entre os alunos e entre aluno e professor, entrega de exerccios e fruns interativos. Dentre os materiais di-dticos disponveis no TIDIA, citamos a verso em PDF deste livro, bem como tutoriais dos softwares usados nos exerccios prticos.

    Para fazer os exerccios prticos necessrio instalar no computador os seguintes softwares:

    Um navegador de Internet, para acessar o TIDIA e fazer pesquisas online;

    Scilab, um software para computao numrica e a visualizao de funes matemticas;

    BrOffice Calc, um programa de clculos de planilha, que faz parte do pacote OpenOffice (ou BrOffice);

    RoboMind, um programa para o ensino de Lgica de Programao.

    Os primeiros trs softwares so gratuitos e podem ser baixados, instalados e utilizados para fins no-comerciais sem pagamento de licenas de uso. O ltimo, RoboMind, licenciado para o uso em universidades na verso mais recente. A UFABC est em processo de adquirir uma licena. Para o uso em casa, a verso atual do software RoboMind gratuita e pode ser baixada, instalada e utilizada sem pagamento de licenas de uso.

    aGradecimentosA elaborao deste livro s foi possvel graas ao apoio, confiana, dedicao e cola-borao de muitas pessoas que ajudaram a torn-lo uma realidade. Por isso, fazemos questo de registrar aqui nossos agradecimentos.

    Em primeiro lugar, agradecemos a quem acreditou no projeto quando este era apenas uma ideia. Agradecemos a Pr-Reitoria de Graduao, em especial a Professora Denise Consonni e os Professores Dcio Roberto Matheus, Jos Fernando Queiruga Rey e Derval dos Santos Rosa, pela iniciativa em estruturar uma discusso integrada em toda a UFABC sobre as seis disciplinas de base dos bacharelados interdisciplinares.

    De maneira especial, gostaramos de agradecer nominalmente os professores que elaboraram este livro, sempre de maneira cooperativa e interativa. So eles: Alessandro S. Nascimento, Aline Neves, Carlos da Silva dos Santos, Cristiane Otero Reis Salum, Delmo Alves de Moura, Edson Pinheiro Pimentel, Harlen Costa Batagelo, Humberto Luiz Razente, Irineu Antunes Junior, Joo Paulo Gois, Juliana Cristina Braga, Letcia Rodrigues Bueno, Luiz Carlos da Silva Rozante, Maria Camila Nardini Barioni, Maria das

  • 9Graas Bruno Marietto, Mrcio Eisencraft, Mrcio Kaitsumi Oikawa, Peter Claessens, Ricardo Suyama, Ronaldo Cristiano Prati e Wagner Tanaka Botelho.

    A contribuio de cada um destes professores demonstra o domnio cientfico e tcnico nos temas abordados em cada captulo. Entretanto, a preocupao de todos foi muito alm da transmisso pura e direta dos conhecimentos. O processo de formao acadmica dos alunos que utilizaro este material didtico sempre foi o norte de nossas discusses. Sendo assim, as decises relacionadas forma de transmisso dos conhecimentos foram direcionadas por perguntas tais como: (i) como apresentar conhecimentos amplos e complexos, de maneira que os alunos iniciantes entendam seus significados e abrangncia? (ii) como apresentar os conhecimentos de Com-putao no como um fim em si mesmo, mas como uma importante e indispensvel ferramenta para todos os profissionais do sculo XXI? (iii) como expor os alunos, de maneira gradativa e coerente, s vrias situaes de estudo e pesquisa envolvidas na vida acadmica?

    A elaborao de um material didtico o mais adequado possvel para apoio s aulas um grande desafio, mas tambm uma boa motivao para todos os docentes e para toda a comunidade acadmica. Esperamos ter colaborado nesse processo de construo e que essas iniciativas colham prontamente bons frutos e produzam novas sementes.

    Maria das Graas Bruno Marietto

    Mrio Minami

    Pieter Willem Westera

    Comisso da Disciplina Bases Computacionais da Cincia

    Santo Andr, So Paulo, Julho de 2013

  • 11

    captulo 1fundamentos da computaoEdson Pinheiro Pimentel Juliana Cristina Braga

    1.1 introduoAtualmente, praticamente impensvel fazer pesquisa cientfica sem o uso de com-putao. A presena de instrumentos computadorizados coletando dados o tempo todo e em todo lugar gera dados cientficos em volumes que no podem mais ser entendidos com clculos simples, sendo necessrias, muitas vezes, computaes complexas. Por exemplo, a Sloan Digital Sky Survey est mapeando o cu com um telescpio e nos primeiros cinco anos de operao, gerou cerca de 6 TB de dados. Da mesma forma, simulaes em grande escala de modelos climticos a reatores de fuso geram enormes conjuntos de dados em semanas ou mesmo dias devido disponibilidade de computadores cada vez mais rpidos. Tal volume de dados tem de ser analisado por tcnicas de computao. luz desta evoluo da cincia, as futuras geraes de cientistas devem compreender que precisaro envolver cada vez mais computao em seu trabalho (Hambrusch et al., 2009:183).

    De fato, diversas reas de pesquisa esto se tornando cada vez mais dependentes da computao. Segundo George Johnson, no artigo All Science is Computer Science, publicado no New York Times on the Web em 2001, toda cincia, ao que parece, est se tornando cincia da computao. Eis alguns depoimentos que embasam esta afirmao:

    Fsica quase inteiramente computacional agora, disse Thomas B. Kepler, vice-presidente para assuntos acadmicos do Santa Fe Institute, um centro de pesquisa multidisciplinar, no Novo Mxico, EUA. Ningum sonharia em fazer esses grandes experimentos do acelerador sem uma tremenda quantidade de poder computacional para analisar os dados.

    Mas a maior mudana, segundo ele, foi em biologia. Dez anos atrs, os bilogos desconsideravam a necessidade de computao, disse o Dr. Kepler. Agora eles esto cientes de que no podem realmente fazer biologia sem ele.

    H qumica computacional, neurocincia computacional, gentica computa-cional, imunologia computacional e biologia molecular computacional. Tambm, reas como a sociologia e a antropologia esto lentamente sucumbindo mudana. No Instituto Santa F, modelos de computador so usados para estudar os fatores que podem ter levado ascenso e queda de culturas complexas, uma espcie de arqueologia artificial (Johnson, 2001:1).

  • 12

    O Pensamento Computacional ou Raciocnio Computacional, do ingls Computa-tional Thinking, tem sido considerado essencial para o aprendizado de tcnicas como decomposio de tarefas ou modelagem de problemas, necessrias em diversas tarefas nas mais diversas reas. De forma simplista seria como aprender a pensar como um computador. Segundo Henderson e colaboradores (2007:195) o Pensamento Computacional o ncleo de todas as disciplinas modernas nas reas de Cincias, Tecnologia, Engenharia e Matemtica e intrnseco a todas as outras disciplinas, de A a Z. utilizado na vida cotidiana desde ao se fazer um bolo, ao se trocar um pneu ou quando escovamos nossos dentes. O crebro humano est preparado para pensar computacionalmente, assim como esto os dispositivos de computao moderna. De certo modo, precisamos apenas despertar o raciocnio computacional para melhor aplic-lo, quando e onde precisarmos.

    Pensamento Computacional um processo de resoluo de problemas que inclui as seguintes caractersticas, mas que no se limita a elas:

    Formulao de problemas de modo que permita fazer uso do computador e outras ferramentas para ajudar a resolv-los;

    Representao de dados atravs da abstrao, tais como modelagem e simulao;

    Automatizao de solues atravs do pensamento algortmico (uma se-quncia de instrues);

    Generalizao e transferncia do processo de soluo de um problema para uma grande variedade de problemas relacionados (Wing, 2006:33).

    Assim, seja qual for o campo de atuao escolhido, ser inevitvel estudar e entender um pouco de computao ou informtica. De fato, esse pouco deve ir alm de uma alfabetizao digital bsica, e incluir a compreenso de termos como software ou hardware e tambm saber ligar um computador e navegar pela rede mundial de computadores.

    A organizao americana CSTA Computer Science Teachers Association (Associao de professores da Cincia da Computao) defende que o ensino da computao, como cincia, deve comear j no ensino mdio. O documento K12 Computer Science Standards, que estabelece padres para a educao em Cincia da Computao no ensino mdio americano apregoa que:

    Para ser cidados bem-educados em um mundo com utilizao intensiva de computao e para ser preparado para as carreiras no sculo 21, os nossos es-tudantes devem ter uma compreenso clara dos princpios e prticas da cincia da computao. Nenhum outro assunto vai abrir tantas portas no sculo 21 como a cincia da computao, independentemente da rea fim de estudo ou ocupao do estudante (Seehorn et al., 2011:ii).

    No entanto, o ideal que esse processo educativo seja realizado no apenas com uma viso tecnicista, mas tambm seja amparado por diversas abordagens disciplinares e cientficas.

    Dentro desse esprito, o livro Computer Science Unplugged (Bell, 2011), traduzido para diversas lnguas, inclusive o Portugus, dispe de uma coleo de atividades desen-

  • 13

    volvidas com o objetivo de ensinar os fundamentos da cincia da computao sem a necessidade de computadores. A concepo desse livro foi motivada pela necessidade de implementao de mtodos ldicos e simples que dispensem a utilizao de computadores na sala de aula. Para Bell, [...] as atividades desplugadas so passveis de aplicao em localidades remotas com acesso precrio de infraestrutura (i.e., sem energia eltrica ou computadores disponveis) e podem at ser ministradas por no especialistas em computao (2011:i).

    A palavra Computao deriva do latim computare, que significa contar e que existia muito antes do primeiro computador. O termo Informtica provm da contrao das palavras Information automatique (Informao automtica) e foi criado em 1962 na Frana, portanto aps o primeiro computador.

    De acordo com Lancharro e colaboradores, A informtica nasceu da ideia de auxiliar o homem nos trabalhos rotineiros e repetitivos, em geral de clculo e gerenciamento (2004:1). Uma das definies mais comumente aceitas: Informtica a cincia que estuda o tratamento automtico e racional da informao. Entre as principais funes da informtica destacam-se: a) desenvolvimento de novas mquinas; b) desenvol-vimento de novos mtodos de trabalho; c) construo de aplicaes automticas; d) melhoria de mtodos e aplicaes existentes.

    Nesse sentido, este captulo abordar alguns conceitos introdutrios relacionados aos fundamentos da computao de modo que o estudante seja capaz de:

    Reconhecer nas mquinas computadorizadas os elementos essenciais que as tornam capazes de processar dados;

    Perceber a evoluo histrica dos computadores;

    Identificar os Sistemas Computacionais e seus componentes;

    Distinguir as diversas reas que compem a Cincia da Computao.

    O captulo est organizado da seguinte forma. A Seo 1.2 apresenta o computador como uma mquina capaz de processar dados e gerar informaes. A Seo 1.3, numa viso do computador como um sistema, detalha os componentes de hardware e software e a interao entre eles. A Seo 1.4 apresenta um breve resumo da evoluo histrica dos computadores e da prpria computao. A Seo 1.5 descreve a orga-nizao da Cincia da Computao em 14 reas do conhecimento a partir do Currculo de Referncia da ACM (Association for Computer Machinery) e demonstra, atravs de exemplos, o potencial de aplicao da rea da Cincia da Computao em outras reas do conhecimento. Na Seo 1.6 o aluno aprende a utilizar o Ambiente Virtual de Aprendizagem denominado TIDIA-AE. A Seo 1.7 apresenta as consideraes finais do captulo, enquanto exerccios para fixao dos conceitos discutidos neste captulo so fornecidos na Seo 1.8.

    1.2 o computador e seus elementos bsicosDo ponto de vista da informtica, o dispositivo utilizado para o processamento de dados e a obteno de informao o computador. O computador uma mquina composta de elementos fsicos do tipo eletrnico, capaz de realizar uma grande va-

  • 14

    riedade de operaes com alta velocidade e preciso, a partir de instrues adequadas (Lancharro et al., 2004:2).

    A Figura 1.1 apresenta um esquema bsico representando o computador, elemento central, como um dispositivo que transforma dados de entrada em dados de sada, ou seja, que age como um processador de dados.

    figura 1.1: o computador transformando dados de entrada em sada.

    O fluxo de processamento de dados da Figura 1.1 didtico, na medida em que apresenta os elementos principais do funcionamento de uma mquina que faz clculos como, por exemplo, um computador. Entretanto, tal fluxo muito genrico, pois no diferencia um computador de mquinas que realizam apenas um conjunto restrito de funcionalidades como, por exemplo, uma mquina de calcular, ou o sistema de controle de uma mquina de lavar roupas. Sabemos, entretanto, que os computadores atuais so mquinas de propsito geral, pois esto preparados para realizar uma variedade de tarefas, dentro de um amplo escopo de complexidade.

    A fim de simular procedimentos mais gerais, aproximando-se da concepo de um dispositivo de computao de propsito geral, o matemtico ingls Alan M. Turing props em 1936 um tipo de mquina abstrata, um modelo matemtico terico para o computador universal, chamada de Mquina de Turing. Ela se tornou um dos prin-cipais elementos para amparar o conceito da computabilidade, ou seja, se algo computvel num tempo finito. Alan M. Turing (1912 1954) considerado um dos pais da Computao.

    Basicamente, o dispositivo lgico que Turing chamou de automatic machine (mquina automtica) era capaz de ler, escrever e apagar smbolos binrios (zeros e uns) em uma fita de comprimento ilimitado, dividida por quadrados de igual tamanho. Uma cabea de leitura/gravao se moveria em qualquer direo ao longo da fita, um quadrado por vez, e uma unidade de controle poderia interpretar uma lista de ins-trues simples, movendo-se para a direita ou para a esquerda (Gersting, 2004:403). A Figura 1.2 ilustra o dispositivo.

  • 15

    figura 1.2: modelo conceitual da mquina de turing.

    O que torna uma mquina de Turing capaz de executar uma tarefa o conjunto de regras de transio que compem o programa da mquina (o seu objetivo) e um determinado estado inicial (Tenrio, 1991:47). Possveis instrues que poderiam compor um conjunto de regras seriam: a) Imprima 0 no quadrado, se leu 1, e mova-se para a direita; b) Mantenha 1 na fita, se leu 1, e pare.

    Basicamente, o Modelo de Turing acrescenta um elemento extra estrutura da Figura 1.1, o programa, conforme pode ser observado na Figura 1.3.

    figura 1.3: um computador baseado no modelo de turing.

    Denomina-se programa o conjunto de instrues dadas a um computador para a re-alizao de determinado processo. Isso equivale, por exemplo, s regras de transio da Mquina de Turing. Ao conjunto de um ou vrios programas que atuam de forma cooperada para realizar um determinado trabalho d-se o nome de Aplicao ou Sistema. Os dados processados (atravs de clculos, comparaes, ordenaes, etc.) transformam-se em informao til, que apoiar a tomada de deciso a partir de algo que antes no se conhecia, ou seja, que no estava explcito nos dados brutos.

    O programa capaz de ser processado pelo computador deve estar numa linguagem de programao. Existem diversas linguagens de programao, compreensveis para o computador, tais como: C, C++, Java e Pascal. No comeo da era dos computadores, as nicas linguagens de programao disponveis eram as linguagens de mquina

  • 16

    que eram compostas de sequncias de 0s e 1s (zeros e uns). Posteriormente, foram criadas linguagens de alto nvel, mais prximas da linguagem humana (Forouzan e Mosharraf, 2011:215).

    Outro termo bastante utilizado como sinnimo de programa algoritmo, que o conjunto de operaes necessrias para transformar os dados iniciais no resultado desejado. Costuma-se adotar o termo algoritmo para a lgica da resoluo do problema, ainda numa linguagem abstrata que no pode ser processada pelo computador.

    A ttulo de ilustrao a Figura 1.4 apresenta um algoritmo, escrito numa linguagem bem prxima do Portugus, que tem por finalidade exibir a soma de quaisquer dois nmeros informados por um usurio.

    figura 1.4: algoritmo para somar dois nmeros.

    No modelo de Turing (veja Figura 1.3), os dados de sada dependem da combinao de dois fatores: os dados de entrada e o programa. No exemplo do algoritmo da Figura 1.4, se no passo 1 o usurio informar o valor 5 para X e no passo 2 informar o valor 3 para Y, o valor 8 ser impresso no passo 4. Num outro processamento se forem informados respectivamente os valores 4 e 6 para X e Y, o resultado no passo 4, desta vez, ser o 10, conforme ilustrado na Figura 1.5. Assim, o mesmo programa (algoritmo) produz resultados distintos para entradas de dados distintas. Por outro lado, se os dados forem os mesmos, o resultado tambm ser o mesmo.

  • 17

    figura 1.5: exemplos de processamento de dados.

    A Figura 1.6 mostra que problemas distintos requerem programas distintos. Cada programa efetua operaes distintas sobre esses dados. Com base no problema A, o primeiro programa ordena alfabeticamente os nomes informados na entrada de dados. O segundo programa, orientado pelo problema B, localiza e seleciona o maior elemento do conjunto fornecido na entrada de dados.

    figura 1.6: problemas distintos requerem programas distintos.

    1.3 sistemas computacionais e seus componentesEsta seo pretende abordar o computador como parte de um sistema computacional, que pode ser definido como um conjunto de componentes que realizam processa-mentos automticos a partir de dados de entrada, e que fornecem uma sada contendo esses dados transformados. Existem vrios tipos de sistemas computacionais. Os mais comuns so os computadores pessoais, dentre ele os computadores de mesa e os computadores portteis.

  • 18

    Outro tipo de sistema computacional que tem se tornado cada dia mais comum so os sistemas computacionais embarcados. Esses contm um sistema computacional embutido (Hansmann et al., 2003). Diferentemente dos computadores pessoais, que possuem um propsito geral, os sistemas embarcados realizam tarefas especficas como, por exemplo, falar ao telefone, emitir rotas, autenticar usurios, rastrear objetos, etc. Exemplos deles so: celulares, GPS (Global Position System), Smart Cards, Smart Labels.

    O conjunto de componentes dos sistemas computacionais pode ser dividido em duas grandes categorias:

    Hardware; e

    Software.

    A seguir, tem-se uma descrio mais detalhada de cada uma dessas categorias.

    1.3.1 HardwareOs componentes da categoria Hardware so os elementos mecnicos e eletrome-cnicos dos sistemas computacionais e, de acordo com a arquitetura bsica proposta em 1944 por John von Neumann, engenheiro e matemtico hngaro, possuem quatro componentes, a saber: Unidade de Entrada e Sada de Dados; Memria; Unidade de Lgica e Aritmtica (ULA); e Unidade de Controle (UC). A Unidade Central de Proces-samento (UCP) engloba a UC e a ULA.

    A Figura 1.7 representa a arquitetura geral proposta por John von Neumann e seus componentes so detalhados a seguir.

    figura 1.7: arquitetura geral baseada no modelo de von neumann.

  • 19

    Unidades de entrada e sada de dados

    Os dispositivos de entrada so os hardwares responsveis por capturar os dados de entrada do sistema. Exemplos: teclado, mouse, cmera de vdeo, tela de toque. Os dispositivos de sada so os hardwares responsveis por apresentar os dados transformados. Exemplos: monitores, impressoras, dispositivos de emisso de voz, etc.

    Memria

    Durante o processamento, dados tanto de entrada quanto de sada e programas encontram-se em uma rea de armazenamento denominada memria. De acordo com a arquitetura de von Neumann possvel armazenar dados e programas no mesmo espao de memria. Existem dois tipos principais de dispositivos de armazenamento (memria): memria principal e memria secundria.

    A memria principal fornece aos dispositivos de processamento (ULA e UC) as informaes necessrias para a transformao dos dados de entrada nos de sada. Nessa categoria encontra-se, por exemplo, a memria RAM Random Access Memory (Memria de Acesso Aleatrio). A memria RAM voltil, pois seus dados so perdidos depois que o sistema desligado. H tambm a memria ROM Ready Only Memory (Memria Somente de Leitura), que armazena geralmente um programa denominado BIOS (Basic Input Output System).

    Os dispositivos de armazenamento secundrio guardam dados que podem ser recuperados aps o desligamento do sistema computacional. Exemplos desses dispositivos so: disco rgido (Hard Disk HD) interno ou externo, pen drive, carto de memria utilizado em cmeras digitais e celulares, entre outros. Esse tipo de memria geralmente mais barato, no entanto, so dispositivos mais lentos que a memria RAM. A memria secundria tambm pode ser considerada como um dispositivo de entrada de dados, quando os dados so carregados dela para a memria RAM, assim como de sada de dados, quando so gravados nela.

    Unidade de lgica e aritmtica

    A unidade de lgica e aritmtica (ULA) o local onde ocorrem as operaes aritmticas (adio, subtrao, diviso, multiplicao, dentre outras) e lgicas (comparao, classificao, dentre outras).

    Unidade de controle

    A Unidade de Controle (UC) o centro nervoso de computador. Como o prprio nome diz, a UC responsvel por controlar as instrues realizadas pelo computador, bem como controlar os demais componentes de sua arquitetura. A UC tem a lgica e a estrutura necessrias para executar funes tais como controlar a entrada e sada de dados e controlar as aes da ULA. No modelo de von Neumann, a UC busca uma instruo da memria e a executa, aps decodific-la. Assim, cada uma das instrues executada, uma aps a outra. Existem computadores na atualidade que podem executar instrues simultaneamente, em paralelo.

    Os componentes especificados, de acordo com a arquitetura von Neumann, podem ser agrupados em um nico hardware. Normalmente a ULA e a UC so agrupadas, formando um componente de hardware denominado Unidade Central de Processamento (UCP), do ingls Central Processing Unit (CPU). Em alguns casos, outros componentes podem

  • 20

    ser agrupados CPU, como dispositivos de entrada e sada (E/S) tambm conhecidos pelo termo em ingls Input/Output (I/O) e memria, tanto a principal quanto a se-cundria. Esse agrupamento definido de acordo com a finalidade do projeto e a sua modularidade. Um exemplo de CPU que possui, alm da UC e da ULA, tambm dispositivos de E/S e memria agrupados o microcontrolador. A CPU est presente nos mais variados dispositivos com capacidade de processamento como o caso, por exemplo, dos celulares e dos smart cards.

    No caso dos computadores de mesa ou portteis, todos os quatro componentes da arquitetura geral de von Neuman so integrados atravs de um hardware chamado de placa me. A Memria Princial (RAM e ROM) e a Unidade Central de Processamento so geralmente embutidos na placa me. Por outro lado, os dispositivos de entrada, sada de dados e os de armazenamento secundrio so conectados placa me atravs de cabos. Nos sistemas embarcados a integrao entre os componentes varia de acordo com o sistema computacional.

    1.3.2 SoftwareSoftwares so programas de computadores que permitem explorar os recursos dos hardwares, executar determinadas tarefas e resolver problemas de forma automtica. atravs do software que o ser humano interage com a mquina e torna operacional o sistema computacional.

    Os trs principais tipos de softwares so: i) software de sistema; ii) software de aplicao; e iii) software de servio.

    Software de sistema

    O software de sistema permite interagir com os componentes de hardware do com-putador. So exemplos desses softwares: BIOS, drivers, Sistema Operacional.

    O mais importante software de sistema o Sistema Operacional (SO). O SO responsvel por gerenciar os recursos computacionais e fazer a comunicao (ou interface) entre os componentes de hardware e os aplicativos. Sem um sistema operacional, no possvel utilizar os softwares de aplicao instalados em um computador. No mercado, existem vrios sistemas operacionais, a Tabela 1.1 mostra os mais comuns dentre eles.

    tabela 1.1:exemplos de sistemas operacionais.

    Sistema operacional Sistema computacional

    Windows Computadores de mesa e portteis

    Linux Computadores de mesa e portteis

    Mac OS Computadores de mesa e portteis

    Windows Tablet Edition Tablets

    Google Andorid Tablets, celulares

    iOS Tablets, celulares

    Windows EmbeddedSistemas embarcados (GPS, eletrodo-msticos, celulares, etc.)

  • 21

    Software de Aplicao

    Os softwares de aplicao, ou aplicativos, so programas criados para resolver tarefas especficas como: acessar a internet, enviar e receber mensagens, navegar pelo com-putador, editar um texto, desenhar uma imagem, etc. A Tabela 1.2 mostra exemplos de alguns aplicativos e suas funcionalidades.

    tabela 1.2: exemplos de aplicativos.

    Existem tambm os aplicativos embarcados, que so aqueles destinados a funcionar dentro de um sistema computacional embarcado (celulares, GPS, eletrodomsticos, etc.). Exemplos desses softwares so: aplicativo para envio de mensagens de um celular para outro, aplicativo para emitir rotas em um GPS, aplicativos de autenticao dos smart cards.

    Software de servio

    Os softwares de servio, tambm chamados de aplicativos web, so aqueles que no precisam ser instalados em um sistema computacional, e que so utilizados diretamente na Internet atravs de um navegador. Exemplos: Google, Google Maps, Tidia-AE, Moodle, etc.

    1.4 evoluo histricaA Computao uma cincia nova e est associada a uma srie de fatos e desco-bertas anteriores. Esta seo pretende destacar os principais elementos da histria da computao e dos computadores. Forouzan e Mosharraf (2011:7) e Tanenbaum (2007:8) dividem essa histria em trs perodos: i) as mquinas mecnicas at 1930; ii) os computadores eletrnicos de 1930 a 1950; e iii) as cinco geraes dos compu-tadores de 1950 at poca atual.

    Aplicativo Funcionalidade ExemplosNavegadores Acessar sites na Internet Internet Explorer,

    FireFox, Google Crome

    Editores de texto Editar documentos Br Office Writer, WordPad, Microsoft Word

    Planilhas eletrnicas Realizar clculos, plotar grficos, analisar dados

    Br Office Calc, Microsoft Excel

    Processadores de imagens

    Criar e editar imagens Microsoft Paint, Adobe Photoshop

  • 22

    1.4.1 mquinas mecnicasDestacam-se nesse perodo cinco invenes de mquinas de computao que con-triburam de forma importante para a evoluo dos computadores:

    MquinadeCalculardeBlaisePascal:Em1642,omatemticoefilsofofrancs,Blaise Pascal, inventou o primeiro dispositivo dotado da capacidade para pro-cessar dados. Esse aparelho, denominado de Pascaline, foi considerado a primeira mquina automtica de calcular e foi utilizado durante esse perodo como calculadora mecnica para fazer operaes de adio e subtrao;

    MquinadeCalculardeLeibnitz:Em1670,omatemticoalemoGottfriedLeibnitz inventou outra calculadora mecnica, denominada Roda de Leibnitz. Essa calculadora era semelhante mquina de Pascal, porm possua no somente a capacidade de adicionar e subtrair, mas tambm a de multiplicar e dividir. Calculadoras mecnicas so consideradas precursoras dos computadores, mas no so computadores. Isto porque no possuam memria nem podiam ser programadas;

    OTeardeJacquard:Em1804,Joseph-MarieJacquardcriouumamquinaqueaplicou pela primeira vez o conceito de armazenamento e programao. O tear era automatizado e utilizava cartes perfurados para controlar as mquinas de tecelagem e executar operaes previamente programadas;

    MquinaAnalticadeBabbage:Em1822,CharlesBabbageprojetouoqueseriao primeiro modelo de computador. Em 1833, ele inventou uma mquina deno-minada Mquina das Diferenas, que podia fazer no apenas simples operaes aritmticas, mas que tambm resolvia equaes polinomiais. Nesse perodo, Babbage anteviu os componentes que at hoje so a base de funcionamento de um computador: i) alimentao de dados atravs de cartes perfurados; ii) uma unidade de memria, onde os nmeros podiam ser armazenados e reutilizados; e iii) programao sequencial de operaes. Devido a limitaes tecnolgicas da poca, nenhuma das mquinas de Babbage chegou a ser cons-truda totalmente neste perodo;

    PerfuradoradeCartesdeHollerith:Em1890,HermanHollerithprojetoueconstruiu uma mquina programvel que podia ler, registrar e ordenar dados armazenados em cartes perfurados. A perfuradora de Cartes de Hollerith era uma mquina que possua o propsito especfico de processar os dados do censo dos Estados Unidos da Amrica (EUA). Somente a partir da dcada de 1930, tentativas srias foram feitas para a construo de computadores de propsito geral.

    1.4.2 computadores eletrnicosEntre 1930 e 1950, foram criados os primeiros computadores eletrnicos, dentre os quais se destacam:

  • 23

    Colossus:Em1943,AlanTuringcoordenouaequipeinglesaqueconstruiuo computador Colossus, que foi destinado a decifrar cdigos de mensagens cifradas por uma mquina alem (Enigma). O Colossus era eletrnico, mas no de propsito geral;

    ComputadorMARKI:Em1944,oProf.Aiken,daUniversidadedeHarvard,construiu MARK I, o primeiro computador moderno que utilizava rels eletro-mecnicos;

    ComputadorENIAC:Em1945,JohnMauchlyeJ.PresperEckertconstruramo primeiro computador de propsito geral, que utilizava vlvulas totalmente eletrnicas. Esse computador foi denominado ENIAC (Electronic Numerical In-tegrator and Calculator), media 30 metros de comprimento por 3 metros de altura e pesava 30 toneladas;

    ComputadorEDSAC:Em1949,EckerteMauchleyconstruramoEDSAC,o primeiro computador que tinha um programa armazenado para resolver problemas.

    1.4.3 Geraes de computadoresOs computadores construdos a partir de 1950 basearam-se no conceito de arma-zenamento de programas concebidos por John von Neumann. Os historiadores or-ganizam esse perodo em cinco geraes, cada uma delas marcada por importantes transformaes de hardware ou software.

    Primeiragerao(1950a1959):Estageraocaracterizou-seporcomputadoresque utilizavam vlvulas a vcuo para controlar a passagem de corrente eltrica. As vlvulas eram interligadas por fios conectados manualmente, queimavam com frequncia, eram grandes e lentas. Devido ao alto custo de construo e manuteno dos computadores construdos base de vlvulas, eles eram acessveis apenas a grandes empresas e centros de pesquisa;

    Segundagerao(1959a1965):Estageraocaracterizou-seporcomputadoresque utilizavam transistores para controlar a passagem de corrente eltrica. Tec-nologicamente falando, podemos dizer que os transistores so os sucessores das vlvulas eletrnicas. Transistores so componentes eletrnicos construdos com materiais semicondutores e funcionam como uma chave eletrnica (liga/desliga) ou como um amplificador de corrente. Quando utilizados na construo de computadores, proporcionaram um menor consumo de energia, menos aquecimento, maior velocidade de processamento, dentre outras melhorias de performance;

    Terceiragerao(1965a1975):Prosseguindonaevoluotecnolgica,oscomputadores desta gerao utilizaram circuitos integrados em sua construo. Um circuito integrado um componente eletrnico que integra elementos tais como transistores, resistores, diodos, etc., em um nico chip (pastilha). A palavra chave desta tecnologia a miniaturizao, o que possibilitou, dentre outras inovaes, o surgimento dos minicomputadores.

  • 24

    Quartagerao(1975a1985):Surgimentodosmicrocomputadores,dasredesde computadores, de banco de dados, computao distribuda, etc. (Forouzan e Mosharraf, 2011);

    Quintagerao(apartirde1985):Surgimentodoscomputadoreslaptopepalmtop, aperfeioamento nos meios de armazenamento secundrio (CD-ROM, DVD e assim por diante), o uso da multimdia, etc. (Forouzan e Mosharraf, 2011).

    A Figura 1.8 apresenta um esquema que resume a evoluo histrica dos computadores.

    figura 1.8: a evoluo histrica dos computadores (hardware e software).

    1.5 orGanizao da cincia da computaoDe acordo com o currculo de referncia da ACM Association for Computer Machinery (Cassel et al., 2008:15), a computao pode ser dividida em quatorze reas:

    1. Estruturas Discretas (ED);

    2. Fundamentos da Programao (FP);

    3. Algoritmos e Complexidade (AC);

    4. Organizao e Arquitetura dos Computadores (OA);

    5. Sistemas Operacionais (SO);

    6. Computao Centrada em Redes (CR);

    7. Linguagem de Programao (LP);

  • 25

    8. Interface Humano-Computador (IH)

    9. Computao Grfica e Visual (GV);

    10. Sistemas Inteligentes (SI);

    11. Gesto e Administrao da Informao (GI);

    12. Questes Sociais e Profissionais (SP);

    13. Engenharia de Software (ES);

    14. Cincia Computacional (CC).

    Nessa seo, essas quatorze reas foram agrupadas em dois grupos: Grupo das reas de Softwares e Grupo das reas de Hardware. A Figura 1.9 demonstra claramente essa diviso.

    figura 1.9: diviso das reas em cincia da computao.

    Observa-se na Figura 1.9 que a Cincia da Computao enfatiza as reas pertencentes ao grupo de software. Esse grupo preocupa-se basicamente com a produo de diferentes tipos de softwares como, por exemplo: sistemas operacionais, aplicativos convencionais, aplicativos para sistemas embarcados e aplicaes web (Ver a Tabela 1.2 para recordar exemplos desses aplicativos).

    Por possuir muitas reas, o grupo de software foi includo nesse documento em seis subreas: Computao Cientfica, Interface Grfica, Desenvolvimento de Sistemas, Teoria da Computao, Sistemas Inteligentes, Gesto e Administrao da Informao e Questes Sociais e Profissionais.

  • 26

    A Figura 1.10 mostra a subdiviso do grupo de reas de softwares.

    figura 1.10: reas de Software da cincia da computao.

    1.5.1 reas de SoftwareComputao Cientfica

    A rea de Computao Cientfica rene conceitos fundamentais da Cincia da Com-putao e possui forte conexo com a Matemtica Discreta. Alguns conceitos dessa rea de conhecimento so: funes, teoria dos conjuntos, lgica, teoria dos grafos e probabilidade discreta, anlise de algoritmos, criptografia, algoritmos paralelos, modelagem e simulao e pesquisa operacional.

    Exemplos de suas aplicaes so:

    Simulaodereproduodeumaculturadebactriabaseadanojogodavida:http://code.google.com/p/lazbacterias/

    Simuladorneuromuscular:http://remoto.leb.usp.br/remoto/index.html

    Desenvolvimento de Sistemas

    O desenvolvimento de sistemas rene conceitos relacionados a algoritmos, imple-mentao de sistemas computacionais e processos de desenvolvimento. Alguns conceitos dessa rea de conhecimento so: algoritmos, estruturas de dados, recursi-vidade, programao orientada a objetos, fundamentos e segurana da informao, paradigmas de programao e engenharia de software.

    Exemplos de suas aplicaes so:

    JMOLQumica(estruturasmoleculares):http://jmol.sourceforge.net/

    AplicaesdeCognio(neuroimagens,neurofisiologia);

    AplicaesemFsica(dinmicadefluidos);

    Aplicaesparacelulares;

    AplicaesparaGPS;

    AplicaesparaTVDigital;

    AplicaesInternet.

  • 27

    Gesto e Administrao da Informao

    Essa rea fornece o entendimento de como armazenar, organizar e buscar os dados em sistemas computacionais. Alguns conceitos abordados nessa rea de conhe-cimento so: sistema de banco de dados, modelagem de dados, minerao de dados, hipermdia, arquitetura da informao, bibliotecas digitais.

    Exemplo de aplicaes so:

    Umsupermercadopodeanalisarosdadosdeconsumodeseusclientesparaidentificar quais novos produtos devem ser oferecidos a cada um deles.

    Interface Grfica

    A rea de Interface Grfica rene conceitos para o desenvolvimento de sistemas grficos, realidade virtual, processamento de imagens, design, avaliao de usabilidade e acessibilidade. Alguns conceitos abordados nessa rea de conhecimento so: in-terface humano-computador, processamento de imagens, animao por computador, realidade virtual, computao grfica.

    Exemplos de suas aplicaes so:

    Software para leituras em voz de websites: http://webanywhere.cs.washington.edu/

    Visualizaodasartriascoronriasepicrdicasemcontrastedemicrobolhas3D em imagens ecogrficas para auxiliar no diagnstico.

    Sistemas Inteligentes

    Essa rea apresenta tcnicas para desenvolver sistemas que reproduzem a capa-cidade racional do ser humano para resolver problemas. Alguns conceitos abordados nessa rea de conhecimento so: representao do conhecimento, aprendizagem de mquina, robtica, agentes inteligentes.

    Exemplos de suas aplicaes so:

    Software que joga xadrez;

    Futebolderobs;

    Buscainteligentenaweb.

    Questes sociais e profissionais (SP)

    Essa rea fornece conhecimento de como um profissional de Cincia da Computao dever comportar-se eticamente no mercado, aborda questes relacionadas com crimes virtuais e questes sociais. Alguns conceitos abordados nessa rea de conhe-cimento: histrica da computao, tica, criminalidade na computao.

    Exemplos de suas aplicaes so:

    ComputaoVerde;

    Direitodepropriedadedesoftwares e materiais disponveis na Internet;

    Computaoforense.

  • 28

    1.5.2 reas de HardwareAs reas pertencentes ao grupo de hardware preocupam-se com o entendimento dos componentes dos sistemas computacionais, suas caractersticas, desempenho e interaes. Tambm do nfase infraestrutura, conexo e segurana de redes (Internet, redes sem fio, conexes, etc.). Alguns conceitos abordados nessa rea de conhecimento so: lgica e representao dos dados, arquitetura e organizao de computadores, multiprocessamento, gerenciamento de memria, sistemas de arquivos, tolerncia a falhas, forense digital, redes de comunicao, segurana de redes, admi-nistrao de redes, computao mvel e sem fio, sistemas paralelos e distribudos, compreenso do modelo de programa armazenado de von Neumann e sua relao com as arquitetura e organizao de computadores de uso geral.

    Exemplos de suas aplicaes so:

    Suportedeequipamentos;

    Redesdecomputadores(semfio,internet,etc.).

    1.6 atividades em aulaEsta atividade tem por objetivo possibilitar ao aluno interagir com um tipo de software classificado como Ambiente Virtual de Aprendizagem (AVA). AVAs so sistemas com-putacionais que possuem diversos recursos para apoiar a educao, tais como:

    Repositrios:Locaisondeoprofessorpodedepositararquivoscommateriaisinstrucionais utilizados nas aulas, material de apoio, etc.;

    Escaninhos:Pastasindividuaisondeoestudantepodeguardarmateriaisquepodem ser visualizados pelo professor;

    Exerccios:Comessaferramentaoestudanterealizaexercciosquepoderoser corrigidos automaticamente, com feedback imediato;

    Frum:Comessaferramentaosestudantespoderodebatersobrediversosassuntos propostos pelo professor ou pelos prprios colegas.

    Mensagens:Comessaferramentaosestudantespoderotrocarmensagenscom o professor e tambm com os colegas. As mensagens enviadas e recebidas ficam no ambiente e podem, opcionalmente, ser enviadas para o e-mail dos destinatrios.

    Nessa atividade o aprendiz ser guiado na explorao de algumas ferramentas do AVA utilizado pela UFABC, que denominado TIDIA-AE. Durante a atividade o aluno dever utilizar os diversos conceitos estudados neste captulo.

    Para realizar essa atividade, siga as instrues descritas nas prximas sub-sees.

  • 29

    figura 1.11: tela inicial (conexo) tidia-ae.

    1.6.1 cadastro e confiGurao de perfil no tidia-ae Para obter um cadastro no ambiente TIDIA-AE da UFABC, carregue um navegador de internet e acesse as informaes sobre Acesso ao sistema TIDIA-AE no seguinte endereo:

    http://prograd.ufabc.edu.br/comunicados-ingressantes.

    Conectando-se ao TIDIA-AE

    Aps o cadastro realizado, acesse o endereo: http://tidia-ae.ufabc.edu.br/portal. Clique no boto de login, conforme indica a seta vermelha na Figura 1.11, no canto superior direito da tela.

    Para conectar-se ao ambiente, apenas digite o seu nome de usurio e a sua senha nos campos adequados, conforme ilustra a Figura 1.12.

    figura 1.12: tela de login (conexo) tidia-ae.

    Caso tenha problemas com seu usurio e senha, acesse o seguinte link https://acesso.ufabc.edu.br/site/login e clique em Recuperar Senha.

  • 30

    figura 1.13: tela de configurao do ambiente (preferncias) tidia-ae.

    Configurando o TIDIA-AE idioma

    possvel fazer algumas configuraes de preferncias em relao ao ambiente TIDIA-AE, conforme ilustra a Figura 1.13. Por exemplo, pode-se configurar o idioma que se deseja utilizar no ambiente.

    A Figura 1.14 exibe os passos para configurar o idioma para Portugus do Brasil.

    figura 1.14: tela de configurao do idioma tidia-ae.

    Configurando o perfil do usurio

    Recomenda-se preencher os dados do perfil do usurio, principalmente o e-mail, de forma que os outros participantes e, especialmente, o professor possam ter mais informaes a respeito do usurio e possam enviar mensagens, etc. A Figura 1.15 apresenta a tela e os passos necessrios para acessar o perfil.

  • 31

    figura 1.15: tela de configurao do perfil tidia-ae.

    1.6.2 inscrio em disciplinasPara ter acesso s atividades e aos materiais instrucionais de cada disciplina necessrio estar inscrito como participante dela. O usurio pode ser inscrito pelo professor ou pode inscrever a si prprio, caso a disciplina esteja aberta ao pblico para inscrio.

    Para inscrever-se em uma disciplina aberta ao pblico, siga os seguintes passos, conforme indicados na Figura 1.16:

    a) No menu lateral selecione a opo Onde Participo (My Worksites) Passo 1 na figura;

    b) Selecione a opo Sites que Aceitam inscrio Passo 2 na figura;

    c) Localize a disciplina (site) em que deseja inscrever-se.

    ATENO: Verifique com o professor qual o NOME da disciplina em que voc deve se inscrever.

    d) Selecione a opo Inscrever-se Passo 3 na figura.

    figura 1.16: tela de inscrio em disciplina (site) tidia-ae.

  • 32

    Aps concluir a inscrio, a nova aba da disciplina na qual se inscreveu deve aparecer, conforme mostra a Figura 1.17, a seguir. Observe tambm o menu lateral que existe relacionado aba da disciplina conforme exibido na Figura 1.18, mais frente. As diversas opes desse menu sero exploradas a seguir.

    figura 1.17: aba da nova disciplina (inscrio) tidia-ae.

    1.6.3 atividades no tidia-aeEstando inscrito corretamente na disciplina, voc estar apto para realizar as atividades propostas para essa aula. Siga as instrues.

    figura 1.18: tidia-ae menu lateral.

    Frum

    Frum uma ferramenta de interao entre os participantes. Com ela, temas de dis-cusso podem ser propostos de forma que os participantes possam expressar suas opinies e tambm comentar as respostas dos demais participantes. considerada uma ferramenta colaborativa de aprendizagem, uma vez que possibilita aprender com o outro.

    A Figura 1.19 apresenta a tela de acesso ao frum.

  • 33

    figura 1.19: tela de frum tidia-ae.

    No frum proposto para essa aula, cada participante dever fazer uma breve apre-sentao pessoal, alm de compartilhar com seus colegas as razes que o levaram a escolher estudar na UFABC.

    Para acessar o frum veja os passos indicados na Figura 1.20.

    figura 1.20: tela do frum porque escolhi a ufabc.

    Eis alguns exemplos de assuntos que voc pode usar na sua apresentao.

    a) Nome pelo qual gosta de ser tratado (chamado);

    b) Cidade natal e ou cidade de origem (residncia);

    c) Formao secundria (colegial, tcnico em determinada especialidade, etc.);

    d) Time de futebol e/ou lazer preferido (estilo de filme, cantor preferido, etc.).

  • 34

    Lembre-se de fechar a sua participao respondendo a pergunta: Porque escolhi a UFABC?

    Durante a semana, lembre-se de ler as apresentaes de seus colegas no FRUM e fique vontade para fazer comentrios sobre as respostas dos colegas.

    Algumas questes-guias para seus comentrios so:

    a) O que voc achou do motivo pelo qual seu colega escolheu a UFABC?

    b) O que h de comum entre sua resposta e a do seu colega?

    c) Voc possui gostos comuns com seus colegas?

    Exerccios

    A ferramenta de Exerccios propicia ao estudante responder a questes disponibi-lizadas pelo professor. Para acessar os Exerccios siga os passos exibidos na Figura 1.21.

    figura 1.21: tela de exerccios tidia-ae.

    Nessa atividade esto disponveis 10 questes sobre o tema estudado na aula de determinado dia. Essa avaliao tem finalidade formativa, ou seja, a de orientar os seus estudos. Faa o seu melhor para tentar acertar cada resposta, mas fique atento ao feedback.

    Aps selecionar a avaliao a responder, d um clique no boto Iniciar Avaliao, conforme mostrado na Figura 1.22.

    figura 1.22: tela de exerccios (iniciar avaliao) tidia-ae.

  • 35

    Aps responder, pode-se Enviar para Atribuio de Nota ou Salvar para voltar depois (save for later), conforme a Figura 1.23. Note, no entanto, que cada avaliao pode ter um tempo limite para sua concluso.

    figura 1.23: tela de exerccios (responder e avanar) tidia-ae.

    1.6.4 explorando outras ferramentas do tidia-aeO TIDIA-AE possui diversas outras ferramentas que sero utilizadas no decorrer do curso. Algumas delas so apresentadas a seguir e voc poder explor-las a seu tempo.

    Repositrio

    A ferramenta de Repositrio permite que o professor disponibilize recursos (apostilas, slides, arquivos em geral) que podem ser acessados por todos os participantes do curso. O TIDIA-AE permite aos participantes apenas ler esses arquivos e fazer download deles, mas no permite que esses participantes criem ou depositem arquivos no repositrio.

    A Figura 1.24 exibe como acessar o repositrio.

    figura 1.24: tela da ferramenta repositrio tidia-ae.

  • 36

    Escaninho

    A ferramenta de Escaninho permite que o estudante disponibilize recursos (tra-balhos, respostas de exerccios, arquivos em geral) para o professor. No escaninho, o estudante pode tambm guardar (em arquivos) suas anotaes sobre a disciplina, entre outras. O TIDIA-AE no permite que outros participantes (a no ser o professor) tenham acesso a esses arquivos.

    A Figura 1.25 exibe como acessar o escaninho.

    ATENO: Ao disponibilizar recursos no escaninho, caso necessite que o professor veja o material, voc deve avis-lo por meio de uma mensagem. No usual que o professor verifique os escaninhos de todos os alunos, a no ser que seja avisado para faz-lo ou que o prprio professor tenha solicitado ao aluno que deposite os arquivos no repositrio.

    figura 1.25: tela da ferramenta escaninho tidia-ae.

    Atividades

    Na ferramenta Atividades normalmente o professor disponibiliza tarefas que devem ser realizadas pelos alunos e submetidas para que o professor as avalie.

    Acesse a ferramenta, conforme ilustrado na Figura 1.26, e note que h uma atividade disponvel para voc realizar no decorrer da semana.

    figura 1.26: tela da ferramenta atividades tidia-ae.

  • 37

    Nessa atividade voc dever realizar uma pesquisa sobre uma rea da Cincia da Computao de sua escolha. Mais detalhes esto disponveis na prpria atividade no TIDIA-AE. Fique atento ao prazo para submisso.

    Mensagens

    Na ferramenta Mensagens possvel ler as mensagens recebidas do professor e dos colegas, bem como enviar mensagens para um ou mais participantes. Ao escrever uma mensagem pode-se indicar para a ferramenta que uma cpia dela seja enviada para o e-mail do(s) destinatrio(s).

    A Figura 1.27 mostra como acessar a ferramenta Mensagens.

    figura 1.27: tela da ferramenta mensagem tidia-ae.

    Avisos

    Nessa ferramenta o participante poder visualizar os Avisos deixados pelo professor. Normalmente, esses avisos podero ser acessados diretamente a partir da tela inicial. Outra maneira atravs do menu lateral, conforme mostra a Figura 1.28.

    ATENO: Note o smbolo de reciclagem que existe acima do numeral (1). Esse smbolo funciona como se fosse uma opo para recarregar (reload) as opes (menu, listas, etc.) da ferramenta atual. Isso vale para qualquer ferramenta.

    figura 1.28: tela de avisos tidia-ae.

  • 38

    Participantes

    Na ferramenta Participantes possvel visualizar quem so os outros participantes (colegas de turma) do curso, bem como ter acesso aos seus e-mails, etc.

    1.7 consideraes finaisOs computadores esto por toda parte, nas mais diferentes formas. O Pensamento Computacional torna-se necessrio nas mais diversas reas do conhecimento. Assim, todos ns, alm de precisarmos aprender a usar minimamente esses equipamentos, necessitamos compreender como funcionam os computadores e como essas mquinas pensam. Este captulo apresentou alguns elementos bsicos dos Fundamentos da Computao para apoiar a compreenso da Computao como cincia organizada. Em suma, este captulo demonstra que a Computao uma cincia que possui fortes fundamentos, est evoluindo rapidamente e est se tornando ubqua.

    Os prximos captulos iro apresentar, de forma concreta, aplicaes computacionais nos mais variados cenrios e com o suporte de distintas ferramentas. O prximo ca-ptulo, por exemplo, tratar da Representao Grfica de Funes com o suporte de ferramentas como o Scilab.

    1.8 exerccios1. 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).

    2. Descreva 2 outros exemplos de funcionamento de um sistema computacional e seus componentes. Procure ser original e criativo.

    3. Assista ao vdeo sobre a histria dos computadores e responda a questo: Como voc imagina o futuro dos sistemas computacionais? O vdeo est disponvel em: http://www.youtube.com/watch? v=F3qWg1JBPZg

    4. O Google sites um exemplo de software de servio. Utilize esse software para criar uma pgina Web com seu currculo. Siga o tutorial disponvel no link: http://www.youtube.com/watch? v=B4WmVeBxGqM

    5. Responda: o que computao ubqua?

    6. Procure na Internet exemplos de sistemas computacionais que so utilizados nas seguintes reas do conhecimento: Base Experimental das Cincias Naturais, Bases Epistemolgicas da Cincia Moderna, Bases Matemticas, Estrutura da Matria e Origem da Vida e Diversidade dos Seres Vivos. necessrio pelo menos um exemplo de cada rea.

    7. Classifique os sistemas encontrados no exerccio 6 em pelo menos uma das 6 subreas de software.

  • 39

    referncias biblioGrficasBELL, T.; WHITTEN, I.; FELLOWS, M. Computer Science Unplugged. Universidade de

    Canterbury, Nova Zelndia, 2007. Disponvel em http://csunplugged.org/sites/default/files/books/CSUnpluggedTeachers-portuguese-brazil-feb-2011.pdf. Acesso em 16/02/2013.

    CASSEL, L.; CLEMENTS, A.; DAVIES, G.; GUZDIAL, M.; McCAULEY, R.; McGETTRICK, A.; SLOAN, B.; SNYDER, L.; TYMANN, P.; WEIDE, B. W; SEIDMAN, S.; McGETTRICK, A. Computer Science Curriculum 2008: An Interim Revision of CS 2001, 2008. Dis-ponvel em http://www.acm.org/education/curricula/ComputerScience2008.pdf Acesso em 16/02/2013.

    FOROUZAN, B.; MOSHARRAF, F. Fundamentos da Cincia da Computao. [S.l.]: Editora Cengage, 2011.

    GERSTING, J. L. Fundamentos Matemticos para a Cincia da Computao. 5 Edio. Rio de Janeiro:Editora Ltc., 2004. 612 p.

    HAMBRUSCH, S. et al. A multidisciplinary approach towards computational thinking for science majors. In: Proceedings of SIGCSE09. Chattanooga, Tennessee, USA: [s.n.]. 2009.

    HANSMANN, U. et al. Pervasive computing Handbook. [S.l.]: Springer, 2003.

    HENDERSON, P. B. et al. Computational thinking. In: Proceedings of SIGCSE07. Covington, Kentucky, USA: [s.n.], 2007.

    JOHNSON, G. The World: In Silica Fertilization; All Science Is Computer Science. New York Times on the Web, 2011. Disponvel em http://www.nytimes.com/2001/03/25/weekinreview/the-world-in-silica-fertilization-all-science-is-computer-science.html. Acesso em 16/02/2013.

    LANCHARRO, E. A.; LOPES, M. G.; FERNANDEZ, S. P. Informtica Bsica. So Paulo: Pearson, 2004. 288 p.

    SEEHORN, D.; CAREY, S.; FUSCHETTO, B.; LEE, I.; MOIX, D.; OGRADY-CUNNIFF, D.; OWENS, B. B.; STEPHENSON, C.; VERNO, A. K12 Computer Science Standards. 2001. Disponvel em http://csta.acm.org/Curriculum/sub/CurrFiles/CSTA_K-12_CSS.pdf. Acesso em 16/02/2013.

    TANENBAUM, A. S. Organizao estruturada de computadores. 5 Edio. So Paulo. Editora Pearson, 2007. 464 p.

    TENRIO, R. M. Computadores de Papel Mquinas Abstratas Para um Ensino Concreto. So Paulo:Editora Cortez, 2001. 120 p.

    WING, J. Computational thinking. Communications of the ACM, v. 49, n. 3, 2006.

  • captulo 2representao Grfica de funesAline NevesIrineu Antunes JniorMarcio Eisencraft

    2.1 introduoNeste captulo discutimos como funes podem ser empregadas para representar fenmenos da natureza e como o uso de ferramentas computacionais voltadas a clculos cientficos pode facilitar bastante o estudo destes fenmenos pela repre-sentao grfica de funes.

    Inicialmente, na Seo 2.2, discutimos questes envolvidas na representao grfica de funes e mostramos alguns casos em que tais grficos podem ser teis no auxlio do entendimento de um problema. Em seguida, na Seo 2.3, introduzimos uma fer-ramenta computacional que permite realizar clculos cientficos e grficos de maneira rpida e prtica. Para que voc possa praticar e compreender melhor as questes apresentadas, na Seo 2.4, oferecemos atividades a serem desenvolvidas em sala de aula. Na Seo 2.5, fazemos consideraes finais sobre o captulo e, finalmente, na Seo 2.6, oferecemos alguns exerccios de fixao seguidos de exerccios mais avanados.

    2.2 uso de funes em cincia e enGenhariaA Cincia e a Engenharia sempre buscam modelar fenmenos naturais e fsicos por funes matemticas que possam, pelo menos de maneira simplificada, reproduzir os comportamentos observados na Natureza. Neste sentido, podemos citar como exemplos leis que regem o comportamento de gases, escoamento de fluidos, pro-pagao de ondas, movimento de corpos, crescimento de populaes, alm de muitos outros. Muitas vezes, dado o modelo matemtico de um sistema, nos deparamos com a necessidade de visualizar o comportamento dele, ou ento precisamos encontrar uma soluo, mas no sabemos ao certo por onde comear a procur-la. Nestes casos, grficos das funes em questo podem auxiliar no entendimento, fornecendo, in-clusive, uma primeira aproximao para a soluo procurada.

    Suponha, por exemplo, que se deseja prever a taxa de crescimento de uma faixa s-cio-econmica da populao, em um perodo de anos no abordado numa pesquisa. Seria necessrio fazer um modelo matemtico a partir do grfico obtido com os dados disponveis para se conseguir a informao desejada por meio de uma extrapolao. A Figura 2.1 ilustra tal processo.

  • 42

    figura 2.1: exemplo de extrapolao.

    Os pontos cheios so os dados da pesquisa realizada entre os anos de 2000 e 2009; a curva cheia uma funo matemtica que descreve os dados obtidos nestes anos; a curva tracejada a funo extrapolada em datas futuras; os pontos vazios so os dados futuros (desconhecidos).

    exemplo 1: Para iniciar este estudo, considere um caso bastante simples de um mo-vimento uniformemente variado definido pela equao:

    onde s a posio atual do corpo em movimento, s0 a posio na qual ele comeou o movimento, v0 a sua velocidade inicial, a sua acelerao e t o tempo decorrido desde o incio do movimento. Como exemplo, vamos supor s0 = 0, v0 = 20 m/s e a = 5 m/s2, ou seja, o corpo est freando. Se quisermos visualizar como a posio s ir variar em funo do tempo t, podemos fazer um grfico relacionando estas duas grandezas. A Figura 2.2 ilustra o movimento em questo. Observando o grfico, podemos facilmente obter algumas caractersticas do movimento: como o corpo est freando, a posio mxima que ele ir atingir s = 40 m e ele levar 4 segundos para atingi-la, como mostrado pelo ponto (b) na Figura 2.2. Neste ponto a sua velocidade ser nula. A partir da, a acelerao negativa pode ser vista como uma acelerao em sentido contrrio e, portanto, o corpo comear a voltar, atingindo a posio s = 0 novamente em t = 8 s (ilustrado pelo ponto (c) na figura). Os dados observados graficamente podem ser facilmente conferidos atravs da substituio dos valores citados na equao (2.1). Em particular, os instantes em que s = 0 so facilmente encontrados calculando-se as razes da equao.

    (2.1)

  • 43

    figura 2.2: espao em funo do tempo para um movimento uniformemente variado.

    Em (a) e (c) temos os pontos onde o corpo est em s=0, enquanto que (b) ilustra o valor mximo de s.

    Em alguns casos, no entanto, a resoluo analtica do problema pode ser bastante complicada, se no impossvel.

    exemplo 2: Considere a obteno das razes, ou seja, dos pontos nos quais a seguinte funo se anula:

    f(x) = sen(x) + cos(1 + x2) 1

    Neste caso, o grfico da funo pode ser til para auxiliar a soluo do problema. Observando o grfico de f(x) para x [0,4], ilustrado na Figura 2.3, v-se que f(x) ser nula para dois valores de x neste intervalo: x1 e x2. Alterando a escala do grfico (Figura 2.4), vemos que a primeira raiz se encontra em x11.9 e a segunda em x22.5.

    figura 2.3: Grfico de f(x) dada por (2.2).

    (2.2)

  • 44

    figura 2.4: regio em torno das razes de (3.2).

    Por outro lado, nem sempre esta abordagem possvel. Tcnicas mais sofisticadas de busca de razes de funes so estudadas na disciplina de Clculo Numrico.

    Um grfico tambm pode auxiliar na visualizao de um problema mesmo que no se conhea seu modelo em detalhes. Observando o grfico, tem-se uma ideia do comportamento geral de sistemas empregados na prtica. Este o caso dos exemplos a seguir.

    exemplo 3: Suponha que um elevador ser usado para levar uma carga ao 4o andar de um edifcio. A Figura 2.5 apresenta o comportamento de trs elevadores diferentes aps receberem um comando solicitando que o elevador se desloque para o 4o andar.

    figura 2.5: resposta de trs elevadores a um comando.

  • 45

    Imagine-se dentro de um destes elevadores. Qual deles lhe proporcionaria a viagem mais eficiente e confortvel? Claramente, o Elevador 2 no l uma boa escolha. Veja que ele passa em muito do 4o andar, retorna e, alm disso, fica chacoalhando antes de parar. O Elevador 3 vai exigir do seu ocupante uma larga dose de pacincia, j que ele demora muito para atingir o andar desejado. Dentre os apresentados, o Elevador 1 a melhor opo j que ele alcana o 4o andar num tempo razoavelmente curto e sem oscilaes. Veja que todas estas informaes foram obtidas do grfico da Figura 2.5. Em cursos posteriores, voc vai aprender que estas trs respostas so denominadas criticamente amortecida (Elevador 1), subamortecida (Elevador 2) e superamortecida (Elevador 3).

    exemplo 4: Dispositivos eltricos podem ser caracterizados pelos valores de tenso e corrente medidos nos seus terminais. Por exemplo:

    NaFigura2.6.a,apresentamososvaloresmedidosdetenso(VL) e corrente (IL) nos terminais de uma lmpada incandescente. Deve-se comentar que uma lmpada incandescente possui valores nominais de operao que so impressos no seu bulbo. No entanto, na prtica, o valor da corrente consumida depende da tenso que efetivamente aplicada.

    NaFigura2.6.b,sorepresentadososvaloresdetenso(VG) e corrente (IG) medidos nos terminais de um gerador.

    Deseja-se ligar o gerador na lmpada. Neste caso, durante a operao do circuito, deve-se ter VL= VG e IL= IG. Como encontrar o valor de corrente e tenso a que ser submetida a lmpada?

    Este problema pode ser resolvido graficamente, conforme mostrado na Figura 2.6.c, na qual so desenhadas as curvas caractersticas dos dois dispositivos. O cruzamento das curvas fornece o ponto de operao (a) indicado neste grfico. Lendo os valores nos eixos, obtemos que a corrente ser, aproximadamente, de 1,2A e a tenso de 98V.

    figura 2.6: exemplo de lmpada ligada a um gerador.

  • 46

    exemplo 5: considere a seguinte reao qumica reversvel:

    caracterizada pela relao de equilbrio

    onde ci representa a concentrao do componente i (Chapra, 2008). Na Figura 2.7 so mostrados quantos moles de C so produzidos dependendo do valor de K. Mesmo no conhecendo o modelo em detalhes, o grfico permite visualizar que a quantidade de C aumenta rapidamente para K entre 0.1 e 0.6, diminuindo a taxa de crescimento aps este valor.

    figura 2.7: nmero de moles de c em funo do valor de K.

    Existem diversas ferramentas computacionais que podem ser usadas para produzir grficos de funes, desde planilhas at programas bastante avanados de simulao numrica como o Matlab, o Octave e o Scilab. Neste curso, utilizamos o Scilab para estudar alguns problemas simples para os quais uma primeira aproximao da resposta pode ser obtida facilmente por meio de grficos. Antes, no entanto, vejamos como utilizar comandos bsicos no Scilab.

    2.3 empreGo do scilab para fazer GrficosO Scilab (assim como o Matlab e o Octave) um software para clculos matemticos avanados usado em computao cientfica e Engenharia. Conta com bibliotecas de funes matemticas prontas, facilidade de programao e recursos grficos avanados, facilitando o projeto e a anlise de sistemas de controle, o processamento de sinais, a anlise estatstica de dados e a otimizao de funes.

    (2.3)

    (2.4)

  • 47

    Ao abrirmos o programa, logo visualizamos o ambiente de trabalho. O prompt, re-presentado por uma seta, indica que o programa est pronto para receber uma linha de comando como se fosse uma calculadora cientfica. A seguir, veremos alguns comandos bsicos.

    2.3.1 operadores bsicosA seguir, temos alguns exemplos de operaes matemticas bsicas:

    Sedigitarmosumcomandosimplescomo,porexemplo,

    -->x = 2;criaremos uma varivel real chamada x, cujo valor igual a 2. Uma varivel sempre composta por dois elementos: um identificador (ou seja, o seu nome) e um contedo que represente o seu valor. No caso apresentado, o identificador da varivel x e seu valor igual a 2. Isso significa que foi alocado um endereo na memria RAM com o contedo igual a 2, o qual ser referenciado pelo nome x. Podemos criar variveis de vrios tipos:

    Inteiro:ocontedodavarivelserdadoporumnmeropertencenteaoconjunto dos nmeros inteiros Z como, por exemplo, -2, 0, 34.

    Real:ocontedodavarivelserdadoporumnmeropertencenteaoconjuntodos nmeros reais como, por exemplo, -234.45, 76, 2.7.

    Caracter:ocontedodavarivelserdadoporumnicocaracter,quepodeser um caracter numrico (de 0 a 9), alfanumrico (de A a Z, maisculo ou mi-nsculo) ou especial (como por exemplo %, @, ! etc.).

    String:ocontedodavarivelserdadoporumconjuntodecaracteresnu-mricos, alfanumricos ou especiais como, por exemplo, Este um conjunto de caracteres imprimveis.

    Lgico:ocontedodavarivelspodeassumirosvaloresverdadeiro,repre-sentado pelo nmero 1, ou falso, representado por 0.

    No caso do software Scilab, tambm possvel criar variveis de outros tipos como, por exemplo, string ou caracter. Contudo, como nosso objetivo executar clculos matemticos, as variveis em geral sero reais.

    O ponto-e-vrgula ao final da instruo no obrigatrio. Caso ele no seja colocado, a varivel ser apresentada na tela:

    -->x = 2 x = 2

  • 48

    Da em diante, cada vez que empregamos a varivel x, estaremos utilizando o seu contedo.

    -->y=x+5 y = 7

    Esta operao define y como sendo uma varivel com valor igual ao valor de x mais cinco, ou seja, y ter um valor igual a 7.

    -->z=x*y z = 14

    Neste caso, z ser igual multiplicao dos valores guardados em x e y, ou seja, z ser igual a 14.

    -->w=z/x w = 7

    Aqui, w ser igual diviso dos valores guardados em z e x, ou seja, w ser igual a 7.

    Alm dos operadores acima, o Scilab possui vrias funes matemticas que podem ser facilmente utilizadas como:

    logaritmo:log(16)(logartmobasee),log10(16).

    exponencial:exp(-2).

    razquadrada:sqrt(4).

    funessenoidais:sin(x),cos(x),tan(x),cotg(x).

    2.3.2 fazendo o Grfico de uma funo simplesConsideremos a funo

    f(x)=sen(x)

    no intervalo x [0,2]. Sempre que desejamos produzir um grfico de uma funo, precisamos, primeiramente, definir em quais pontos gostaramos de visualizar a funo, ou seja, em quais valores de x. No Scilab, existem duas formas para se definir estes valores:

    1. Definindo diretamente os pontos x nos quais queremos plotar a funo. Neste caso basta digitarmos, na linha de comando do Scilab, diretamente os valores de x que nos interessam, separados por um espao e entre colchetes:

    --> x=[0 0.5*%pi %pi 1.5*%pi 2*%pi]No comando acima, escolhemos cinco valores de x entre 0 e 2 com passo 0.5. Estes so os valores para os quais desejamos calcular f(x) e, em seguida, construir o grfico. Neste caso, x chamado de vetor, pois possui mais de um elemento.

    (2.5)

  • 49

    interessante notar que o valor de , no Scilab, obtido precedendo-se a palavra pi do smbolo %.

    2. Definindo um intervalo de valores de x no qual queremos plotar a funo f(x). Neste caso, podemos usar diretamente o intervalo [0,2]. Assim, para definir x, podemos usar o seguinte comando em Scilab:

    --> x = 1o valor : passo : ltimo valor do intervalo Tal instruo criar um vetor x cujo primeiro valor ser igual ao primeiro valor do intervalo. O segundo valor ser dado pelo valor anterior somado ao valor do passo. Isso ir se repetir at que o valor da soma seja igual ou menor do que o ltimo valor do intervalo. Por exemplo, se digitarmos o seguinte comando:

    --> x=0:0.5*%pi:2*%pi;produziremos um vetor exatamente igual ao que foi digitado no exemplo anterior. J a instruo

    --> x=0.5:0.25:1.5;ir fornecer um vetor com os seguintes valores: x = [0.5 0.75 1 1.25 1.5]. Outro exemplo interessante seria

    --> x=0:0.2:0.7;que ir resultar num vetor x=[0 0.2 0.4 0.6]. Ou seja, o ltimo elemento ser menor do que o ltimo valor especificado para o intervalo. Isso acontece porque, se somarmos o valor do passo mais uma vez, o valor resultante excede o intervalo especificado.

    Observe que, quanto menor for o valor do passo, mais valores teremos no vetor x.

    Quando o passo desejado for igual a 1, ele no precisa ser digitado. Por exemplo, a instruo

    --> x=1:5;ir gerar um vetor com os seguintes valores: x = [1 2 3 4 5].

    Uma vez criado um vetor x, precisamos agora encontrar os valores de f(x) em cada ponto do vetor. neste momento que softwares para clculos matemticos como o Scilab facilitam bastante a tarefa: eles so otimizados para trabalhar com vetores e matrizes. Assim, a simples instruo

    --> f=sin(x);ir gerar um vetor f cujos elementos so dados pelo seno dos elementos definidos em x. Finalmente, podemos fazer o grfico desejado, utilizando o comando

    --> plot(x,f);em que o primeiro parmetro se refere ao eixo das abscissas e o segundo, ao eixo das ordenadas.

    Resumindo o que foi visto at aqui, poderamos produzir o grfico desejado utilizando a seguinte sequncia de instrues:

    --> x=0:0.01:2*%pi;

  • 50

    --> f=sin(x);--> plot(x,f);O grfico resultante mostrado na Figura 2.8.

    figura 2.8: Grfico da funo seno.

    Para colocar nomes nos eixos dos grficos, podemos usar os comandos:

    --> xlabel('nome do eixo x');--> ylabel('nome do eixo y');--> title('nome da janela do grafico');

    Para colocar as linhas de grade no grfico, podemos usar o comando:

    --> set(gca(),grid,[1 1]);

    Neste caso, o grfico ficar como apresentado na Figura 2.9. O comando set utilizado para ajustar o valor de alguma propriedade de um grfico tendo, como parmetros, o que se deseja ajustar, a propriedade em questo e o valor que esta deve assumir. Neste caso, o que se deseja ajustar so os eixos do grfico o que referenciado por gca, a propriedade so as linhas de grade, ou seja, grid e o valor que este parmetro deve assumir [1 1], tornando as linhas visveis. Para retirar a grade, basta usar o comando

    --> set(gca(),grid,[-1 -1]);

  • 51

    figura 2.9: Grfico da funo seno (com linhas de grade).

    Para alterar a cor da curva no grfico, podemos adicionar um ltimo parmetro ao comando plot, dado pela primeira letra da cor desejada em ingls. Por exemplo,

    -->plot(x,f,'r');desenhar a curva em vermelho (red em ingls). Uma exceo acontece para a curva em preto, j que, em ingls, azul e preto comeam com a letra b (blue e black). Somente neste caso, portanto, a ltima letra deve ser usada, isto , para fazer a curva em preto devemos usar o comando plot(x,f,'k'). Para maiores informaes sobre o comando plot, digite help plot.

    2.3.3 cuidados com outros tipos de funesUm certo cuidado precisa ser tomado quando precisamos plotar grficos de funes que envolvam multiplicao ou diviso de vetores. Consideremos, por exemplo, a funo f(x) = xex, no intervalo x [0,1]. Seguindo os passos discutidos na seo an-terior, temos:

    Criaodeumvetordevaloresparax:

    --> x=0:0.01:1;Clculodef(x): se digitarmos a instruo exp(x), teremos um vetor com os resultados do clculo da exponencial de cada valor existente no vetor x. Este vetor precisar ser multiplicado por x e, portanto, temos uma multiplicao de dois vetores: x e exp(x). Neste momento precisamos tomar um certo cuidado. Se digitarmos a instruo x*exp(x), interpretada pelo Scilab como o produto de dois vetores, este ir supor que desejamos realizar uma multiplicao vetorial entre os dois, o que no o caso. O que queremos multiplicar os dois termo a termo, isto , queremos multiplicar o primeiro elemento de x pelo primeiro elemento de exp(x) e o segundo elemento de x pelo segundo de exp(x) e assim

  • 52

    por diante. Para conseguir tal resultado corretamente, precisamos utilizar a seguinte instruo:

    --> f=x.*exp(x);Ou seja, o operador multiplicao * precisa ser precedido de um ponto. O mesmo acontecer se tivermos que calcular a diviso entre dois vetores como no caso da funo f(x) = x/(1+x2). Assim, um ponto deve ser colocado antes do operador /.

    Basicamente, toda vez em que tivermos vetores envolvidos e quisermos realizar as operaes a cada elemento do vetor, precisaremos usar o ponto antes do operador em questo. O mesmo vale quando queremos elevar os elementos de um vetor a uma certa potncia. Para calcular x2, por exemplo, precisamos digitar a instruo x.^2.

    Porfim,ogrficopodeserfeitopormeiodocomando:plot(x,f ).

    2.4 atividades em aulaA seguir, empregamos o Scilab como uma ferramenta computacional para resolver alguns problemas.

    atividade 1: A empresa COLKS a uma indstria automobilstica do pequeno pas chamado Govers, onde a moeda of icial o dubila. O lucro mensal da COLKS funo do nmero de carros produzidos no ms. Ela tem um custo fixo de 50 dubilas e um custo varivel funo do nmero de carros produzidos no ms. Usando NC para definir o nmero de carros produzidos em um ms, o custo varivel dado por 48NC . Vamos dizer que ela venda cada carro por 50 dubilas. Assim, o seu lucro L mensal dado por

    L = 50Nc - 48Nc

    0.9 - 501. Usando uma calculadora ou o computador, determine o lucro L da COLKS ao produzir NC = 1, NC = 4 e NC = 10 carros. Interprete os resultados que voc obteve.

    2. Agora faa um grfico de L em funo de NC para 0 NC 20. A partir de quantos carros mensalmente vendidos a COLKS comea a ter lucro?

    3. Analisando o grfico, quantos carros a COLKS tem que produzir no ms para ter um lucro de cerca de 100 dubilas?

    Vamos comear com o Item 1. Para obter o valor de L para NC = 1, podemos digitar no Scilab

    -->N_C = 1;-->L = 50*N_C - 48*(N_C)^(0.9)-50 L = - 48.Assim, quando produz apenas 1 carro, a Colks tem lucro negativo, ou seja, um prejuzo de 48 dubilas.

    Para NC = 4 e NC = 10

    (2.6)

  • 53

    -->N_C = 4;-->L = 50*N_C - 48*(N_C)^(0.9)-50 L =- 17.145708-->N_C = 10;-->L = 50*N_C - 48*(N_C)^(0.9)-50 L = 68.722447Vemos que para 4 carros vendidos a Colks ainda tem prejuzo. Porm, para NC = 10, ela j tem lucro de cerca de 68 dubilas.

    O Item 2 pede para fazermos um grfico de L x NC e obtermos a partir de quantos carros a Colks comea a ter lucro. Pelo Item 1 j sabemos que este nmero de carros deve estar entre 4 e 10. Faamos, ento, o grfico no Scilab. Como o nmero de carros vendidos NC deve ser inteiro (afinal, ningum vende 1/2 carro), vamos usar um passo unitrio.

    -->N_C = 0:1:20;-->L = 50*N_C - 48*(N_C).^(0.9)-50;-->plot(N_C,L);-->set(gca(),"grid",[1 1])

    -->xlabel('N_C');-->ylabel('L');Digitando-se estas linhas, deve-se obter o grfico da Figura 2.10.

    figura 2.10: Grfico obtido no item 2 da atividade 1.

  • 54

    Nesta figura, vemos que realmente o ponto em que L=0, raiz da funo L(NC), est entre 4 e 10, mais precisamente um pouco acima de NC = 5. Assim, conclumos que a COLKS comea a ter lucro quando vende pelo menos 6 carros. Caso necessrio, use as ferramentas de ampliao (clique na lupa no canto esquerdo da tela).

    O Item 3 fica fcil de ser resolvido com o grfico da Figura 2.10. Para que L100, pre-cisamos de NC = 12 carros.

    Encerramos assim esta primeira atividade.

    atividade 2: Um sistema de comunicao digital binrio consiste em um transmissor e um receptor ligados por um meio fsico (ar, cabo coaxial, fibra tica, etc.) chamado de canal. O transmissor manda informao na forma de uma sequncia de 0s e 1s, chamados de bits para o receptor. Devido s distores e ao rudo inserido pelo canal, nem todo bit transmitido recebido corretamente: na sequncia de bits, alguns 0s viram 1s e alguns 1s viram 0s no receptor (Haykin, 2000).

    Uma das formas de avaliar um sistema de comunicao digital por meio da taxa de erro de bit, abreviada como BER (do ingls Bit Error Rate). Uma taxa de erro de 20%, por exemplo, quer dizer que, a cada 100 bits transmitidos, 20 chegam errados por causa de problemas na comunicao.

    Quando se estudam sistemas de comunicao digital, muito comum avaliar como a BER varia em funo do rudo no canal. Esta quantidade de rudo medida por uma grandeza denominada Relao Sinal-Rudo, abreviada por SNR (do ingls Signal-to-Noise Ratio). Quanto menor a SNR, mais rudo o ambiente adiciona ao sinal transmitido.

    Pede-se:

    1. Pelo descrito acima, espera-se que a BER seja uma funo crescente ou de-crescente da SNR?

    2. Vamos supor que seja transmitida a seguinte sequncia de bits: [0, 0, 1, 1, 1, 0, 1, 1, 0, 0]; mas que, devido aos problemas descritos acima, receba-se a seguinte sequncia: [0, 0, 1, 0, 1, 0, 1, 1, 1, 0]. Quantos bits foram recebidos erroneamente? E, levando em conta estas sequncias, qual a taxa de erro de bit (BER)?

    Ainda nesta atividade, suponha que o sistema de comunicao binrio apresente uma BER dada por (Haykin, 2000)

    BER = e SNR/2

    3. Quanto a vale a BER para SNR=0. Interprete este valor.

    4. Faa um grfico da BER em funo da SNR para valores de SNR entre 0 e 100. Comente sobre este grfico. possvel visualizar bem os valores da BER?

    5. Utilizando o grfico que voc fez no item anterior, responda: qual a SNR ne-cessria para se chegar a uma taxa de erro de 10-5?

    6. Faa agora um grfico de log10(BER) em funo da SNR. Comente.

    7. Repita o Item 5 usando este ltimo grfico. Comente!

    Vamos comear com o Item 1. Conforme descrito no texto, conforme aumentamos a SNR, melhoraro as condies do canal. Assim, de se esperar que o sistema tenha

    (2.7)

  • 55

    menos erros (BER) nesta situao. Assim, esperamos que a BER seja uma funo de-crescente da SNR.

    No Item 2 temos duas sequncias de bits. Veja que elas diferem na quarta e na pe-nltima posio. Assim, temos dois bits recebidos erroneamente entre os 10 trans-mitidos e a BER ser 20%.

    O Item 3 tambm possvel de ser feito diretamente. Veja que para SNR=0, temosBER = e 0/2 = . Assim, quando SNR=0 a taxa de erros no receptor 50%. Ou seja, ele acerta metade dos bits transmitidos, que o pior que pode acontecer. Veja que a chance do receptor adivinhar qual foi o bit transmitido e acertar exatamente 50%.

    No Item 4 pede-se um grfico da BER em funo da SNR. Vamos aos comandos no Scilab:

    SNR = 0:0.01:100;BER = .5*exp(-SNR/2);plot(SNR,BER);set(gca(),"grid",[1 1])

    xlabel('SNR');ylabel('BER');Voc deve obter um grfico como o da Figura 2.11.

    figura 2.11: Grfico da ber em funo da snr usando escala linear nos dois eixos.

    Fica difcil visualizar os valores de BER para uma SNR10. Eles ficam muito pequenos. Mesmo usando a ferramenta lupa, fica difcil analisar as taxas de erro para SNR elevadas. Assim, impossvel responder o Item 5.

    Uma forma mais prtica de colocar em grfico os valores de BER e de qualquer grandeza fsica que assume valores muito pequenos ou muito grandes usar a funo log. Veja que log10 ( 10

    n ) = n. Assim, se BER = 10 5, log10BER = 5 . Vamos ento fazer o grfico de log10 (BER) em funo da SNR.

  • 56

    SNR = 0:0.01:100;BER = .5*exp(-SNR/2);plot(SNR,log10(BER));set(gca(),"grid",[1 1])

    xlabel('SNR');ylabel('log(BER)');Obtemos o grfico da Figura 2.12.

    figura 2.12: Grfico do logaritmo da ber em funo da snr.

    Agora fica bem mais fcil observar os valores da BER. Esta uma tcnica muito usada em todas as reas da Cincia!

    Ento, para responder o Item 7, basta observar no grfico qual valor da SNR leva a log10BER = 5. Este valor est em torno de SNR=22.

    Na seo 2.6 propomos vrios outros exerccios para voc treinar a produo com-putacional de grficos e a sua interpretao.

    2.5 consideraes finaisEste captulo estudou como funes podem ser usadas para representar fenmenos da natureza. Em especial, o uso de ferramentas computacionais voltadas a clculos cientficos permitiu fazer a representao grfica de funes. Tal representao, por sua vez, constituiu uma forma valiosa para se visualizar o comportamento de fenmenos, permitindo compreend-los melhor e extrair informaes deles. Por exemplo, na Ati-vidade 1, o grfico possibilitou responder perguntas como: A partir de quantos carros se comea a ter lucro? Quantos carros deve-se produzir para se ter um dado lucro? Alm disto, o grfico tambm permitiu compreender como o comportamento das

  • 57

    variveis envolvidas. Por exemplo, ainda na Atividade 1, observando-se a expresso (2.6), a princpio, no possvel saber como o comportamento do lucro (L) em funo do nmero de carros produzidos (NC). Por outro lado, a curva L x NC evidencia que o lucro sempre crescente, tornando-se positivo a partir de certo nmero de carros. Ou seja, em alguns casos, um grfico uma boa maneira de representar um dado fenmeno, especialmente quando se quer enfatizar o comportamento das va-riveis envolvidas. A despeito disto, h casos em que o comportamento de variveis no pode ser representado por meio de funes determinsticas. Para descrever fenmenos aleatrios, podem-se empregar mtodos estatsticos, como ser visto no prximo captulo.

    2.6 exercciosEsta seo contm exerccios bsicos (Exerccios 1 a 7) que visam fixao do contedo visto em aula e exerccios mais avanados (Exerccio 8 em diante) que podem exigir conhecimento adicional. Estes ltimos no so essenciais para o bom aproveitamento no curso, contudo, foram includos como desafio para o aluno interessado.

    1. Um certo sistema de comunicao binrio, em determinada situao, apresenta uma Taxa de Erro de Bit (BER) em funo da Relao Sinal-Rudo (SNR): BER = e 2SNR.Seguindo o exemplo da Atividade 2, vista em aula, pede-se:

    a) Faa um grfico de log(BER) em funo da SNR.

    b) Qual sistema apresenta melhor desempenho, em termos de taxa erro: o da atividade 2 ou o apresentado neste exerccio?

    2. O grfico na Figura 2.13 mostra o lucro em reais, obtido por uma empresa em funo do nmero de peas produzido por ela em um ms.

    figura 2.13: Grfico usado no exerccio 2.

  • 58

    A partir deste grfico, responda as seguintes perguntas:

    a) Qual o nmero mnimo de peas que a empresa precisa produzir mensalmente para que no tenha prejuzo?

    b) Se a empresa visa ter um lucro de R$ 10000,00 anuais, quantas peas ela precisa produzir mensalmente?

    c) Qual o lucro mensal por pea produzida pela empresa quando ela produz 60 peas? E quando ela produz 20 peas? Tente representar graficamente estas taxas.

    3. Usando um grfico, localize as razes das seguintes funes:

    a) f(x) = exx

    b) f(x) = sen(10x) cos(3x)

    c) f(x) = x cos(x)

    4. (Relacionado ao Exemplo 4 de uma lmpada ligada a um gerador) Conforme visto no texto, o ponto de cruzamento do grfico de duas funes pode ser usado para encontrar de maneira aproximada a soluo simultnea de um conjunto de equaes. Seja o sistema de equaes

    2x+y = 1

    3x+2y = 4

    que pode ser expresso na forma matricial por

    Usando a linha de comando no Scilab, pede-se:

    a) Encontre a soluo exata pelas matrizes:

    -->A=[-2 1;3 2];b=[1; 4];-->sol=A\b;-->xsol=sol(1);-->ysol=... //complete aqui com o valor

    //de y (ordenada).Repita o clculo usando a matriz inversa:

    -->B=inv(A);-->sol2=B*b;b) Defina o intervalo de interesse para se fazer o grfico. Por exemplo, tome 101 pontos, desde 0.8*xsol at 1.2*xsol:

    -->0.8*xsol:(1.2-0.8)*xsol/100:1.2*xsol;c) Faa o grfico de y1 obtido pela primeira equao e de y2 obtido da segunda equao e verifique que o ponto sol dado pela interseco de duas retas. Dica:

    -->y1=1+2*x;

  • 59

    -->y2=... // complete aqui

    -->plot(x,y1);-->plot(...) //complete aqui

    -->ysol=... //complete aqui

    -->plot(xsol,ysol,'ro'); // ponto da solucao

    -->xlabel(...);ylabel(...);xtitle(...); // complete acima com dados do grafico.

    d) Repita este exerccio para duas funes quaisquer de sua escolha, de prefe-rncia no lineares.

    5. Faa o grfico de:

    6. Faa o grfico das funes abaixo e compare os resultados obtidos:

    a) f (t) = e - t/2 , para 0 < t < 2.

    b) f (t) = e t/2 , para 0 < t < 2.

    c) f (t) = e (t - 1)/2 , para 1 < t < 3.

    7. Faa o grfico de f(x)=|x2|+|2x+1|x6. Para que valores de x, tem-se f(x)>2x+2?

    8. Qual deve ser o valor de f aps a execuo das seguintes instrues:

    a)-->t=3;-->f=sin(t);b)-->x=1:5;-->f=cos(%pi*x);

    c)-->x=-1:0.5:1;-->f=1./(x.^2+2);

    9. Seja um sistema de coordenadas (x,y). Um crculo C pode ser definido analiti-camente como o conjunto de pontos que obedecem a equao

    (xa)2 + (xb)2 = r2,

    em que r igual ao raio e (a,b) so as coordenadas do centro.

    Usando grfico de funes, um crculo pode ser desenhado em duas etapas:

    1 fazer o grfico da parte positiva: y+ = r2 (x a)2 ;

  • 60

    2 fazer o grfico da parte negativa: y = r2 (x a)2.

    Nas duas etapas, a rigor, deve-se considerar x em um intervalo que produza y real,

    ou seja, x [ a r, a +