Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Ход выполнения

Читайте также:
  1. II. Перечень вопросов для проверки навыков выполнения практических и расчетных работ на втором этапе государственного итогового междисциплинарного экзамена.
  2. II. Порядок выполнения работы на разработку технологического процесса изготовления детали методом холодной листовой штамповки.
  3. IY Результаты выполнения лабораторного задания
  4. Анализ выполнения задания
  5. Анализ выполнения задания
  6. Анализ передвижений на основе их содержания, решаемых тактических задач и способов выполнения
  7. В. Методика выполнения блокады.

Практическая работа № 8

«Модульное программирование. Подпрограммы»

 

Задача. Процедура преобразования массива

Написать программу, преобразующую вещественную матрицу размером 6х6. Требуется заменить нулями все элементы, превышающие заданную величину, а затем упорядочить строки матрицы по возрастанию значений минимальных элементов этих строк.

Исходными данными для этой задачи являются вещественная матрица и вещественное число, результатом – преобразованная матрица. Оформим преобразование матрицы в виде процедуры. Это позволит нам использовать её для любой матрицы такого же типа.

Ход выполнения

Открываем систему Lazarus. Далее ФайлСоздать… - Приложение. Данное приложение необходимо сохранить в свою папку. Название проекта – ProMatr2, название модуля – UnitMatr2.

Переименуйте созданную вами форму. Для этого перейдите в СвойстваCaption – введите «Упорядоченная матрица 6х6».

 

На открывшейся форме добавляем надпись типа TLabel (Панель Standard). В свойствах кнопки меняем её текст СвойстваCaption – «Матрица». Измените размер шрифта – FontSize12.

 

После добавляем таблицу TStringGrid. для вывода элементов матрицы: Панель AdditionalTstringGrid. Измените её имя (NameStringGrid6x6). После применяем к таблице следующие свойства:

FixedCols FixedRows Height Left RowCount ScroollBars Top Width ColCount DefaultColWidth
          ssNone        

 

Также добавьте дополнительное свойство для возможности редактировать таблицу: СвойстваOptionsgoEditing – значение True

Далее вновь добавляем надпись типа TLabel. В свойствах кнопки меняем её текст СвойстваCaption – «Введите верхнюю границу матрицы Х:». Измените размер шрифта – FontSize10.

Рядом с надписью располагаем поле TEdit для ввода значения x: Панель StandardTEdit. Далее применяем СвойстваNameEditX; Text – очистить.

Добавляем кнопку: Панель StandardTButton. Далее применяем СвойстваCaption – «Упорядочить»; Измените имякнопки Name – ButtonRes.

После того, как были расположены все основные элементы на форму, приступаем к написанию кода.

Первоначально необходимо задать Глобальные переменные (они располагаются выше слова implementation):

 

const

n=5;

type

matr = array [0..n,0..n] of real;

 

var

Form1: TForm1;

a: matr; { матрица }

x: real; { верхняя граница элементов матрицы }

i,j: integer; { текущие индексы }

 

 

Далее необходимо описать саму процедуру программы, которая как раз будет выполнять все вычисления:

procedure sorting(var m: matr; x: real);

var

min: array of real;

nmin: integer;

buf: real;

i,j: integer;

n: integer;

begin

n:=length(m)-1;

setLength(min, n+1);

 

//граница X

for i:= 0 to n do

for j:= 0 to n do

if m[i,j] > x then m[i,j]:= 0;

 

//Поиск минимальных значений в строках

for i:= 0 to n do begin

min[i]:= m[i,0];

for j:= 0 to n do

if m[i,j] < min[i] then min[i]:= m[i,j];

end;

 

for i:=0 to n-1 do begin

nmin:=i; //строка с минимальным элементом

for j:= i+1 to n do

if min[j] < min[nmin] then nmin:= j;

 

buf:= min[i];

min[i]:= min[nmin];

min[nmin]:= buf;

 

for j:=0 to n do begin

buf:= m[i,j];

m[i,j]:= m[nmin,j];

m[nmin,j]:= buf;

end;

end;

 

finalize(min);

end;

 

Далее чтобы отобразить на форме результаты работы программы (то есть отобразить упорядоченную матрицу), создадим ещё одну процедуру. Для этого щелкните левой клавишей мыши по кнопке «Упорядочить» 2 раза. Откроется окно кода, и автоматически создастся процедура: procedure TForm1.ButtonResClick(Sender: TObject);

procedure TForm1.ButtonResClick(Sender: TObject);

 

begin

x:=StrToFloatDef(EditX.Text, 0);

 

for i:= 0 to n do begin

for j:= 0 to n do

a[i,j]:= StrToFloatDef(StringGrid6x6.Cells[j,i], 0);

end;

 

sorting(a,x);

 

for i:= 0 to n do begin

for j:= 0 to n do

StringGrid6x6.Cells[i,j]:=FloatToStr(a[j,i]);

end;

end;

После написания кода, запустите Компиляцию программы .

В результате у вас получится следующая форма вашей программы (Рис.1):

 

Рис. 1 – Готовая форма программы


Дата добавления: 2015-07-26; просмотров: 40 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
События| МАГИСТЕРСКАЯ ДИССЕРТАЦИЯ

mybiblioteka.su - 2015-2024 год. (0.011 сек.)