Ответы на вопрос:
Const n = 15; flag = 111; type mas = array[1..n] of integer; procedure shiftleft(var a: mas; npos: integer); // элементы массива a, начиная с номера npos, сдвигаются на один к началу массива // последний элемент массива заносится значением 111 var i: integer; begin for i : = npos to n - 1 do a[i] : = a[i + 1]; a[n] : = flag end; procedure shiftright(var a: mas; npos: integer); // элементы массива a, начиная с номера npos, сдвигаются на один к концу массива // последний элемент массива теряется, элемент с номером npos заносится значением 111 var i: integer; begin for i : = n downto npos + 1 do a[i] : = a[i - 1]; a[npos] : = flag end; function contains5(p: integer): boolean; // возвращает true, если в числе p есть хоть одна цифра 5 // возвращает false в противном случае var s: string; begin str(p, s); contains5 : = (pos('5', s) > 0) end; procedure deleteall5(var a: mas); // удаляет из массива а все элементы, содержащие цифру 5 var i, j: integer; begin i : = 1; // текущая позиция в массиве j : = n; // количество непросмотренных элементов while j > 0 do begin if contains5(a[i]) then shiftleft(a, i) else i : = i + 1; j : = j - 1 end; end; function fold(var a: mas; pstart: integer): integer; // возвращает номер элемента в массиве а, значение которого кратно его номеру // pstart - номер элемента, с которого начинается просмотр // если такого элемента не найдено, возвращается ноль. var i: integer; begin for i : = pstart to n do if a[i] mod i = 0 then begin fold : = i; exit end; fold : = 0 end; procedure insertk(var a: mas; k: integer); // после всех элементов массива, кратных своему номеру, // вставляет значение k, сдвигая оставшиеся элементы // к концу массива var i, j: integer; begin i : = 1; while i < = n do begin j : = fold(a, i); if j > 0 then begin shiftright(a, j); a[j] : = k; i : = j + 1 end else i : = n + 1 end end; function getfirstpos(var a: mas): integer; // возвращает номер первого положительного элемента в массиве а // возвращает ноль, если таких элементов нет. var i: integer; begin i: =1; while i < = n do begin if a[i] > 0 then begin getfirstpos : = i; exit end else i : = i + 1 end; getfirstpos : = 0 end; function getlastneg(var a: mas): integer; // возвращает номер последнего по порядку отрицательного элемента в массиве а // возвращает ноль, если таких элементов нет. var i: integer; begin i: =n; while i > = 1 do begin if a[i] < 0 then begin getlastneg : = i; exit end else i : = i - 1 end; getlastneg : = 0 end; procedure swap(var a: mas; p: integer; q: integer); // обмен местами элементов массива a[p] и a[q] var s: integer; begin s : = a[p]; a[p] : = a[q]; a[q] : = s end; var m: mas; k, i, j: integer; begin // инициализация массива randomize; writeln('исходный массив'); for i : = 1 to n do begin m[i] : = random(70) - 20; write(m[i]: 4) end; writeln; deleteall5(m); // удаление элементов, содержащих цифру 5 writeln('после удаления элементов, содержащих цифру 5'); for i : = 1 to n do write(m[i]: 4); writeln; writeln('введите значение k'); readln(k); insertk(m, k); writeln('после вставки значения k'); for i : = 1 to n do write(m[i]: 4); writeln; i : = getfirstpos(m); if i > 0 then begin j : = getlastneg(m); if j > 0 then begin swap(m, i, j); writeln('после обмена местами пары элементов'); for i : = 1 to n do write(m[i]: 4); writeln; end end end. тестовое решение: исходный массив -2 -5 43 12 13 5 -7 9 27 5 47 45 28 34 21 после удаления элементов, содержащих цифру 5 -2 43 12 13 -7 9 27 47 28 34 21 111 111 111 111 введите значение k 222 после вставки значения k 222 222 -2 43 12 13 222 -7 222 9 27 47 28 34 21 после обмена местами пары элементов -7 222 -2 43 12 13 222 222 222 9 27 47 28 34 21
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
Djdjjdjdjdjddjjx17.11.2020 17:36
-
SophiaB29.01.2022 05:44
-
zhenyafedorisch30.05.2021 20:09
-
SlivkO0O15429.07.2022 11:01
-
пропин17.12.2020 13:41
-
Zhansiya1520.08.2021 15:46
-
Koif3219.03.2020 05:40
-
irakeksik23.02.2020 20:23
-
adam8324.04.2023 20:12
-
SnegRainbow01.04.2021 11:06
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.