Рекомендации к выполнению лабораторной работы

Лабораторная работа N 6

ОРГАНИЗАЦИЯ ПРОЕКТОВ, СОДЕРЖАЩИХ ПОДПРОГРАММЫ.

Ввести двумерный массив вещественных чисел, выполнить обработку

по варианту. Вывести на экран исходный массив и преобразованный.

Исходный массив вводить любым известным способом: заполнить массив генератором случайных чисел RANDOM, читать из внешнего текстового файла (предварительно создав его через FILE/ NEW/TEXT), задать как типизированную константу (или глобальную переменную), использовать для ввода StringGrid.

Оформить как подпрограмму алгоритм обработки массива.

Содержание задания
  Упорядочить каждый столбец массива по убыванию
  Упорядочить каждую строку массива по убыванию
  Упорядочить каждый столбец массива по возрастанию
  Упорядочить каждую строку массива по возрастанию
  Разделить элементы каждого столбца на последний элемент этого столбца
  Разделить элементы каждой строки матрицы на первый элемент этой строки
  Умножить элементы каждого столбца матрицы на первый элемент этого столбца
  Умножить элементы каждой строки матрицы на последний элемент этой строки
  Преобразовать массив: заменить все положительные числа массива на +1, отрицательные на -1. Нули оставить нулями.
  Сформировать массив, состоящий из минимальных чисел каждого столбца
  Преобразовать массив: умножить элементы каждой строки матрицы на максимальный элемент этой строки
  Преобразовать массив, увеличив элементы каждой строки на первый элемент этой строки.
  Преобразовать массив, поставив минимальный элемент строки на место первого элемента этой строки, а первый на место минимального (т.е. в каждой строке поменять местами максимальный и последний элементы)
  Преобразовать массив: в каждом столбце поменять местами максимальный и последний элементы
  Сформировать массив, состоящий из максимальных чисел каждого столбца

Рекомендации к выполнению лабораторной работы

- Прежде всего необходимо промоделировать алгоритм решения задачи. Для этого задать самим двумерный массив и получить ответ для этого массива.

- Определить компоненты для формы

- Только после этого можно разрабатывать обработчик события адается на этапе создания формы через Inspector Object. Для того чтобы свойству Cells[j,i] (j- номер столбца, i- номер строки) можно было присваивать значения на форме, при проектировании проекта через Inspector Object свойству OPTIONS

выбрать значение GoEditing равное TRUE(двойной щелчок). Так как значения свойства Cells всегда имеют тип String, то при вводе числовых данных необходимо выполнить преобразование к нужному тип.

Например, пусть фрагмент процедуры - обработчика события имеет вид:

var K:Integer;

......

Begin

K:=StrToINT(StringGrid1.Cells[2,1]);

........

End;

Если - во 2-м столбце 1-й строки при выполнении проекта набрать число 777, то в обработчике события после выполнения оператора K:=StrToINT(StringGrid1.Cells[2,1], переменная К получит значение 777.

· В задании сказано, что алгоритм обработки массива необходимо оформить в виде подпрограммы. Проще всего это сделать поместив описание подпрограммы (в данной работе Вы конечно выберете Procedure) среди описаний обработчика событий. Данные должны передаваться в подпрограмму через список формальных параметров, следовательно необходимо позаботиться о создании типа для передаваемых массивов.

· Например, требуется преобразовать двумерный массив целых чисел заменив все отрицательные числа на -1.

Пусть это будет процедура с именем Change_array.

Входные и выходные данные:

A- двумерный массив типа massiv, входные и выходные(передаются через список параметров).

N,m-pазмерность массива n-число строк и m-число столбцов передаются как глобальные переменные

i,j-вспомогательные переменные

· Фрагменты обработчика событий

Procedure TForm1.BitBtn1Click (Sender:Tobject);

Const n=4; m=6;

Type massiv:array[1..n,1..m] of integer;

Var X:massiv;

...

{ описание подпрограммы преобразования массива. Т.к. в данном случае массив для подпрограммы это и входные и выходные данные, перед его описанием в заголовке необходимо поставить слово var }

Procedure Change_array(var A:massiv);

I,j:integer;

Begin

For I:=1 to n do

For j:=1 to m do

If a[i,j]<0 then a[i,j]:=-1;

End;

Begin

...

{Ввод исходного массива X}

Change_array(X);

{Вывод преобразованного массива Х}

...

end;


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: