Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Pascal abc функция рандом очень нужна помощь. как в паскаль abc заполнить массив а случайными числами от -1000 до 1000

Игорь Саблин Профи (884), закрыт 11 лет назад
Дополнен 11 лет назад
желательно подробно
я смог только начать
for i:=1 to n do
begin
randomize;
a:=а вот что здесь писать незнаю нужен рандом от -1000 до 1000;
pascal abc версия 3.0.1
Дополнен 11 лет назад
вариант с
a[k]:=1000*(2*random - 1) не проходит.. . пишет попытка присвоить переменной типа integer знчение типа real
надо добавить что массив именно типа real
Дополнен 11 лет назад
в случае
a[k]:=random(2000)-1000 почему то числа не ограничиваются ни сверху ни снизу используя данный вариант я получил массив
556381871-731193-114224277-18241-52558-796-590-66101-49590957
Дополнен 11 лет назад
в случае
a[k]:=random(2000)-1000 почему то числа не ограничиваются ни сверху ни снизу используя данный вариант я получил массив
556381871-731193-114224277-18241-52558-796-590-66101-49590957
ой и массив именно типа integer
Лучший ответ
Krab Bark Искусственный Интеллект (191662) 11 лет назад
var i,n:integer; a:array[1..1000]of integer;
begin
randomize; write('n ? '); readln(n);
for i:=1 to n do a[ i]:=random(1999)-999;
for i:=1 to n do begin write(a[ i]:6); if i mod 10=0 then writeln end;
readln
end.

Тут я ограничился для красоты диапазоном трехзначных чисел от -999 до 999
Для -1000..1000 замени на random(2001)-1000
Остальные ответы
Хулиганов Иосиф Искусственный Интеллект (284539) 11 лет назад
Не знаю, как в АВС, а в турбо-паскале было так:
a[k]:=1000*(2*random - 1); {это если массив вещественный}
или
a[k]:=random(2000)-1000; {если массив целый}
Globe Просветленный (24842) 11 лет назад
Ой, неужели в паскале абеце нету функций round, trunc и floor? Ну какое-то явное приведение типов там должно же быть!

Попробуйте так, что ли:
a[k] := round(1000*(2*random - 1));
дима мищенко Знаток (356) 7 лет назад
Program p23;
var
a:array[1..100]of longint;
i:integer;
begin
randomize;
for i:=1 to 100 do
begin
a[i]:=random(-1000,1000);
write(a[i]:7);
end;
end.
Похожие вопросы