русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Задания для самостоятельного выполнения


Дата добавления: 2015-07-09; просмотров: 671; Нарушение авторских прав


ИНСТРУКЦИОННАЯ КАРТА № 33

На выполнение практического занятия по дисциплине

Учебная практика «Программирование»

для студентов специальности 5.05010201 «Обслуживание компьютерных систем и сетей»

Тема: Текстовые компоненты и списки в Delphi

 

Цель:освоить методику создания приложений, в которых используются текстовые компоненты и списки в Delphi.

Норма времени:2 часа.

После выполненных работ студент должен

знать:структуру динамических связных списков;

уметь:создавать простые приложения с использованием списков.

Оснащение рабочего места:инструкционные карты, конспект, ПК, среда Delphi.

 

Вводный инструктаж.. 1

Списки. 1

Пример программы.. 2

Задания для самостоятельного выполнения. 5

Контрольные вопросы.. 5

Дополнительные задания. 7

Вводный инструктаж

Списки

Указатели и динамические переменные позволяют создавать сложные динамические структуры данных, такие как списки и деревья.

Список можно изобразить графически (рис. 1).

Рис. 1. Графическое изображение списка

 

Каждый элемент списка (узел) представляет собой запись, состоящую из двух частей. Первая часть — информационная. Вторая часть отвечает за связь со следующим и, возможно, с предыдущим элементом списка. Список, в котором обеспечивается связь только со следующим элементом, называется односвязным.

Для того чтобы программа могла использовать список, надо определить тип компонентов списка и переменную-указатель на первый элемент списка. Ниже приведен пример объявления компонента списка студентов:

type

TPStudent = ^TStudent; // указатель на переменную типа TStudent

// описание типа элемента списка

TStudent = record

surname: string[20]; // фамилия

name: string[20];' // имя

group: integer; // номергруппы



address: string[60]; // домашнийадрес

next: TPStudent; // указатель на следующий элемент списка

end;

var

head: TPStudent; // указатель на первый элемент списка

Добавлять данные можно в начало, в конец или в нужное место списка. Во всех этих случаях необходимо корректировать указатели. На рис. 2 изображен процесс добавления элементов в начало списка.

После добавления второго элемента в список head указывает на этот элемент.

Рис. 2. Добавление элементов в список

Пример программы

Следующая программа (ее текст приведен ниже) формирует список студентов, добавляя фамилии в начало списка. Данные вводятся в поля редактирования диалогового окна программы (рис. 3) и добавляются в список нажатием кнопкиДобавить(Button1).

 

Рис. 3. Окно программы Динамический список 1

 

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics,

Controls, Forms, Dialogs, StdCtrls;

type

TForm1 = class(TForm)

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Edit1: TEdit;

Edit2: TEdit;

Button1: TButton;

Button2: TButton;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

 

implementation

{$R *.dfm}

type

TPStudent=^TStudent; // указательнатип TStudent

TStudent = record

f_name:string[20]; // фамилия

l_name: string[20]; // имя

next: TPStudent; // следующийэлементсписка

end;

 

var

head: TPStudent; // начало (голова) списка

 

procedure TForm1.Button1Click(Sender: TObject);

// добавить элемент в начало списка

var

curr: TPStudent; // новый элемент списка

begin

new(curr); // выделить память для элемента списка

curr^.f_name := Edit1.Text;

curr^.l_name := Edit2.Text;

// добавление в начало списка

curr^.next := head; head := curr;

// очистить поля ввода

Edit1.text:=''; Edit2.text:= '' ;

end;

 

procedure TForm1.Button2Click(Sender: TObject);

// вывести список

var

curr: TPStudent; // текущий элемент списка

n:integer; // длина (кол-во элементов) списка

st:string; // строковое представление списка

begin

n := 0; st := '';

curr := head; // указатель на первый элемент списка

while curr <> NIL do begin

n := n + 1;

st := st + curr^.f_name + ' ' + curr^.l_name

+#13; curr := curr^.next;

// указатель на следующий элемент end;

end;

if n <> 0 then

ShowMessage('Список:' + #13 + st)

else

ShowMessage('В списке нет элементов.');

end;

 

end.

Добавление элемента в список выполняет процедура TForm1.Button1Click, которая создает динамическую переменную-запись, присваивает ее полям значения, соответствующие содержимому полей ввода диалогового окна, и корректирует значение указателя head.

Вывод списка выполняет процедура TForm1.Button2Click, которая запускается нажатием кнопкиПоказать.Для доступа к элементам списка используется указатель curr. Сначала он содержит адрес первого элемента списка. После того как первый элемент списка будет обработан, указателю curr присваивается значение поля next той записи, на которую указывает curr. В результате этого переменная curr содержит адрес второго элемента списка. Таким образом, указатель перемещается по списку. Процесс повторяется до тех пор, пока значение поля next текущего элемента списка (элемента, адрес которого содержит переменная curr) не окажется равно NIL.

Задания для самостоятельного выполнения

Создать программу с компонентами, согласно варианту, заданному преподавателем

Контрольные вопросы

  1. Для чего используются компоненты Label, SpinEdit, Button и StringGrid
  2. Что такое статические структуры?
  3. Для чего применяются динамические структуры?
  4. Какие переменные называются указателями?
  5. Динамической переменной называется переменная…
  6. Для освобождения памяти, занимаемой динамической переменной, используется процедура…
  7. Какие сложные динамические структуры данных позволяют создавать указатели и динамические переменные?
  8. Какой список называется односвязным?

 

Рассмотрено и одобрено на заседании цикловой комиссии общетехнических и специальных дисциплин

Протокол № ___ от «____» _________________ 2013 г.

Председатель цикловой комиссии

 

______________________ А.В. Вильчевский

 


 



<== предыдущая лекция | следующая лекция ==>
Работа с записями в языке Object Pascal в Delphi | Дополнительные задания


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 2.452 сек.