С помощью функции random получить массив размерностью (0..20). Составить программу осуществляющую циклический сдвиг массива на n позиций. n и направление сдвига задать в качестве входных величин — Pascal(Паскаль)

var 
  arr,arr2: array[0..20] of integer;
  n,i,i2:Integer;
begin        
  randomize;
  for i:=0 to 20 do begin        
        arr[i]:=random(    50    );
        arr2[i]:=arr[i];
        write(arr[i],    '; '    );
  end;
    writeln;
    write(    'Input shift count: '    );
    readln(n);
    n:=n mod 21;     
    if n<>0 then begin
        for i:=0 to 20 do begin        
            i2:=i+n;
            if i2>20 then dec(i2, 21)
            else if i2<0 then inc(i2, 21);
            arr[i]:=arr2[i2];
            write(arr[i], '; ');
        end;
        writeln;
    end else writeln('No shifting');
    readln;
end.

Leave a Comment

39 + = 40