Подмассив массива

      Комментарии к записи Подмассив массива отключены

В этой теме 0 ответов, 1 участник, последнее обновление  Васильев Владимир Сергеевич 4 мес., 3 нед. назад.

  • Автор
    Сообщения
  • #3367

    Задача взята с acmp.ru:

    Пусть задан массив целых чисел а1 , а2 , ..., аn. Назовем его подмассивом f(i,j) массив, составленный из чисел массива аi , ai+1,..., aj-1, aj. Напишите программу, которая будет выводить подмассивы массива a.

    Входные данные:
    Первая строка входного файла INPUT.TXT содержит число n (1 <= n <= 1000) — количество элементов в массиве а. Во второй строке содержатся числа a1 , a2 , … , аn разделенные пробелом. Все аi находятся в диапазоне от -2^31 до 2^31 - 1. В третьей строке находится m (1 <= m <= 100) — количество подмассивов, которые необходимо вывести. Следующие m строк содержат пары чисел ik , jk (1 <= ik <= jk <= n).

    Выходные данные:
    В выходной файл OUTPUT.TXT для каждой пары (ik ,jk) в отдельной строке выведите подмассив f(ik ,jk).

    Пример
    INPUT.TXT:

    6
    1 2 3 4 5 6
    5
    1 1
    2 6
    3 4
    5 6
    2 4

    OUTPUT.TXT :

    1
    2 3 4 5 6
    3 4
    5 6
    2 3 4

    Описание решения задачи:

    Данные (количество элементов в массиве, элементы массива, количество подмассивов и пары чисел (b,c)) считываются последовательно из входного файла input.txt.

    • Определяем количество элементов в массиве (n).
    • Формируем массив.
    • Определяем количество подмассивов (m).
    • Определяем первую пару чисел. Например, пара чисел (b,c): b=2, c=5.
    • Формируем и выводим подмассив [2; 5] в выходной файл (2,3,4 и 5 элементы массива). Например, массив – 1 5 9 7 12 31, подмассив – 5 9 7 12.
    • Определяем вторую пару чисел b,c в следующей строке входного файла.
    • Формируем и выводим подмассив [b,c] в выходной файл.
    • Считываем m–пар чисел. Выводим m–подмассивов в отдельной строке, которые состоят из элементов массива с индексом [b,c].

    Блок-схема алгоритма решения задачи:

    Команда read(n) cчитывает и присваивает значение (количество элементов в массиве) в переменную n из входного файла input.txt. Далее, формируется массив из n чисел, которые считываются из второй строки входного файла:

    for i:=1 to n do
    begin
      read(mas[i]);
    end;

    Для формирования подмассива, считываются числа b и c:
    read(b);
    read(c); 

    Затем, в выходной файл output.txt, выводятся в строке элементы массива с индексом [b,c]:

    for j:=b to c do
    begin
       write(mas[j],' ');
    end;

    Вывести подмассив в отдельной строке:
    writeln;
    Количество подмассивов – m.

    Код программы на языке Pascal:

    Program massiv3;
    var n,m,i,c,b,j:integer;
    mas: array [1..1000] of longint;
    begin
     assign(input, 'input.txt');
     reset(input);
     assign(output, 'output.txt');
     rewrite(output);
     read(n);
     for i:=1 to n do
     begin
      read(mas[i]);
     end;
     read(m);
       for i:=1 to m do
       begin
       read(b);
       read(c);
        for j:=b to c do
        begin
        write(mas[j],' ');
        end;
        writeln;
       end;
    end.

Для ответа в этой теме необходимо авторизоваться.