Автор Gg fggffg задал вопрос в разделе Другие языки и технологии
помогите решить...на языке паскаль...с массивами и получил лучший ответ
Ответ от Миоко Таканава[гуру]
Вы задание не дописали? На сколько позиций сдвигать массив? Циклический сдвиг массива вправо на 1 позицию: program N63598236; const N = 10; var a:array[ 1..N ] of shortint; i:byte; t:shortint; begin randomize; writeln(\'Исходный массив: \'); for i := 1 to N do begin a[ i ] := random(21) - 10; write(a[ i ]:4) end; t := a[ N ]; for i := N downto 2 do a[ i ] := a[ i - 1 ]; a[ 1 ] := t; writeln; writeln(\'Массив, сдвинутый вправо на 1 элемент: \'); for i := 1 to N do write(a[ i ]:4); readln end. Циклический сдвиг массива вправо на произвольное вводимое пользователем количество элементов: program N63598236; const N = 10; var a:array[ 1..N ] of shortint; i, j, k:byte; t:shortint; begin randomize; writeln(\'Исходный массив: \'); for i := 1 to N do begin a[ i ] := random(21) - 10; write(a[ i ]:4) end; writeln; write(\'Введите кол-во позиций сдвига: \'); readln(k); for j := 1 to k do begin t := a[ N ]; for i := N downto 2 do a[ i ] := a[ i - 1 ]; a[ 1 ] := t end; writeln(\'Сдвинутый массив: \'); for i := 1 to N do write(a[ i ]:4); readln end.
Миоко! Откуда такой здоровенный номер программы? Это случаем не порядковый ли? 🙂
что делает операция shl на паскале и примеры ее использования
Циклический сдвиг: k shl N - сдвиг числа к влево на N позиций,
k shr N - сдвиг числа к
подробнее...