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


 

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

32376. Специфика детско-родительских отношений. Особенности диагностической и коррекционной работы с семьей 14.57 KB
  Особенности диагностической и коррекционной работы с семьей. В диагностике направления работы с ребенком условно можно выделить наиболее часто встречающиеся задачи: Контроль развития ребенка с целью своевременного обнаружения трудностей отставаний профилактики возможных неблагоприятных вариантов развития. Полученные данные могут использоваться специалистами психологами и социальными педагогами для построения профилактической коррекционной работы с детьми и для просветительской работы с родителями. Этические нормы работы психолога не...
32377. Метод анализа результата деятельности. Анализ почерка. Анализ детского рисунка. Анализ внешнего поведения 11.75 KB
  Учение о почерке – графология. Первые научные представления появились в Древнем мире. Аббат Мишон основал первое графологическое общество. Зуев-Инсаров (в России начало 20в.) один из известных графологов. После революции графология была признана лженаукой.
32378. Понятие деятельности. Психологическая характеристика деятельности. Психологическая структура деятельности. Классификация видов деятельности 14.17 KB
  Психологическая характеристика деятельности. Психологическая структура деятельности. Классификация видов деятельности.
32379. Основные принципы, задачи и направления работы психологической службы в образовании 13.98 KB
  Цель психологической службы в образовании максимальное содействие психическому и личностному развитию всех участников образовательного процесса. Задачи психологической службы в образовании: Выявление причин различного рода трудностей в учебновоспитательной работе с учащимися различного возраста психоаналитический подход Преодоление в рамках профессионализма отклонений в интеллектуальном и личностном развитии школьников коррекционный подход Преодоление и помощь в решении конфликтных ситуаций и сложных вопросов. Структура психологической...
32380. Понятие выбора профессии. Ошибки и трудности выбора профессии. Классификация профессий 17.89 KB
  Понятие выбора профессии. Ошибки и трудности выбора профессии. Выбор профессии проф. Самоопределение которое подразумевает самостоятельный выбор профессии на основе: Объективных и достаточно полных знаний о себе своих интересах склонностях особенностях мышления памяти внимания нервной системы.
32381. Учет индивидуальных особенностей при обучении. Специфика обучения одаренных детей. Психологические причины неуспеваемости 14.22 KB
  Специфика обучения одаренных детей. Для поиска успешных форм и методов обучения необходимо учитывать индивидуальные особенности: нервной системы физиологические уровень и темп психического и физического развития. Программы обучения: Образовательные ускоренное обучение обогащенное обучением углубленное и расширенное изучение отдельных тем Образовательноразвивающие развитие продуктивного мышления и личности ребенка Эльконин Давыдов Развивающие мышление личность развитие высших мыслительных процессов творческого критического...
32382. Общие представления о памяти 14.29 KB
  Никакое психическое или внешнее действие или процесс невозможны без участия процессов памяти. Виды памяти: По характеру психической активности: Двигательная запоминание сохранение и воспроизведение различных движений и их систем служит основой для навыков ходьбы письма спортивных навыков. Образная память на представления Словестнологическая память на мысли специфически человеческий вид памяти в отличие от других ей принадлежит ведущая роль в усвоении знаний.
32383. Психология как наука 14.95 KB
  Все так называемые движения души: эмоции чувства мышление мотивы и другие процессы возможно зафиксировать лишь через их внешние проявления. Индивидуальные психологические явления Индивидуальные психические процессы: познавательные процессы ощущения восприятие внимание память воображение мышление; эмоциональные процессы чувственный тон эмоции аффекты чувства настроение эмоциональный стресс; волевые процессы воля принятие решений преодоление трудностей борьба мотивов управление своим поведением.
32384. Ощущения 13.15 KB
  Каждое из этих свойств отражается разными органами чувств по сути это разные виды ощущений Психический образ каждого из этих свойств первоначально возникает в разных отделах мозга. Свойства ощущений: Качество это качественная характеристика ощущений позволяющая отличать одни ощущения от других и осознавать их своеобразие в пределах одного вида. Качество ощущений очень тесно связано с их модальностью. Интенсивность это количественная характеристика ощущений зависящая от силы действующего раздражителя и от функционального состояния...