RU/2: Forum. Discussion for users and developer OS/2 (eCS). : Разминка


Message list | Post new message | Reply to current | Home Search:
Previous message | Next message
From : Improver
To : Aleksey Tarasow
Subj : Разминка

> Первая задача с меня.
> Есть массив текстовых строк любой длины, с известным заранее числом элементов. Вначале он пустой, но постепенно заполняется. Когда заполняться все элементы массива, нужно что бы первый элемент удалялся, весь массив смещался, а новая строка добавлялась в конец массива.
> Я решал данную задачу на Rexx, двумя способами. Но Валентин Кузнецов предложил третий, который мне показался интереснее моих. Поэтому лично мне было бы интереснее увидеть решение данной задачи на Rexx. Хотя вы вправе выбрать любой другой язык программирования.
>
Такой вариант решения был?
1. Проиндексировать массив, получаем N индексов.
2. Вводим переменную P, в которую будем заносить индекс текущей позиции, в начале P=N.
3. При записи новой стоки делаем P=P-1 (если P = 0, то P = N), а потом пишем в позицию P.
4. В задаче не указано, как будет производится чтение, с удалением строк или без, но читаем так: сначала строки с P до N, а потом с 1 до P-1. Если читать надо с удалением, то тогда корректируем P на число прочитанных строк.

Tue 30 Aug 2016 20:42 Mozilla/5.0 (OS/2; Warp 4.5; rv:31.0) Gecko/20100101 Firefox




Programmed by Dmitri Maximovich, Dmitry I. Platonoff, Eugen Kuleshov.
25.09.99 (c) 1999, RU/2. All rights reserved.
Rewritten by Dmitry Ban. All rights ignored.