Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

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




End.

Begin

Begin

Begin

Except

Try

Begin

Begin

Except

Try

Begin

Begin

Begin

Var

Begin

Except

Try

Begin

Begin

Begin

Implementation

Var

Type

Const

Public

Private

Type

Uses

Interface

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

TForm1 = class(TForm)

StringGrid1: TStringGrid;

StringGrid2: TStringGrid;

StringGrid3: TStringGrid;

Edit1: TEdit;

Label1: TLabel;

Button1: TButton;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

procedure FormActivate(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

{ Private declarations }

{ Public declarations }

end;

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

Mas1 = array[1..Nmax] of extended; {Объявление типа одномерного массива вещественных чисел размерностью Nmax}

Mas2 = array[1..Nmax,1..Nmax] of extended; {Объявление типа двумерного массива вещественных чисел размерностью Nmax*Nmax}

Form1: TForm1;

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

B,Y: Mas1; // Объявление одномерных массивов

N,i,j: integer;

{$R *.dfm}

procedure TForm1.FormActivate(Sender: TObject);

{Процедура подготовки к началу работы}

N:=3; // Задание размерности массива

Edit1.Text:=IntToStr(N); // Вывод значения N в Edit1

{Задание числа строк и столбцов в таблицах}

StringGrid1.ColCount:=N+1;

StringGrid1.RowCount:=N+1;

StringGrid2.RowCount:=N+1;

StringGrid3.RowCount:=N+1;

{Ввод в левую верхнюю ячейку таблицы названия массива}

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

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

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

{Заполнение верхнего и левого столбцов поясняющими подписями}

for i:=1 to N do

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

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

end;

end;

procedure TForm1.Button1Click(Sender: TObject);

{Процедура изменения размерности массива}

N:=StrToInt(Edit1.Text);

ShowMessage('Ошибочная запись числа '+Edit1.Text);

Edit1.SetFocus;

Exit;

end;

{Задание числа строк и столбцов в таблицах}

StringGrid1.ColCount:=N+1;

StringGrid1.RowCount:=N+1;

StringGrid2.RowCount:=N+1;

StringGrid3.RowCount:=N+1;

{Заполнение верхнего и левого столбцов поясняющими подписями}

for i:=1 to N do

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

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

end;

end;

procedure TForm1.BitBtn1Click(Sender: TObject);

{Процедура расчета вектора Y}

s: extended;

{Заполнение массива А элементами из таблицы StringGrid1}

for i:=1 to N do

for j:=1 to N do

if StringGrid1.Cells[j,i]=' ' then

ShowMessage('Ошибка заполнения массива А');

Exit;

end;

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

ShowMessage('Ошибочная запись числа '+StringGrid1.Cells[j,i]);

Exit;

end;

end;

{Заполнение массива B элементами из таблицы StringGrid2}

for i:=1 to N do

if StringGrid2.Cells[0,i]=' ' then

ShowMessage('Ошибка заполнения массива В!');

Exit;

end;

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

ShowMessage ('Ошибочная запись числа '+StringGrid2.Cells[0,i]);

Exit;

end;

end;

{Умножение массива А на массив В}

for i:=1 to N do

s:=0;

for j:=1 to N do

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

Y[i]:=s;

{Вывод результата в таблицу StringGrid3}

StringGrid3.Cells[0,i]:=FloatToStrf(y[i],fffixed,6,2);

end;

end;

procedure TForm1.BitBtn2Click(Sender: TObject);

{Очищение всех ячеек таблиц перед очередным прогоном программы}

for i:=1 to N do

StringGrid2.Cells[0,i]:=' ';

StringGrid3.Cells[0,i]:=' ';

for j:=1 to N do

StringGrid1.Cells[j,i]:=' ';

end;

end;

Индивидуальные задания

Во всех заданиях скалярные переменные вводить с помощью компонента TEdit с соответствующим пояснением в виде компонента TLabel. Скалярный результат выводить в виде компонента TLabel. Массивы представлять на форме в виде компонентов TStringGrid, в которых 0-й столбец и 0-ю строку использовать для отображения индексов массивов. Вычисления выполнять, после нажатия кнопки типа TВutton или TBitBtn.

 

Варианты заданий:

1. Задана матрица размером NxM. Получить массив B, присвоив его k- му элементу значение 0, если все элементы k -го столбца матрицы нулевые, и значение 1в противном случае.

2. Задана матрица размером NxM. Получить массив B, присвоив его k- му элементу значение 1, если элементы k –й строки матрицы упорядочены по убыванию, и значение 0в противном случае.

3. Задана матрица размером NxM. Получить массив B, присвоив его k- му элементу значение 1, если k -я строка матрицы симметрична, и значение 0в противном случае.

4. Задана матрица размером NxM. Определить k –количество “особых” элементов матрицы, считая элемент “особым”, если он больше суммы остальных элементов своего столбца.

5. Задана матрица размером NxM. Определить k – количество “особых” элементов матрицы, считая элемент “особым”, если в его строке слева от него находятся элементы, меньшие его, а справа – б о льшие.

6. Дана матрица размером NxM. Упорядочить ее строки по возрастанию их наибольших элементов.

7. Для матрицы размером NxM вывести на экран все ее седловые точки. Элемент матрицы называется седловой точкой, если он является наименьшим в своей строке и одновременно наибольшим в своем столбце или, наоборот.

8. В матрице размером NxM поменять местами строку, содержащую элемент с наибольшим значением со строкой, содержащей элемент с наименьшим значением.

9. Из матрицы n -го порядка получить матрицу порядка n-1 путем удаления из исходной матрицы строки и столба, на пересечении которых расположен элемент с наибольшим по модулю значением.

10. Дано два одномерных массива. Найти наименьшее среди тех элементов первого массива, которые не входят во второй массив.

 

 




Поделиться с друзьями:


Дата добавления: 2015-05-09; Просмотров: 663; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.021 сек.