singlepost

Паскаль. Randomize. << На главную или назад  

нужно написать прогу, которая будет генерировать числа от 1 до 1000 до тех пор, пока не попадется число 256. все генерируемые числа должны выводится на экран.
накатал вот это:

program random_number;
var a:integer;
begin
randomize;
a:=random(1000);
write(a);
readln;
end.

что там нужно добавить? пытался вставить условие, но не смог, т.к. хз что после else написать нужно.

21 ответов в теме “Паскаль. Randomize.”

  1. 12
    Alibek Danialov ответил:

    #12, я писал тот код, думая, что не надо выводить число 256.

    А за инфу спасибо. :)

  2. 11
    Дмитрий Москин ответил:

    #4, а не лучше ли использовать repeat until?

    var a: integer;
    begin
    randomize;
    repeat
    a:=random(1000)+1;
    writeln(a);
    until a=256;
    end.

    кстати random(1001) будет выдавать числа от 0 до 1000 :)

    #5, нужен вывод случайных чисел до тех пор, пока не попадётся 265

  3. 10
    Evgeni Ti ответил:

    #8while true – уахаха ))) слом мозга
    #9 крут)

  4. 9
    Максим Рыбаков ответил:

    #10 я не вникал в код #8, но ясно видно, что там есть break.. пусть даже это не образец хорошего кода

  5. 8
    Alibek Danialov ответил:

    var a, i, m : integer;
    begin
    a:=0; m:=1;
    while a<>2 do
    begin
    Read(i);
    m:=m*i;
    if i<0 then inc(a);
    end;
    Writeln(m); {это если надо учитывать второе отрицательное число, а если нет, то Writeln(m div i)}
    end.

  6. 7
    ответил:

    #7
    Попробуй так:

    program new1;
    var
    b: boolean;
    p,n: Integer;
    begin
    b:=false;
    p:=1;
    writeln('Vvodite chisla');
    while true do
    begin
    readln(n);
    p:=p*n;
    if n<0 then
    if not b then
    b:=true
    else
    break;
    end;
    writeln('Proizvedenie= ',p);
    readln;
    end.

    Код верен, если нужно учитывать второе отрицательное число

  7. 6
    Александр Сидорович ответил:

    Помогите пожалуйста

    Задача: Последовательно вводятся числа, найти их произведение. Ввод остановить после ввода второго отрицательного значения.

    Моё решение:

    Program aaa;
    Var
    s,s2,i,n:Integer;
    a:array [1..1000] of Integer;
    Begin
    s2:=1;
    s:=0;
    i:=1;
    n:=0;
    Writeln('Vvtdite 4isla');
    While s<2 do
    Begin
    Read(a[i]);
    i:=i+1;
    If abs(a[i]) <> a[i] then s:=s+1;
    n:=n+1
    End;
    For i:=1 to n do
    s2:=s2*a[i];
    Writeln(s2);
    End.

    Не пашет!!!!

  8. 5
    Alibek Danialov ответил:

    Ошибся немного в коде, уже исправил.

    #5
    А черт его знает. :)

  9. 4
    Evgeni Ti ответил:

    #4
    =) а надо разве не это? не вывод 256 ? нужный результат достигается в любом случае… и рипит с антилом и вайл без ничего

  10. 3
    Влад Ведьмакович ответил:

    Спасибо)) получилось.

  11. 2
    Alibek Danialov ответил:

    #2
    Лучше использовать цикл с предусловием, то бишь while цикл. Твой вариант решения сперва выведет число 256, а затем выйдет из цикла.

    procedure myrandom;
    var a:integer;
    a:=random(1001);
    while a<>256 do
    begin
    Writeln(a);
    a:=random(1001);
    end;
    end;

    Процедуру "randomize;" вызывать после begin'a(зачем нам при каждом вызове нашей процедуры вызывать рандомайз?).

  12. 1
    Evgeni Ti ответил:

    1. а кто сказал что элсе обязательная штука
    2. а цикла хде?
    3. еррор 404 наверняка все знает и просто смеется над готовыми оказать посильную помощь

    повторять
    a:=рандом
    врайт а
    пока a=256

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