Cálcu...ional - eel-usp-c?lculo num?rico computacional - 1 - introdu??o

Cálcu...ional - eel-usp-c?lculo num?rico computacional - 1 - introdu??o

(Parte 1 de 3)

Cálculo Numérico e ComputacionalC.Y. Shigue

Introdução 1

Introdução ao Cálculo Numérico e Computacional

Introdução

O Cálculo Numérico consiste na obtenção de soluções aproximadas de problemas de

Álgebra Linear e Não-Linear, Estatística e Análise de Dados, Cálculo Diferencial e Integral e outros métodos matemáticos, utilizando métodos numéricos. Com a popularização de computadores de baixo custo e de alta capacidade de processamento, praticamente todas as atividades de Engenharia tem feito uso cada vez mais intensivo dos métodos e técnicas computacionais na resolução de problemas reais, para os quais as soluções manuais são impraticáveis e/ou imprecisas.

Desta forma, o uso do computador como ferramenta de trabalho de cálculo numérico requer o entendimento dos seus princípios de operação e de como eles interferem nos resultados obtidos. Geralmente, é aceito como verdade que computadores não erram e que são os usuários é que cometem enganos que levam ao mal funcionamento do computador. Na realidade, o computador, como dispositivo de cálculo numérico, “comete” erros devido às suas características intrínsecas e o papel do usuário é quantificar esses erros e encontrar formas de, se não eliminálos, pelo menos minimizá-los.

Hardware e Software

Hardware é o termo em inglês empregado para designar todo e qualquer componente, parte e sistema, capaz de realizar um processamento computacional, isto é, um processamento de modificação e controle de dados numéricos. Exemplos de hardware são o computador, suas partes, componentes e periféricos (monitor de vídeo, disco magnético, impressora, etc). Um computador é constituído pelas seguintes unidades:

• unidade central de processamento (CPU - Central Processing Unit): responsável pela execução de instruções e pelo controle da operação de todas as unidades do computador.

• unidade de armazenamento de instruções e dados, que pode ser dividida em unidade primária, para armazenamento em tempo de execução (memória RAM - Random Access Memory) de curta duração e unidade de armazenamento secundária, de longa duração, é uma memória permanente constituída pela memória ROM (Read-Only Memory), pelos discos magnéticos (floppy disk e disco rígido) e pelos discos ópticos (CD-ROM, CD-RW) e magneto-ópticos.

• unidades de entrada e saída (I/O - Input/Output), cuja função primária é a entrada e saída de dados do computador. Exemplos de dispositivos de entrada de dados são o teclado, o mouse, microfone e joystick, enquanto que dispositivos de saída típicos são o monitor de vídeo, caixa de som e impressora. Exemplos de periféricos que funcionam como dispositivos de entrada e saída de dados são a tela de vídeo sensível ao toque (touch screen) e o modem, usado para comunicação de dados entre computadores através de uma linha telefônica.

Atualmente, a capacidade dos computadores superam e muito as suas especificações e propósitos de uso original. Os computadores são capazes não apenas de armazenar, tratar e gerir

Cálculo Numérico e ComputacionalC.Y. Shigue

Introdução 2 informações em quantidade e velocidade, são capazes também de proverem comunicação entre computadores e outros dispositivos eletrônicos digitais, tais como telefones, fax e televisores; são capazes de aceitar, manipular e apresentar informações na forma de voz, som, imagem, vídeo e texto; permitem o controle de outros dispositivos eletrônicos digitais, tais como semáforos, sistema de tráfego aéreo (radares, torre de controle, mesa de operação), sistema de comunicações (telefonia digital), sistemas bancários (caixa eletrônico, terminal de consulta, mesa de operação) e inúmeras outras aplicações essenciais para a vida cotidiana. A penetração da computação na vida diária se dá de tal forma, que aparelhos eletrodomésticos comuns, como torradeiras, máquina de fazer café são dotadas de um computador embutido num componente integrado miniaturizado e a tendência é que o computador de mesa que conhecemos hoje se torne um eletrodoméstico que vai comandar os outros aparelhos eletrodomésticos.

Os programas de computador são um conjunto de instruções que comandam o hardware.

O software, por sua vez, designa um programa ou um conjunto de programas, capazes de atuar, modificar e controlar o processamento de dados lógicos e numéricos pelo computador. Existem três tipos de software:

• sistemas operacionais e firmware: os sistemas operacionais são programas de computador que contém todas as instruções para o controle e a operação do computador. Exemplos de sistemas operacionais são o MS-DOS, Windows-9x (95, 98, ME e XP/Home), Windows NT, 200 e XP/Professional e o UNIX e suas variantes (Linux, FreeBSD, Solaris, Mac-OSX, etc) que "rodam" em diversas plataformas de hardware. A maioria dos sistemas operacionais provê uma interface de usuário gráfica (GUI - Graphical User Interface), de modo a facilitar a operação do computador sem a necessidade de memorização de comandos. O firmware é um conjunto de instruções que informa ao sistema operacional quais são os componentes de hardware que estão instalados no computador. Normalmente, o firmware é um conjunto de instruções que vem gravado numa memória ROM do tipo CMOS (Complementary Metal Oxide Semiconductors) instalada na placa-mãe. Em microcomputadores do tipo PC o firmware também é chamado de BIOS (Basic Input-Output System) a que muitos técnicos se referem como CMOS (por causa do tipo de memória).

• linguagens de programação: são as ferramentas para a construção de softwares, tanto para sistema operacional como para aplicações. Todos os programas que rodam num computador são feitos à partir de uma linguagem de programação. Existem diversas linguagens de programação, incluindo os seus dialetos que, geralmente, são constituídos por extensões da linguagem feitos por um fabricante de software em particular. Exemplos de linguagens de programação são: FORTRAN (linguagem de uso científico), COBOL (linguagem de uso comercial), BASIC, Pascal, C, C++ e Java. Existem linguagens de programação implementadas dentro de um software de aplicação e que são denominados scripts, como o VisualBasic for Applications (VBA), que é a linguagem script encontrada nos programas de processamento de texto Word, planilha Excel e banco de dados Access, todos integrantes do pacote de software Office da Microsoft. Outros programas que, originalmente foram criados como programas de aplicação com recursos de programação script, como os softwares de gerenciamento de banco de dados, evoluíram para linguagens de programação de banco de dados, como é o caso da linguagem SQL, desenvolvida pela IBM e pelo programa Oracle da empresa homônima.

Cálculo Numérico e ComputacionalC.Y. Shigue

Introdução 3

• software aplicativo: programas de computador desenvolvidos para o usuário final, podem ser classificados como software de aplicação. Os softwares de aplicação geralmente são programas desenvolvidos para uma aplicação específica como, por exemplo, um software de controle de contas a pagar e receber ou um software de planilha eletrônica ou de processamento de texto. Na medida em que o hardware foi evoluindo (processadores mais velozes, memórias e discos com maior capacidade de armazenamento, etc), os programas aplicativos foram evoluindo englobando diversas tarefas e agregando outros programas num "pacote", como o MS Office.

Na Fig. 1.1 é esquematizado, em nível hierárquico, a relação entre hardware, software e o usuário (ser humano). Quanto mais inferior o nível, mais ele se aproxima do nível puramente físico em que enxergamos um computador como sendo um conjunto de componentes eletrônicos, placas de circuito e gabinetes, sem uma função lógica (e inteligente) a fazê-lo funcionar. À medida que subimos nos diversos níveis, aproxima-nos do nível puramente lógico, representado pela inteligência criadora do computador, o ser humano. Neste nível, estamos numa camada mais abstrata em que os conceitos são baseados na lógica e no raciocínio para criarmos os programas que irão interagir com o nível físico. Um programa de computador é, na essência, um conjunto de instruções transcritas para a linguagem do computador da inteligência (abstrata) do seu criador. Usualmente, ele é confundido pelo disquete no qual é armazenado, mas na realidade trata-se de uma entidade lógica relacionada com a capacidade intelectual do seu autor em descrever de forma algoritmica a sequência para a consecução de uma atividade executada pelo computador.

Fig. 1.1 - Modelo hierárquico para um computador.

Arquitetura de Microcomputador

Um computador é essencialmente uma máquina de processamento de dados. Ele recebe dados ou requisição de informações, processa-os e fornece as informações ou dados requisitados de modo ordenado, digerido e reduzido, em forma de tabelas, gráficos, imagens, texto, som, etc.

Um microcomputador é um tipo de computador no qual a unidade central de processamento (CPU) é constituída por um circuito integrado de uso genérico de ultra alta escala de integração (ULSI - Ultra Large Scale of Integration) denominado microprocessador. Devido à sua disponibilidade, o microcomputador vem encontrando inúmeras aplicações em diferentes

Cálculo Numérico e ComputacionalC.Y. Shigue

Introdução 4 áreas, como na comunicação de dados, em redes de computadores, como sistema de aquisição de dados e de controle de instrumentação nas áreas científica, médica e industrial, como videogame e centro de entretenimento. Internamente, um microcomputador organiza-se da forma esquematizada na Fig. 1.2.

barramento interno

Fig. 1.2 - Arquitetura de um microcomputador.

Um microprocessador é um circuito integrado de elevadíssimo grau de integração, contendo milhões de transistores, é constituído basicamente por três unidades: i.Unidade de Controle: obtém as informações que estão armazenadas na memória principal, interpreta-as e dá sequência às operações para as outras unidades para executar as instruções; i.Unidade Lógica e Aritmética: unidade que realiza as operações lógicas e aritméticas. As operações lógicas principais são a multiplicação lógica (AND lógico), adição lógica (OR lógico), negação lógica, inversão ou complementação lógica (NOT lógico), além de outras operações como NAND, NOR, XOR, etc. As operações aritméticas são a adição, subtração, multiplicação, divisão e deslocamento. i.Memória interna cache: realiza operação de armazenamento da parcela de dados da memória principal mais requisitadas, com a finalidade de aumentar a velocidade de acesso aos dados entre a CPU e a memória principal.

Outras unidades podem ser agregadas na pastilha do circuito integrado para aumentar a velocidade de processamento e melhorar o desempenho do processador. A Fig. 1.3 mostra a arquitetura do microprocessador Pentium da Intel, com tamanho típico de circuito de 0,6 µm e contendo mais de três milhões de transistores. Observar que o processador de operações flutuante (Pipelined floating point) e o processador de operações inteiras (Superscalar integer execution units) são unidades adicionais, que tem como justificativa a capacidade de processamento superescalar e vetorial, características essas de supercomputadores, bem como suporte a unidade de processamento de operações com números complexos (Complex instruction support) que melhoram o desempenho do computador na execução de diversas tarefas simultaneamente (processamento paralelo multitarefa) e no

Cálculo Numérico e ComputacionalC.Y. Shigue

Introdução 5 processamento numérico intensivo (como na geração de gráficos 3-D, execução de sons no formato MP3 e exibição de vídeo digital).

Fig. 1.3 - Esquema do circuito do microprocessador Pentium.

A memória é usada para armazenar instruções e dados operados pela CPU. Existem dois tipos de memória: memória ROM e memória RAM. A memória ROM ou memória apenas de leitura (Read-Only Memory) armazena principalmente as informações que necessitam ficar armazenadas permanentemente, como aquelas relativas ao hardware (tipo e quantidade de discos magnéticos, tipo de controladora de vídeo, endereçamento e quantidade de memória). A memória RAM ou memória de acesso direto (Random-Access Memory) é um tipo de memória volátil, isto é, as informações armazenadas nela são temporárias e se perdem quando o computador é desligado. A memória RAM é utilizada principalmente para armazenar dados e instruções relativos aos programas a serem executados e que ficam disponíveis apenas durante o tempo de execução.

O Computador Digital

Desde os primórdios da Computação, nos anos 40, até os dias de hoje, os computadores vêm sofrendo um contínuo processo de desenvolvimento. Entretanto, o princípio fundamental de operação do computador não mudou, desde o ENIAC em 1945 e o EDVAC em 1952, que foi o primeiro computador integralmente eletrônico. Os computadores atuais são digitais (isto é, processam as informações utilizando números binários) que processam os dados e as instruções na CPU, com armazenamento na memória. Este modelo computacional deve-se ao matemático John Von Neumann, que estabeleceu os princípios dos computadores atuais e que por isso também são chamados de “computadores Von Neumann”. Pelo fato de operarem no formato numérico binário, significa que os números de base decimal a que estamos familiarizados devem ser convertidos no seu correspondente binário. Da mesma forma, o alfabeto e os símbolos gráficos (!?,.%$#<> etc) também devem ser convertidos em seu equivalente codificado em binário.

Cálculo Numérico e ComputacionalC.Y. Shigue

Introdução 6

Fig. 1.4 - John Von Neumann e o computador EDVAC, o primeiro computador digital do mundo.

A quantificação da informação armazenada e processada por um computador é feita através do byte (simbolizado pela letra B maiúscula), que é igual a 8 bits (simbolizado pela letra b minúscula). Em termos aproximados, um byte é equivalente à um caracter, e a informação é quantificada em termos de múltiplos de bytes, que são potências de 2, como veremos adiante, e estão apresentados como ordens de grandeza do byte, como descrito a seguir: 1 kB = 210 bytes = 1.024 bytes = 8.192 bits = 8 kb 1 MB = 220 bytes = 1.048.576 bytes = 1.024 kB 1 GB = 230 bytes = 1.073.741.824 bytes = 1.048.576 kB = 1.024 MB

Assim, um computador que contenha uma unidade de disco magnético de 650 MB de capacidade, é capaz de armazenar 650 x 1.048.576 = 681.574.400 bytes de informação, ou o equivalente a aproximadamente 681 milhões de caracteres, ou o equivalente a 180 mil páginas ou a cerca de 400 volumes de livros ou o equivalente a 40 volumes da Enciclopédia Britannica contendo somente texto. Para efeito de comparação, 650 MB também é a capacidade de armazenamento de um CD-ROM. O equivalente em CD a um arquivo de som digital é cerca de 75 minutos de gravação e equivalente à 100 imagens fotográficas coloridas de média definição (600 dpi - dpi = pontos por polegada).

Linguagens de Computador

No início da Computação, a programação era realizada através da abertura e fechamento de válvulas eletrônicas por meio de chaves que controlavam a passagem de corrente pelas válvulas. Era uma tarefa essencialmente de manipulação física do hardware (Fig. 1.5).

Fig. 1.5 - "Programando" o ENIAC.

Cálculo Numérico e ComputacionalC.Y. Shigue

Introdução 7

À partir dos anos 50, com o desenvolvimento das linguagens de programação, que iniciouse primeiramente com as linguagens de máquina (baseadas em codificação por números binários, 0 e 1), até as linguagens mais naturais como o FORTRAN e o COBOL, a programação de computadores vêm se afastando do nível físico e se torna cada vez mais uma atividade "abstrata" em que um algoritmo escrito em linguagem mais próxima à humana (daí o nome, linguagem "natural") tornando a programação à codificação de uma seqüência de instruções baseada numa linguagem de descrição de comandos. As primeiras linguagens foram projetadas para realização de tarefas específicas e foram evoluindo para linguagens de uso geral e hoje, se observa novamente uma tendência de dispor-se de linguagens de uso específico. À seguir, listamos as principais linguagens de programação.

(Parte 1 de 3)

Comentários