Включение элемента в заданную позицию массива - QBasic
Формулировка задачи:
Доброго времени суток! Суть задачи: дан массив а, состоящий из 5 элементов. Вставить между элементами a(k) и a(k-1) нулевой элемент (k-нужно задать с клавиатуры). Распечатать полученный массив.
Вот что у меня получилось, но работает не правильно. Помогите пожалуйста
Решение задачи: «Включение элемента в заданную позицию массива»
textual
Листинг программы
CLS
n = 5
DIM a(1 TO n + 1)
FOR i = 1 TO n
PRINT "Vvedite massiv a("; i; ") = "; : INPUT "", a(i)
NEXT i
DO
PRINT "Vvedite k (ot 2 do 5) ="; : INPUT "", k
IF (k < 2) OR (k > 5) THEN
PRINT "k vyhodit za predely, povtorite vvod ..."
ELSE
EXIT DO
END IF
LOOP
CLS
PRINT "Ishodniy massiv:"
FOR i = 1 TO n
PRINT USING "#######"; a(i);
NEXT i: PRINT : PRINT
FOR i = n + 1 TO k STEP -1
a(i) = a(i - 1)
NEXT i
a(k) = 0
PRINT "new massiv:"
FOR i = 1 TO n + 1
PRINT USING "#######"; a(i);
NEXT i: PRINT
END
Объяснение кода листинга программы
- В начале программы объявляется переменная
nсо значением 5, которая будет использоваться для определения размера массива. - Затем, с помощью оператора
DIM, создается массивaразмеромn + 1. - Далее, в цикле
FORпроисходит вывод сообщения для ввода элемента массиваaи его последующий ввод с помощью оператора:INPUT. - После завершения цикла
FOR, выполняется циклDO, который будет повторяться до тех пор, пока введенное значение переменнойkне будет в пределах от 2 до 5. - Внутри цикла
DOпроверяется значение переменнойk. Если оно меньше 2 или больше 5, то выводится сообщение об ошибке и цикл повторяется. В противном случае, цикл завершается. - После завершения цикла
DO, выполняется очистка экрана с помощью командыCLS. - Затем выводится исходный массив
aс помощью циклаFORи командыPRINT. Для улучшения читаемости, используется форматирование с использованием символаUSINGи строки#######. - После этого, в цикле
FORпроисходит перестановка элементов массиваa. Начиная с элементаn + 1, каждый элемент сдвигается на одну позицию вправо, а последний элемент обнуляется. - После завершения цикла
FOR, выводится измененный массивaс помощью циклаFORи командыPRINT. Для улучшения читаемости, используется форматирование с использованием символаUSINGи строки#######. - Программа завершается командой
END.