Você está na página 1de 46

FURG

Universidade Federal do Rio Grande

Algoritmos Computacionais
Aula 1

Apostila Profa. Diana F. Adamatti


(adaptado do material do Prof. Rafael Penna)

ndice
1. Introduo

1.1.A origem dos computadores


1.2.Funcionamento de um Computador
1.3.Programas de Computador
1.4.Criao de um Programa

2.Armazenamento de Dados na Memria


2.1.Informao e Dado
2.2.Tipos Primitivos de Dados (Inteiro, Real, Lgico,
Caractere, Literal)
2.3.Representao de Dados na Memria do
Computador

1. Introduo

1. Introduo
Os computadores esto por toda a parte: PCs,
celulares, automveis, avies, TVs.
Um computador um dispositivo capaz de realizar
vrios tipos de operaes (calculadora, mquina de
escrever, planilha de clculos automatizada, arquivo
de fichas de clientes em uma empresa, vdeo game,
piloto automtico em um avio comercial).
O computador capaz de realizar as tarefas atravs de
um manual de instrues e cdigos chamado programa.
Um programa uma sequncia de instrues, como
uma receita de bolo.
Iremos aprender como escrever esses programas.
Primeiro, porm, vamos conhecer um pouco mais sobre
a origem e o funcionamento dos computadores.

1. Introduo
1.1.A origem dos computadores
Os clculos matemticos sempre foram uma
necessidade humana.

1. Introduo
1.1.A origem dos computadores
Os primeiros instrumentos automticos de clculo s
comearam a ser construdos a partir do sculo XVII.
Uma das primeiras calculadoras a serem construdas foi a
Pascalina, construda pelo matemtico Blaise Pascal em 1642
(conjunto de engrenagens para realizar clculos de soma e
subtrao).
Entre 1801 e 1805, Joseph Marie Jacquard introduziu o conceito
de armazenamento de dados, utilizando placas perfuradas
(foram os precursores dos atuais meios de armazenamento,
como disquetes, CD's, e outros).
Os projetos mais audaciosos no desenvolvimento de
computadores do sculo XIX foram os desenvolvidos pelo
inventor ingls Charles Babbage (Mquina Diferencial - 1822 a
1834).

1. Introduo

1.1.A origem dos computadores

At a dcada de 1930, os computadores construdos eram totalmente mecnicos.


Em 1937, foi construdo o primeiro computador eletromecnico (parte eletrnico e parte
mecnico) chamado MARK I.
O primeiro computador totalmente eletrnico e digital foi o ABC (Atanasoff Berry Computer),
criado pelo tambm americano John Atanasoff, a partir de 1937.
Em 1946 foi apresentado o primeiro grande computador eletrnico, o ENIAC Eletronic
Numeric Integrator and Calculator, que ocupava mais de 170 metros quadrados, pesava
cerca de 30 toneladas e funcionava com 18.000 vlvulas, sendo capaz de realizar cinco mil
somas ou subtraes por segundo
O ENIAC s era capaz de realizar clculos aritmticos.
A preparao do ENIAC para clculos demorava semanas, pois a programao era
realizada pela ligao direta de fios em um painel.

1. Introduo
1.1.A origem dos computadores
At a dcada de 1950, os computadores eram construdos
utilizando vlvulas eletrnicas.
Em 1947, foi desenvolvido o transistor, seu tamanho era 100
vezes menor do que o da vlvula, no precisava de tempo para
aquecimento, consumia menos energia, era mais rpido e mais
confivel.
A nova revoluo tecnolgica viria alguns anos mais tarde, com
a inveno dos circuitos integrados. O CI (Circuito Integrado)
entrou no mercado em 1959, mas s a partir de 1965 comeou
a substituir o transistor em computadores comercializados.
As caractersticas dos CI's resumem a evoluo e tendncias
at os dias de hoje: muito mais confiveis (no tm partes
mveis); muito menores (equipamentos mais compactos e mais
rpidos pela proximidade dos circuitos); baixssimo consumo de
energia; miniaturizao de componentes e muito menor custo.

1. Introduo

1.1.A origem dos computadores


A popularizao dos computadores comeou realmente com a
construo dos primeiros microprocessadores, a partir da dcada de
1970.
Um microprocessador um nico CI capaz de conter a CPU inteira de
um computador
A popularizao dos microcomputadores ocorreu com o lanamento do
Apple II pela Apple Computers e pelo Personal Computer (PC) pela
IBM.
O PC foi um sucesso to grande que alavancou uma das parceiras da
IBM, at ento uma empresa de fundo de quintal: a Microsoft. A
Microsoft forneceu IBM o MS-DOS, o sistema operacional do PC (um
conjunto de programas que permite s pessoas utilizarem o
computador e seus programas).
O MS-DOS foi um produto comercializado at o fim da dcada de
1990, quando foi substitudo pelo Windows 95, um sistema
operacional grfico, totalmente desvinculado de seu antecessor.
Atualmente, temos desde pequenos computadores que cabem na
palma da mo (Palmtops, Smartphones) at supercomputadores
paralelos, que podem conter milhares de microprocessadores e servem
para realizar simulaes gigantescas (como o Earth Simulator, no
Japo, utilizado para simulaes climticas a nvel planetrio).

1. Introduo
1.2.Funcionamento de um Computador
Definies para o termo computador:
Denomina-se computador o conjunto de artifcios
eletrnicos capazes de efetuar qualquer espcie
de tratamento automtico de informaes e/ou
processamento de dados. (Wikipedia)
Mquina capaz de receber, armazenar e enviar
dados e de efetuar sobre estes, seqncias
previamente programadas de operaes (como
clculos) e lgicas (como comparaes) com o
objetivo de resolver problemas. (Dicionrio
Aurlio)

1. Introduo
1.2.Funcionamento de um Computador
Podemos pensar em um computador como uma
mquina capaz de realizar vrios tipos de
processamento.
O processamento uma operao ou transformao
sobre dados (entrada) que gera um resultado (sada)
visvel ao ser humano que o utiliza.

1. Introduo
1.2.Funcionamento de um Computador
Exemplo:
Fazer um bolo
Diversos ingredientes (como farinha, acar, ovos, etc) - dados de
entrada.
Misturam-se os ingredientes e pe-se o bolo para assar no forno processamento.
O produto final o bolo aps ter completado seu cozimento - sada de
dados.

1. Introduo
1.2.Funcionamento de um Computador
Em computadores:
Ao invs de ingredientes teremos dados de entrada.
Nmeros (1, -3, 5000);
Seqncias de caracteres (FURG, Rio Grande do Sul);
Entre outras coisas (operao a ser feita em uma
calculadora).

Processamento o clculo do resultado da


operao.
Dado de sada:
um nmero (o resultado da operao, aps o
calculo/processamento).
Seqncias de caracteres.

1. Introduo
1.2.Funcionamento de um Computador
Mquina de von Neumann.

1. Introduo

1.2.Funcionamento de um Computador
Unidade de Entrada e Sada

responsvel por receber as informaes necessrias para o processamento


(dados de entrada) e tambm por exibir os resultados deste processamento
(dados de sada).
Nos computadores modernos esta unidade composta pelos perifricos de
entrada e sada.
Entrada: Teclado, mouse, scanner e joystick. Como
Sada: impressora e o monitor de vdeo.

Unidade Lgico e Aritmtica e de Controle

Formam a chamada Unidade Central de Processamento (CPU).


Sua funo manipular os dados armazenados na memria e provenientes dos
dispositivos de entrada e realizar efetivamente o processamento.
A CPU a unidade responsvel pela execuo das instrues dos programas.
O componente fsico atual que compe a CPU o microprocessador.

Memria Primria

responsvel por armazenar os dados e instrues que sero utilizados no


processamento pela CPU.
Volteis - memria RAM.
No volteis - memrias ROM, memrias Flash, discos rgidos, CD-RW, etc.
A CPU, durante a execuo de um programa, manipula freqentemente a
memria, a fim de obter os dados necessrios para a execuo deste bem como
para armazenar dados temporrios e os resultados obtidos.

1. Introduo
1.2.Funcionamento de um Computador

Todos esses componentes so parte do chamado hardware do computador.

Hardware o conjunto de todos os componentes fsicos eletrnicos do computador.

1. Introduo
1.2.Funcionamento de um Computador
Unidade de Entrada e Sada: (1) monitor, (5)
placas de expanso, (9) mouse, (10) teclado;
Memria no voltil: (7) drive de CD e (8) disco
rgido;
Memria voltil: (4) memria RAM;
CPU: (3) microprocessador;
Outros dispositivos: (2) placa-me e (6) fonte de
alimentao.

1. Introduo
1.3. Programas de Computador
Se desejarmos que o computador some dois nmeros
automaticamente, precisamos ensin-loa fazer isso.
Isso feito atravs do que se chama software ou
programa de computador.
Podemos dizer que um programa est para o
computador assim como uma receita para uma
cozinheira.
Hoje em dia existem programas que permitem ao
computador funcionar como:
um vdeogame (jogos de computador)
caixa registradora (supermercados e lojas)
atendente bancrio (sistemas de auto-atendimento bancrio).

1. Introduo
1.3. Programas de Computador
A primeira coisa identificada pela receita so os ingredientes, ou
seja, os dados de entrada necessrios para que o resultado, o bolo,
seja obtido.
Os programas precisam de dados de entrada, informaes externas
ao programa que necessitam ser adquiridas pela CPU antes que o
processamento propriamente dito seja executado.
Por exemplo, um programa que some dois nmeros precisa, antes
de executar a soma, obter os dois nmeros a serem somados.

Geralmente, como veremos nos prximos captulos, isso feito


solicitando ao usurio (a pessoa que est utilizando o programa)
que informe os nmeros de alguma forma (teclado).
O prximo passo que a CPU faz executar as instrues de como
fazer o bolo, ou seja, o processamento em si.

1. Introduo
1.3. Programas de Computador
Algoritmo para fazer bolo:
1. Misture os ingredientes
2. Unte a forma com a manteiga e farinha
3. Despeje a mistura na forma
4. Se houver coco ralado ento despeje sobre a
mistura
5. Leve a forma ao forno
6. Enquanto no corar deixe a forma no forno
7. Retire do forno
8. Deixe esfriar

1. Introduo
1.3. Programas de Computador
Algoritmo para somar 2 nmeros:
1. Solicite ao usurio que digite um nmero atravs do
teclado e o chame de N1
2. Solicite ao usurio que digite outro nmero atravs
do teclado e o chame de N2
3. Calcule N1 + N2
4. Mostre o resultado da soma no monitor de vdeo

1. Introduo
1.3. Programas de Computador
Algoritmo para somar 2 nmeros:
Como funciona?

1. Introduo
1.3. Programas de Computador
Algoritmo para somar 2 nmeros:
Como funciona?

1. Introduo
1.3. Programas de Computador
Algoritmo para somar 2 nmeros:
Como funciona?

1. Introduo
1.3. Programas de Computador
Algoritmo para somar 2 nmeros:
Como funciona?

1. Introduo
1.3. Programas de Computador
Algoritmo para somar 2 nmeros:
Como funciona?

1. Introduo
1.3. Programas de Computador
O programa escrito pelo programador chamado
programa-fonte ou cdigo-fonte.

Este programa segue uma seqncia lgica de passos


chamada algoritmo.
a qualidade da soluo de um problema proposto a ser
resolvido em um computador depende exclusivamente
da lgica do algoritmo proposto.
Toda CPU existente hoje capaz de executar uma lista
limitada de instrues, como somar dois nmeros,
armazenar um nmero na memria, etc.

1. Introduo
1.3. Programas de Computador
Mas como transformar um algoritmo, escrito
por exemplo na lngua portuguesa, para um
programa escrito em linguagem de mquina,
que pode ser compreendido pela CPU?
Antigamente escrevendo-se os algoritmos
diretamente em linguagem de mquina.
Atualmente Linguagens de programao.
Instrues so representadas por palavras.
Linguagens de alto nvel prxima a linguagem humana.
Java
C
Pascal

2.Armazenamento de Dados na Memria

2.Armazenamento de Dados na Memria


Memria o componente do computador
responsvel pelo armazenamento dos dados.

Como todo o hardware, a memria um


componente eletrnico.
fcil imaginar algum tomando nota em um bloco
de papel, mas como tomar nota em um
componente eletrnico, em meio a um
emaranhado de circuitos eletrnicos minsculos?
Veremos a resposta nesse captulo.

2.Armazenamento de Dados na Memria


2.1. Informao e Dado
Informao o resultado do processamento,
manipulao e organizao de dados de tal forma que
represente um acrscimo ao conhecimento da pessoa
que a recebe (Wikipedia).
Podemos dizer que dado tudo aquilo que pode ser
processado, ou seja:
nmeros
medies
valores lgicos (verdadeiro e falso)
textos

Por exemplo, o nmero 30 um dado, pois pode ser


processado (em um clculo, por exemplo) mas no
significa nada isoladamente.
Mas se dissermos Hoje a temperatura mxima atingiu
30 C organizamos os dados de forma a obter
informao, pois agora existe um significado.

2.Armazenamento de Dados na Memria

2.2. Tipos Primitivos de Dados


Os programas de computador so capazes de
manipular dados de vrios tipos.
Inteiro 21, 0 e -12
Real 3.1415, -9.806, 12.0
Lgico verdadeiro e falso
Tipo Caractere Representa smbolos
alfanumricos, como letras ou algarismos numricos.
A, x, ?, 9.
Tipo Literal cadeia de caracteres ou string,
armazena uma seqncia de caracteres
alfanumricos. Sua representao deve ser entre
aspas duplas ( ). Furg, ABC123, Silva.

2.Armazenamento de Dados na Memria


2.3. Representao de Dados na Memria do Computador

Computadores esto manipulando informaes


a todo momento.
Para que no se esquea das informaes, o
computador precisa guard-las em sua
memria, o seu bloco de rascunho particular.

2.Armazenamento de Dados na Memria


2.3. Representao de Dados na Memria do Computador

Organizao da Memria

2.Armazenamento de Dados na Memria


2.3. Representao de Dados na Memria do Computador

Organizao da Memria

2.Armazenamento de Dados na Memria


2.3. Representao de Dados na Memria do Computador

Organizao da Memria
Por que apenas esses dois valores (0 e 1)?
Fisicamente, o valor de um bit , de uma maneira geral,
armazenado como uma carga eltrica acima ou abaixo de
um nvel padro em um nico capacitor dentro de um
dispositivo de memria.

Mas, bits podem ser representados fisicamente por vrios


meios:
por via da luz (em fibras pticas, ou em leitores e
gravadores de discos pticos por exemplo).
por via de ondas eletromagnticas (rede wireless).
por polarizao magntica (discos rgidos).

2.Armazenamento de Dados na Memria


2.3. Representao de Dados na Memria do Computador

Organizao da Memria
O byte utilizado tambm como unidade de medida do
tamanho de agrupamentos de dados.
Neste caso, como acontece com outras unidades, como
metro, grama, e outras, temos algumas unidades
derivadas conforme a seguinte Tabela:

2.Armazenamento de Dados na Memria


2.3. Representao de Dados na Memria do Computador

2.3.2. Sistemas Binrio


Como representar um nmero utilizando bits (0 e 1)?
Esta forma de representao difere da que utilizamos
no dia-a-dia.
Sistemas de numerao:
Decimal Dez smbolos
Binrio Dois smbolos

2.Armazenamento de Dados na Memria


2.3. Representao de Dados na Memria do Computador

2.3.2. Sistemas Binrio


Sistema Decimal

Sistema Binrio

2.Armazenamento de Dados na Memria


2.3. Representao de Dados na Memria do Computador

2.3.2. Sistemas Binrio

2.Armazenamento de Dados na Memria


2.3. Representao de Dados na Memria do Computador

Como transformar um numeral decimal em um numeral


binrio?
mtodo do caminho inverso dos restos das divises sucessivas.

2.Armazenamento de Dados na Memria


2.3. Representao de Dados na Memria do Computador
Exerccios:
1. Classifique os dados abaixo marcando L para literal, C para
caractere, I para inteiro, R para real e B para lgico:
( ) 2000
( ) 456
( ) 10.1
( ) RGB
( ) 'F'
( ) 1DF45
( ) ';'
( ) 1.67
( ) 'I'
( ) 3.45
( ) 58
( ) .F.
( ) .V.
( ) '9'
()0
2. Transforme os seguintes numerais decimais para binrio:
a) 1024
b) 77
c) 21
3. Transforme os seguintes numerais binrio para decimais:
a) 1011
b) 101101 c) 111110

2.Armazenamento de Dados na Memria


2.3. Representao de Dados na Memria do Computador

2.3.3. Armazenamento de Dados na Memria


Todos os dados armazenados nas clulas de
memria do computador so nmeros no formato
binrio.
Cada byte (que contm 8 bits) pode armazenar, no
mximo, nmeros com 8 dgitos binrios.
Nmeros que so representados por mais de 8
dgitos no sistema binrio so armazenados em
vrios bytes consecutivos.

2.Armazenamento de Dados na Memria


2.3. Representao de Dados na Memria do Computador

2.3.3. Armazenamento de Dados na Memria

2.Armazenamento de Dados na Memria


2.3. Representao de Dados na Memria do Computador

2.3.3. Armazenamento de Dados na Memria


Mas como so armazenados os demais tipos?
Basta represent-los como nmeros.

2.Armazenamento de Dados na Memria


2.3. Representao de Dados na Memria do Computador

2.3.3. Armazenamento de Dados na Memria


Mas como so armazenados os demais tipos?
Basta represent-los como nmeros.