Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
КурсоваяАксен1.docx
Скачиваний:
8
Добавлен:
15.03.2016
Размер:
480.35 Кб
Скачать

Решение задачи 4

Для решения задачи нужны элементы ввода, вывода и элемент запуска обработки массива. Для ввода и вывода чисел будет использоваться объект Memo. Для запуска обработки массива будет использоваться объект Button.

Внешний вид вкладки приведён на рисунке 15.

Рис. 15 (Внешний вид вкладки для решения четвертой задачи)

Процедура, вызываемая при нажатии на кнопку обработки массива, приведена ниже:

procedure TForm1.ButtonRez4Click(Sender: TObject);

var i:Integer;

k,s:Real;

begin

if Memo1.Lines.Count=0

thenShowMessage ('Укажитемассив')

else

s:=0;

k:=0;

for i:=1 to Memo1.Lines.Count-1 do

ifStrToFloat(Memo1.Lines.Strings[i])>0 then

begin

k:=k+StrToFloat(Memo1.Lines.Strings[i])

end;

i:=i+2;

s:=k/2;

EditRez4.Text:=FloatToStr(s)

end;

На рисунках с 16-ой по 17-ую приведены иллюстрации работы процедуры:

Рис. 16 (Результат вычисления при корректных данных)

Рис. 17 (Результат вычисления при некорректных данных)

Решение задачи 5

Для решения задачи нужны элементы ввода, вывода, отображение строк и столбцов и элемент запуска обработки матрицы. Для ввода и вывода чисел будет использоваться объект Edit. Для отображения строк и столбцов будет использоваться объект StringGrid. Для запуска обработки матрицы будет использоваться объект Button.

Внешний вид вкладки приведён на рисунке 18.

Рис. 19 (Внешний вид вкладки для решения пятой задачи)

Процедуры, изменения размера матрицы при вводе их значений:

procedure TForm1.EditMChange(Sender: TObject);

begin

if EditM.Text<>''

then

begin

StringGrid1.RowCount:=strtoint(EditM.Text);

StringGrid2.RowCount:=strtoint(EditM.Text)

end;

end;

procedure TForm1.EditWChange(Sender: TObject);

begin

if EditW.Text<>''

then

begin

StringGrid1.ColCount:=strtoint(EditW.Text);

StringGrid2.ColCount:=strtoint(EditW.Text);

end;

end;

Процедура, вызываемая при нажатии на кнопку обработки матрицы, приведена ниже:

procedure TForm1.ButtonRez5Click(Sender: TObject);

vari,j,z:Integer;

begin

if EditM.Text=''

thenShowMessage ('Укажитеколичествострок')

else

if EditW.Text=''

thenShowMessage ('Укажитеколичествостолбцов')

else

if EditX5.Text=''

then ShowMessage ('Укажите X')

else

if StringGrid1.RowCount<>StringGrid1.ColCount

thenshowmessage('Матрица не квадратная!!!')

else

begin

z:=0;

for i:=0 to stringgrid1.RowCount-1 do

begin

for j:=0 to stringgrid1.ColCount-1 do

begin

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

then z:=1

end;

end;

end;

if z=1 then ShowMessage ('Введитечисламатрицы')

else

for i:=0 to stringgrid1.RowCount-1 do

begin

for j:=0 to StringGrid1.ColCount-1 do

begin

if StringGrid1.Cells[i,j]>=EditX5.Text

then

StringGrid2.Cells[i,j]:=FloatToStr(0)

else

StringGrid2.Cells[i,j]:=StringGrid1.Cells[i,j]

end;

end;

end;

На рисунках с 19-ой по 24-ую приведены иллюстрации работы процедуры:

Рис. 19 (Результат вычисления при корректных данных)

Рис. 20 (Результат вычисления при некорректных данных)

Рис. 21 (Результат вычисления при некорректных данных)

Рис. 22 (Результат вычисления при некорректных данных)

Рис. 23 (Результат вычисления при некорректных данных)

Рис. 24 (Результат вычисления при некорректных данных)