Предмет: Информатика, автор: Tizifona

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

Ответы

Автор ответа: Gleb1Kosyrev
0
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.    
Автор ответа: Tizifona
0
Большое спасибо!
Автор ответа: MrLolthe1st
0
ваша программа не работет по нескольким причинам: 1 функция random(n) возвращает тип word(0..65535), при этом может вернуть 0, а тип результата определяется первым слогаемым, след-но word т.е. если директива {$R+} не включена, то у вас выйдет 65532, что не влезет в inetger(-32768..32768), и результат будет не верен, а пр {$R+} программа просто вылетит, след-но заполнять надо так: a[i]:=-3 + random(10);
Автор ответа: Gleb1Kosyrev
0
Спасибо за совет. Возвращайтесь когда выучите как называется целочислителный тип от -32768 до 32767, а так же узнаете что такое приведение типов. Диспут окончен.
Автор ответа: MrLolthe1st
0
Integer
Похожие вопросы
Предмет: Биология, автор: batukdarina
Предмет: Химия, автор: Sadiagayev969
Предмет: Геометрия, автор: котофе1234