27.01.2010, 19:18 | #21 (permalink) |
support
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
|
A[i]:=random(100)-50; вы целочисленной переменной присваиваете вещественное значение, попробуйте использовать целочисленное деление или округление до целого значения. Для справки: функция random возвращает значение с плавающей точкой из интервала (0;1).
__________________
Убить всех человеков! |
27.01.2010, 20:02 | #23 (permalink) |
support
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
|
Попробуйте тогда функции round() или trunc(), чтобы значения округлить, хотя их использование не приветствуется. Это точно сработает, ибо проверил
Код:
a[i]:=trunc(random*100-50);
__________________
Убить всех человеков! |
27.01.2010, 20:32 | #24 (permalink) |
Member
Регистрация: 27.01.2010
Сообщений: 13
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Ну вот заменил Ссылка удалена
А в прошлый раз строка " A[i]:=random(100)-50; " Последний раз редактировалось Fenix; 11.06.2013 в 11:41 Причина: Ссылка мертва |
27.01.2010, 20:33 | #25 (permalink) |
Member
Регистрация: 27.01.2010
Сообщений: 13
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Блин что-то я туплю (
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
27.01.2010, 20:42 | #26 (permalink) |
support
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
|
Черт его знает, у меня лично этот листинг ошибок не выдает и нормально выводит сначала все элементы исходного массива, потом строку только из положительных значений элементов массива.
Возможно, это как-то связано с вашей версией компилятора. Во всяком случае, ошибке деления на нуль там просто неоткуда взяться, так как никакого деления в листинге нет и в помине.
__________________
Убить всех человеков! |
27.01.2010, 21:46 | #28 (permalink) |
Специалист
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
|
Так, позвольте уж и мне подключиться. По поводу задачи 2. Погонял. НИКАКИХ проблем, ошибок и т.п. Внес незначительные абсолютно непринципиальные поправки:
1. Добавил вывод упорядоченного по возрастанию массива. 2. Добавил останов в конце. 3. Причесал "лесенки" для удобочитаемости. Листинг: Код:
Uses crt; Const n=15; Var i,j:byte; a:array[1..n] of integer; p:integer; Begin Clrscr; Randomize; For i:=1 to n do A[i]:=random(100)-50; For i:=1 to n do Write(a[i]:5); Writeln; For i := n downto 2 do For j := 2 to i do if A[j] < A[j-1] then begin p:= A[j]; A[j]:= A[j-1]; A[j-1]:= p; end; For i:=1 to n do Write(a[i]:5); Writeln; For i:=1 to n do If a[i]>0 then write(a[i]:5); ReadLn; End. http://www.tehnari.ru/imagehosting/2...07b93a73fb.jpg Так что уж и не знаю, что и думать. Вероятно, и впрямь транслятор лажит. |
27.01.2010, 21:53 | #29 (permalink) |
Member
Регистрация: 27.01.2010
Сообщений: 13
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
|
Ну главное что работает ))) спс))
|
Ads | |
Member
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
|
|
|