30.06.2014, 23:28 | #1 (permalink) |
Новичок
Регистрация: 30.06.2014
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Помогите исправить арифметическое переполнение
var x1,y1,z1,x2,y2,z2,x3,y3,z3:byte; d1,d2,d3:real; f:text; begin assign (f,'coord.txt'); reset (f); d1:=0; d2:=0; d3:=0; while not eof(f) do begin read (f,x1,y1,z1,x2,y2,z2,x3,y3,z3); d1:=sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1)+(z2-z1)*(z2-z1)); d2:=sqrt((x3-x2)*(x3-x2)+(y3-y2)*(y3-y2)+(z3-z2)*(z3-z2)); d3:=sqrt((x1-x3)*(x1-x3)+(y1-y3)*(y1-y3)+(z1-z3)*(z1-z3)); writeln (d1:0:4,' ',d2:0:4,' ',d3:0:4); end; close (f); readln; end. Тут идет чтение координат точек треугольника из файла и подсчет длины каждой из сторон треугольника d. Вот именно перед подсчетом длины сторон мне паскаль и выдает арифметическое переполнение. Каким образом можно это исправить? |
30.06.2014, 23:28 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Ваша тема схожа с этими, рекомендую внимательно прочитать Помогите исправить калькулятор Помогите исправить код. Pascal Помогите исправить, пожалуйста С++, массивы, среднее арифметическое и возрастание |
01.07.2014, 00:49 | #2 (permalink) |
VIP user
Регистрация: 10.03.2011
Сообщений: 765
Записей в дневнике: 1
Сказал(а) спасибо: 10
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 3453
|
Потому, что тип byte является наименьшей формой целого числа, занимая 8 битов (1 байт) памяти.Он поддерживает только положительные целых числа от 0 до 255.
|
01.07.2014, 09:53 | #3 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Абсолютно верно! Катюша, а зачем Вам вообще целочисленный формат, если результат всё равно вещественный? Поставьте для всех (кроме файловой) переменных тип Real, да и будет Вам счастье!
|
02.07.2014, 18:03 | #4 (permalink) |
Новичок
Регистрация: 30.06.2014
Сообщений: 5
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
спасибо большое)
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
Метки |
паскаль, переполнение, помогите, файлы |
|
|