Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 27.01.2010, 19:18   #21 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
По умолчанию

Командой (неправильно написанной, кстати)
A[i]:=random(100)-50;
вы целочисленной переменной присваиваете вещественное значение, попробуйте использовать целочисленное деление или округление до целого значения.

Для справки: функция random возвращает значение с плавающей точкой из интервала (0;1).
__________________
Убить всех человеков!
AlexZir вне форума   Ответить с цитированием
Старый 27.01.2010, 19:43   #22 (permalink)
GrandLeon
Member
 
Аватар для GrandLeon
 
Регистрация: 27.01.2010
Сообщений: 13
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Нажмите на изображение для увеличения
Название: a1a3856cc8cd.jpg
Просмотров: 3532
Размер:	31.6 Кб
ID:	140048

..........
GrandLeon вне форума   Ответить с цитированием
Старый 27.01.2010, 20:02   #23 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
По умолчанию

Попробуйте тогда функции round() или trunc(), чтобы значения округлить, хотя их использование не приветствуется. Это точно сработает, ибо проверил
Код:
a[i]:=trunc(random*100-50);
И еще, ответьте, в какой именно строке показывает ошибку? Какая строка подсвечивается?
__________________
Убить всех человеков!
AlexZir вне форума   Ответить с цитированием
Старый 27.01.2010, 20:32   #24 (permalink)
GrandLeon
Member
 
Аватар для GrandLeon
 
Регистрация: 27.01.2010
Сообщений: 13
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Ну вот заменил Ссылка удалена

А в прошлый раз строка " A[i]:=random(100)-50; "

Последний раз редактировалось Fenix; 11.06.2013 в 11:41 Причина: Ссылка мертва
GrandLeon вне форума   Ответить с цитированием
Старый 27.01.2010, 20:33   #25 (permalink)
GrandLeon
Member
 
Аватар для GrandLeon
 
Регистрация: 27.01.2010
Сообщений: 13
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Блин что-то я туплю (
GrandLeon вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 27.01.2010, 20:42   #26 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
По умолчанию

Черт его знает, у меня лично этот листинг ошибок не выдает и нормально выводит сначала все элементы исходного массива, потом строку только из положительных значений элементов массива.

Возможно, это как-то связано с вашей версией компилятора. Во всяком случае, ошибке деления на нуль там просто неоткуда взяться, так как никакого деления в листинге нет и в помине.
__________________
Убить всех человеков!
AlexZir вне форума   Ответить с цитированием
Старый 27.01.2010, 20:57   #27 (permalink)
GrandLeon
Member
 
Аватар для GrandLeon
 
Регистрация: 27.01.2010
Сообщений: 13
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Выложи тогда пожалуйста сюда свой вариант программы.
GrandLeon вне форума   Ответить с цитированием
Старый 27.01.2010, 21:46   #28 (permalink)
Vladimir_S
Специалист
 
Регистрация: 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
Так что уж и не знаю, что и думать. Вероятно, и впрямь транслятор лажит.
Vladimir_S вне форума   Ответить с цитированием
Старый 27.01.2010, 21:53   #29 (permalink)
GrandLeon
Member
 
Аватар для GrandLeon
 
Регистрация: 27.01.2010
Сообщений: 13
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Ну главное что работает ))) спс))
GrandLeon вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 21:29.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.