![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 03.10.2009
Сообщений: 20
|
![]()
3. Обработка массивов.
Задача: создать программу для определения вектора: , где А - квадратная матрица, а Y, B - одномерные массивы. Элементы вектора Y определяются по формуле; . Значение N вводить в компонент Tedit, А и В - в компонент TStringGrid. Результат, после нажатия кнопки типа TButton, вывести в компонент TStringGrid. Панель диалога приведена на рис.1 н.png 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. Задание: Задано матрицу размером. Получить массив B, присвоив его k-м элементу значение 1, если k-я строка матрицы симметричный, и значение 0 в противном случае. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Создание программ на заказ!!! | Xataby4 | Фриланс | 11 | 25.09.2010 19:40 |
Создание программ!!! | KnighTeX | Фриланс | 6 | 23.06.2010 12:00 |
Создание программ в делфи | rudolf | Помощь студентам | 10 | 08.12.2009 22:10 |
Создание многоязыковых программ | ds.Dante | Общие вопросы .NET | 8 | 18.08.2009 10:51 |
Создание программ | ]Wowan[ | Фриланс | 4 | 22.05.2009 14:13 |