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
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) В чем сходны и различны дек, стек и двунаправленный список?');
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
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