You are on page 1of 38

Sistemas Numéricos e

Conceitos de Algoritmos

Equipe:
Profa. Juliana Galvani Greghi
Profa. Marluce Rodrigues Pereira
Profa. Valéria Carvalho
Prof. Tales Heimfarth
Prof. Bruno de Oliveira Schneider

DCC/UFLA - 2017/2
Sistemas Numéricos
● Utilizamos por padrão o sistema decimal para
representação numérica
○ Dez símbolos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
○ Contagem:
00, 01, 02, 03, 04, 05, 06, 07, 08, 09 ↲
10, 11, 12, 13, 14, 15, 16, 17, 18, 19 ↲
20, 21, 21, …
Outros Sistemas Numéricos
● Sistema romano: I, II, III, IV, V, VI, etc.
● Sistema duodecimal: dúzia, horas
● Sistema base 60: segundos, minutos
● Sistema unário: 7 = xxxxxxx (um único símbolo)
● Computacionalmente: sistema binário, sistema
octal e sistema hexadecimal
Sistema Binário
Apenas dois símbolos (0 e 1), representando
situações internas de circuitos:

00000001 (1), 00000010 (2), 00000011 (3), 00000100


(4),

00000101 (5), 00000110 (6), 00000111 (7), 00001000


(8),

...
Sistema Octal
Oito símbolos: 0, 1, 2, 3, 4, 5, 6, 7

00, 01, 02, 03, 04, 05, 06, 07

10, 11, 12, 13, 14, 15, 16, 17,

20, 21, 22, 23, 24, 25, 26, 27, …


Sistema Hexadecimal
Dezesseis símbolos: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F

00, 01, 02, 03, 04, 05, 06, 07, 08, 09, 0A, 0B, 0C, 0D, 0E,
0F,

10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 1A, 1B, 1C, 1D, 1E,
1F,

20, 21, …
Representação da base
Como representar sem ambiguidade 10111?

1011110 = 1x100 + 1x101 + 1x102 + 0x103 + 1x104 =


10111

101112 = 1x20 + 1x21 + 1x22 + 0x23 + 1x24 = 23


Conversão de base

19 = 100112 COMO????

1101002 = 10
?????

178 = 10
???? = 2
????
Operações

1101002 + 101102

7218 + 21308

1A716 + CB316
Para que todos esses dispositivos possam
executar programas, eles possuem algo em
comum...
Noções básicas sobre computadores
Processament
Dispositivos de
o Dispositivos de
Entrada
Saída

Memóri
a
Exemplo de Placa-mãe de um computador
Exemplo de Placa-mãe de um smartphone
Algoritmos

Sequência finita de instruções bem definidas e não


ambíguas, cada uma das quais pode ser executada
mecanicamente em um período de tempo finito e
com uma quantidade de esforço finita.
Algoritmos

Composto por:

i) dados de entrada;
ii) dados de saída;
iii) itens de suporte
Algoritmos

Representações:

i) Linguagem Natural;
ii) Fluxograma;
iii) Pseudocódigo.
Exemplo: Fazer Café (I)
● Entrada: pó de café, água, açúcar
● Suporte: chaleira/jarra, fogão, coador, garrafa/bule,
xícaras
● Saída: café tradicional
1. Coloque o coador sobre a garrafa
2. Coloque água na chaleira e ponha para ferver
3. Coloque açúcar na água
4. Ao iniciar fervura, coloque o café na água e ferva um
pouco (2 colheres de sopa para meio litro)
5. Despeje a água preparada no coador
6. Sirva em xícaras
Exemplo: Fazer Café (II)

● Entrada: pó de café, água, açúcar


● Suporte: chaleira/jarra, fogão, coador,
garrafa/bule, xícaras
● Saída: café tradicional
1. Coloque o coador sobre a garrafa
2. Coloque água na chaleira e ponha para ferver
3. Ao iniciar fervura, coloque açúcar na água
4. Despeje o pó de café no coador
5. Despeje a água fervida e açucarada no coador
6. Sirva em xícaras
Exemplo: Fazer Café (III)
● Entrada: pó de café de boa qualidade, água, açúcar
● Suporte: chaleira/jarra, fogão, coador, garrafa/bule,
xícaras
● Saída: bom café

1. Coloque o coador sobre a garrafa


2. Coloque água na chaleira e ponha para ferver
3. Ao iniciar fervura, escalde garrafa, coador e xícaras
4. Coloque água na chaleira e ponha para ferver
novamente
Exemplo: Fazer Café (III)
● Entrada: pó de café de boa qualidade, água, açúcar
● Suporte: chaleira/jarra, fogão, coador, garrafa/bule,
xícaras
● Saída: bom café

5. Despeje o pó de café no coador

6. Quando iniciar fervura, despeje a água no coador

7. Sirva em xícaras e adoce a gosto


Uso de Fluxograma (I)

INÍCIO
E SE O ESTEPE ESTIVER
VAZIO????

TROCAR O PNEU NESTE CASO, EXISTE UMA DECISÃO


QUE PODE LEVAR A RESOLUÇÃO
DO
PROBLEMA A CAMINHOS DISTINTOS
FIM

22
Uso de Fluxograma (II)

INÍCIO

SIM Estepe NÃO


vazio? ESTRUTURA CONDICIONAL

Chamar o borracheiro Mudar o pneu

Pode ser alterado


FIM (refinamento)
23
Uso de Fluxograma (III)
INÍCIO

SIM Estepe NÃO Pode ser


vazio? detalhado

Desparafusar a roda

Chamar o borracheiro Levantar o carro

Remover a roda ESTRUTURA


SEQUENCIAL
Colocar o estepe

Parafusar a roda
Pode ser
Abaixar o carro detalhado

24

FIM
Uso de Fluxograma (IV)
INÍCIO

SIM Estepe NÃO


vazio? Desapertar o parafuso 1
Desparafusar a roda Desapertar o parafuso 2
Desapertar o parafuso 3
Chamar o borracheiro Desapertar o parafuso 4
Levantar o carro

Remover a roda INCONVENIENTE !


Colocar o estepe
Apertar o parafuso 1
Parafusar a roda Apertar o parafuso 2
Apertar o parafuso 3
Apertar o parafuso 4
Abaixar o carro

25

FIM
INÍCIO

SIM Estepe NÃO


vazio? NÃO
Existe parafuso para
desapertar
SIM
Desapertar parafuso
Chamar o borracheiro
Levantar o carro
Remover a roda ESTRUTURA
DE
Colocar o estepe REPETIÇÃO
Existe parafuso para NÃO
apertar
SIM
Apertar parafuso
Abaixar o carro
26

FIM
Pseudo-código (I)

Início
Trocar o Pneu
Fim

REFINAMENTO !!!
27
Pseudo-código (II)

Início
se <estepe está vazio> então
Chamar borracheiro
senão
Mudar o pneu
fim_se

Fim
28
Início
se <estepe está vazio> então
Chamar borracheiro
senão
Desparafusar a roda
Levantar o carro
Remover a roda
Colocar o estepe
Parafusar a roda
Abaixar o carro
fim_se
Fim
29
Início
se <estepe está vazio> então
Chamar borracheiro
senão
enquanto <existe parafuso para desapertar>
Desapertar parafuso
fim_enquanto
Levantar o carro
Remover a roda
Colocar o estepe
enquanto <existe parafuso para apertar>
Apertar parafuso
fim_enquanto
Abaixar o carro
fim_se
Fim 30
Metodologia de desenvolvimento (I)

● Passo 1: ler cuidadosamente a especificação do


problema até o final.

● Passo 2: se depois de ler várias vezes, ainda não


entender o problema, pergunte ao professor até
entender.

● Passo 3: levantar e analisar todas as saídas exigidas


na especificação do problema.
31
Metodologia de desenvolvimento (II)

● Passo 4: levantar e analisar todas as entradas citadas


na especificação do problema.

● Passo 5: verificar se é necessário gerar valores


internamente ao algoritmo e levantar as variáveis
necessárias e os valores iniciais de cada uma.

32
Metodologia de desenvolvimento

● Passo 6: levantar e analisar todas as transformações


necessárias para, dadas as entradas e valores
gerados internamente, produzir as saídas
especificadas.

● Passo 7: testar cada passo do algoritmo, verificando


se as transformações intermediárias executadas estão
conduzindo aos objetivos desejados.
Utilizar, sempre que possível, valores de teste que permitam prever
os resultados.
33
Metodologia de desenvolvimento

● Passo 8: fazer uma reavaliação geral, elaborando o


algoritmo através da integração das partes.

34
Exercícios
Exercícios
Exercícios
Material consultado
ASCENCIO, Ana Fernanda Gomes; CAMPOS, Edilene Aparecida Veneruchi de.
. Fundamentos da programação de computadores: algoritmos, Pascal e C/C++.
São Paulo: Prentice Hall, 2002 355 p. ISBN 85-87918-36-2

FARRER, H. et al – Pascal Estruturado, 2ed., LTC, 1986.

FARRER, Harry et al. Programação estruturada de computadores: algoritmos


estruturados. 3. ed. Rio de Janeiro: Livros Técnicos e Científicos, c1999 284 p.
ISBN 8521611803

ARAÚJO, Everton Coimbra de. Algoritmos: fundamento e prática. 3. ed. ampl. e


atual. Florianópolis: Visual Books, 2007. 414 p. ISBN 13: 978-85-7502-209-2

MEDINA, Marco; FERTIG, Cristina. Algoritmos e programação: teoria e prática.


São Paulo: Novatec, 2005. 384 p. ISBN 85-7522-073-X

38

You might also like