3. Influência dos Erros nas Soluções
• Causa: Um erro de arredondamento no
software calculou incorretamente o tempo,
fazendo com que o sistema Patriot ignorasse os
mísseis Scud de entrada.
• Limitação na representação numérica (24 bits)
• Erro de 0,34 s no cálculo do tempo de
lançamento
• Resultado: 28 mortos e aprox. 100 feridos
Exemplo 1: Falha no lançamento de mísseis
(25/02/1991 – Guerra do Golfo – míssil Patriot)
4. Influência dos Erros nas Soluções
• Causa: exceção na conversão do valor
contido em um float 64 bits para um
inteiro 16 bits com sinal (over flow).
• Sistemas referenciais de inércia
inoperantes por volta de 36,7 s após o
lançamento.
• Aos 37s o foguete desviou bruscamente,
partiu e explodiu
Exemplo 2: Explosão de foguete na Guiana Francesa
(04/06/1996 – foguete francês Ariane 501)
5. Representação de Números
• Sistema Decimal
– 10 dígitos disponíveis (0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
– 4783 = 4*103
+ 7*102
+ 8*101
+ 3*100
• Sistema Binário
– 2 dígitos disponíveis (0,1)
– 1011 na base 2 = 1x23
+ 0x22
+ 1x21
+ 1x20
• 8+0+2+1 = 11 na base decimal
6. Representação dos Números
• Fórmula Geral
– Base β, , k=1,...,j
• Decomposição polinomial de um número
• Exemplo: β = 10
– 9513 = 9*103
+ 5*102
+ 1*101
+ 3*100
7. Sistemas de Numeração Mais Comuns
• Mais utilizados
– Decimal: nossa anatomia
– Binário: computador
• Outros sistemas:
– Octal: {0, 1, 2, 3, 4, 5, 6, 7} 🡪 utiliza 3 bits
– Hexadecimal: {0, 1, ..., 8, 9, A, B, C, D, E, F} 🡪 4 bits
8. Sistemas de Numeração Mais Comuns
Decimal Binário Octal Hexadecimal
0 0 0 0
1 1 1 1
2 10 2 2
3 11 3 3
4 100 4 4
5 101 5 5
6 110 6 6
7 111 7 7
8 1000 10 8
9 1001 11 9
10 1010 12 A
11 1011 13 B
12 1100 14 C
13 1101 15 D
14 1110 16 E
15 1111 17 F
9. Conversão de Números - Inteiros
• Binário para decimal (decomposição polinomial)
– (1011)2
= 1*23
+ 0*22
+ 1*21
+ 1*20
= (11)10
• Decimal para binário 🡪 divisões sucessivas
– Divisão inteira por 2 do número N a ser convertido
– O binário recebe o resto da divisão como bit mais
significativo
– Repete essas operações até que o resultado da divisão
seja 0 ou 1 🡪 se for 1, o binário irá recebê-lo.
• Exemplo:
11. Conversão de Números – Inteiros
C++
#include <conio.h>
#include <iostream>
using namespace std;
int main(){
int n, r;
string bin = "";
cout << "Informe o inteiro a ser convertido:";
cin>> n;
while (n>=2) {
r = n % 2;
if (r==0) bin = "0" + bin;
else bin = "1" + bin;
n = n/2;
}
if(n==1) bin = "1" + bin;
cout << "nBinario:" << bin;
getch();
}
Inteiro para binário
12. Conversão de Números – Inteiros
C++
#include <conio.h>
#include <iostream>
#include <math.h>
using namespace std;
int main(){
int n=0;
string bin = "";
cout << "Informe o binario a ser convertido:";
cin>> bin;
int ultimo = bin.size()-1;
for(int i=0; i<=ultimo; i++){
if(bin[i]=='1'){
n = n + (int)pow(2,ultimo-i);
}
}
cout << "nInteiro: " << n;
getch();
}
Binário para inteiro
13. Conversão de Fração em Base 2
• Converte de base 2 para base 10
– Decomposição polinomial
– Exemplo
(10,101)2
= 1*21
+ 0*20
+ 1*2-1
+ 0*2-2
+ 1*2-3
(10,101)2
= 2 + 0 + 0,5 + 0 + 0,125 = (2,625)10
• Polinômio geral
15. Conversão de Fração em Base 2
• Converte da base 10 para base 2
1. Converte a parte inteira normalmente
2. Multiplica a parte fracionária por 2
3. A parte inteira será a próxima casa decimal
4. Subtraia somente a parte inteira
5. Se o resultado for maior que 0, repita o passo 2
16. Conversão de Fração em Base 2
• Converte da base 10 para base 2, exemplo:
– (0,6875)10
– 2 * 0,6875 = 1,375 🡪 Binário 0,1
– 2 * 0,375 = 0,75 🡪 Binário 0,10
– 2 * 0,75 = 1,5 🡪 Binário 0,101
– 2 * 0,5 = 1,0 🡪 Binário 0,1011
20. Erros em Números Fracionários
• As bases não podem representar de forma
finita todos o números, exemplo:
– (Π)10
= 3,1415926535 ...
– 10 / 3 na base 10 = 3,333333333...
• No computador a representação binária não
também tem esse problema, em:
21. Erros em Números Fracionários
• No programa anterior
– n = 0,11
– r = 30000
– Resultado = 3300.99
• Erro na representação de (0,11)10
– Se o computador utilizar mantissa de 23 dígitos,
então (0,11)10
corresponde (0,109989)10
22. Ponto Flutuante
• No computador , para representar ponto
flutuante (float, double, etc), utiliza-se:
– Representação normalizada
(1001,1)2
= 0,10011 x 24
Mantissa de tamanho 5
• O primeiro número após a vírgula deve ser
sempre 1.
23. Ponto Flutuante
• Fórmula geral
onde:
β é a base em que o computador opera (2);
t é o número de dígitos na mantissa
e é o expoente (inteiro com sinal)
24. Ponto Flutuante
• Número finito de bits para representar ponto
flutuante
• O padrão IEEE 754 define a forma de
representação de ponto flutuante para os
principais sistemas operacionais
• Formatos básicos:
Sinal Expoente(+/-) Significando
Simples (32bits) 1 [bit31] 8 [bits30-23] 23 [bits22-00]
Dupla (64 bits) 1 [bit63] 11 [bits62-52] 52 [bits51-00]
27. Neste vídeo educativo você aprendeu sobre
Erros nas soluções de cálculos por softwares.
Interaja no ambiente virtual, ele é o nosso
meio de comunicação!
Bons estudos!
Finalizando...
27
Professora: Adriana Viana
28. Referências
(ON-LINE) FRANCO, Neide Bertoldi. Cálculo numérico. São Paulo: Pearson Prentice
Hall, 2006. Disponível em: https://sinef.fumec.br/jsp/login.jsp>. Classificação: Ac.74113
(ON-LINE) SPERANDIO, Décio; MENDES, João Teixeira; SILVA, Luiz henry Monken e.
Cálculo numérico. São Paulo: Pearson, 2014. Disponível em:
https://sinef.fumec.br/jsp/login.jsp>. Classificação: Ac.74539
FRANCO, Neide Bertoldi. Cálculo numérico. São Paulo: Pearson Prentice Hall, 2006.
505p. ISBN 15 110 9788576050872. Classificação: 510.56 F825c 2006 Ac.51091
RUGGIERO, Márcia A. Gomes; LOPES, Vera Lúcia da Rocha. Cálculo numérico:
aspectos teóricos e computacionais. 2. ed. São Paulo: Pearson Makron Books, c1997.
406 p. ISBN 9788534602044. Classificação: 510.56 R931c c1997 2. ed. Ac.53254
SPERANDIO, Décio; MENDES, João Teixeira; SILVA, Luiz henry Monken e. Cálculo
numérico: características matemáticas e computacionais dos métodos numéricos. São
Paulo: Pearson, 2003. ix, 354p. ISBN 9788587978741. Classificação: 510.56 S749c
2003 Ac.66847