скачать рефераты
  RSS    

Меню

Быстрый поиск

скачать рефераты

скачать рефератыРеферат: Линейные списки. Стек. Дек. Очередь

      Inc(StackPos);

      s := Edit4.Text;

      for i := 1 to StackPos - 1 do

        if s[i] <> ' ' then s[i] := ' ';

      Edit4.Text := s;

    end

  else

    begin

      ShowMessage('Стек пуст');

      Edit4.Text := '';

      Image4.Hide;

      Button14.Enabled := False;

      Button15.Enabled := False;

      Button16.Enabled := False;

      StatusBar1.Panels[1].Text := 'Стек пуст';

    end;

  Image4.Left := Round(StackPos * 7);

end;

procedure TForm1.Button20Click(Sender: TObject);

var

  i: Integer;

  s: string;

begin

  StatusBar1.Panels[0].Text := '';

  GetDeckBegin(DeckBegin);

  if DeckBegin <> nil then

    begin

      while Edit5.Text[DeckBeginPos] <> ' ' do Inc(DeckBeginPos);

      Inc(DeckBeginPos);

      s := Edit5.Text;

      for i := 1 to DeckBeginPos - 1 do

        if s[i] <> ' ' then s[i] := ' ';

      Edit5.Text := s;

    end;

  if (DeckBegin = nil) and (DeckBegin = DeckEnd) then

    begin

      ShowMessage('Дек пуст');

      Edit5.Text := '';

      Image5.Hide;

      Image6.Hide;

      Button18.Enabled := False;

      Button19.Enabled := False;

      Button20.Enabled := False;

      StatusBar1.Panels[1].Text := 'Дек пуст';

    end;

  Image5.Left := Round(DeckBeginPos * 7);

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

  Windows.SetFocus(Button21.Handle);

end;

procedure TForm1.Button19Click(Sender: TObject);

var

  i, a: Integer;

  s: string;

begin

  StatusBar1.Panels[0].Text := '';

  GetDeckEnd(DeckEnd);

  if DeckEnd <> nil then

    begin

      while Edit5.Text[DeckEndPos] <> ' ' do Dec(DeckEndPos);

      Dec(DeckEndPos);

      s := Edit5.Text;

      for i := DeckEndPosition downto DeckEndPos + 1 do

        if s[i] <> ' ' then s[i] := ' ';

      Edit5.Text := s;

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

      s := '';

      i := Length(Edit5.Text) - 1;

      while Edit5.Text[i] = ' ' do Dec(i);

      for a := 1 to i do s := s + Edit5.Text[a];

      Edit5.Text := s;

    end;

  if (DeckEnd = nil) and (DeckBegin = DeckEnd) then

    begin

      ShowMessage('Дек пуст');

      Edit5.Text := '';

      Image5.Hide;

      Image6.Hide;

      Button19.Enabled := False;

      Button20.Enabled := False;

      StatusBar1.Panels[1].Text := 'Дек пуст';

    end;

  Image6.Left := Round(DeckEndPos * 7 - 9);

end;

procedure TForm1.Button5Click(Sender: TObject);

begin

  Form5.Show;

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

  DeleteFromList(ListPos);

  DoNewEditList;

end;

procedure TForm1.Button6Click(Sender: TObject);

begin

  DeleteFromListTwo(ListTwoPos);

  DoNewEditListTwo;

end;

procedure TForm1.Button10Click(Sender: TObject);

var

  i, a: Integer;

  s1, s2: string;

begin

  GetQueue(QueueBegin);

  if QueueBegin <> nil then

    begin

      i := QueuePos;

      while (Edit3.Text[i] <> ' ') and (i <= Length(Edit3.Text)) do Inc(i);

      Inc(i);

      s1 := '';

      s2 := '';

      for a := 1 to QueuePos - 1 do s1 := s1 + Edit3.Text[a];

      for a := i to Length(Edit3.Text) do s2 := s2 + Edit3.Text[a];

      Edit3.Text := s1 + s2;

    end;

end;

procedure TForm1.Button9Click(Sender: TObject);

begin

  Form4.Show;

end;

procedure TForm1.Button14Click(Sender: TObject);

var

  i, a: Integer;

  s1, s2: string;

begin

  GetStack(Stack);

  i := StackPos;

  while (Edit4.Text[i] <> ' ') and (i <= Length(Edit4.Text)) do Inc(i);

  Inc(i);

  s1 := '';

  s2 := '';

  for a := 1 to StackPos - 1 do s1 := s1 + Edit4.Text[a];

  for a := i to Length(Edit4.Text) do s2 := s2 + Edit4.Text[a];

  Edit4.Text := s1 + s2;

end;

procedure TForm1.Button13Click(Sender: TObject);

begin

  Form6.Show;

end;

procedure TForm1.Button17Click(Sender: TObject);

begin

  Form7.Show;

end;

procedure TForm1.Button18Click(Sender: TObject);

begin

  Form8.Show;

end;

procedure TForm1.Button26Click(Sender: TObject);

begin

  StatusBar1.Panels[0].Text := 'Нельзя !!!';

  Memo1.Lines.Add('В цикл. списке нельзя перемещаться назад, т.к. по сути цикл. список это однонаправ. список и следовательно связь существует только в одну сторону;');

end;

procedure TForm1.Button25Click(Sender: TObject);

var

  qRoundList: List;

  i, j: Integer;

  Count: Integer;

begin

  StatusBar1.Panels[0].Text := '';

  qRoundList := RoundList^.Next;

  // Подсчет кол-ва елементов в списке

  Count := 1;

  while qRoundList <> RoundList do

    begin

      Inc(Count);

      qRoundList := qRoundList^.Next;

    end;

  qRoundList := RoundList;

  i := 0;

  while i <> RoundListPos do

    begin

      qRoundList := qRoundList^.Next;

      Inc(i);

    end;

  if qRoundList <> nil then

    begin

      if qRoundList^.Next <> nil then Inc(RoundListPos);

      if RoundListPos > Count - 1 then RoundListPos := 0;

      i := 0;

      j := 0;

      while i < RoundListPos do

        begin

          Inc(j);

          if Edit7.Text[j] = ' ' then Inc(i);

        end;

      if RoundListPos = 0 then j := -1;

      Image7.Left := Round(9 + (j + 1) * 7.5);

    end;

end;

procedure TForm1.Button23Click(Sender: TObject);

begin

  Form9.Show;

end;

procedure TForm1.Button24Click(Sender: TObject);

begin

  if RoundList <> nil then

    begin

      DeleteFromRoundList(RoundListPos);

      if RoundList <> nil then DoNewEditRoundList;

    end

  else

    begin

      Edit7.Text := '';

      ShowMessage('Циклический список пуст');

      Button24.Enabled := False;

      Button25.Enabled := False;

      Button26.Enabled := False;

      Image7.Hide;

    end;

end;

procedure TForm1.N2Click(Sender: TObject);

begin

  Close;

end;

procedure TForm1.N5Click(Sender: TObject);

begin

  AboutBox.Visible := True;

end;

procedure TForm1.N4Click(Sender: TObject);

begin

  Form10.Visible := True;

end;

procedure TForm1.Button27Click(Sender: TObject);

begin

  Form11.Show;

end;

procedure TForm1.Button30Click(Sender: TObject);

begin

  Form12.Show;

end;

procedure TForm1.Button29Click(Sender: TObject);

begin

  Form13.Show;

end;

procedure TForm1.Button31Click(Sender: TObject);

begin

  Form14.Show;

end;

procedure TForm1.Button32Click(Sender: TObject);

begin

  Form15.Show;

end;

procedure TForm1.N8Click(Sender: TObject);

begin

  Form1.Hide;

  Form16.Show;

  N8.Enabled := False;

end;

procedure TForm1.N11Click(Sender: TObject);

begin

  Memo1.Clear;

  Memo1.Lines.Add('                      Лабораторная работа №1.');

  Memo1.Lines.Add('                               "Списки"');

  Memo1.Lines.Add('______________________________________________________________');

  Memo1.Lines.Add('1. Нажмите кнопку "Теория" для получения информации о списках.');

  Memo1.Lines.Add('   Внимательно изучите теоретический материал.');

  Memo1.Lines.Add('');

  Memo1.Lines.Add('2. На листе формата А4, опишите ход проделанной работы.');

  Memo1.Lines.Add('   Ответьте на поставленные вопросы.');

  Memo1.Lines.Add('   1) Что такое линейный список?');

  Memo1.Lines.Add('   2) Какие операции можно выполнить с линейным списком?');

  Memo1.Lines.Add('   3) Какие существую еще списки?');

  Memo1.Lines.Add('   4) Что представляет из себя связанное распределение?');

  Memo1.Lines.Add('   5) Чем отличается связанное распределение от последовательного?');

  Memo1.Lines.Add('   6) Что такое динамические переменные? Функции new и nil.');

end;

procedure TForm1.Button33Click(Sender: TObject);

begin

  Form17.Show;

end;

procedure TForm1.N21Click(Sender: TObject);

begin

  Memo1.Clear;

  Memo1.Lines.Add('                      Лабораторная работа №2.');

  Memo1.Lines.Add('       "Однонаправленный и двунаправленный список"');

  Memo1.Lines.Add('______________________________________________________________');

  Memo1.Lines.Add('1. Нажмите кнопку "Теория" для однонаправленного и ');

  Memo1.Lines.Add('   двунаправленного списка.');

  Memo1.Lines.Add('   Внимательно изучите теоретический материал.');

  Memo1.Lines.Add('');

  Memo1.Lines.Add('2. Нажмите кнопку "Обновить" для формирования списков.');

  Memo1.Lines.Add('   Кнопки "<< и >>" служат для перемещения курсора по списку.');

  Memo1.Lines.Add('   а) Переместитесь влево до 3, 5 и последнего элемента;');

  Memo1.Lines.Add('   б) Переместитесь вправо до первого элемента (см. коментарии);');

  Memo1.Lines.Add('   Кнопка "Добавить" служит для добавления элемента в список.');

  Memo1.Lines.Add('   а) Добавьте после 3, 5, 7 элемента цифру 33 в обоих списках;');

  Memo1.Lines.Add('   б) Добавте 1-м и 3-м  элементом цифру 55 в двунаправленном списке;');

  Memo1.Lines.Add('   Кнопка "Удалить" служит для удаления элемента из списка.');

  Memo1.Lines.Add('   а) Удалите 3, 5, 7 элементы в однонаправленном списке;');

  Memo1.Lines.Add('   б) Удалите последний, 1 и 3 элементы в двунаправленном;');

  Memo1.Lines.Add('');

  Memo1.Lines.Add('3. На листе формата А4, опишите ход проделанной работы.');

  Memo1.Lines.Add('   Ответьте на поставленные вопросы:');

  Memo1.Lines.Add('   1) Обратите внимание как перемещается курсор?');

  Memo1.Lines.Add('   2) Чем отличается однонаправленный и двунаправленный списки?');

  Memo1.Lines.Add('   3) Можно ли добавить элемент в любое место списка?');

  Memo1.Lines.Add('   4) Можно ли удалить любой элемент из списка?');

end;

procedure TForm1.N31Click(Sender: TObject);

begin

  Memo1.Clear;

  Memo1.Lines.Add('                      Лабораторная работа №3.');

  Memo1.Lines.Add('                      "Циклический список"');

  Memo1.Lines.Add('______________________________________________________________');

  Memo1.Lines.Add('1. Нажмите кнопку "Теория" для циклического списка?');

  Memo1.Lines.Add('   Внимательно изучите теоретический материал.');

  Memo1.Lines.Add('');

  Memo1.Lines.Add('2. Нажмите кнопку "Обновить" для формирования списков.');

  Memo1.Lines.Add('   Кнопки "<< и >>" служат для перемещения курсора по списку.');

  Memo1.Lines.Add('   а) Переместитесь вправо до 3, 5, последнего, первого элемента;');

  Memo1.Lines.Add('   б) Переместитесь влево (см. коментарии);');

  Memo1.Lines.Add('   Кнопка "Добавить" служит для добавления элемента в список.');

  Memo1.Lines.Add('   а) Добавьте 3, 5, 1-м элементами число 44;');

  Memo1.Lines.Add('   б) Добавьте после 2, 4, 1-го элемента число 0;');

  Memo1.Lines.Add('   Кнопка "Удалить" служит для удаления элемента из списка.');

  Memo1.Lines.Add('      Удалите 3, 5, 1, 4  элементы;');

  Memo1.Lines.Add('');

  Memo1.Lines.Add('3. На листе формата А4, опишите ход проделанной работы.');

  Memo1.Lines.Add('   Ответьте на поставленные вопросы:');

  Memo1.Lines.Add('   1) Обратите внимание как перемещается курсор?');

  Memo1.Lines.Add('   2) Какую ссылку имеет последний элемент циклического списка?');

  Memo1.Lines.Add('   3) Что называется головой и хвостом списка?');

end;

procedure TForm1.N41Click(Sender: TObject);

begin

  Memo1.Clear;

  Memo1.Lines.Add('                      Лабораторная работа №4.');

  Memo1.Lines.Add('                             "Очередь"');

  Memo1.Lines.Add('______________________________________________________________');

  Memo1.Lines.Add('1. Нажмите кнопку "Теория" для очереди.');

  Memo1.Lines.Add('   Внимательно изучите теоретический материал.');

  Memo1.Lines.Add('');

  Memo1.Lines.Add('2. Нажмите кнопку "Обновить" для формирования списков.');

  Memo1.Lines.Add('   Кнопки "<< и >>" служат для перемещения курсора по очереди.');

  Memo1.Lines.Add('   а) Переместитесь вправо до 3 элемента;');

  Memo1.Lines.Add('   б) Переместитесь влево (см. коментарии);');

  Memo1.Lines.Add('   Кнопка "Добавить" служит для добавления элемента в очередь.');

  Memo1.Lines.Add('   а) Добавьте 1, 4, 5-м элементами число 99;');

  Memo1.Lines.Add('   б) Добавьте последним число 999;');

  Memo1.Lines.Add('   Кнопка "Удалить" служит для удаления элемента из очереди.');

  Memo1.Lines.Add('      Удалите 1, 2, 3 элементы;');

  Memo1.Lines.Add('');

  Memo1.Lines.Add('3. На листе формата А4, опишите ход проделанной работы.');

  Memo1.Lines.Add('   Ответьте на поставленные вопросы:');

  Memo1.Lines.Add('   1) Как удаляется и добавляется элементы в очереди?');

  Memo1.Lines.Add('   2) В чем различие и сходство очереди и однонаправленного списка?');

  Memo1.Lines.Add('   3) Что называется головой и хвостом очереди?');

  Memo1.Lines.Add('   4) Как располагаются элементы в очереди?');

end;

procedure TForm1.N51Click(Sender: TObject);

begin

  Memo1.Clear;

  Memo1.Lines.Add('                      Лабораторная работа №5.');

  Memo1.Lines.Add('                               "Стек"');

  Memo1.Lines.Add('______________________________________________________________');

  Memo1.Lines.Add('1. Нажмите кнопку "Теория" для стека.');

  Memo1.Lines.Add('   Внимательно изучите теоретический материал.');

  Memo1.Lines.Add('');

  Memo1.Lines.Add('2. Нажмите кнопку "Обновить" для формирования списков.');

  Memo1.Lines.Add('   Кнопки "<< и >>" служат для перемещения курсора в стеке.');

  Memo1.Lines.Add('   а) Переместитесь вправо до 4 элемента;');

  Memo1.Lines.Add('   б) Переместитесь влево (см. коментарии);');

  Memo1.Lines.Add('   Кнопка "Добавить" служит для добавления элемента в стек.');

  Memo1.Lines.Add('      Добавьте 1, 3, 5 элементами число 22;');

  Memo1.Lines.Add('   Кнопка "Удалить" служит для удаления элемента из стека.');

  Memo1.Lines.Add('       Удалите 1, 3, 5, последний элементы;');

  Memo1.Lines.Add('3. На листе формата А4, опишите ход проделанной работы.');

  Memo1.Lines.Add('   Ответьте на поставленные вопросы:');

  Memo1.Lines.Add('   1) Как удаляется и добавляется элементы в стек?');

  Memo1.Lines.Add('   2) Приведи примеры стека на практике?');

end;

procedure TForm1.N61Click(Sender: TObject);

begin

  Memo1.Clear;

  Memo1.Lines.Add('                      Лабораторная работа №6.');

  Memo1.Lines.Add('                               "Дек"');

  Memo1.Lines.Add('______________________________________________________________');

  Memo1.Lines.Add('1. Нажмите кнопку "Теория" для дека.');

  Memo1.Lines.Add('   Внимательно изучите теоретический материал.');

  Memo1.Lines.Add('');

  Memo1.Lines.Add('2. Нажмите кнопку "Обновить" для формирования списков.');

Страницы: 1, 2, 3, 4, 5, 6, 7


Новости

Быстрый поиск

Группа вКонтакте: новости

Пока нет

Новости в Twitter и Facebook

  скачать рефераты              скачать рефераты

Новости

скачать рефераты

© 2010.