Рефераты. Линейные списки. Стек. Дек. Очередь p> 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 " служат для перемещения курсора по списку.');
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. Нажмите кнопку "Обновить" для формирования списков.');
Memo1.Lines.Add(' Кнопки ">" служат для перемещения курсора в деке.');
Memo1.Lines.Add(' а) Переместитесь влево на 2 элемента;');
Memo1.Lines.Add(' б Переместитесь вправо на 4 элемента;');
Memo1.Lines.Add(' Кнопка "Добавить" служит для добавления элемента в дек.');
Memo1.Lines.Add(' а) Добавьте 1, 3 элементом число 11;');
Memo1.Lines.Add(' б) Добавьте 5, 6 элементом число 88;');
Memo1.Lines.Add(' Кнопка "Удалить" служит для удаления элемента из дека.');
Memo1.Lines.Add(' а) Удалите 2, 4 элементы;');
Memo1.Lines.Add(' б) Добавте 6, 7 элементы;');
Memo1.Lines.Add('');
Memo1.Lines.Add('3. На листе формата А4, опишите ход проделанной работы.');
Memo1.Lines.Add(' Ответьте на поставленные вопросы:');
Memo1.Lines.Add(' 1) Как удаляется и добавляется элементы в дек?');
Memo1.Lines.Add(' 2) В чем сходны и различны дек, стек и двунаправленный список?');

end;

procedure TForm1.N71Click(Sender: TObject); begin
Memo1.Clear;
Memo1.Lines.Add(' Лабораторная работа №7.');
Memo1.Lines.Add(' "Тест"');

Memo1.Lines.Add('___________________________________________________________
___');
Memo1.Lines.Add('1. Повторите весь теоретический материал.');
Memo1.Lines.Add('');
Memo1.Lines.Add('2. Поработайте с демонстрационной программой.');
Memo1.Lines.Add('');
Memo1.Lines.Add('3. Запустите тест (сервистест или Ctrl + T).');
Memo1.Lines.Add(' Ответьте на поставленные вопросы теста.');
Memo1.Lines.Add('');
Memo1.Lines.Add('4. Результаты теста сообщить преподавателю.'); end;

procedure TForm1.N9Click(Sender: TObject); begin
Form18.Show; end;

end.

unit Unit2; //Формирование списков

interface

uses SysUtils, Windows, Dialogs;

type

List = ^Spisok; //Однонаправленный
Spisok = record

Info: Integer;

Next: List; end;

ListTwo = ^SpisokTwo; //Двунаправленный
SpisokTwo = record

Info: Integer;

Next: ListTwo;

Prev: ListTwo; end;

procedure CreateLists; procedure AddToList(X: Integer; var PointerEndList: List); procedure AddToListAfterPos(X: Integer; Position: Integer); procedure DeleteFromList(Position: Integer); procedure AddToListTwo(X: Integer; var PointerEndListTwo: ListTwo); procedure AddToListTwoAfterPos(X: Integer; Position: Integer); procedure DeleteFromListTwo(Position: Integer); procedure AddToQueue(X: Integer; var PointerEndQueue: List); procedure AddToEndQueue(X: Integer); function GetQueue(var PointerBegin: List): Integer; procedure AddToStack(X: Integer; var PointerStack: List); function GetStack(var PointerStack: List): Integer; procedure AddToDeck(X: Integer; var PointerDeckBegin, PointerDeckEnd: ListTwo; Flag: Integer); function GetDeckBegin(var PointerDeckBegin: ListTwo): Integer; function GetDeckEnd(var PointerDeckEnd: ListTwo): Integer; procedure DestroyList(PointerBegin: List); procedure DestroyListTwo(PointerBegin: ListTwo); procedure AddToRoundList(X: Integer; var PointerRoundList: List); procedure DeleteFromRoundList(Position: Integer); procedure DestroyRoundList(var PointerRoundList: List);

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



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.