2010
Joo Lus G. Rosa c 2010 - SCC-120: I. Introduo Computao e Introduo Programao 1/57
Sumrio
Introduo Computao Sistemas de Numerao Tipos de Informao O Microcomputador Introduo Programao Conceitos Bsicos Resoluo de Problemas Mandamentos de um bom programa
2/57
Sumrio
Introduo Computao Sistemas de Numerao Tipos de Informao O Microcomputador Introduo Programao Conceitos Bsicos Resoluo de Problemas Mandamentos de um bom programa
3/57
Introduo
No sistema de numerao usual, o sistema decimal, usa-se dez dgitos 0, 1, 2, ..., 9. Um nmero maior que 9 representado usando uma conveno que atribui signicado posio ou lugar ocupado por um dgito, ou seja, o nmero 6903 tem o signicado numrico como: 690310 = 6 103 + 9 102 + 0 101 + 3 100 O sistema decimal um sistema posicional.
4/57
Sistema Binrio
O sistema binrio usa somente os dgitos 0 e 1. Quando um nmero escrito no sistema binrio, os dgitos individuais representam os coecientes de potncias de 2. Por exemplo, o nmero decimal 19 escrito em representao binria como 10011, pois este arranjo de dgitos binrios signica: 100112 = 1 24 + 0 23 + 0 22 + 1 21 + 1 20 = 16 + 0 + 0 + 2 + 1 = 1910
5/57
Sistema Binrio
Um nmero que no inteiro pode ser expresso usando a notao de vrgula decimal. O decimal 1,8125 tem o signicado numrico: 1 100 +8 101 1, 812510 = + 1 102 + 2 103 + 5 104
Do mesmo modo, podemos expressar um nmero binrio fracionrio, usando a notao de vrgula binria: 1, 11012 = 1 20 + 1 21 + 1 22 + 0 23 + 1 24
6/57
Sistema Binrio
Assim, dgitos a direita da vrgula binria so coecientes de 2n , onde n a distncia do dgito direita da vrgula binria. Em aritmtica decimal, movendo a vrgula decimal k casas para a esquerda ou direita, divide-se ou multiplica-se, respectivamente, o nmero por 10k . No sistema binrio, este deslocamento da vrgula divide ou multiplica por 2k .
7/57
A converso de um nmero binrio para um nmero decimal obtida usando a aritmtica ilustrada nas equaes acima. Ex.: Converter o nmero binrio 1001 para a base 10: 10012 = 1 23 + 0 22 + 0 21 + 1 20 = 8 + 0 + 0 + 1 = 910 Ex.: Converter 1, 01102 para a base 10: 1, 01102 = 1 20 + 0 21 + 1 22 + 1 23 + 0 24 = 1 + 0 + 0, 25 + 0, 13 + 0 = 1, 3810
8/57
...x8 x4 x2 x1 2
= ...x8 x4 x2 + resto x1
9/57
Assim, o dgito menos signicativo x1 o resto, e o quociente um novo nmero N = ...x8 x4 x2 , onde x2 passou a ser o dgito menos signicativo. Uma sequncia de divises por 2 resultar na forma binria de N atravs dos restos.
10/57
Sistema Octal
Outro sistema que tem algum interesse em computao o sistema octal, de base 8. Neste sistema so usados os dgitos decimais de 0 a 7. Todo nmero neste sistema expresso como uma soma de potncias de 8 multiplicadas por coecientes apropriados, que so os prprios dgitos do nmero. Por exemplo, o nmero 7508 equivale a 7 82 + 5 81 + 0 80 = 48810 . Para converter um nmero decimal em octal, s realizar divises sucessivas por 8, de modo anlogo ao sistema binrio.
11/57
Sistema Hexadecimal
No sistema hexadecimal, a base 16, sendo usados os dez dgitos decimais 0, 1, 2, ..., 9 para representar dez dos dgitos necessrios, sendo os outros seis representados pelas letras A, B, C, D, E e F. Todo nmero neste sistema expresso como uma soma de potncias de 16 multiplicadas por coecientes apropriados, que so os prprios dgitos do nmero. A relao especial entre os sistemas octal e hexadecimal e o sistema binrio resulta do fato de que trs dgitos binrios podem representar exatamente oito (23 ) nmeros diferentes, como j visto e que quatro dgitos binrios podem representar dezesseis (24 ) nmeros diferentes.
12/57
Bases de numerao
13/57
Sumrio
Introduo Computao Sistemas de Numerao Tipos de Informao O Microcomputador Introduo Programao Conceitos Bsicos Resoluo de Problemas Mandamentos de um bom programa
14/57
Palavras
A informao representada num computador atravs de sequncias binrias que so organizadas em palavras. Uma palavra uma unidade de informao de comprimento xo n, onde n determinado pelo custo do hardware, que o conjunto dos componentes fsicos do computador. Cada dgito binrio chamado de bit (binary digit). o componente bsico da representao de dados. O conjunto de 8 bits chamado de byte.
15/57
Caracteres
Os primeiros computadores usavam palavras de 6 bits, pois 6 era o nmero mnimo de bits para representar as 26 letras do alfabeto ingls e os 10 dgitos decimais (26 = 64). Os 6 bits tambm permitiam um nmero razovel (28) de caracteres especiais como ponto, vrgula e smbolos matemticos. Mais recentemente as sequncias de 8 bits, os bytes, para representao de caracteres, tm sido mais utilizadas. Permitem caracteres adicionais, como alfabeto maisculo e minsculo, e mais caracteres de acentuao e controle.
16/57
Caracteres
Muitos computadores tm tamanho de palavras que so mltiplos de 8 (8, 16, 32, 64). So usados dois cdigos padres de caracteres de 8 bits:
EBCDIC (Extended Binary Coded Decimal Interchange Code) desenvolvido pela IBM, e ASCII (American Standard Code for Information Interchange).
17/57
Instruo e Dado
Existe uma diviso fundamental em instrues (informao de controle) e dados. Os dados numricos so de extrema importncia na computao.
18/57
Tipos de Informao
A informao, para ser armazenada no computador e utilizada, deve existir na forma de uma entidade. Esta entidade pode ser um bit, um byte, uma palavra ou qualquer combinao destes. Registro: conjunto de dados relacionados entre si, tratados como uma entidade. Por exemplo: Registro Funcionrio: Campos: Nome, Endereo, CPF, data de admisso, etc.
19/57
Tipos de Informao
Arquivo: conjunto de registros ans tratados como uma s unidade. Num programa, a representao simblica de um conjunto de dados. Seu contedo pode ser dados em geral ou programas. Base de Dados: conjunto de dados organizados de acordo com uma lgica que permita o acesso por um computador, chamada tambm de arquivo de dados. Banco de Dados: coleo de dados, como por exemplo, vrios dados de uma pea do estoque formam um registro (com os atributos daquela pea - os campos), o conjunto de registros forma um arquivo - do estoque (que uma base de dados), uma coleo de arquivos pode formar uma biblioteca e as bibliotecas reunidas formam o Banco de Dados.
Joo Lus G. Rosa c 2010 - SCC-120: I. Introduo Computao e Introduo Programao 20/57
Sumrio
Introduo Computao Sistemas de Numerao Tipos de Informao O Microcomputador Introduo Programao Conceitos Bsicos Resoluo de Problemas Mandamentos de um bom programa
21/57
O que um microcomputador
Computador de grande porte - mainframe: computador cujas dimenses fsicas chegam a salas cheias de equipamentos, e o custo, a centenas de milhares de dlares. Micromputador: pequeno computador digital. PC - Personal Computer: computador pessoal.
22/57
Unidades funcionais
Unidade de Entrada Unidade Aritmtica e Lgica Unidade de Controle Memria Unidade de Sada
23/57
CPU
CPU (Central Processing Unit), ou Unidade de Processamento Central: responsvel pelo gerenciamento de todas as funes do sistema. A CPU um circuito eletrnico que distingue somente dois estados fsicos, ligado ou desligado, representados pelos dgitos binrios 0 e 1. Capaz de somar grandezas representadas por 0s e 1s e comparar grandezas. Para isto trabalha em velocidades altssimas. CPU (microprocessador): velocidade alcana 50.000 MIPS (Milhes de Instrues por Segundo).
24/57
Na CPU a execuo de muitas operaes tem lugar na unidade aritmtica e lgica (Arithmetic and Logic Unit ALU). Ex.: Suponha dois nmeros armazenados na memria e que devem ser somados. Eles so trazidos para a ALU onde a soma ser realizada. O resultado pode ento ser armazenado, de novo, na memria.
25/57
Unidade de Controle - CU
As unidades fornecem as ferramentas necessrias para armazenar e processar a informao. As operaes devem ser coordenadas e organizadas de alguma forma. A unidade de controle (Control Unit - CU) existe para isso. o centro nervoso, usada para enviar sinais de controle para as outras unidades. Uma impressora imprimir uma linha apenas se for instruda para faz-lo. O processador executa uma instruo PRINT. O processamento desta instruo envolve o envio de sinais de temporizao para e da impressora, que funo da unidade de controle. Transferncia de dados entre o processador e a memria tambm controlada pela CU de uma maneira similar.
Joo Lus G. Rosa c 2010 - SCC-120: I. Introduo Computao e Introduo Programao 26/57
Memria Principal
Os programas e os dados que eles operam esto armazenados na memria principal (MP) do computador durante a execuo. A velocidade de execuo de instrues depende da velocidade em que os dados so transferidos para ou da MP. A MP dos computadores organizada em locais de armazenamento. Cada local tem um endereo. Em muitos computadores a MP fsica no to grande quanto o espao de endereamento do qual a CPU capaz. Quando um programa no est totalmente na MP, partes dele que no esto sendo executadas no momento, so armazenadas em dispositivos de armazenamento secundrio. Ao ser executado toda parte do programa tem de ser trazido MP.
Joo Lus G. Rosa c 2010 - SCC-120: I. Introduo Computao e Introduo Programao 27/57
O tamanho mximo da MP que pode ser usado em um computador determinado pelo esquema de endereamento. Por exemplo, um computador de (palavra de) 16 bits que gera endereos de 16 bits capaz de enderear at 216 locais de memria. Da mesma forma, uma mquina cujas instrues geram endereos de 24 bits pode utilizar uma MP que contenha at 224 locais de memria. Este nmero representa o tamanho do espao endereado do computador.
28/57
Tanto para especicar a memria principal do equipamento como para indicar a capacidade de armazenamento, so usados mltiplos de bytes:
K = Kilo (KB = Kilobytes = 210 bytes) M = Mega (MB = Megabytes = 220 bytes) G = Giga (GB = Gigabytes = 230 bytes) T = Tera (TB = Terabytes = 240 bytes) P = Peta (PB = Petabytes = 250 bytes) E = Exa (EB = Exabytes = 260 bytes) Z = Zetta (ZB = Zettabytes = 270 bytes) Y = Yotta (YB = Yottabytes = 280 bytes)
29/57
As memrias de semicondutores so disponveis em uma larga faixa de velocidades (nanosegundos). Quando introduzidas no nal dos anos 1960, eram bem mais caras que as memrias de ncleo magntico que acabaram substituindo. Por causa das vantagens da tecnologia VLSI (Very Large Scale Integration), o custo das memrias de semicondutores caiu bastante. Como resultado, elas so hoje usadas exclusivamente na implementao de MPs.
30/57
MP:
RAM (Random Access Memory) que necessita de energia eltrica para manter as informaes armazenadas (memria voltil). ROM (Read-Only Memory), tipicamente menor que a RAM, cujo contedo permanentemente gravado pelo fabricante do computador e no depende de energia para manter seu contedo. A ROM s pode ser lida pela CPU e, por este motivo, usada para ns muito especcos e em pequenas quantidades em relao a RAM.
31/57
Existem dois tipos de semicondutores usados na fabricao de chips - circuitos integrados - para RAM, MOS - Metal Oxide Semiconductor, e bipolar. A maioria dos sistemas usa a chamada RAM dinmica (DRAM - Dynamic RAM), que retm a informao num capacitor, que se descarregar com o tempo. O capacitor um componente eletrnico que armazena uma carga eltrica. necessrio, portanto, uma recarga desse capacitor atravs de um circuito (refresh). Este tipo de RAM praticamente no consome energia.
32/57
Memria Secundria
A memria secundria a memria usada para armazenamento permanente. Por esta razo a memria secundria no-voltil. Os tipos de memria secundria existentes so:
disco magntico exvel (oppy): disquete de 3 1/2 - 1,44 MBytes: totalmente obsoleto. disco magntico rgido (HD): centenas de GBytes. disco ptico CD-ROM (Compact-Disk Read-Only Memory): A partir de 700 MBytes at mais de 1 GByte. disco ptico DVD (Digital Versatile Disk): Dezenas de Gbytes.
33/57
35/57
O funcionamento da CPU coordenado pelos programas, que indicam o que e quando deve ser feito. Basicamente, a CPU executa clculos muito simples, como soma e comparaes entre nmeros porm a uma velocidade extremamente elevada. A funo da CPU sempre a mesma. O que as diferenciam sua estrutura interna, tipo de tecnologia empregada na fabricao e, o mais importante, cada uma tem o seu conjunto de instrues prprio. Isto torna incompatveis os computadores.
36/57
buscar instruo na memria principal; executar instruo; buscar instruo seguinte; executar a instruo seguinte; e assim por diante (milhes de vezes por segundo).
37/57
Atravs de que as partes do computador esto ligadas entre si? Atravs da via (bus) ou barramento do computador: um conjunto de os que interliga os elementos. Esses os esto divididos em trs conjuntos:
via de dados: onde trafegam os dados; via de endereos: onde trafegam os endereos; via de controle: sinais de controle que sincronizam as duas anteriores.
38/57
Congurao e Expanso
Uma congurao a descrio do conjunto dos equipamentos que compem o sistema, com todos os acessrios e perifricos qualicados e quanticados. Uma expanso da congurao atual pode incluir mais memria, se necessrio, melhor monitor de vdeo com imagem mais ntida, etc.
39/57
Redes de Comunicao
Rede de Processamento de Dados: Uso distribudo de recursos de processamento de dados. a maneira de permitir que vrios usurios de um equipamento o utilizem sem, teoricamente, perceberem a presena de outros. Uma rede pode ser denida de diversas maneiras: quanto a sua nalidade, forma de interligao, meio de transmisso, tipo de equipamento, etc. Genericamente, uma rede o arranjo e interligao de um conjunto de equipamentos com a nalidade de compartilhar recursos. Outra forma de classicao de redes quanto a sua topologia, isto , como esto arranjados os equipamentos e como as informaes circulam na rede.
40/57
O primeiro componente de um sistema de computao o HARDWARE que corresponde aos componentes fsicos do sistema; o computador propriamente dito. O hardware composto por vrios tipos de equipamentos, caracterizados por sua participao no sistema como um todo. Uma diviso primria separa o hardware em sistema central e perifricos. Tanto os perifricos como o sistema central so equipamentos eletrnicos ou eletromecnicos.
41/57
Hardware
Sistema Central:
CPU - o crebro da mquina Memria Principal ou Central: rpida, limitada e voltil.
42/57
Para usufruir de toda essa capacidade de processamento que o hardware fornece precisa-se do SOFTWARE, que o conjunto de instrues inteligveis pela CPU e arranjadas logicamente. O software pode ser dividido em dois grandes grupos de programas: os bsicos e os aplicativos.
43/57
Software
Software Bsico:
Sistemas Operacionais (SO): coordenam detalhes internos e gerenciam a utilizao do sistema. So pouco padronizados. Cada CPU usa um SO diferente. Tradutores, Interpretadores, Compiladores de Linguagem: permitem que as mquinas executem programas no escritos em linguagem de mquina. Utilitrios ou Programas Auxiliares. Linguagens de Quarta Gerao: linguagens orientadas para problemas.
Software Aplicativo:
um programa escrito, onde se usa os softwares bsicos, para resolver uma determinada aplicao. Exemplos: Contabilidade, Folha de Pagamento, Contas a Pagar, Contas a Receber, Estoques, etc.
Joo Lus G. Rosa c 2010 - SCC-120: I. Introduo Computao e Introduo Programao 44/57
Sumrio
Introduo Computao Sistemas de Numerao Tipos de Informao O Microcomputador Introduo Programao Conceitos Bsicos Resoluo de Problemas Mandamentos de um bom programa
45/57
Computador e Programao
Computador: uma mquina capaz de executar, automaticamente, processos de clculo de acordo com regras previamente denidas. Existe no computador um conjunto nito de comandos (instrues) elementares, com as quais pode-se obter innitas formas de combinao. Programao: o ato de se agrupar instrues em sequncias, tais que, se seguidas, produzem um resultado esperado. Programa o resultado de uma programao. Linguagem de Programao: uma forma padronizada de programao. Para o computador executar um certo programa (sequncia de comandos) necessrio que o mesmo seja escrito numa linguagem que ele entenda.
46/57
Linguagens de Programao
As linguagens de programao so normalmente, divididas em duas categorias: as de alto nvel e as de baixo nvel.
Linguagens de alto nvel: orientadas para o problema a ser solucionado, de modo que o programador deve dar pouca ou nenhuma ateno s caractersticas do computador que ir executar o programa. Linguagens de baixo nvel: orientadas para a mquina. Isto quer dizer que um programa escrito para um determinado computador no pode ser executado em outro (desde que sejam de famlias diferentes). Para programar em baixo nvel, necessrio que o programador conhea o conjunto de instrues da mquina que est usando.
47/57
Sumrio
Introduo Computao Sistemas de Numerao Tipos de Informao O Microcomputador Introduo Programao Conceitos Bsicos Resoluo de Problemas Mandamentos de um bom programa
48/57
Denio do problema
1. Denio do problema Consiste na descrio clara e completa do problema. necessrio que o problema esteja bem formulado para ser resolvido. Ex.: Calcule as razes reais da equao do 2o grau Ax 2 + Bx + C = 0, dados os parmetros A, B e C.
50/57
51/57
Mtodo de resoluo
Para resolver o problema apresentado no exemplo acima, pode-se raciocinar da seguinte forma:
1 Selecionar as frmulas matemticas necessrias: = B 2 4.A.C X1 = (B + )/2.A X2 = (B )/2.A 2 Elaborar o algoritmo:
INCIO Leia (A,B,C); DELTA B B 4 A C; Se DELTA 0 Ento Incio Se DELTA = 0 Ento X 1 X 2 B/(2 A) Seno Incio X 1 (B + sqrt(DELTA)/(2 A); X 2 (B + sqrt(DELTA)/(2 A); Fim; Imprima (A,B,C,X1,X2); Fim; FIM. Joo Lus G. Rosa c 2010 - SCC-120: I. Introduo Computao e Introduo Programao 52/57
Codicao
include <stdio.h> include <math.h> void main() { float a,b,c,x1,x2,delta; printf (Clculo das razes de uma equao de 2o.grau ax2 + bx + c\n); printf (Entre com a, b e c: ); scanf (%f%f%f,&a, &b, &c); delta = (b*b) - 4*a*c; if (delta >= 0) { if (delta == 0) { x1 = -b/(2*a); x2 = x1; } else { x1 = (-b+sqrt(delta))/(2*a); x2 = (-b-sqrt(delta))/(2*a); } printf (As razes so: %g e %g\n, x1, x2); } else { printf (ERRO: no h razes reais!\n); } } Joo Lus G. Rosa c 2010 - SCC-120: I. Introduo Computao e Introduo Programao 53/57
Sumrio
Introduo Computao Sistemas de Numerao Tipos de Informao O Microcomputador Introduo Programao Conceitos Bsicos Resoluo de Problemas Mandamentos de um bom programa
55/57
rapidez de execuo uso de um espao mnimo de memria facilidade de entendimento por outro programador previso de casos no usuais.
56/57
Apndice
Bibliograa
Bibliograa Bsica I
Ferrer, H. Algoritmos Estruturados. Editora LTC, 3a . edio, 1999. Tremblay, J.P. e Bunt, R.B. Cincia dos Computadores - Uma Abordagem Algortmica. Editora McGraw-Hill, 1983.
57/57