profile
Опубликовано 6 лет назад по предмету Информатика от Tizifona

Free Pascal. Задать массив, и из массива А в Б переписать сначала все нули, потом отрицательные числа и потом все положительные. Числа рандомные.

  1. Ответ
    Ответ дан Gleb1Kosyrev
    var
     ar,ar2:array[1..10] of integer;
     i:integer;
    begin
    randomize;
     writeln('First array:');
      for i:=1 to 10 do
       begin;
        ar[i]:=random(10)-3;
        write(ar[i]:4);
        if ar[i]=0 then ar2[i]:=0;
       end;
     writeln;
     writeln('1-st Final array:');
      for i:=1 to 10 do
       begin;
        write(ar2[i]:4);
        if ar[i]<0 then ar2[i]:=ar[i];
       end;
     writeln;
     writeln('2-st Final array:');
      for i:=1 to 10 do
       begin;
        write(ar2[i]:4);
        if ar[i]>0 then ar2[i]:=ar[i];
       end;
     writeln;
     writeln('3-st Final array:');
      for i:=1 to 10 do
        write(ar2[i]:4);
    end.    
    1. Ответ
      Ответ дан Tizifona
      Большое спасибо!
    2. Ответ
      Ответ дан MrLolthe1st
      ваша программа не работет по нескольким причинам: 1 функция random(n) возвращает тип word(0..65535), при этом может вернуть 0, а тип результата определяется первым слогаемым, след-но word т.е. если директива {$R+} не включена, то у вас выйдет 65532, что не влезет в inetger(-32768..32768), и результат будет не верен, а пр {$R+} программа просто вылетит, след-но заполнять надо так: a[i]:=-3 + random(10);
    3. Ответ
      Ответ дан Gleb1Kosyrev
      Спасибо за совет. Возвращайтесь когда выучите как называется целочислителный тип от -32768 до 32767, а так же узнаете что такое приведение типов. Диспут окончен.
    4. Ответ
      Ответ дан MrLolthe1st
      Integer
Самые новые вопросы