Сформировать новый массив, который состоит только из тех элементов массива а, которые превосходят свой номер на 10. - Pascal

Узнай цену своей работы

Формулировка задачи:

Доброго времени суток, уважаемые! Помогите, пожалуйста, решить 2 задачи с массивами. Задали дочери в институте, а ни я, ни она - ни в зуб ногой. Заранее благодарствую. Задача1 Дан одномерный массив а. Сформировать новый массив, который состоит только из тех элементов массива а, которые превосходят свой номер на 10. Если таких элементов нет, то выдать сообщение. Задача 2 В массиве X(1:n) каждый элемент равен 0, 1 или 5. Переставить элементы массива так, чтобы сначала располагались все нули, затем все единицы, а затем все пятерки. Дополнительного массива не заводить.

Решение задачи: «Сформировать новый массив, который состоит только из тех элементов массива а, которые превосходят свой номер на 10.»

textual
Листинг программы
uses crt;
const max=100;
var a:array[1..max] of byte;
    n,i,j,k,x:byte;
begin
clrscr;
randomize;
repeat
write('Размер массива до ',max,' n=');
readln(n);
until n in [1..max];
writeln('Исходный массив:');
for i:=1 to n do
 begin
  repeat
   a[i]:=random(6);
  until a[i] in [0,1,5];
  write(a[i],' ');
 end;
writeln;
writeln;
{0 вперед}
k:=0;
for i:=1 to n do
if a[i]=0 then
  begin
    k:=k+1;
    x:=a[i];
    for j:=i downto k+1 do
    a[j]:=a[j-1];
    a[k]:=x;
  end;
{5 в конец}
k:=0;
for i:=n downto 1 do
if a[i]=5 then
  begin
    k:=k+1;
    x:=a[i];
    for j:=i to n-k do
    a[j]:=a[j+1];
    a[n-k+1]:=x;
  end;
writeln('Перестановка:');
for i:=1 to n do
write(a[i],' ');
readln
end.

Объяснение кода листинга программы

  1. В начале программы объявляются переменные: — a: массив байтов, размером от 1 до max (включительно), который будет заполняться случайными значениями; — n: переменная для хранения размера массива; — i, j, k, x: вспомогательные переменные для работы с массивом.
  2. Далее выполняется запрос на ввод размера массива от пользователя.
  3. После получения размера массива, происходит инициализация исходного массива случайными значениями от 0 до 5.
  4. Затем, с помощью двух циклов, в массиве ищется первое вхождение нуля (0). Если ноль найден, то все элементы перед ним (включая ноль) перемещаются в конец массива, а вместо нуля записывается последнее значение.
  5. Аналогичным образом, с помощью двух циклов, в массиве ищется первое вхождение пятёрки (5). Если пятёрка найдена, то все элементы после неё (включая пятёрку) перемещаются в начало массива, а вместо пятёрки записывается последнее значение.
  6. После перестановки, программа выводит получившийся массив на экран.
  7. В конце программы ожидается нажатие клавиши для завершения работы программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

13   голосов , оценка 4.231 из 5
Похожие ответы