LoveRead.info » Книги » Разная литература » Интернет-журнал "Домашняя лаборатория", 2007 №9 - Журнал «Домашняя лаборатория»

Интернет-журнал "Домашняя лаборатория", 2007 №9 - Журнал «Домашняя лаборатория»

Книгу Интернет-журнал "Домашняя лаборатория", 2007 №9 - Журнал «Домашняя лаборатория» читаем онлайн бесплатно полную версию! Чтобы начать читать не надо регистрации. Напомним, что читать онлайн вы можете не только на компьютере, но и на андроид (Android), iPhone и iPad. Приятного чтения!

300 0 18:01, 17-10-2023

Книга Интернет-журнал "Домашняя лаборатория", 2007 №9 - Журнал «Домашняя лаборатория» читать онлайн бесплатно без регистрации

Большой и увлекательный, научно-прикладной, образовательный, некоммерческий интернет-журнал, созданный группой энтузиастов. Журнал содержит материалы, найденные в Интернет или написанные для Интернет. Основная тематика статей — то, что можно сделать самому, от садовых поделок до сверхпроводников, но есть и просто полезные материалы.

    1 ... 398 399 400 401 402 403 404 405 406 ... 415
    Перейти на страницу:

       /// курсором. Элементами списка являются объекты

       /// TwoLinkable, хранящие, помимо указателей на двух

       /// преемников, объекты типа G.Курсор будет определять

       /// текущий (активный) элемент списка. Класс будет

       /// определять симметричные операции по отношению к курсору.

       /// Конструкторы:

       /// Конструктор без параметров будет создавать пустой список

       /// Запросы:

       /// empty: require: true; возвращает true для пустого списка

       /// item: require: not empty(); возвращает активный элемент типа G;

       /// require: true; возвращает число элементов списка;

       /// count: count in[0,n] (count == 0) eqviv empty ();

       /// index: require: not empty(); возвращает индекс активного элемента.

       /// search_res: require: true; возвращает true, если последний поиск был успешным.

       /// Команды:

       /// put_left(elem): require: true;

       /// ensure: добавить новый элемент (elem) слева от курсора;

       /// put_right(elem): require: true;

       /// ensure: добавить новый элемент (elem) справа от курсора;

       /// remove: require: not empty();

       /// ensure: удалить активный элемент;

       /// особо обрабатывается удаление последнего и единственного элементов

       /// операции с курсором:

       /// start: require: true;

       /// ensure: сделать активным первый элемент;

       /// finish: require: true;

       /// ensure: сделать активным последний элемент;

       /// go_prev: require: not (index = 1);

       /// ensure: сделать активным предыдущий элемент;

       /// go_next: require: not (index = count);

       /// ensure: сделать активным последующий элемент;

       /// go_i(i): require: (i in [1, count]);

       /// ensure: сделать активным элемент с индексом i;

       /// операции поиска:

       /// search_prev(elem): require: not (index = 1);

       /// ensure: сделать активным первый элемент elem слева от курсора;

       /// Успех или неуспех поиска сохранять в булевской переменной search_res

       /// search_next: require: not (index = count);

       /// ensure: сделать активным первый элемент elem справа от курсора;

       /// успех или неуспех поиска сохранять в булевской переменной search_res

       /// </summary>

       public class TwoWayList

       {

          public TwoWayList()

          {

              first = cursor = last = null;

              count = index = 0;

              search_res = false;

          }//конструктор

          /// <summary>

          /// first, cursor, last — ссылки на первый,

          /// активный и последний элементы списка

          /// Запросы count, index search_res также

          /// реализуются атрибутами.

          /// Запросы empty, item реализуются функциями

          /// </summary>

          protected TwoLinkable first, cursor, last;

          protected int count, index;

          protected bool search_res;

          //доступ на чтение к закрытым свойствам;

          public int Count

          {

              get

              {

                  return(count);

              }

          }

          public int Index

          {

               get

               {

                  return(index);

               }

          }

          public bool Search_res

          {

               get

               {

                   return(search_res);

               }

          }

          /// <summary>

          /// require: true; возвращает true для непустого списка

          /// </summary>

          /// <returns></returns>

          public bool empty()

          {

              return(first == null);

          }//empty

          /// <summary>

          /// require: not empty(); возвращает активный

          /// элемент типа G;

          /// </summary>

          /// <returns></returns>

          public Figure item()

          {

               return(cursor.Item);

          }//item

          /// <summary>

          /// require: true;

          /// ensure: добавить новый элемент (elem) слева

          /// от курсора;

          /// </summary>

          /// <param name="еlеm">Тип Figure играет роль родового типа G

          /// хранимого элемента elem</param>

          public void put_left(Figure elem)

          {

               TwoLinkable newitem = new TwoLinkable();

               newitem.Item = elem;

               newitem.Next = cursor;

               if (empty()) //список пуст

               {

                   first = cursor = last = newitem;

                   index =1; count = 1;

               }

               else

               {

                   if (index == 1)

                        first =newitem;

                   else

                        cursor.Prev.Next = newitem;

                   newitem.Prev = cursor.Prev; cursor.Prev = newitem;

                   count++; index++;

                }

          }//put_right

          /// <summary>

          /// require: true;

          /// ensure: добавить новый элемент (elem) справа от курсора;

          /// </summary>

          /// <param name="еlеm">Тип Figure играет роль родового типа G

          /// хранимого элемента elem</param>

          public void put_right(Figure elem)

          {

               TwoLinkable newitem = new TwoLinkable();

                newitem.Item = elem;

                newitem.Prev = cursor;

                if (empty()) //список пуст

                {

                     first = cursor = last = newitem;

                     index =1; count = 1;

                }

                else

                {

                     if (index == count)

                         last =newitem;

                      else

                         cursor.Next.Prev = newitem;

                         newitem.Next = cursor.Next; cursor.Next = newitem;

                         count++;

                }

          }//put_right

          public void remove()

          {

                if (count == 1)

                {

                      first = last = cursor = null;

                      index=0;

                }

                else if(index==l)

                {

                      first = cursor.Next;

                      cursor.Prev = null;

                      cursor = cursor.Next;

                }

                else if(index == count)

                {

                      last = cursor.Prev;

                      cursor.Next = null;

                      cursor = cursor.Prev;

                      index--;

                }

                else

                {

                      cursor.Prev.Next = cursor.Next;

                      cursor.Next.Prev = cursor.Prev;

                      cursor = cursor.Next;

                }

                count--;

           }//remove

           /// операции с курсором:

           /// <summary>

           /// start:

    1 ... 398 399 400 401 402 403 404 405 406 ... 415
    Перейти на страницу:
    1. Жалоба
    Отзывы - 0

    Прочитали книгу? Предлагаем вам поделится своим отзывом от прочитанного(прослушанного)! Ваш отзыв будет полезен читателям, которые еще только собираются познакомиться с произведением.


    Уважаемые читатели, слушатели и просто посетители нашей библиотеки! Просим Вас придерживаться определенных правил при комментировании литературных произведений.

    • 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
    • 2. Просьба отказаться от оскорблений, угроз и запугиваний.
    • 3. Просьба отказаться от нецензурной лексики.
    • 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.

    Надеемся на Ваше понимание и благоразумие. С уважением, администратор LoveRead.info.


    Установить VPN и читай слушай бесплатно

    Новые отзывы

    1. Валентина Валентина04 июль 13:25 Большое спасибо за интересную тему.  Сюжет заманчиввй,интересный. Жду продолжения ... Лекарь Фамильяров. Том 7 - Александр Лиманский
    2. Наталья По Наталья По01 июль 10:12 Ужасный перевод:(... Аркадия - Эрин Дум
    3. Вика Вика29 июнь 21:56 Какая хрень с первых строк.  У ребенка в 14 месяце не может быть черепно мозговой травмы при падании с дивана ... Вернуть семью любой ценой - Чарли Ви
    Все комметарии
    Новинки бесплатной онлайн библиотеки