37826

Обробка масивів

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

Информатика, кибернетика и программирование

Мета роботи: вивчити властивості компонента TStringGrid. Компонент TStringGrid При роботі з масивами введення і виведення інформації на екран зручно організовувати у виді таблиць використовуючи компонент TStringGrid. Значення N вводити в компонент Tedit А и В у компонент TStringGrid. Результат після натискання кнопки типу TButton вивести в компонент TStringGrid.

Украинкский

2013-09-25

87 KB

12 чел.

ЛАБОРАТОРНА РОБОТА №6

Тема роботи: Обробка масивів.

Мета роботи: вивчити властивості компонента TStringGrid. Написати програму, що передбачає обробку масивів.

Рекомендована література:

  1.  Бобровский С. И. Delphi 7. Учебный курс. - С.Пб. Питер, 2004. – 735 с.
  2.  Я. М. Глинский Інформатика. Алгоритмізація і програмування. Книжка 1. -  Львів, 2003. – 198 с.
  3.  Симонович С.В., Евсеев Г.А. Занимательное программирование:Delphi. – М.: АСТ-Пресс Книга; Издательство «Развитие», 2003. – 368 с.
  4.  Кен Хендерсон. Руководство Разработчика баз данных в Delphi 2. – К. Диалектика, 1997, - 543 с.

Контрольні запитання:

  1.  Які оператори мови Pascal описують процеси з розгалуженням?
  2.  В яких випадках доцільно викоритовувати оператор case?
  3.  Що називають кнопками-перемикачами?
  4.  Які види кнопок-перемикачів Ви знаєте?
  5.  За що відповдає компонент TcheckBox?
  6.  За що відповдає компонент TRadiogroup?
  7.  Що називають оброблювачем подій та як його створюють?

Теоретичні відомості.

Компонент TStringGrid

При роботі з масивами введення і виведення інформації на екран зручно організовувати у виді таблиць, використовуючи компонент TStringGrid. Останній призначений для відображення інформації у виді двовимірної таблиці, кожена комірчина якої являє собою вікно однорядкового редактора (аналогічно вікну TEdit).

Доступ до інформації здійснюється за допомогою властивості:

Cells[ACol, Arow : Integer] : string;

де ACol, Arow - індекси елементів двовимірного масиву.

Властивості ColCount і RowCount установлюють кількість рядків і стовпчиків у таблиці, а властивості FixedCols і FixedRows задають кількість рядків і стовпчиків фіксованої зони. Фіксована зона виділена іншим кольором, і в неї заборонене введення інформації з клавіатури.

Хід виконання роботи.

Завдання: створити програму для визначення вектора:

,

де А – квадратна матриця; а Y, B – одномірні масиви.

Елементи вектора Y визначаються по формулі;

.

Значення N вводити в компонент Tedit, А и В – у компонент TStringGrid. Результат, після натискання кнопки типу TButton, вивести в компонент TStringGrid.

Панель діалогу приведена на рис.1

Рис. 1.

Настроювання компонента TSstringGrid

Для установки компонента TStringGrid на форму, необхідно на сторінці Additional меню компонентів клацнути мишею по піктограмі. Після цього клацніть мишею в потрібному місці форми. Захоплюючи краї компонента, відрегулюйте його розмір. В інспекторі об'єктів значення властивостей ColCount і RowCount встановіть 2, а FixedCols і FixedRows встановіть 1. Тому що компоненти StringGrid2 і StringGrid3 мають тільки один стовпчик, то в них: ColCount=1, RowCount=2, FixedCols=0 і FixedRows=1. За замовчуванням у компонент TStringGrid заборонене введення інформації з клавіатури, тому необхідно властивість Options goEditing для компонентів StringGrid1 і StringGrid2 встановити в положення True.

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

Unit Lab4;

Interface

Uses

 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls, Grids;

type

 TInputForm = class(TForm)

   StringGrid1: TStringGrid;

   StringGrid2: TStringGrid;

   StringGrid3: TStringGrid;

   Label1: TLabel;

   Edit1: TEdit;

   Button1: TButton;

   Button2: TButton;

   Procedure FormCreate(Sender: TObject);

   Procedure Button1Click(Sender: TObject);

   Procedure Button2Click(Sender: TObject);

 private

   { Private declarations }

 public

   { Public declarations }

 end;

const

 Nmax = 10; // Максимальна розмірність масиву

type

 Mas1 = array[1..Nmax] of Extended;

//Оголошення типу одномірного масиву

 Mas2 = array[1..Nmax, 1..Nmax] of Extended; //Оголошення типу двовимірного масиву

var

 InputForm: TInputForm;

 A : Mas2;     // Оголошення двовимірного масиву

 B, Y : Mas1;  // Оголошення одномірних масивів

 N, i, j : integer;

Implementation

{$R *.DFM}

Procedure TInputForm.FormCreate(Sender: TObject);

begin

 N := 3; //Розмірність масиву

 Edit1.Text := FloatToStr(N);

//Завдання числа рядків і стовпчиків

 StringGrid1.ColCount := N + 1;

 StringGrid1.RowCount := N + 1;

 StringGrid2.RowCount := N + 1;

 StringGrid3.RowCount := N + 1;

//Введення в ліву верхню комірчину таблиці назви масиву

 StringGrid1.Cells[0, 0] := 'Масив А';

 StringGrid2.Cells[0, 0] := 'Масив В';

 StringGrid3.Cells[0, 0] := 'Масив У';

//Заповнення верхнього і лівого стовпчиків підписами, що пояснюють

 for i:=1 to N do

 begin

   StringGrid1.Cells[0, i] := 'i='+ IntToStr(i);

   StringGrid1.Cells[i, 0] := 'j='+ IntToStr(i);

 end;

end;

Procedure TInputForm.Button1Click(Sender: TObject);

begin

 N := StrToInt(Edit1.Text);

//Завдання числа рядків і стовпчиків у таблицях

 StringGrid1.ColCount := N + 1;

 StringGrid1.RowCount := N + 1;

 StringGrid2.RowCount := N + 1;

 StringGrid3.RowCount := N + 1;

//Заповнення верхнього і лівого стовпчиків підписами, що пояснюють

 for i:=1 to N do

 begin

   StringGrid1.Cells[0, i] := 'i=' + IntToStr(i);

   StringGrid1.Cells[i, 0] := 'j=' + IntToStr(i);

 end;

end;

Procedure TInputForm.Button2Click(Sender: TObject);

var

 s : extended;

begin

//Заповнення масиву A елементами з тавлиці StringGrid1

 for i:=1 to N do

 for j:=1 to N do

   A[i, j] := StrToFloat(StringGrid1.Cells[j, i]);

//Заповнення масиву B елементами з тавлиці StringGrid2

 for і:=1 to N do

   B[і] := StrToFloat(StringGrid2.Cells[0, і]);

// Множення масиву A на масив B

 for i:=1 to N do

 begin

   s := 0;

   for j:=1 to N do

   s := s + A[i, j]*B[j];

   Y[i] := s;

//Виведення результату в таблицю StringGrid3

   StringGrid3.Cells[0, i] := FloatToStrF(Y[i], ffFixed,6,2);

 end;

end;

end.

Індивідуальне завдання.

В усіх завданнях скалярні перемінні вводити за допомогою компонента TЕdit з відповідним поясненням у виді компонента TLabel. Скалярний результат виводити у виді компонента TLabel. Масиви представляти на формі у виді компонентів TStringGrid, у яких 0-й стовпець і 0-ю рядок використовувати для відображення індексів масивів. Обчислення виконувати, після натискання кнопки типу TButton.

  1.  Задано матрицю розміром . Одержати масив B, присвоївши його k-му елементові значення 0, якщо всі елементи k-го стовпця матриці нульові, і значення 1 у противному випадку.  
  2.  Задано матрицю розміром . Одержати масив B, присвоївши його k-му елементові значення 1, якщо елементи k-ої рядка матриці упорядковані по убуванню, і значення 0 у противному випадку.
  3.  Задано матрицю розміром . Одержати масив B, присвоївши його k-му елементові значення 1, якщо k-а рядок матриці симетричний, і значення 0 у противному випадку.
  4.  Задано матрицю розміром . Визначити k - кількість "особливих" елементів матриці, вважаючи елемент "особливим", якщо він більше суми інших елементів свого стовпця.
  5.  Задано матрицю розміром . Визначити k - кількість "особливих" елементів матриці, вважаючи елемент “особливим”, якщо в його рядку ліворуч від нього знаходяться елементи менші його, а праворуч – більші.
  6.  Задано символьну матрицю розміром . Визначити k - кількість різних елементів матриці (тобто повторювані елементи вважати один раз).
  7.  Дано матрицю розміром . Упорядкувати її рядки по неубуванню їхніх перших елементів.
  8.  Дано матрицю розміром . Упорядкувати її рядки по неубуванню суми їхніх елементів.
  9.   Дано матрицю розміром . Упорядкувати її рядки по неубуванню їхніх найбільших елементів.
  10.  Визначити, чи є задана квадратна матриця n-го порядку симетричною щодо побічної діагоналі.
  11.  Для матриці розміром вивести на екран усі її сідлову точки. Елемент матриці називається сідловою точкою, якщо він є найменшим у своєму рядку й одночасно найбільшим у своєму стовпчикі, або навпаки.
  12.  У матриці n-го порядку переставити рядка так, щоб на головній діагоналі матриці були розташовані елементи, найбільші по абсолютній величині.
  13.  У матриці n-гo порядку знайти максимальний серед елементів, що лежать нижче побічної діагоналі, і мінімальний серед елементів, що  лежать вище головної діагоналі.
  14.  У матриці розміром  поміняти місцями рядок, що містить елемент із найбільшим значенням з рядком, що містить елемент із найменшим.
  15.  З матриці п-го порядку одержати матрицю порядку п-1 шляхом видалення з вихідної матриці рядка і стовпця, на перетинанні яких розташований елемент із найбільшим по модулі значенням.
  16.  Дано масив з k символів. Вивести на екран спочатку всі цифри, що входять у нього, а потім всі інші символи, зберігаючи при цьому взаємне розташування символів у кожній з цих двох груп.
  17.  Дано масив, що містить від 1 до k символів, за яким стоїть крапка. Вивести цей текст у зворотному порядку.
  18.  Дано непорожній масив з цифр. Вивести на екран цифру, що найбільше часто зустрічається в цьому масиві.
  19.   Відсортувати елементи масиву Х по зростанню.
  20.  Елементи масиву Х розташувати в зворотному порядку.
  21.  Елементи масиву Х циклічно зрушити на k позицій уліво.
  22.  Елементи масиву Х циклічно зрушити на n позицій вправо.
  23.  Перетворити масив Х за наступним правилом: усі від’ємні елементи масиву перенести в початок, а всі інші – у кінець, зберігаючи вихідне взаємне розташування, як серед негативних, так і серед інших елементів.
  24.  Елементи кожного з масивів X і Y упорядковані по неубуванню. Об'єднати елементи цих двох масивів в один масив Z так, щоб вони знову виявилися упорядкованими по неубуванню.
  25.  Дано масив з k символів. Чи визначити симетричний він, тобто чи читається він однаково ліворуч праворуч і праворуч ліворуч.
  26.  Дано два масиви. Знайти найменше серед тих елементів першого масиву, що не входить у другий.
  27.  Визначити кількість інверсій у цьому масиві Х (тобто таких пар елементів, у яких більше число знаходиться ліворуч від найменшого:  при  ).
  28.  Дано масив з рядкових латинських букв. Вивести на екран за абеткою всі букви, що входять у цей текст по одному разі.
  29.  Вивести на екран заданий масив з k символів, видаливши з нього повторні входження кожного символу.
  30.  Визначити скільки різних символів входить у заданий текст, що містить не більш k символів і які закінчуються крапкою (у сам текст крапка не входить).
  31.  Задано матрицю розміром . Одержати масив А, присвоївши його k-му елементові значення 1, якщо всі елементи k-го стовпця матриці нульові, і значення 0 у противному випадку.  
  32.  Задано матрицю розміром . Одержати масив А, присвоївши його k-му елементові значення 1, якщо елементи k-ої рядка матриці упорядковані по зростанню, і значення 0 у противному випадку.
  33.  Задано матрицю розміром . Одержати масив А, присвоївши його k-му елементові значення 0, якщо k-а рядок матриці симетричний, і значення 1 у противному випадку.
  34.  Задано матрицю розміром . Визначити k - кількість "особливих" елементів матриці, вважаючи елемент "особливим", якщо він більше суми інших елементів свого стовпця.
  35.  Задано матрицю розміром . Визначити k - кількість елементів матриці, у яких у рядку праворуч від нього знаходяться елементи менші, а – ліворуч великі.
  36.  Задано матрицю розміром . Визначити k - кількість різних елементів матриці (тобто повторювані елементи вважати один раз).
  37.  Дано матрицю розміром . Упорядкувати її рядки по убуванню їхніх перших елементів.
  38.  Дано матрицю розміром . Упорядкувати її рядки по убуванню суми їхніх елементів.
  39.   Дано матрицю розміром . Упорядкувати її рядки по убуванню їхніх найбільших елементів.
  40.  Визначити, чи є задана квадратна матриця n-го порядку симетричної щодо головної діагоналі.
  41.  Дано дійсну квадратну матрицю. Потрібно перетворити матрицю в такий спосіб: поелементно відняти останній рядок із усіх рядків, крім останньої.
  42.  Дано дійсну квадратну матрицю. Потрібно перетворити матрицю в такий спосіб: поелементно відняти останній стовпець з усіх, крім останнього.


 

А также другие работы, которые могут Вас заинтересовать

30570. Характеристическая функция случайной величины: определение и свойства. Характеристическая функция нормального распределения 47.71 KB
  Характеристическая функция случайной величины: определение и свойства. Характеристическая функция нормального распределения. ХФ нормального распределения: Выступление Характеристическая функция случайной величины один из способов задания распределения. Характеристические функции могут быть удобнее в тех случаях когда например плотность или функция распределения имеют очень сложный вид.
30571. Теорема непрерывности. Центральная предельная теорема. Интегральная теорема Муавра-Лапласа 49.24 KB
  Центральная предельная теорема. Интегральная теорема МуавраЛапласа. Обратно если в каждой точке непрерывности функции является функцией распределения то в каждой точке t при этом есть характеристическая функция для функции распределения Интегральная теорема Муавра Лапласа: Если вероятность p события в каждом испытании постоянна и отлична как от нуля так и от единицы то вероятность того что событие появится в n испытаниях от до раз приближенно равна определенному интегралу: где .
30573. Основные типы статистических гипотез. Общая логическая схема статистического критерия 37.33 KB
  Процедура обоснованного сопоставления высказанной гипотезы с имеющимися в нашем распоряжении выборочными данными х1 х2. Результат подобного сопоставления может быть либо отрицательным данные наблюдения противоречат высказанной гипотезе а потому от этой гипотезы следует отказаться либо неотрицательным данные наблюдения не противоречат высказанной гипотезе а потому ее можно принять в качестве одного из естественных и допустимых решений. При этом неотрицательный результат статистической проверки гипотезы не означает что высказанное...
30574. Линейные пространства. Определение, примеры, простейшие свойства. Единственность нейтрального, единственность противоположного элемента. Линейная зависимость. Координаты векторов и их связь при переходе к другому базису 46.5 KB
  Для каждого вектора существует единственный противоположный вектор. Нулевой вектор 0 равен произведению произвольного вектора х на число 0. Действительно пусть существует два таких вектора 01 и 02. Для каждого вектора существует единственный противоположный вектор.
30575. Природа эстетического творчества 40 KB
  Эстетическое начало способно пробуждать мощные духовные потенции ужас какой Хорошо хоть не импотенции в наших чувствах и мыслях способно организовать их и стимулировать. Эстетическое сфера субъектобъектных отношений в которой творчески активное восприятие объекта или создание его сопровождается бескорыстным незаинтересованным удовольствием. Фазы эстетического восприятия: эстетическая установка настроенность на восприятие: волевой акт чка сознательно пришедшего в театр кино музей или отправившегося полюбоваться природным...
30576. Эстетика и творчество 36.5 KB
  Как красота в природе или в жизни будучи воспринята нами мобилизует наши духовные силы так и эстетическое начало в орнаменте музыкальной ритмике и ритмике танца организуют естественно эстетически наш внутренний мир. Однако ритм только тогда эстетически и художественно действует на наше восприятие когда он преобразуясь в соответствующие психологические импульсы способен привести наш духовный мир в особое состояние эстетическое настроение. Недаром художники писатели журналисты понимают эстетическое начало как тот вид...
30577. К.С. Станиславский о творчестве 24 KB
  Анализ роли через действие не может быть оценено иначе как открытие гениальное это самый главный и самый верный способ воздействия на актерское воображение стимулятор его работы. Ввел понятие перспектива роли т. Зерно роли душевное типическое изображение героя.
30578. Розанов о тв-ве, таланте, литературе («Уединенное», «Опавшие листья») 77.5 KB
  Розанов о твве таланте литературе Уединенное Опавшие листья Василий Васильевич Розанов целое явление в русской философии отдельное от всех не принадлежащее ни к какому течению. Розанов выработал собственный стиль а стиль это душа вещей как он писал сам. Розанов интересен еще тем что он не был устоявшимся раз и навсегда мыслителем который всю свою научную карьеру отстаивает какието свои убеждения и мысли или развивает их свои идеи он постоянно обновлял или подвергал критике. Среди работ важных для понимания...