Você está na página 1de 57

PAC

Prof. Fabrcio Pereira


CEFET-RJ

CONCEITOS BSICOS DE
SOLUO DE PROBLEMAS

SUMRIO
Sistemas de numerao
Sistemas computacionais
Estrutura de um computador
Sistemas operacionais
Algoritmo Introduo
Formas de representao de algoritmos

SISTEMAS

DE NUMERAO

SISTEMAS

DE

NUMERAO

Como fazer a converso entre o sistema


decimal e o sistema utilizado num
computador?

BASE

Base ou raiz de um sistema de numerao:


o nmero de algarismos distintos usados
nesse sistema de numerao.

Exemplo: o sistema decimal possui base 10,


isto , usa 10 algarismos distintos.

NOTAO POSICIONAL
o nome dado notao usada por alguns
sistemas numricos, onde cada algarismo
tem, alm do seu valor absoluto, um valor
de posio dentro de cada nmero desse
sistema em que ele aparece.
Por exemplo, no sistema decimal:

O valor absoluto 2 no nmero 2000 representa


uma grandeza diferente do que o 2 em 20.

SISTEMA

DECIMAL OU DE BASE

10

Possui 10 algarismos distintos (algarismos


arbicos = 0, 1, 2, 3, 4, 5, 6, 7, 8 e 9) e usa
notao posicional.
Ex.: 7 = 7 x 100
35 = 30 + 5 = 3 x 101 + 5 x 100
81,508 = 8 x 101 + 1 x 100 + 5 x 10-1+ 0 x 10-2
+ 8 x 10-3

Obs.: Na notao posicional (qualquer que


seja a base) o primeiro algarismo a esquerda
da vrgula, representa uma potncia da base
com expoente igual a 0 (zero) e esse
expoente inteiro e crescente para a
esquerda.

SISTEMA BINRIO OU DE BASE 2

Usa notao posicional e possui dois


algarismos distintos: 0 e 1.
Problema:
Como converter
2358(10) para a base 2?
E 100101(2) para a base
10?

SISTEMA HEXADECIMAL

OU DE

BASE 16

Usa notao posicional e possui 16


algarismos distintos:

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E e F.

CONVERSO

DE

BASE

Converso da base b (qualquer) para decimal:


Para converter um nmero na base b para
decimal, basta somar os produtos dos algarismos
pelas potncias da base b que eles representam.
Ex.: Converter os nmeros abaixo para a base 10
(10)16 = 1x161 + 0x160 = (16)10
(F30A)16 = 15x163 + 3x162 + 0x161 + 10x160 =
(62218)10
(1101)2 = 1x23 + 1x22 + 0x21 + 1x20 = (13)10
(10001111)2 = 27 + 23 + 22 + 21 + 20 = (143)10

CONVERSO

DE

BASE

Converso de decimal para a base b


(qualquer):
Para converter um nmero decimal para a
base b, devem ser feitas divises inteiras
sucessivas por b at que se encontre
quociente 0 (zero).
O nmero correspondente na base b ser
formado pelos restos das divises, da ltima
at a primeira diviso, nessa ordem.

CONVERSO

DE BASE

Converter o nmero 45286 (base decimal)


para hexadecimal

CONVERSO

DE BASE

Converter o nmero 18 (base decimal) para


binrio

CONVERSO

BINRIO

DE

BASE
HEXADECIMAL

Como 16 potncia de 2 (24 = 16), nesta


converso, cada algarismo hexadecimal d
origem a quatro algarismos binrios.
Tabela de converso:

CONVERSO

DE

BASE

RESUMO

SISTEMAS

COMPUTACIONAIS

SISTEMAS COMPUTACIONAIS

Hardware: Corresponde parte material,


aos componentes fsicos do sistema. o
computador propriamente dito.
Software: Conjunto de programas
(instrues arranjadas logicamente) e dados.

ESTRUTURA

DE UM COMPUTADOR

ESTRUTURA

DE UM

COMPUTADOR

PROCESSADOR
Tambm chamada de microprocessador ou
unidade de processamento central (UPC ou
CPU) e responsvel pelo gerenciamento de
todas as funes do sistema.
A CPU distingue somente dois estados
fsicos, representados pelos nmeros 0 e 1
dgitos binrios.
dividida em:

Unidade Aritmtica e Lgica: encarregada de


realizar operaes aritmticas e lgicas
elementares.
Unidade de Controle: encarregada de
coordenar os diversos componentes.

MEMRIA PRINCIPAL
(RAM RANDOM ACCESS MEMORY)
a unidade encarregada de armazenar os
programas e dados ( recebidos das unidades de
entrada) para imediato processamento pela CPU.
Aps a execuo de cada instruo do programa,
a CPU armazena o resultado gerado na memria
principal.

A memria principal considerada um meio


temporrio de armazenamento de dados, que
permanecem ali somente durante o tempo em
que estiverem sendo processados.

MEMRIA PRINCIPAL
CONCEITOS: BIT, BYTE

Unidade de Informao, tem somente os valores


0 ou 1 ;

Byte ( BinarY TErm - termo binrio)

WORD

Bit ( Binary DigiT - dgito binrio)

Conjunto de 8 bits, com o qual pode-se


representar os nmeros, as letras, os sinais de
pontuao, etc...

Palavra (Word)

a quantidade de bits que a CPU processa por


vez.
Arquiteturas de 32bits e 64bits

MEMRIA PRINCIPAL
UNIDADES DE MEDIDA

Exemplo: Qual a quantidade exata de bits


que um pen drive de 4 Gb possui?
4 Gb = 4 * 230 = 4 * 1073741824 =
4.294.967.296 bytes
* 8 = 34.359.738.368 bits

LINGUAGENS

DE

PROGRAMAO

Para que um algoritmo possa ser executado


pelo computador, necessrio que ele seja
programado, isto , que ele seja transcrito
para uma linguagem que o computador
possa entender, direta ou indiretamente.

TRADUTOR

Os computadores s podem
executar diretamente os
algoritmos expressos em
linguagem de mquina
(que um conjunto de
instrues capazes de ativar
diretamente os dispositivos
eletrnicos do computador).
Um tradutor um
programa que traduz um
algoritmo que est escrito
em uma determinada
linguagem de programao
em linguagem de mquina.

PROCESSO

DE

TRADUO

O processo de traduo pode ser feito por:


Compilao: L, analisa e traduz todos os
comandos do programa fonte, criando o
programa objeto.
Interpretao: Traduz ou interpreta cada
comando ao execut-lo.

PRINCIPAIS TIPOS DE LINGUAGEM DE


PROGRAMAO

Linguagem de Mquina ( ou Absoluta ):

a nica linguagem que atende ao computador,


por satisfazer o seu projeto lgico.
Instrues representadas por cdigos binrios.
Exemplo de instruo:

Esta instruo ordena que o contedo do


endereo 0A3516 da memria seja somado (1016)
ao acumulador (registrador especial usado para
acumular resultados) e que o resultado fique
guardado no acumulador.

PRINCIPAIS TIPOS DE LINGUAGEM DE


PROGRAMAO

Linguagem Simblica (de Baixo Nvel, de


Montagem ou Assembler):
Surgiu afim de simplificar a difcil programao da
linguagem de mquina.
Substitui os cdigos binrios por abreviaes de
nomes sugestivos que lembram a funo da instruo.

Exemplo de instruo: ADD X


ADD ordena que o valor da varivel X seja somado ao
acumulador e que o resultado fique nele guardado.
X o nome da varivel, criado pelo programador, que
representa um endereo da memria (por exemplo
0A3516) que contm armazenado o valor desta
varivel. Surgimento do conceito de varivel.

PRINCIPAIS TIPOS DE LINGUAGEM DE


PROGRAMAO

Linguagem Automtica (ou de Alto Nvel):


So semelhantes s linguagens usadas para descrever
o problema que se deseja resolver, ressaltando a
linguagem profissional a que o usurio est
acostumado.
Existem vrias linguagens automticas: FORTRAN,
ALGOL, PLI, APL, BASIC, LISP, SNOBOL, PASCAL,
ADA, MODULA, JAVA, PYTHON, etc.

Exemplo de comando: Y = 3 + X;
Ordena que a constante 3 seja somado ao valor da
varivel X e que o resultado seja armazenado como
novo valor da varivel Y.
Obs.: Fortran e C so consideradas linguagens de
mdio nvel.

SISTEMAS

OPERACIONAIS

SISTEMA OPERACIONAL (SO)


um programa especial que controla e
coordena todas as operaes bsicas de um
computador.
Ele controla a execuo de outros programas
e pode proporcionar funes como:

controle de entrada e sada de dados;


alocao de memria;
gerenciamento de dados, etc ...

Os programas que compem os SOs so, na


maioria dos casos, escritos em linguagens de
nvel mais baixo, fazendo com que eles
sejam mais rpidos e eficientes no
gerenciamento de recursos do hardware.

ALGORITMOS

ALGORITMO
O uso de algoritmos surgiu como uma forma
de indicar o caminho para a soluo dos
mais variados problemas.
Dado um problema, as principais funes de
um programador so:

Entender perfeitamente o problema


Escolher mtodos para sua soluo
Desenvolver um algoritmo baseado nos mtodos
Codificar o algoritmo na linguagem de
programao disponvel

ALGORITMOS

A parte mais importante da tarefa de


programar a construo de algoritmos.
Segundo Niklaus Wirth:

Programao a arte de construir e formular


algoritmos de uma forma sistemtica
Algoritmos + Estruturas de Dados =
Programas

COMO

ESTUDAR

ALGORITMOS

O aprendizado de algoritmos no se
consegue a no ser atravs de muitos
exerccios.

Algoritmos no se aprendem:
Copiando algoritmos
Estudando algoritmos

Algoritmos s se aprendem:
Construindo algoritmos
Testando algoritmos

ALGORITMOS - CONCEITOS

Ao: um evento que ocorre num perodo


de tempo finito, estabelecendo um efeito
intencionado e bem definido. Ex.:
Colocar o livro em cima da mesa;
Atribuir o valor 3,1416 em uma varivel ;

Observao: toda ao deve ser executvel


em um tempo finito (do instante t0 at o
instante t1);
O que realmente interessa o efeito produzido
na execuo da ao;
Pode-se descrever o efeito de uma ao
comparando o estado no instante t0 com o
estado no instante t1.

ALGORITMOS - CONCEITOS

Estado de um dado sistema de objetos o


conjunto de propriedades desses objetos que
so relevantes em uma situao
considerada.
Ex.:
Livro na estante ou sobre a mesa;
Conjunto de valores das variveis do programa
num certo instante da execuo;

ALGORITMOS - CONCEITOS

Processo: um evento considerado como


uma sequncia temporal de (sub) aes,
cujo efeito total igual ao efeito acumulado
dessas (sub) aes.

ALGORITMOS - CONCEITOS
Padro de Comportamento: em todo o
evento pode-se reconhecer um padro de
comportamento, isto , cada vez que o
padro de comportamento seguido, o
evento ocorre.
Ex.: seja a seguinte descrio de uma donade-casa descasca as batatas para o jantar:

traz a cesta com batatas do poro;


traz a panela do armrio;
descasca as batatas;
devolve a cesta ao poro;

ALGORITMOS - CONCEITOS
Essa descrio pode ser usada para
descrever eventos distintos (dias diferentes,
batatas diferentes etc.).
Isso s possvel porque os eventos
possuem o mesmo padro de
comportamento.
O efeito de um evento fica totalmente
determinado pelo padro de comportamento
e eventualmente pelo estado inicial.

ALGORITMOS - CONCEITOS

Algoritmo: a descrio de um padro de


comportamento, expressado em termos de um
repertrio bem definido e finito de aes
primitivas que, com certeza, podem ser
executadas.
Um algoritmo possui carter imperativo, razo
pela qual uma ao em um algoritmo chamada
de comando.
Ex.: algoritmo para descascar batatas para o
jantar:
traga a cesta com batatas do poro;
traga a panela do armrio;
descasque as batatas;
devolva a cesta ao poro;

ALGORITMOS - CONCEITOS

Um algoritmo (ou programa) apresenta dois


aspectos complementares:
Aspecto esttico: a representao concreta
do algoritmo atravs de um texto contendo
comandos que devem ser executados numa
ordem prescrita (atemporal).
Aspecto dinmico: que a execuo do
algoritmo no tempo.

ALGORITMOS - CONCEITOS

A generalizao do algoritmo para descascar batatas


para o jantar pode ser:

traga a cesta com batatas do poro;


traga a panela do armrio;
se a roupa clara ento coloque avental;
enquanto nmero de batatas insuficiente
faa descasque uma batata;
devolva a cesta ao poro;

Um algoritmo deve ser determinstico, isto , dadas


as mesmas condies iniciais, deve produzir em sua
execuo, os mesmos resultados.
S interessam os algoritmos executveis em tempo
finito.

ALGORITMOS FORMAS DE
REPRESENTAO

Dentre as formas de representao de


algoritmos mais conhecidas, sobressaltam:
Descrio Narrativa
Fluxograma Convencional
Pseudolinguagem

DESCRIO NARRATIVA

Nesta forma de representao os algoritmos so


expressos diretamente em linguagem natural.
Como por exemplo, tm-se os algoritmos
seguintes:
Troca de um pneu furado:

Afrouxar ligeiramente as porcas


Suspender o carro
Retirar as porcas e o pneu
Colocar o pneu reserva
Apertar as porcas
Abaixar o carro
Dar o aperto final nas porcas

DESCRIO NARRATIVA

Clculo da mdia de um aluno:


Obter as notas da primeira e da segunda prova
Calcular a mdia aritmtica entre as duas
Se a mdia for maior ou igual a 7, o aluno foi
aprovado, seno ele foi reprovado.

Obs: Esta representao pouco usada na


prtica porque o uso de linguagem natural
muitas vezes d oportunidade a ms
interpretaes, ambiguidades e imprecises.

FLUXOGRAMA
Representao grfica de algoritmos onde
formas geomtricas diferentes implicam
aes (instrues, comandos) distintos.
Tal propriedade facilita o entendimento das
ideias contidas nos algoritmos.

FLUXOGRAMA

Principais formas geomtricas usadas em


fluxogramas.
= Incio e final do fluxograma
= Operao de entrada de dados
= Operao de sada de dados em impressora
= Operao de sada de dados em vdeo
= Operaes de atribuio

FLUXOGRAMA

Principais formas geomtricas usadas em


fluxogramas.
= Deciso

= Seta do fluxo de dados

= Conector utilizado quando preciso


particionar o diagrama, colocando uma letra
ou nmero no smbolo para identificar os
pares da conexo

FLUXOGRAMA
Incio

N1, N2

A figura a seguir mostra a


representao do algoritmo de
clculo da mdia de um aluno
sob a forma de um
fluxograma.

Mdia:=
(N1+N2)/2

Mdia
>=7

Aprovado

Reprovado

Fim

PSEUDOLINGUAGEM

Esta forma de representao de algoritmos,


tambm conhecida como pseudocdigo,
portugus estruturado ou portugol,
bastante rica em detalhes e, por assemelhar-se
bastante forma em que os programas so
escritos, encontra muita aceitao, sendo
portanto a forma de representao de
algoritmos que ser adotada nesta disciplina.
Esta representao suficientemente geral
para permitir que a traduo de um algoritmo
nela representado para uma linguagem de
programao especfica seja praticamente
direta.

PSEUDOLINGUAGEM

Representao de um Algoritmo na Forma de


Pseudolinguagem:

principal
{
<declarao_de_variveis>
<comandos>
}

PSEUDOLINGUAGEM
A seguir mostrado a representao do
algoritmo de clculo da mdia de um aluno na
forma de um pseudocdigo
principal
{
real n1, n2, media;
leia(n1, n2);
media (n1 + n2)/2;
se (media >= 7)
{
imprima(Aprovado);
}
seno
{
imprima(Reprovado);
}
}

PRXIMA AULA

Construo de programas em C
Variveis
Tipos de dados
Entrada e sada de dados
...

Windows
Dev-C++
Code::Blocks

Linux

Code::Blocks

PRXIMA AULA

P/ instalar Dev-C++

http://sourceforge.net/projects/devcpp/files/Binaries/

devcpp-4.9.9.2_setup.exe

http://sourceforge.net/projects/orwelldevcpp/file
s/Setup%20Releases/
Dev-Cpp 5.7.1 TDM-GCC x64 4.8.1 Setup.exe
Dev-Cpp 5.7.1 MinGW 4.8.1 Setup.exe

P/ instalar Code::Blocks

http://www.codeblocks.org/
linux: sudo apt-get install codeblocks

Querendo se profissionalizar, podem usar:

Eclipse / NetBeans

Você também pode gostar