25.03.2012, 17:37 | #1 (permalink) |
Member
Регистрация: 21.06.2010
Сообщений: 31
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Арифметическое переполнение
program zadacha; Uses crt; const n = 4; var Matr: Array[1..n, 1..n] of longint; Count: Integer; i, j: Byte; begin Randomize; writeln('Матрица*: '); for i:=1 to n do begin for j:=1 to n do begin Matr[i, j]:=Random(20)-10; write(Matr[i, j]:4); if Matr[i, j] < 0 then inc(Count); end; writeln; end; writeln('Замена отрицательных нулями: '); for i:=1 to n do begin for j:=1 to n do begin if Matr[i, j] < 0 then Matr[i, j]:=0; write(Matr[i, j]:4); end; writeln; end; writeln('Кол-во: ', Count); end. |
25.03.2012, 17:37 | |
Helpmaster
Member
Регистрация: 08.03.2016
Сообщений: 0
|
Наверняка вы сможете найти решение своей проблемы в похожих обсуждениях Резкое переполнение памяти Переполнение системного диска Переполнение памяти на Eee PC 901 |
25.03.2012, 18:20 | #2 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Попробуйте заменить строку
Matr[i, j]:=Random(20)-10; строкой Matr[i, j]:=10-Random(20); Дело в том, что некоторые реализации Паскаля "понимают" эту строку так, что выполнение операции Random(20) "навязывает" всему выражению, стоящему справа, целый беззнаковый тип (Word, Byte) и, соответственно, получая при генерации числа, меньшего 10, отрицательное значение, выбрасывают сообщение об ошибке. Перестановка слагаемых позволяет избежать этого глюка. |
25.03.2012, 18:44 | #3 (permalink) | |
Member
Регистрация: 21.06.2010
Сообщений: 31
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Цитата:
|
|
25.03.2012, 21:39 | #5 (permalink) |
Member
Регистрация: 21.06.2010
Сообщений: 31
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
25.03.2012, 21:48 | #6 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Это в смысле School Pack? Понятно. Продолжается, значит, изготовление всяких поделок полуграмотными умельцами. Естественно, "для нужд образования Российского". Мало нам пропихивания во все дырки глючного изделия N2 по имени АВС, так еще и это. Зла не хватает, честное слово. Не на Вас, естественно.
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|