В поле Expression (Выражение) вводится вычисляемое выражение. По щелчку на кнопке Evaluate (Вычислить) в поле Result (Результат) появится его значение. Это поле (панель) сделано таким большим, потому что в нем отображаются не только отдельные значения, но и массивы, и записи. В поле New value (Новое значение ) выводится измененное значение. С помощью кнопки Watch (Следить) выражение, указанное в поле Expression (Выражение) , можно добавить в окно слежения.
ВЫВОДЫ
В процессе выполнения курсовой работы были выполнено:
- на первом этапе работы было проанализировано задание и определен перечень вопросов, которые были решены в данной работе, определение того, что, собственно, будет выполнять разрабатываемая программа, не рассматривая конкретную реализацию этих функций;
- разработка алгоритма разрабатываемой программы;
- разработка программы и пользовательского интерфейса;
- произведена отладка программы.
ПЕРЕЧЕНЬ ССЫЛОК
1. Абрамов В.Г., Трифонов Н.П., Трифонова Г.Н. Введение в язык Паскаль. - М.: Наука, 1988.
2. Довгаль С.И., Литвинов Б.Ю., Сбитнев А..И. Персональные ЭВМ : Турбо Паскаль V7.0, объектное программирование, локальные сети. – Киев: Информсиситема сервис, 1993.
3. Епанешников А.М., Епанешникова В.А. Программирование в среде TurboPascal 7.0.-М.: Диалог –МИФИ,1999.
4. Зуев Е.А. Программирование на языке TurboPascal 6.0,7.0. – М.: Радио и связь, Веста,1993.
5. Кандзюба С.П., Громов В.Н. Delphi7.Базы данных и приложения. Лекции и упражнения. – К.: Издательство "ДиаСофт", 2001.
6. Климова Л.М. Pascal 7.0. Практическое программирование. Решение типовых задач. –М.:КУДИУ ОБРАЗ, 2000.
7. Марченко А. И., Марченко Л.А.. Программирование в среде TurboPascal7.0.-К.: Век+,1999.
8. ФароновВ.В. Turbo Pascal 7.0. Начальный курс. - М.: Нолидж, 2000.
9. Методические указания к выполнению курсовой работы по дисциплине "Программирование" /Сост.: Н.С. Семенова, С.А. Сафонова – Северодонецк: Изд-во СТИ ВНУ, 2006. - 37с.
ПРИЛОЖЕНИЯ
Приложение А
Схема алгоритма программы
Приложение А (продолжение)
Приложение А (продолжение)
Приложение Б
Листинг программы
unitUnit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids;
type
TForm1 = class(TForm)
gbRazmer: TGroupBox;
lbN: TLabel;
lbM: TLabel;
edN: TEdit;
edM: TEdit;
buRazmer: TButton;
gbMatrix1: TGroupBox;
sgMatrix1: TStringGrid;
buRandom: TButton;
gbMatr2: TGroupBox;
sgMatrix2: TStringGrid;
buPerest: TButton;
gbOsob: TGroupBox;
buOsob: TButton;
lbOsob1: TLabel;
lbOsob2: TLabel;
buZapoln: TButton;
sgMatrix3: TStringGrid;
procedure FormCreate(Sender: TObject);
procedure buRazmerClick(Sender: TObject);
procedure buRandomClick(Sender: TObject);
procedure buPerestClick(Sender: TObject);
procedure buOsobClick(Sender: TObject);
procedure buZapolnClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
n,m : integer;
matr1, matr2, matr3: array [1..20, 1..20] of integer;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
Randomize; // включить генератор случайных чисел
end;
procedure TForm1.buRazmerClick(Sender: TObject);
var i: integer;
begin
// установить размер матрицы
n:= StrToInt(edN.Text);
m:= StrToInt(edM.Text);
// визуальное отображение
sgMatrix1.RowCount:= n+1;
sgMatrix1.ColCount:= m+1;
for i:= 1 to n do
sgMatrix1.Cells[0, i]:= IntToStr(i);
for i:= 1 to m do
sgMatrix1.Cells[i, 0]:= IntToStr(i);
sgMatrix2.RowCount:= n+1;
sgMatrix2.ColCount:= m+1;
for i:= 1 to n do
sgMatrix2.Cells[0, i]:= IntToStr(i);
for i:= 1 to m do
sgMatrix2.Cells[i, 0]:= IntToStr(i);
sgMatrix3.RowCount:= n+1;
sgMatrix3.ColCount:= m+1;
for i:= 1 to n do
sgMatrix3.Cells[0, i]:= IntToStr(i);
for i:= 1 to m do
sgMatrix3.Cells[i, 0]:= IntToStr(i);
end;
procedure TForm1.buRandomClick(Sender: TObject);
var i, j: integer;
begin
for i:= 1 to n do
for j:= 1 to m do
begin
matr1[i, j]:= random(11);
sgMatrix1.Cells[j, i]:= IntToStr(matr1[i, j]);
end;
end;
procedure TForm1.buZapolnClick(Sender: TObject);
var i, j: integer;
begin
for i:= 1 to n do
for j:= 1 to m do
begin
matr1[i, j]:= StrToInt(sgMatrix1.Cells[j, i]);
end;
end;
procedure TForm1.buPerestClick(Sender: TObject);
var i, j, k: integer;
begin
// формирование переставленной матрицы
forj:= 1 to (mdiv 2) do
for i:= 1 to n do
begin
matr2[i, j]:= matr1[i, m-j+1];
matr2[i, m-j+1]:= matr1[i, j];
end;
// проверка если стобцов нечетное число, то средний столбец остается без изменений
if (m mod 2)<>0 then
for i:= 1 to n do
matr2[i, m div 2+1]:= matr1[i, m div 2+1];
// отображение переставленной матрицы
fori:= 1 tondo
for j:= 1 to m do
begin
sgMatrix2.Cells[j, i]:= IntToStr(matr2[i, j]);
end;
end;
procedure TForm1.buOsobClick(Sender: TObject);
var
i, j, l, osob1, osob2, k: integer;
fLev, fPrav: boolean;
begin
// подсчетособыхв 1 матрице
osob1:= 0;
for i:= 1 to n do
for j:= 2 to m-1 do
begin
k:= matr1[i, j];
// сравнение слева от текущего элемента (если он не первый)
begin
fLev:= true;
for l:= 1 to j-1 do
if matr1[i, l]>=k then fLev:= false;
end;
// сравнение справа от текущего элемента (если он не последний)
fPrav:= true;
for l:= j+1 to m do
if matr1[i, l]<=k then fPrav:= false;
if fLev and fPrav then osob1:= osob1+1;
end;
lbOsob1.Caption:= 'Число "особых" элементоввматрице1 = '+ IntToStr(osob1);
// подсчет особых вo 2 матрице
osob2:= 0;
for i:= 1 to n do
for j:= 2 to m-1 do
begin
k:= matr2[i, j];
// сравнение слева от текущего элемента (если он не первый)
begin
fLev:= true;
for l:= 1 to j-1 do
if matr2[i, l]>=k then fLev:= false;
end;
// сравнение справа от текущего элемента (если он не последний)
fPrav:= true;
for l:= j+1 to m do
if matr2[i, l]<=k then fPrav:= false;
if fLev and fPrav then osob2:= osob2+1;
end;
lbOsob2.Caption:= 'Число "особых" элементоввматрице2 = '+ IntToStr(osob2);
// формирование отсортированной матрицы
if osob1>= osob1 then
matr3:= matr1
else
matr3:= matr2;
for i:= 1 to n do
for j:= m downto 2 do
for l:= 1 to m-1 do
if matr3[i, l] < matr3[i, l+1] then
begin
k:=matr3[i, l] ;
matr3[i, l]:=matr3[i, l+1];
matr3[i, l+1]:=k;
end;
// отображение переставленной матрицы
fori:= 1 tondo
for j:= 1 to m do
begin
sgMatrix3.Cells[j, i]:= IntToStr(matr3[i, j]);
end;
end;
end.