- •Введение
- •Лабораторная работа №1. Создание простого приложения
- •1 ) Последовательность действий по созданию интерфейса пользователя
- •2) Последовательность действий по программированию щелчка по командным кнопкам (программирование событий):
- •3) Компиляция и выполнение приложения
- •1) Последовательность действий по созданию интерфейса пользователя
- •2) Последовательность действий по программированию событий
- •Задания для самостоятельной работы
- •Контрольные вопросы
- •Лабораторная работа №2. Циклические программы. Многострочное поле memo
- •1) Последовательность действий по созданию интерфейса пользователя
- •2) Последовательность действий по программированию щелчка по командным кнопкам (программирование событий)
- •Задания для самостоятельной работы
- •Контрольные вопросы
- •Лабораторная работа №3. Работа с одномерными массивами
- •1) Последовательность действий по созданию интерфейса пользователя
- •2) Последовательность действий по программированию событий
- •Задания для самостоятельной работы
- •Контрольные вопросы
- •Лабораторная работа № 4. Работа с двумерными массивами
- •Контрольные вопросы
- •Лабораторная работа № 5. Процедуры и функции в delphi
- •Задания для самостоятельной работы
- •Контрольные вопросы
- •Лабораторная работа № 6. Рекурсивные процедуры и функции
- •Контрольные вопросы
- •Лабораторная работа №7. Разработка приложения с несколькими модулями
- •2) Последовательность действий по программированию событий
- •Лабораторная работа №8. Работа со строками
- •1) Последовательность действий по созданию интерфейса пользователя
- •2) Последовательность действий по программированию событий
- •3) Откомпилируйте приложение и проверьте его работу задания для самостоятельной работы
- •Контрольные вопросы
- •Лабораторная работа №9. Создание текстового редактора
- •Задание для самостоятельной работы
- •Контрольные вопросы
- •Лабораторная работа № 10. Методы простой сортировки
- •Задание для самостоятельной работы
- •Контрольные вопросы
- •Лабораторная работа № 11. Поиск данных в массиве
- •Задания для самостоятельной работы
- •Контрольные вопросы
- •Лабораторная работа №12. Работа с файлами
- •Задания для самостоятельной работы
- •Контрольные вопросы
- •Лабораторная работа №13. Работа с типизированными файлами (файлы записей)
- •Задания для самостоятельной работы
- •Контрольные вопросы
- •Лабораторная работа № 14. Динамические структуры данных . Стек и очередь
- •Задания для самостоятельной работы
- •Контрольные вопросы
- •Лабораторная работа № 15. Практическое применение стека и очереди
- •Лабораторная работа №16. Линейные списки
- •Лабораторная работа №17. Работа с бинарными деревьями поиска
- •Задание для самостоятельной работы
- •Лабораторная работа №18. Основы объектно-ориентированного программирования
- •Задание для самостоятельной работы
- •Лабораторная работа №19. Графика в delphi. Компоненты shape и chart
- •Контрольные вопросы
- •Лабораторная работа №20. Графика в delphi. Рисование по пикселам и пером
- •Контрольные вопросы
- •Лабораторная работа № 21. Вычисление суммы ряда
- •Литература
- •Содержание
- •214013 Г. Смоленск, Энергетический проезд, 1
Задания для самостоятельной работы
Измените созданное приложение так, чтобы заполнение массива производилось вручную (с помощью компонентов Memo и Edit).
Ввести массив А(n). Вывести исходный массив на экран, используя компонент ListBox. Найти в массиве числа большие 5, но меньшие 50. Вывести результат на экран, используя компонент ComboBox.
Ввести массив А (n). Вывести исходный массив на экран, используя компонент ComboBox. Вывести на экран нечетные элементы массива, используя компонент ListBox.
Контрольные вопросы
Особенности работы с одномерными массивами в среде Delphi 7.0.
Автоматический ввод компонентов одномерного массива.
Ручной ввод однлмнрного с помощью компонентов Memo и Edit.
Вывод элементов одномерного массива с помощью компонентов Memo, ListBox и ComboBox.
Свойства и методы компонентов ListBox и ComboBox;
Лабораторная работа № 4. Работа с двумерными массивами
ЦЕЛЬ РАБОТЫ:
Освоение работы с двумерными массивами в Delphi, автоматическое заполнение массива и заполнение массива вручную;
Изучение свойств и методов компонента StringGrid;
Освоение работы с компонентом RadioGroup.
Подготовка к работе:
1. Изучить свойства и методы компонентов StringGrid и RadioGroup;
2. Описать возможные методы заполнения двумерных массивов.
Задание 1. Работу с двумерными массивами рассмотрим на следующем примере: Ведите двумерный массив, состоящий из 5 столбцов и 5 строк, и обнулите все элементы массива, лежащие на и выше главной диагонали. Результат работы программы приведен на рисунке 4.1.
Последовательность действий:
Создайте новый проект и перенесите на форму компоненты, перечисленные в таблице 4.1.
Таблица 4.1 Компоненты приложения
Компонент |
Назначение |
Label1 |
Метка «Исходный массив» |
Label2 |
Метка «Результат преобразования массива» |
StringGrid1 |
Компонент «Таблица строк», содержащий исходный массив |
StringGrid2 |
Компонент «Таблица строк», содержащий преобразованный массив |
Button1 |
Кнопка «Заполнить исходный массив» |
Button2 |
Кнопка «Преобразование массива» |
Button3 |
Кнопка «Выход» |
В области глобальных переменных объявите двумерный массив:
a:Array[0..10,0..10] of Integer;
Для компонентов StringGrid1 и StringGrid2 установите следующие свойства в инспекторе объектов:
ColCount – 5 RowCount – 5 FixedCols -0 FixedRows -0
Для события OnClick Кнопки «Выход » напишите следующий программный код:
procedure TForm1.Button3Click(Sender: TObject);
begin
Form1.Close;
end;
Для события OnClick Кнопки «Заполнить исходный массив» напишите следующий программный код:
procedure TForm1.Button1Click(Sender: TObject);
VAR i,j:Integer;
begin
Randomize;
For i:=0 to 4 do
For j:=0 to 4 do
begin
a[i,j]:=-50+random(100);
StringGrid1.Cells[i,j]:=IntToStr(a[i,j]);
end;
end;
Для события OnClick Кнопки «Преобразование массива» напишите следующий программный код:
procedure TForm1.Button2Click(Sender: TObject);
VAR i,j:Integer;
begin
For i:=0 to 4 do
For j:=0 to 4 do
begin
If i>=j then a[i,j]:=0;
StringGrid2.Cells[i,j]:=IntToStr(a[i,j]);
end;
end;
Откомпилируйте приложение и проверьте его работу.
Самостоятельно решите следующую задачу: Введите двумерный массив, состоящий из 5 строк и 5 столбцов. Обнулите элементы, лежащие на главной и побочной диагоналях.
Задание 2. Введите двумерный массив, состоящий из 4 столбцов и 5 строк, и выведите на экран все элементы массива, которые больше 5, но меньше 39. Для вывода используйте компоненты ListBox и ComboBox. Результат работы программы приведен на рисунке 4.2.
Последовательность действий:
Создайте новый проект и перенесите на форму компоненты, перечисленные в таблице 4.2.
В области глобальных переменных объявите двумерный массив:
Var Form1:TForm1;
a:Array[0..10,0..10] of Integer;
Для компонента StringGrid1 установите следующие свойства в инспекторе объектов:
FixedCols -0
FixedRows -0
Для компонента RadioGroup1 выберите в инспекторе объектов свойство Items. Нажмите на кнопку с тремя точками. И введите две строки, как показано на рисунке 4.3.
Таблица 4.2 Компоненты приложения
Компонент |
Назначение |
Label1 |
Метка «Исходный массив» |
Label2 |
Метка «ComboBox» |
Label2 |
Метка «ListBox» |
StringGrid1 |
Компонент «Таблица строк», содержащий исходный массив |
ListBox1 |
Компонент «Список», в который записывается преобразованный массив |
Продолжение таблицы 4.2
Компонент |
Назначение |
ComboBox1 |
Компонент «Раскрывающийся список», в который записывается преобразованный массив |
RadioGroup1 |
Компонент «Группа радио кнопок» для выбора элемента вывода результата |
Button1 |
Кнопка «Заполнить исходный массив» |
Button2 |
Кнопка «Вычислить» |
Button3 |
Кнопка «Очистить» |
Для события OnCreate формы Form1 напишите следующий программный код:
procedure TForm1.FormCreate(Sender: TObject);
begin
// Ввод количества столбцов в компоненте StringGrid1
Stringgrid1.ColCount:=4;
// Ввод количества строк в компоненте StringGrid1
Stringgrid1.RowCount:=5;
//По умолчанию выбрана первая радиокнопка
RadioGroup1.ItemIndex:=0;
//Очистить компонент ComboBox1
ComboBox1.Clear;
// Очистить компонент ListBox1
ListBox1.Clear;
end;
Для события OnClick Кнопки «Очистить» напишите следующий программный код:
procedure TForm1.Button3Click(Sender: TObject);
begin
ComboBox1.Clear; ListBox1.Clear;
end;
Для события OnClick Кнопки «Заполнить исходный массив» напишите следующий программный код:
procedure TForm1.Button1Click(Sender: TObject);
VAR i,j:Integer;
begin
Randomize;
For i:=0 to 4 do
For j:=0 to 4 do
begin
a[i,j]:=-50+random(100);
StringGrid1.Cells[i,j]:=IntToStr(a[i,j]);
end;
end;
Для события OnClick Кнопки «Вычислить» напишите следующий программный код:
procedure TForm1.Button2Click(Sender: TObject);
var i,j:Integer;
begin
If RadioGroup1.ItemIndex=0
then begin
// Если выбрана первая радио кнопка, то заполняется ComboBox
For i:=0 to StringGrid1.ColCount-1 do
For j:=0 to StringGrid1.RowCount-1 do
If (StrToInt(Stringgrid1.Cells[i,j])>5) and
(StrToInt(Stringgrid1.Cells[i,j])<30)
then comboBox1.Items.Add(Stringgrid1.Cells[i,j]);
ComboBox1.Text:=ComboBox1.Items.Strings[0];
end
else begin
// Если выбрана вторая радио кнопка, то заполняется ListBox
For i:=0 to StringGrid1.ColCount-1 do
For j:=0 to StringGrid1.RowCount-1 do
If (StrToInt(Stringgrid1.Cells[i,j])>5) and
(StrToInt(Stringgrid1.Cells[i,j])<30)
then ListBox1.Items.Add(Stringgrid1.Cells[i,j])
end;
end;
Откомпилируйте приложение и проверьте его работу.
Самостоятельно решите следующие задачи:
Введите двумерный массив, состоящий из 4 столбцов и 6 строк, и выведите на экран все четные элементы массива. Для вывода используйте компонент ListBox.
Введите двумерный массив, состоящий из 4 столбцов и 4 строк, и выведите на экран среднее арифметическое всех элементов массива. Для вывода используйте компонент label .
Введите двумерный массив, состоящий из 6 столбцов и 5 строк, и обнулите все отрицательные элементы массива. Для вывода используйте второй компонент Stringgrid.
Введите двумерный массив, состоящий из 4 столбцов и 6 строк, и выведите на экран Сумму каждого столбца. Для вывода используйте компонент ComboBox.
Введите двумерный массив, состоящий из 4 столбцов и 6 строк, и выведите на экран все элементы массива, кратные 5. Для вывода используйте компоненты ListBox, ComboBox или Memo. Для выбора используйте компонент Radiogroup.