Учебная работа. Реферат: Програмирование на языке Паскаль

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...
Контрольные рефераты

Учебная работа. Реферат: Програмирование на языке Паскаль

Программирование на языке ПАСКАЛЬ

Содержание

Введение______________________________________________________________3

1 Задание на курсовую работу ________________________________________3

2 Анализ задания ___________________________________________________3

3 Разработка структур данных ________________________________________4

4 Разработка алгоритмов_____________________________________________5

5 текст программы__________________________________________________9

6 Тестирование программы___________________________________________20

7 Управление юзера __________________________________________22

Заключение____________________________________________________________26

Перечень использованных источников_______________________________________26


Введение

Система программирования Турбо Паскаль представляет собой единство 2-ух в известной степени самостоятельных начал: компилятора с языка программирования Паскаль и некой инструментальной программной оболочки, содействующей увеличению эффективности сотворения программ.

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

Модули представляют собой красивый инструмент для разработки библиотек прикладных программ и массивное средство модульного программирования. В Турбо Паскале имеется 8 обычных модулей, в каких содержится огромное число различных типов, констант, процедур и функций.

1 Задание на курсовую работу


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

2 анализ задания

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

должен быть разработан пользовательский интерфейс, который бы обеспечил наиболее комфортную и приятную работу с программкой. Данная программка обязана делать последующие деяния:

— ввод данных с клавиатуры и из файла;

— обработку данных в согласовании с заданием;

— вывод результата на экран и в файл;

— интерфейс юзера в текстовом режиме, содержащий меню (с подменю) и окна;

— обеспечивать разные методы ввода и вывода данных;

— применять способности модуля CRT;

— применять структуры данных;

— программный код в виде процедур и функций;

— применять программирование клавиатуры;

— применять манипулятор «мышь»;

— применять динамические структуры данных;

— свой модуль.

3 Разработка структур данных

Главные переменные:

Mxx – начальная целочисленная матрица (максимум 10х10);

Per – целочисленные элементы периметра;

N, M – количество строк и столбцов матрицы;

L – количество частей по периметру подматрицы;

mf – флаг ввода начальной матрицы – true, false– матрица не введена;

fileresu, filework – текстовые файлы с начальной матрицей и с результатом соответственно;

fil – метод вывода результата true – в файл, false – на дисплее в окне;

f – метод получения результата false– все подматрицы либо true– по условию.

Обычные модули: crt, app, objects, menus, drivers, views, dialogs, msgbox, memory, dos, stddlg, editors и свой модуль: mod_matr.

4
Разработка алгоритмов

Опишем главные процедуры и функции программки.

Процедура GetRandomMatrix.

Процедура автоматического ввода матрицы со значениями.

Схема метода данной процедуры представлена на рисунке 1.

Набросок 1 – Схема метода процедуры GetRandomMatrix.

3 блок – вводим количество строк n, количество столбцов m и наибольшее predзначение элемента матрицы, 4-6 блоки – вводим случайные элемента матрица, не превышая pred, 7 блок – устанавливаем флаг в true, т. е. матрица введена, 8 блок – выводим матрицу в окне программки.

Процедура InputMatrix.

Процедура ввода матрицы со значениями вручную.

Схема метода данной процедуры представлена на рисунке 2.

Набросок 2 – Схема метода процедуры InputMatrix.

3 блок – вводим количество строк n, количество столбцов m, 4-6 блоки – вводим элементы матрицы, 7 блок – устанавливаем флаг в true, т. е. матрица введена, 8 блок – выводим матрицу в окне программки.

Процедура Sort.

Процедура сортировки значений периметра подматрицы по возрастанию.

Схема метода данной процедуры представлена на рисунке 3.

Набросок 3 – Схема метода процедуры Sort.

2, 3 блок – перебираем элементы периметра подматрицы, 4 блок – сравниваем текущее значения местами.

Процедура GetPerimetr.

Процедура определения частей подматрицы по периметру.

Схема метода данной процедуры представлена на рисунке 4.

Набросок 4 – Схема метода процедуры GetPerimetr.

2, 3 блок – обнуляем значения частей периметра, 4 блок – количество частей в перимерте = 1, 5, 6 блоки – перебираем элементы столбца периметра и заносим в массив per, 7, 8 блоки – перебираем элементы строчки периметра и заносим в массив per, 9 блок – заносим в переменную l количество частей в периметре подматрицы.

Функция GeomProg.

Функция определения геометрической прогрессии из частей периметра подматрицы.

Схема метода данной функции представлена на рисунке 5.

Набросок 5 – Схема метода процедуры GeomProg.

2 блок – вызов процедуры сортировки, 3 блок – флаг образования геометрической прогрессии, 4 блок – 2-ое

5
текст программки

programMTRKW; {
}

uses

mod_matr;

begin

Randomize;

matrix_perim.init;

matrix_perim.run;

matrix_perim.done;

end.

Unit mod_matr; {
}

interface

uses

crt,app,objects,menus,drivers,views,dialogs,msgbox,memory,dos,stddlg,editors;

const

cmwork=203; cmvvod=206; cmvval=207; cmvvse=204; cmvusl=205; cmvhel=257; cmisfl=208;

cmfilv=209; cmfilu=210;

wincoml:Tcommandset=[cmvvse,cmvusl,cmwork,cmfilv,cmfilu]; {

}

wincom2:tcommandset=[cmvvod,cmvval,cmisfl]; {

}

type

pinputwindow=^tinputwindow;

tinputwindow=object(tdialog)

procedure handleevent(var event:tevent);virtual;

end;

pwind=^twin;

twin=object(twindow)

constructor init(bounds:trect);

end;

pinterior=^tinterior;

tinterior=object(tscroller)

constructor init(var bounds:trect; hs,vs:pscrollbar);

procedure handleevent(var event:tevent);virtual;

end;

tmatrix=object(tapplication)

procedure initstatusline; virtual;

procedure initmenubar; virtual;

procedure handleevent(var event:tevent); virtual;

procedure inputmatrix;

procedure getrandommatrix;

procedure main(f:boolean);

procedure PrintMatrix ;

procedure fileinput;

procedure fileoutputv(f:boolean);

end;

tdata=record

col:string[4];

row:string[4];

max:string[4];

end;

var

matrix_perim:Tmatrix;

x,y:integer;

const

MAX = 10; {
}

type

Matrix = array [1..MAX,1..MAX] of integer;

Perim = array [1..MAX*4] of integer;

var

wind:pwind;

Mxx:Matrix; {

}

N,M:integer; {
}

l:integer; {
}

per:Perim; {

}

mf:boolean; {

}

data:tdata;

matr_v:array[1..10] of string;

fileresu,filework:text; {
}

fil:boolean; {


}

implementation

procedure readmas;


var

i,j:integer;

s:string;

sr:string[3];

begin

s:=»;

for i:=1 to n do

begin

for j:=1 to m do

begin

str(mxx[i,j],sr);

s:=s+sr+’ ‘;

end;

matr_v[i]:=s;

s:=»;

end;

end;

{_______________________________________________}

constructor tinterior.init;{
}

begin

tscroller.init(bounds,hs,vs);

growmode:=gfgrowhix+gfgrowhiy;

setlimit(8000,7000);

end;

{_______________________________________________}

procedure tinterior.handleevent(var event:tevent); {

}

var

r:tpoint;

location:word;

begin

location:=0;

tscroller.handleevent(event);

case event.what of

evmousedown:

begin

makelocal(mousewhere,r);

location:=delta.y+r.y;

scrolldraw

end;

evkeydown:

case event.keycode of

kbgrayminus:if location>delta.y then

begin

dec(location); scrolldraw

end;

kbgrayplus:if location<delta.y+pred(size.y) then

begin

inc(location);

scrolldraw

end;

end;

end;

end;

{_______________________________________________}

constructor twin.init(bounds:trect); {

}

var

hs,vs:pscrollbar;

interior:pinterior;

begin

twindow.init(bounds,»,0);

getcliprect(bounds);

bounds.grow(-1,-1);

vs:=standardscrollbar(sbvertical+sbhandlekeyboard); hs:=standardscrollbar(sbhorizontal+sbhandlekeyboard);

interior:=new(pinterior,init(bounds,hs,vs));

insert(interior);

readmas;

end;

{_______________________________________________}

procedure tinputwindow.handleevent;

begin

inherited handleevent(event);

if event.what=evcommand then

endmodal(event.command);

end;

{_______________________________________________}

procedure tmatrix.PrintMatrix; {




}

var

i,j:integer; {
}

sr:string;

r:trect;

begin

r.assign(0,0,80,23);

wind:=new(pwind,init(r));

desktop^.insert(wind);

with wind^ do

begin

r.assign(2,1,70,3);

insert(new(pstatictext,init(r,’Рабочая матрица:’)));

for i:=1 to n do

begin

for j:=1 to m do

begin

str(mxx[i,j],sr);

r.assign(1+j*4,1+i,4+j*4,3+i);

insert(new(pstatictext,init(r,sr))); {

}

end;

end;

r.assign(2,i+2,70,4+i); insert(new(pstatictext,init(r,’_____________________________________________’)));

end;

end;

{_______________________________________________}

procedure tmatrix.initmenubar; {


}

var

r:trect;

begin

getextent(r);

r.b.y:=succ(r.a.y);

menubar:=new(pmenubar,init(r,newmenu(

newsubmenu(‘Ввод’,hcnocontext,

newmenu(

newitem(‘Ручной’,’F3′, kbf3,cmvvod,hcnocontext,

newitem(‘Автоматический’,’F4′,kbf4,cmvval,hcnocontext,

newitem(‘Из файла’,’F7′,kbf7,cmisfl,hcnocontext,

newline(

newitem(‘Выход’,’Alt+X’,kbaltx,cmquit,hcnocontext,nil)))))),

newsubmenu(‘Итог’,hcnocontext,

newmenu(

newitem(‘Все подматрицы’,’F5′, kbf5,cmvvse,hcnocontext,

newitem(‘По условию’,’F6′,kbf6,cmvusl,hcnocontext,

newline(

newitem(‘Записать все’,’F7′, kbf7,cmfilv,hcnocontext,

newitem(‘Записать по условию’,’F8′,kbf8,cmfilu,hcnocontext,

nil)))))),

newitem(‘О программке’,’F1′, kbf1,cmvhel,hcnocontext,nil))) )))

end;

{_______________________________________________}

procedure tmatrix.initstatusline; {


}

var

r:trect;

begin

getextent(r);

r.a.y:=pred(r.b.y);

statusline:=new(pstatusline,init(r,newstatusdef(0,$ffff,newstatuskey(‘Alt+X-Выход’,kbAltX, cmQuit,nil),nil)));

disablecommands(wincoml);

enablecommands(wincom2)

end;

{_______________________________________________}

procedure tmatrix.GetRandomMatrix; {


}

var

i,j:integer;{
}

a,pred,s_i,s_j,s_pred:integer;

r:trect; col,row,max: PInputLine;

inputwindow,inputw:pinputwindow;

begin

r.assign(15,5,65,16);

inputwindow:=new(pinputwindow, Init(r, ‘Автоматический ввод’));

withinputwindow^ do

begin{
}

r.Assign(37,2,45,3);

col:=New(PInputLine, Init(r,4));

Insert(col); r.Assign(2,2 , 35,3);

Insert(New(PLabel, Init(r, ‘количество строк матрицы’, col)));

r.Assign(37,4,45,5);

row:=New(PInputLine, Init(r,4));

Insert(row); r.Assign(2,4,35,5);

Insert(New(PLabel, Init(r, ‘количество столбцов матрицы’, row)));

r.Assign(37,6,45,7);

max:=New(PInputLine, Init(r,4)) ;

Insert(max); r.Assign(2,6,35,7);

Insert(New(PLabel, Init(r, ‘Наибольшее

r.Assign(19,8,32,10);

Insert(New(PButton, Init(r, ‘OK’, cmOk, bfdefault)));

end;

if desktop^.execview(inputwindow)=cmok then

begin{
}

inputwindow^.getdata(data);

val(data.col,n,s_i);

val( data.row,m,s_j) ;

val(data.max,pred,s_pred) ;

for i:=1 to N do

for j:=1 to M do

begin

a:=random(pred)+1;

Mxx[i,j]:=a;

end;

mf:=true; {
}

dispose(inputwindow,done);

enablecommands(wincoml);

tmatrix.printmatrix; {в


}

end;

end;

{_______________________________________________}

procedure tmatrix.InputMatrix; {


}

var

i,j,s_i,s_j:integer; {
}

a:integer;

r:trect;

col,row,c: PInputLine;

inputwindow,inputw:pinputwindow;

s,t:string;

begin

r.assign(15,5,65,16);

inputwindow:=new(pinputwindow, Init(r, ‘Ручной ввод’));

with inputwindow^ do

begin{
}

r.Assign(37,2,45,3);

col:=New(PInputLine, Init(r,4));

Insert(col);

r.Assign(2,2 , 35,3);

Insert(New(PLabel, Init(r, ‘количество строк матрицы’, col)));

r.Assign(37,4,45,5);

row:=New(PInputLine, Init(r,4));

Insert(row);

r.Assign(2,4,35,5);

Insert(New(PLabel, Init(r, ‘количество столбцов матрицы’, row)));

r.Assign(19,8,32,10);

Insert(New(PButton, Init(r, ‘OK’, cmOk, bfdefault)));

end;

if desktop^.execview(inputwindow)=cmok then

begin{
}

inputwindow^.getdata(data);

val(data.col,n,s_i);

val( data.row,m,s_j);

dispose(inputwindow,done);

for i:=1 to N do

for j:=1 to M do

begin

str(i,t);

str(j,s);

r.assign(15,5,65,16);

inputwindow:=new(pinputwindow, Init(r, ‘Ввод элемента матрицы’));

with inputwindow^ do

begin

r.Assign(2,4,35,5);

Insert(New(PLabel, Init(r, ‘Элемент матрицы’+'[‘+t+’,’+s+’]’, c)));

r.Assign(37,4,45,5);

Insert(New(PInputLine, Init(r,4)));

r.Assign(19,8,32,10);

Insert(New(PButton, Init(r, ‘OK’, cmOk, bfdefault)));

end;

if desktop^.execview(inputwindow)=cmok then

begin{

}

inputwindow^.getdata(data);

val(data.col,a,s_i);

Mxx[i,j]:=a;

dispose(inputwindow,done);

end;

end;

mf:=true; {
}

enablecommands(wincoml);

tmatrix.printmatrix; {в


}

end;

end;

{_______________________________________________}

procedure tmatrix.fileinput; {



}

var

pf:pfiledialog;

s:pathstr;

x:char;

i,j:integer;{
}

begin

new(pf,init(‘*.txt’,’Изберите подходящий файл:’,’Название файла’,fdopenbutton,0));

if desktop^.execview(pf)=stddlg.cmfileopen then

begin{
}

pf^.getfilename(s);

assign(filework,s);

reset(filework); {
}

enablecommands(wincoml);

dispose(pf,done);

i:=1;

j:=1;

while not eof(filework ) do

begin

while not eoln(filework) do

begin

read(filework,mxx[i,j]); {
}

read(filework,x);

j:=j+1;

n:=i;

m:=j-1;

end;

j:=1;

i:=i+1;

readln(filework);

end;

close(filework);{
}

tmatrix.printmatrix; {


}

end;

end;

{_______________________________________________}

procedureSort; {
}

var

i,j:integer; {
}

p:integer; {
}

begin

for i:=2 to l do

for j:=l downto i do

if per[j-1]>per[j] then

begin{
}

p:=per[j-1];

per[j-1]:=per[j];

per[j]:=p;

end;

end;

{_______________________________________________}

procedure GetPerimetr(n_1,m_1,n_2,m_2:integer); {



}

var

i:integer;{
}

k:integer;

begin{
}

for i:=1 to 2*N+2*M do

per[i]:=0;

k:=1;

fori:=m_1 tom_2 do {
}

begin

per[k]:=Mxx[n_1,i];

per[k+1]:=Mxx[n_2,i];

inc(k,2)

end;

fori:=(n_1+1) to (n_2-1) do {
}

begin

per[k]:=Mxx[i,m_1];

per[k+1]:=Mxx[i,m_2];

inc(k,2)

end;

dec(k,2);

l:=k;

inc(l);

end;

{_______________________________________________}

procedure PrintSubMatrix(n_1,m_1,n_2,m_2:integer); {




}

var

i,j,k,l:integer;

r:trect;

s,sr:string;

begin

with wind^ do

begin

r.assign(2,n+4,70,n+20);

insert(new(pstatictext,init(r,’ ‘)));

end;

for i:=n_1 to n_2 do

begin

for j:=m_1 to m_2 do

begin

str(mxx[i,j],sr);

with wind^ do

begin

r.assign(1+j*4,1+i+n+6,4+j*4,n+3+i+7);

insert(new(pstatictext,init(r,sr)));

end;

end;

end;

readkey;

end;

{_______________________________________________}

procedure PrintSubMatrixfile(n_1,m_1,n_2,m_2:integer); {





}

var

i,j,k,l:integer;

begin

for i:=n_1 to n_2 do

begin

for j:=m_1 to m_2 do

write(fileresu,mxx[i,j]:3,’ ‘);

writeln(fileresu);

end;

writeln(fileresu);

writeln(fileresu);

end;

{_______________________________________________}

functionGeomProg:boolean; {
}

var

i:integer;

dv:real;

begin

Sort; {
}

GeomProg:=true;

dv:=per[2]/per[1];

for i:= 2 to l-1 do

if per[i+1]/per[i]<>dv then

begin

GeomProg:=false;

break;

end;

end;

{_______________________________________________}

procedure tmatrix.Main(f:boolean); {

}

var

Sn,Sm,Snn,Smm:integer; {


}

begin

Sn:=2;

Sm:=2;

Snn:=1;

Smm:=1;

while (Sn<>N) or (Sm<>M) do {

}

begin

GetPerimetr(Snn,Smm,(Snn+Sn)-1,(Smm+Sm)-1); {





}

if f then {

}

begin

ifGeomProgthen{
}

if fil then {

}

PrintSubMatrixfile(Snn,Smm,(Snn+Sn)-1,(Smm+Sm)-1)

else {
}

PrintSubMatrix(Snn,Smm,(Snn+Sn)-1,(Smm+Sm)-1);

end

else {

}

if fil then {

}

PrintSubMatrixfile(Snn,Smm,(Snn+Sn)-1,(Smm+Sm)-1)

else{
}

PrintSubMatrix(Snn,Smm,(Snn+Sn)-1,(Smm+Sm)-1);

if (Smm+Sm)<=M then

inc(Smm)

else

begin

if (Snn+Sn)<=N then

begin

inc(Snn);

Smm:=1;

end

else

begin

if Sm = M then

begin

Sm:=2;

inc(Sn);

snn:=1;

smm:=1;

end

else

begin

snn:=1;

smm:=1;

inc(sm)

end;

end;

end;

end;

GetPerimetr(1,1,N,M); {
}

if f then {

}

begin

ifGeomProgthen{
}

if fil then {

}

PrintSubMatrixfile(1,1,n,m)

else {
}

PrintSubMatrix(1,1,N,M);

end

else {

}

if fil then {

}

PrintSubMatrixfile(1,1,n,m)

Else{
}

begin

PrintSubMatrix(1,1,N,M);

readkey;

end;

end;

{_______________________________________________}

procedure tmatrix.fileoutputv(f:boolean); {




}

var

pf:pfiledialog;

s:pathstr;

x:char;

i,j:integer;

begin

new(pf,init(‘*.txt’,’Изберите подходящий файл:’,’Название файла’,fdopenbutton,0));

if desktop^.execview(pf)=stddlg.cmfileopen then

begin

pf^.getfilename(s);

assign(fileresu,s);

rewrite(fileresu); {
}

fil:=true;

if f then {

}

tmatrix.main(true)

else{
}

tmatrix.main(false);

dispose(pf,done);

close (fileresu);{
}

end;

fil:=false;

end;

{_______________________________________________}

procedure tmatrix.handleevent(var event:tevent);

var

r:trect;

i:integer;

begin

if event.what=evcommand then

case event.command of

cmisfl:tmatrix.fileinput;

cmfilu:tmatrix.fileoutputv(true);

cmfilv: tmatrix.fileoutputv(false);

cmvvod:tmatrix.inputmatrix;

cmvval:tmatrix.getrandommatrix;

cmvhel:messagebox(#3’Вывод подматриц,’#13+#3’периметр которых -‘#13+#3’геометрическая прогрессия’#13+ #3’Алексей 2010’,nil,mfinformation or mfokbutton);

cmvvse:

begin

with wind^ do

begin

r.assign(2,n+3,70,n+5);

insert(new(pstatictext,init(r,’Все подматрицы:’)));

end;

tmatrix.main(false);

end;

cmvusl:

begin

with wind^ do

begin

r.assign(2,n+3,70,n+5 );

insert(new(pstatictext,init(r,’Подматрицы, у каких периметр — геометрическая прогрессия: ‘)));

end;

tmatrix.main(true);

end;

cmQuit: if messagebox(#3’Окончить работу?’,nil,mfconfirmation or mfokcancel)=cmcancel then clearevent(event);

else

exit

end;

inherited handleevent(event);

end;

{_______________________________________________}

end.

6 Тестирование программки

Объектом испытаний является разработанная программка. Целью испытаний является проверка соответствия программного продукта поставленным требованиям.

Для проведения испытаний данные вводились с клавиатуры. Размерность тестируемой матрицы 3 – строчки, 4 – столбца. Начальная матрица (набросок 6):

Набросок 6 – Начальная рабочая матрица

На рисунке 7 представлен итог работы программки по условию (набросок 2).

Набросок 7 – Итог работы программки в текстовом виде

Также, проводилось тестирование с разными примерами, которые тут не приведены, но которые также проявили верный итог.

Таковым образом, тестирование прошло удачно.

7 Управление юзера

Пуск программки осуществляется нажатием Enter на имени файла: A: matr.exe.

Опосля пуска программки покажется пользовательское меню, которое показано на рисунке 8.

Набросок 8 – Окно программки

Это меню содержит:

1 Ввод: «Ручной», «Автоматический», «Из файла» и «Выход» (набросок 9).

Набросок 9

2 Итог: «Все подматрицы», «По условию», «Записать все» и «Записать по условию» (набросок 10).

Набросок 10

3 О программке (набросок 11).

Набросок 11

Перемещение по кнопочкам осуществляется кнопками клавиатуры, а конкретно стрелками ввысь ­ , вниз ¯, на Право ®, на лево ¬, или мышкой.

Ввод данных можно производить вводом вручную, автоматом и из файла.

При нажатии клавиши Enter по кнопочке с надписью «Ручной», покажется окно (набросок 12):

Набросок 12 – Ручной ввод

нужно будет ввести количество строк и столбцов матрицы. Потом жмем кнопку «ОК», возникает окно (набросок 13) и вводим элементы матрицы.

Набросок 13 – Ввод элемента матрицы

По окончанию ввода частей матрицы итог покажется в окне (набросок 14).

Набросок 14 – Рабочая матрица

При нажатии клавиши Enter по кнопочке с надписью «Автоматический», покажется окно (набросок 15):

Набросок 15 – Автоматический ввод

нужно будет ввести количество строк и столбцов матрицы, также наибольшее

При нажатии клавиши Enter по кнопочке с надписью «Из файла», покажется окно (набросок 16):

Набросок 16 – Из файла

нужно будет избрать текстовый файл с матрицей. Потом жмем кнопку «Open» и итог покажется в окне (набросок 14).

Опосля ввода данных можно приступать к обработке.

При нажатии клавиши Enter по кнопочке с надписью «Все подматрицы», будут появляться все подматрицы рабочей матрицы в окне, нажимая всякую клавишу клавиатуры (набросок 17).

Набросок 17 – Все подматрицы

При нажатии клавиши Enter по кнопочке с надписью «По условию», будут появляться все подматрицы, по периметру которых размещены элементы, из которых можно образовать геометрическую прогрессию, нажимая всякую клавишу клавиатуры (набросок 18).

Набросок 18 –Геометрическая прогрессия

При нажатии клавиши Enter по кнопочке с надписью «Записать все», покажется окно (набросок 19), где нужно ввести имя файла и пространство его сохранения на диске. В итоге все подматрицы запишутся в файл.

Набросок 19 – Запись в файл

При нажатии клавиши Enter по кнопочке с надписью «Записать по условию», покажется окно (набросок 19), где нужно ввести имя файла и пространство его сохранения на диске. В итоге все подматрицы по условию запишутся в файл.

При нажатии клавиши Enter по кнопочке с надписью «Выход», вы выйдите из программки.

Заключение

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

В процессе выполнения работы создано управление юзера и составлена объяснительная записка. Объяснительная записка оформлена в согласовании с работающим эталоном академии СТП.101.-2002.

Разработанный программный продукт отвечает требованиям задания, что подтверждается плодами тестирования.

программка работает в хоть какой операционной системе Windows и не приводит к зависанию компа и работает без сбоев.

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

1 Фаронов В.В. Турбо Паскаль. Исходный курс. Учебное пособие – М.: “Нолидж”, 2000.

]]>