Erro no Visualg com números inteiros longos
Alguém poderia me explicar pq acontece esse erro no visualg:
quando declaro a variável graos do tipo inteiro:
Algoritmo "rainha"
// Uma rainha requisitou os serviços de um monge, o qual exigiu o
// pagamento em grãos de trigo da seguinte maneira: os grãos de
// trigo seriam dispostos em um tabuleiro de xadrez, de tal forma
// que a primeira casa do tabuleiro tivesse um grão, e as casas
// seguintes o dobro da anterior. Construa um algoritmo que calcule
// quantos grãos de trigo a Rainha deverá pagar ao monge.
Var
casa: inteiro
graos: inteiro
Inicio
graos := 1
escreval("casa -- graos")
Para casa de 1 ate 64 faca
graos := graos * 2
escreval(casa," -- ",graos)
casa := casa + 1
FimPara
escreval()
escreva("A rainha deverá pagar ", graos," grãos para o monge.")
Fimalgoritmo
Início da execução
casa -- graos
1 -- 2
2 -- 4
3 -- 8
4 -- 16
5 -- 32
6 -- 64
7 -- 128
8 -- 256
9 -- 512
10 -- 1024
11 -- 2048
12 -- 4096
13 -- 8192
14 -- 16384
15 -- 32768
16 -- 65536
17 -- 131072
18 -- 262144
19 -- 524288
20 -- 1048576
21 -- 2097152
22 -- 4194304
23 -- 8388608
24 -- 16777216
25 -- 33554432
26 -- 67108864
27 -- 134217728
28 -- 268435456
29 -- 536870912
30 -- 1073741824
31 -- -2147483648
32 -- 0
33 -- 0
34 -- 0
35 -- 0
36 -- 0
37 -- 0
38 -- 0
39 -- 0
40 -- 0
41 -- 0
42 -- 0
43 -- 0
44 -- 0
45 -- 0
46 -- 0
47 -- 0
48 -- 0
49 -- 0
50 -- 0
51 -- 0
52 -- 0
53 -- 0
54 -- 0
55 -- 0
56 -- 0
57 -- 0
58 -- 0
59 -- 0
60 -- 0
61 -- 0
62 -- 0
63 -- 0
64 -- 0
A rainha deverá pagar 0 grãos para o monge.
Fim da execução.
quando declaro a variável graos do tipo real:
Algoritmo "rainha"
// Uma rainha requisitou os serviços de um monge, o qual exigiu o
// pagamento em grãos de trigo da seguinte maneira: os grãos de
// trigo seriam dispostos em um tabuleiro de xadrez, de tal forma
// que a primeira casa do tabuleiro tivesse um grão, e as casas
// seguintes o dobro da anterior. Construa um algoritmo que calcule
// quantos grãos de trigo a Rainha deverá pagar ao monge.
Var
casa: inteiro
graos: real
Inicio
graos := 1
escreval("casa -- graos")
Para casa de 1 ate 64 faca
graos := graos * 2
escreval(casa," -- ",graos)
casa := casa + 1
FimPara
escreval()
escreva("A rainha deverá pagar ", graos," grãos para o monge.")
Fimalgoritmo
Início da execução
casa -- graos
1 -- 2
2 -- 4
3 -- 8
4 -- 16
5 -- 32
6 -- 64
7 -- 128
8 -- 256
9 -- 512
10 -- 1024
11 -- 2048
12 -- 4096
13 -- 8192
14 -- 16384
15 -- 32768
16 -- 65536
17 -- 131072
18 -- 262144
19 -- 524288
20 -- 1048576
21 -- 2097152
22 -- 4194304
23 -- 8388608
24 -- 16777216
25 -- 33554432
26 -- 67108864
27 -- 134217728
28 -- 268435456
29 -- 536870912
30 -- 1073741824
31 -- 2147483648
32 -- 4294967296
33 -- 8589934592
34 -- 17179869184
35 -- 34359738368
36 -- 68719476736
37 -- 137438953472
38 -- 274877906944
39 -- 549755813888
40 -- 1099511627776
41 -- 2199023255552
42 -- 4398046511104
43 -- 8796093022208
44 -- 17592186044416
45 -- 35184372088832
46 -- 70368744177664
47 -- 140737488355328
48 -- 281474976710656
49 -- 562949953421312
50 -- 1.12589990684262E15
51 -- 2.25179981368525E15
52 -- 4.5035996273705E15
53 -- 9.00719925474099E15
54 -- 1.8014398509482E16
55 -- 3.6028797018964E16
56 -- 7.20575940379279E16
57 -- 1.44115188075856E17
58 -- 2.88230376151712E17
59 -- 5.76460752303423E17
60 -- 1.15292150460685E18
61 -- 2.30584300921369E18
62 -- 4.61168601842739E18
63 -- 9.22337203685478E18
64 -- 1.84467440737096E19
A rainha deverá pagar 1.84467440737096E19 grãos para o monge.
Fim da execução.
Como faço para exibir o número inteiro normal?
Discussão (0)
Carregando comentários...