singlepost

Программисты, помогите!!!! << На главную или назад  

Итак, я писал программу на Паскале. Прога очень простая, но там одна херня вот прога:
program massiv;
var a:array[1..10] of real;
i:integer;
begin;
randomize;
for i:=1 to 10 do
begin
a[i]:=(random(20)-10)/(random(10)+1);
write(a[i]:0:2,'');
end;
writeln;
end.

программа работает, но выволятся на экран числа в диапазоне от 1 до 65653. Чё делать?

42 ответов в теме “Программисты, помогите!!!!”

  1. 4
    Гриха Тюрин ответил:

    СПСБ большое!!!!

  2. 3
    Aleksss Aleksss ответил:

    Нервничать не нужно – для здоровья плохо. Я тебе могу написать такую прогу, которая тоже будет работать, но нихрена делать не будет.
    А теперь по поводу чисел – экспериментально установил, что если убрать в выражении (random(20)-10) -10, то прога начнет выдавать правильные значения. Советую ввести промежуточные переменные а1 и а2, в которые будут вносится случайные значения, потом от этих переменных ты будешь отнимать и прибавлять, а потом уже считать частное. Почему по-другому не выходит – не знаю, надо лезть в алгоритм генератора чисел. Вот мой вариант твоей проги, у меня все выдает в пределах

    program massiv;
    uses Crt;
    var a:array[1..10] of real;
    i:integer;
    a1,a2: real;
    begin
    clrscr;
    randomize;
    for i:=1 to 10 do
    begin
    a1:=random(20);
    a1:=a1-10;
    a2:=random(10);
    a2:=a2+1;
    a[i]:=a1/a2;
    write(a[i]:0:2,' ');
    end;
    readln;
    end.

  3. 2
    Гриха Тюрин ответил:

    я говорю: прога работает! а выводить должна частное, которое там написано… блин, если числа от -10 до 10 разделить на числа от 1 до 9, причём числа целые, что должно 65653 получится?

  4. 1
    Aleksss Aleksss ответил:

    А что прога то должна выводить? И у тебя с begin-ами проблема – прога начинается с шестой строки, а не с четвертой…

Клуб программистов работает уже ой-ой-ой сколько, а если поточнее, то с 2007 года.