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.  Дано дійсну квадратну матрицю. Потрібно перетворити матрицю в такий спосіб: поелементно відняти останній стовпець з усіх, крім останнього.


 

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

24106. Проблема происхождения жизни: эволюционизм и креационизм 15.96 KB
  Эволюционизм и креационизм в науке и религии В рамках познавательных систем использование терминов и понятий требует их строгого предварительного определения. В науке имеют место модели рассматривающие количественные изменения. Поэтому любые рассуждения о развитии материи в эволюционных процессах от низших форм к высшим в науке некорректны поскольку они относятся к рассмотрению качественному. В науке низшее должно пониматься буквально и относится к одному конкретному параметру: низкая температура пониженное давление низкая...
24107. Ценность жизни и основные проблемы биоэтики 14.38 KB
  Биоэтика междисциплинарная область знания охватывающая широкий круг философских и этических проблем возникающих в связи с бурным развитием медицины биологических наук и использования в здравоохранении высоких технологий. Термин Биоэтика был предложен в 1971 году Ван Поттером в книге Биоэтика: мост в будущее для обозначения особого варианта экологической этики рассматривающей возможности выживания человечества в условиях техногенной цивилизации однако впоследствии значение термина изменилось. Биоэтика формирует обоснование права...
24108. Проблема познания в философии. Структура процесса познания. Чувственное и рациональное в процессе познания мира. Интуиция 15.88 KB
  Проблема познания в философии. Структура процесса познания. Чувственное и рациональное в процессе познания мира. Интуиция 1основные положения теории познания: 1.
24109. Сознание, его структура. Сознание и самосознание. Сознание и бессознательное 14.25 KB
  Сознание его структура. Сознание и самосознание. Сознание и бессознательное. Сознание это высшая интегрированная форма психики которая складывается под воздействием общественноисторических условий в трудовой деятельности человека и его общении с помощью языка с другими людьми.
24110. Проблема истины. Современные трактовки понятия истина. Формы истины. Проблема критериев научной истины 94.28 KB
  Формы истины. Проблема критериев научной истины. Проблема истины в философии является центральной во всей теории познания.
24111. Особенности научного познания. Роль науки в функционировании и развитии общества 14.9 KB
  Наука особый вид познавательной деятельности людей направленный на выработку системы объективноистинного знания о природной и социальной действительности и о самом человеке. Современная наука это: 1. Наука имеет дело с объектами реальности которая не сводится к объектам обыденного опыта. Современная наука выполняет функции: 1.
24112. Естественнонаучное, техническое, гуманитарное знание 30.67 KB
  Естественнонаучное техническое гуманитарное знание. Техническое знание включает в себя от специализированных рецептурнотехнических до теоретических научнотехнических и системотехнических знаний. Современная техника и прежде всего техническое знание неразрывно связаны с развитием науки. техническое знание как конечный продукт познавательной деятельности определяет характер познавательного процесса выступая в качестве средства социальнотехнического проектирования.
24113. Социальная реальность и ее характеристики 16.73 KB
  Социальная реальность и ее характеристики. Социальная реальность это реальность в той или иной степени организованная упорядоченная и структурированная. Социальная реальность это реальность динамическая т. Социальная реальность это реальность стратифицированная.
24114. Общество как система. Сферы общественной жизни 17.51 KB
  Общество как система. Собственно философское значение этого термина таково: общество это обособившаяся от природы часть материального мира представляющая собой исторически развивающуюся форму жизнедеятельности людей. В истории социологии и культурологии чаще используется более узкое понятие общества: общество это определённый этап человеческой истории родовое общество общество капитализма или конкретный социальный организм французское общество общество США. Так древнекитайская мысль традиционно смотрела на общество сквозь призму...