Воскресенье, 06.07.2025, 18:32
Информатика в школе
Приветствую Вас Гость | RSS
Главная Вставка новых элементов в массив Регистрация Вход
Форма входа

Меню сайта

Мини-чат
300

Категории
Школа и сайт [4]
Software [18]
Hardware [14]

Календарь
Календари для ucoz

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

 

Вставка новых элементов в массив

  • В массив после максимального элемента вставить элемент, равный 0.

Пример исходного массива A: 1 2 5 1 0 1 2 (максимальный элемент A[3]=5)

Массив после вставки элемента: 1 2 5 0 1 0 1 2

Алгоритм вставки элемента в массив:

1. Сдвинуть элементы от позиции вставляемого элемента в конец.

2. В позицию вставляемого элемента вписать нужное значение.

3. Количество элементов n увеличить на 1 .

Общий алгоритм программы следующий:

1 . Введем массив А.

2 . Найдем индекс max элемента.

3 . Вставим после max 0.

4 . Выведем получившийся массив.

Полный текст программы:

Const  maxN = 20; {максимально возможное количество элементов в массиве}

Type  IndexEll = 1 .. maxN; {индексы массива лежат в интервале от 1 до maxN}

arrInt = array[1.. maxN] of  integer; {массив целых чисел, содержащий до maxN элементов}

Var  a : arrInt; {массив}

       n : integer; {количество элементов в массиве}

i : IndexEll; {переменная для сканирования массива}

max: IndexEll; {номер max элемента массива}

Begin

randomize; { генерируем случайные элементы}

n :=random(6)+5; {n в интервале 5..10}

for i :=1 to  do

A[i]:=random(19)-9; {вводим в ячейки массива случайные значения }

max:=1;

for i :=2 to  n  do

if A[i]>A[max] then max:=i; {ищем индекс max элемента}

{вставляем 0 после максимального элемента}

for i :=n downto max+1 do

A[i+1]:=A[i]; {сначала сдвигает "хвост” массива вправо}

A[max+1]:=0; {заносим в следующий за максимальным элемент 0}

Inc(n); {увеличиваем количество элементов массива}

writeln('Массив А после вставки: '); {выводим массив}

for i :=1 to n do

write(A[ i ]:3);

end.

Данная программа демонстрирует модульный подход к решению задач - задача разбивается на подзадачи, полученные подзадачи решаются отдельно. Если подзадача не решается непосредственно, то она снова разбивается на подзадачи и т.д. Такой подход называется "программирование сверху вниз".

Замечание: данная программа таит в себе ошибку. Если n=20, то после вставки еще одного элемента n станет равной 21, и, скорее всего, программа повиснет (потому что элементов в массиве может быть НЕ БОЛЬШЕ 20). Следовательно, при вставке элементов необходимо следить, чтобы было n<=maxN .



<<Назад
                                                                                                                                                                                                                                              
Часы

Праздники России

Праздники России



Uploader

Поиск

Полезные ссылки
  • Официальный блог
  • Сообщество uCoz
  • Программисту
  • Олимпиаднику
  • Как создать сайт с нуля
  • Сайт МОУ СОШ №81
  • 3DNews

  • Александр Михайлович Марченко © 2025 Конструктор сайтовuCoz