Основы языка Delphi


Массивы


Index1
Глава 5. Массивы Массив — это структура данных, представляющая собой набор переменных одинакового типа, имеющих общее имя. Массивы удобно использовать для хранения однородной по своей природ...
Алгоритм простого перебора
Алгоритм простого перебора Ниже приведен текст программы поиска в массиве целых чисел. Перебор элементов массива осуществляется инструкцией repeat, в теле которой инструкция if сравнивает теку...
Диалоговое окно программы Поиск в массиве
Рисунок 5.9. Диалоговое окно программы Поиск в массиве Щелчок на командной кнопке Поиск (Buttoni) запускает процедуру TForm1.Button1Click (ее текст приведен в листинге 5.7), которая из компон...
Листинг 5 7 Поиск в массиве
Листинг 5.7. Поиск в массиве unit s_found_; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Grids; type TForm1 = class(TForm) Label1...
Метод бинарного поиска
Метод бинарного поиска На практике довольно часто производится поиск в массиве, элементы которого упорядочены по некоторому критерию (такие массивы называются упорядоченными). Например, массив...
Выбор среднего элемента массива при бинарном поиске
Рисунок 5.10. Выбор среднего элемента массива при бинарном поиске...
Алгоритм бинарного поиска в упорядоченном
Рисунок 5.11. Алгоритм бинарного поиска в упорядоченном по возрастанию массиве 2. После того как определена часть массива, в которой может находиться искомый элемент, по формуле (niz-verh) /2+...
Диалоговое окно программы Бинарный поиск в массиве
Рисунок 5.12. Диалоговое окно программы Бинарный поиск в массиве В форме приложения появился новый компонент, который до этого момента в программах не использовался, — флажок (компонент Check...
Таблица 5 5 Свойства компонента CheckBox
Таблица 5.5. Свойства компонента CheckBox Свойство Определяет Name...
Компонент CheckBox
Рисунок 5.13. Компонент CheckBox После того как компонент CheckBox будет добавлен к форме, а добавляется он обычным образом, нужно установить значения его свойств в соответствии с табл. 5.6....
Таблица 5 6 Значения свойств компонента CheckBox1
Таблица 5.6. Значения свойств компонента CheckBox1 Свойство Значение Caption Checked...
Листинг 5 8 Бинарный поиск в массиве
Листинг 5.8. Бинарный поиск в массиве unit b_found_; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Grids; type TForm1 = class(TForm...
Примеры работы программы бинарного поиска в массиве
Рисунок 5.14. Примеры работы программы бинарного поиска в массиве...
Сортировка массива
Сортировка массива Под сортировкой массива подразумевается процесс перестановки элементов массива, целью которого является размещение элементов массива в определенном порядке. Например, если и...
Сортировка методом прямого выбора
Сортировка методом прямого выбора Алгоритм сортировки массива по возрастанию методом прямого выбора может быть представлен так: 1. Просматривая массив от первого элемента, найти минимальный э...
Диалоговое окно программы сортировки массива простым выбором
Рисунок 5.15. Диалоговое окно программы сортировки массива простым выбором Процедура сортировки, текст которой приведен в листинге 5.9, запускается нажатием кнопки Сортировка (Button1). Значе...
Листинг 5 9 Сортировка массива простым выбором
Листинг 5.9. Сортировка массива простым выбором procedure TForm1.ButtonlClick(Sender: TObject); const SIZE=10; var a:array[1..SIZE] of integer; min:integer; { номер минимального элемента...
Диалоговое окно программы Сортировка массива
Рисунок 5.16. Диалоговое окно программы Сортировка массива...
Сортировка методом обмена
Сортировка методом обмена В основе алгоритма лежит обмен соседних элементов массива. Каждый элемент массива, начиная с первого, сравнивается со следующим, и если он больше следующего, то элеме...
Процесс сортировки массива
Рисунок 5.17. Процесс сортировки массива...
Диалоговое окно программы Сортировка методом обмена
Рисунок 5.18. Диалоговое окно программы Сортировка методом обмена На Рисунок 5.18 приведено диалоговое окно программы сортировки массива методом обмена. Процедура сортировки, текст которой пр...
Листинг 5 10 Сортировка массива методом обмена
Листинг 5.10. Сортировка массива методом обмена procedure TForm1.Button1Click(Sender: TObject); const SIZE=5; var a:array[1..SIZE] of integer; k:integer; // текущий элемент массива i:in...
Пример работы программы сортировки массива методом обмена
Рисунок 5.19. Пример работы программы сортировки массива методом обмена На Рисунок 5.19 приведено диалоговое окно программы сортировки массива методом обмена после завершения процесса сортиро...
Многомерные массивы
Многомерные массивы В повседневной жизни довольно часто приходится иметь дело с информацией, которая представлена в табличной форме. Например, результат деятельности некоторой фирмы, торгующей...
Таблица 5 7
Таблица 5.7 Январь Февраль Март ......
Таблица 5 8 Результаты олимпиады 2000 г в Сиднее
Таблица 5.8. Результаты олимпиады 2000 г. в Сиднее Страна Золотых Серебряных...
Диалоговое окно программы Итоги олимпиады
Рисунок 5.20. Диалоговое окно программы Итоги олимпиады Для ввода исходных данных и отображения результата используется компонент StringGrid, свойства которого приведены в табл. 5.9....
Таблица 5 9 Значения свойства компонента StringGrid1
Таблица 5.9. Значения свойства компонента StringGrid1 Свойство Значение Name...
Листинг 5 11 Инициализация таблицы
Листинг 5.11. Инициализация таблицы procedure TForml.FormActivate(Sender: TObject); begin tabl.Cells[0,0] ='Страна'; tabl.Cells[1,0] ='Золотых'; tabl.Cells[2,0] ='Серебряных'; tabl.Cells[3...
Листинг 5 12 Обработка двумерного массива
Листинг 5.12. Обработка двумерного массива procedure TForml.ButtonlClick(Sender: TObject); var c,r:integer; // номер колонки и строки таблицы s:integer; // всего медалей у команды р:intege...
Окно программы Итоги олимпиады
Рисунок 5.21. Окно программы Итоги олимпиады...
Ошибки при использовании массивов
Ошибки при использовании массивов При использовании массивов наиболее распространенной ошибкой является выход значения индексного выражения за допустимые границы, указанные при объявлении масс...
Сообщение об ошибке при обращении
Рисунок 5.22. Сообщение об ошибке при обращении к несуществующему элементу массива (программа запущена из Delphi) Если программа запущена из Windows, то при попытке присвоить значение несущест...
Сообщение об ошибке при обращении
Рисунок 5.23. Сообщение об ошибке при обращении к несуществующему элементу массива (программа запущена из Windows) Поведение программы при выходе индексного выражения за границы диапазона доп...
Вкладка Compiler диалогового окна Project Options
Рисунок 5.24. Вкладка Compiler диалогового окна Project Options...
Объявление массива
Объявление массива Массив, как и любая переменная программы, перед использованием должен быть объявлен в разделе объявления переменных. В общем виде инструкция объявления массива выглядит след...
Операции с массивами
Операции с массивами Типичными операциями при работе с массивами являются: вывод массива; ввод массива; поиск максимального или минимального элемента массива; поиск заданного элемент...
Вывод массива
Вывод массива Под выводом массива понимается вывод на экран монитора (в диалоговое окно) значений элементов массива. Если в программе необходимо вывести значения всех элементов массива, то дл...
Форма и диалоговое окно приложения Вывод массива
Рисунок 5.1. Форма и диалоговое окно приложения Вывод массива...
Листинг 5 1 Инициализация и вывод массива
Листинг 5.1. Инициализация и вывод массива unit outar_; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = clas...
Ввод массива
Ввод массива Под вводом массива понимается процесс получения от пользователя (или из файла) во время работы программы значений элементов массива. "Лобовое" решение задачи ввода эле...
Использование компонента StringGrid
Использование компонента StringGrid Для ввода массива удобно использовать компонент StringGrid. Значок компонента StringGrid находится на вкладке Additional (Рисунок 5.2)....
Компонент StringGrid
Рисунок 5.2. Компонент StringGrid Компонент StringGrid представляет собой таблицу, ячейки которой содержат строки символов. В табл. 5.1 перечислены некоторые свойства компонента StringGrid....
Таблица 5 1 Свойства компонента StringGrid
Таблица 5.1. Свойства компонента StringGrid...
Свойство
Свойство Определяет Name Имя компонента. Используется в программе для доступа к свойствам компонента...
Диалоговое окно программы Ввод и обработка массива
Рисунок 5.3. Диалоговое окно программы Ввод и обработка массива Добавляется компонент stringGrid в форму точно так же, как и другие компоненты. После добавления компонента к форме нужно выполн...
Таблица 5 2 Значения свойств компонента StringGrid1
Таблица 5.2. Значения свойств компонента StringGrid1 Свойство Значение ColCount...
Листинг 5 2 Ввод и обработка массива целых чисел
Листинг 5.2. Ввод и обработка массива целых чисел unit getar_; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids, StdCtrls; type TF...
Листинг 5 3 Процедура обработки события OnKeyPress
Листинг 5.3. Процедура обработки события OnKeyPress procedure TForm1.StringGridlKeyPress(Sender: TObject; var Key: Char); begin case Key of #8,'0'..'9' : ; // цифры и клавиша <Backspac...
Листинг 5 4 Ввод и обработка массива дробных чисел
Листинг 5.4. Ввод и обработка массива дробных чисел unit. getar_1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids, StdCtrls; typ...
Использование компонента Memo
Использование компонента Memo В некоторых случаях для ввода массива можно использовать компонент Memo. Компонент Memo позволяет вводить текст, состоящий из достаточно большого количества строк...
Компонент Memo
Рисунок 5.4. Компонент Memo В табл. 5.3 перечислены некоторые свойства компонента Memo....
Таблица 5 3 Свойства компонента Memo
Таблица 5.3. Свойства компонента Memo Свойство Определяет Name Имя...
Диалоговое окно приложения Ввод массива
Рисунок 5.5. Диалоговое окно приложения Ввод массива...
Листинг 5 5 Ввод массива строк из компонента Memo
Листинг 5.5. Ввод массива строк из компонента Memo unit fr_memo_; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, Menus, StdCtrls; type TForm1 =...
Окно приложения Ввод массива
Рисунок 5.6. Окно приложения Ввод массива...
Массив введенный из Memoполя
Рисунок 5.7. Массив, введенный из Memo-поля...
Поиск минимального (максимального) элемента массива
Поиск минимального (максимального) элемента массива Задачу поиска минимального элемента массива рассмотрим на примере массива целых чисел. Алгоритм поиска минимального (максимального) элемент...
Таблица 5 4 Значения свойств компонента stringGrid1
Таблица 5.4. Значения свойств компонента stringGrid1 Свойство Значение ColCount...
Листинг 5 6 Поиск минимального элемента массива
Листинг 5.6. Поиск минимального элемента массива unit lookmin_; interface Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Grids; type TForm1 = class(T...
Окно приложения Поиск минимального элемента массива
Рисунок 5.8. Окно приложения Поиск минимального элемента массива...
Поиск в массиве заданного элемента
Поиск в массиве заданного элемента При решении многих задач возникает необходимость определить, содержит ли массив определенную информацию или нет. Например, проверить, есть ли в списке студен...








Начало