Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПЯВУ.doc
Скачиваний:
6
Добавлен:
12.11.2019
Размер:
1.51 Mб
Скачать

Задания для самостоятельной работы

  1. Измените созданное приложение так, чтобы заполнение массива производилось вручную (с помощью компонентов Memo и Edit).

  2. Ввести массив А(n). Вывести исходный массив на экран, используя компонент ListBox. Найти в массиве числа большие 5, но меньшие 50. Вывести результат на экран, используя компонент ComboBox.

  3. Ввести массив А (n). Вывести исходный массив на экран, используя компонент ComboBox. Вывести на экран нечетные элементы массива, используя компонент ListBox.

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

  1. Особенности работы с одномерными массивами в среде Delphi 7.0.

  2. Автоматический ввод компонентов одномерного массива.

  3. Ручной ввод однлмнрного с помощью компонентов Memo и Edit.

  4. Вывод элементов одномерного массива с помощью компонентов Memo, ListBox и ComboBox.

  5. Свойства и методы компонентов ListBox и ComboBox;

Лабораторная работа № 4. Работа с двумерными массивами

ЦЕЛЬ РАБОТЫ:

  1. Освоение работы с двумерными массивами в Delphi, автоматическое заполнение массива и заполнение массива вручную;

  2. Изучение свойств и методов компонента StringGrid;

  3. Освоение работы с компонентом RadioGroup.

Подготовка к работе:

1. Изучить свойства и методы компонентов StringGrid и RadioGroup;

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

Задание 1. Работу с двумерными массивами рассмотрим на следующем примере: Ведите двумерный массив, состоящий из 5 столбцов и 5 строк, и обнулите все элементы массива, лежащие на и выше главной диагонали. Результат работы программы приведен на рисунке 4.1.

Последовательность действий:

  1. Создайте новый проект и перенесите на форму компоненты, перечисленные в таблице 4.1.

Таблица 4.1 Компоненты приложения

Компонент

Назначение

Label1

Метка «Исходный массив»

Label2

Метка «Результат преобразования массива»

StringGrid1

Компонент «Таблица строк», содержащий исходный массив

StringGrid2

Компонент «Таблица строк», содержащий преобразованный массив

Button1

Кнопка «Заполнить исходный массив»

Button2

Кнопка «Преобразование массива»

Button3

Кнопка «Выход»

  1. В области глобальных переменных объявите двумерный массив:

a:Array[0..10,0..10] of Integer;

  1. Для компонентов StringGrid1 и StringGrid2 установите следующие свойства в инспекторе объектов:

ColCount – 5 RowCount – 5 FixedCols -0 FixedRows -0

  1. Для события OnClick Кнопки «Выход » напишите следующий программный код:

procedure TForm1.Button3Click(Sender: TObject);

begin

Form1.Close;

end;

  1. Для события 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;

  1. Для события 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;

  1. Откомпилируйте приложение и проверьте его работу.

  2. Самостоятельно решите следующую задачу: Введите двумерный массив, состоящий из 5 строк и 5 столбцов. Обнулите элементы, лежащие на главной и побочной диагоналях.

Задание 2. Введите двумерный массив, состоящий из 4 столбцов и 5 строк, и выведите на экран все элементы массива, которые больше 5, но меньше 39. Для вывода используйте компоненты ListBox и ComboBox. Результат работы программы приведен на рисунке 4.2.

Последовательность действий:

  1. Создайте новый проект и перенесите на форму компоненты, перечисленные в таблице 4.2.

  2. В области глобальных переменных объявите двумерный массив:

Var Form1:TForm1;

a:Array[0..10,0..10] of Integer;

  1. Для компонента StringGrid1 установите следующие свойства в инспекторе объектов:

FixedCols -0

FixedRows -0

  1. Для компонента RadioGroup1 выберите в инспекторе объектов свойство Items. Нажмите на кнопку с тремя точками. И введите две строки, как показано на рисунке 4.3.

Таблица 4.2 Компоненты приложения

Компонент

Назначение

Label1

Метка «Исходный массив»

Label2

Метка «ComboBox»

Label2

Метка «ListBox»

StringGrid1

Компонент «Таблица строк», содержащий исходный массив

ListBox1

Компонент «Список», в который записывается преобразованный массив

Продолжение таблицы 4.2

Компонент

Назначение

ComboBox1

Компонент «Раскрывающийся список», в который записывается преобразованный массив

RadioGroup1

Компонент «Группа радио кнопок» для выбора элемента вывода результата

Button1

Кнопка «Заполнить исходный массив»

Button2

Кнопка «Вычислить»

Button3

Кнопка «Очистить»

  1. Для события 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;

  1. Для события OnClick Кнопки «Очистить» напишите следующий программный код:

procedure TForm1.Button3Click(Sender: TObject);

begin

ComboBox1.Clear; ListBox1.Clear;

end;

  1. Для события 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;

  1. Для события 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;

  1. Откомпилируйте приложение и проверьте его работу.

  2. Самостоятельно решите следующие задачи:

  1. Введите двумерный массив, состоящий из 4 столбцов и 6 строк, и выведите на экран все четные элементы массива. Для вывода используйте компонент ListBox.

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

  3. Введите двумерный массив, состоящий из 6 столбцов и 5 строк, и обнулите все отрицательные элементы массива. Для вывода используйте второй компонент Stringgrid.

  4. Введите двумерный массив, состоящий из 4 столбцов и 6 строк, и выведите на экран Сумму каждого столбца. Для вывода используйте компонент ComboBox.

  5. Введите двумерный массив, состоящий из 4 столбцов и 6 строк, и выведите на экран все элементы массива, кратные 5. Для вывода используйте компоненты ListBox, ComboBox или Memo. Для выбора используйте компонент Radiogroup.