Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Замечание. Стандартные процедуры и функции для работы с любыми файлами




Стандартные процедуры и функции для работы с любыми файлами

Var

Begin

Else

Else

Begin

Begin

Var

Else

End

Begin

Else

End

Begin

Else

End

Begin

Else

End

Begin

Begin

Else

IfDown(i, j) then

Else

IfRight(i, j) then

Begin

Begin

Var

Begin

Begin

Begin

Begin

Var

Begin

Begin

Var

Begin

Begin

Var

Var

Type

Const

Uses

SysUtils;

 

mMax = 20;

nMax = 20;

 

MyRecord = record

CellPrice, PathPrice: integer;

Direction: char;

end;

 

MyArray = array [1.. mMax, 1.. nMax] of MyRecord;

 

m, n, p: integer;

A: MyArray;

 

procedure InitArray(var C: MyArray);

i, j: integer;

Randomize;

 

m:= 3 + Random(mMax – 2);

n:= 3 + Random(nMax – 2);

Writeln('m=', m, ' n=', n);

 

for i:= 1 to m do

for j:= 1 to n do

C[i][j].CellPrice:= Random(mMax + nMax);

C[i][j].PathPrice:= 0;

C[i][j].Direction:= '?';

end;

end;


procedure ShowPrices(var C: MyArray);

i, j: Integer;

Writeln('ShowPrices');

 

for i:= 1 to m do

for j:= 1 to n do

Write(C[i][j].CellPrice: 5);

 

Writeln;

end;

end;

 


procedure ShowDirections(var C: MyArray);

i, j: integer;

Writeln('ShowDirections');

 

for i:= 1 to m do

for j:= 1 to n do

Write(C[i][j].Direction: 3);

 

Writeln;

end;

end;

 


function Right(i, j: integer): boolean;

if j < n then Right:= true else Right:= false;

end;

 

function Down(i, j: integer): boolean;

if i < m then Down:= true else Down:= false;

end;

 

 


procedure BestPathNonRecoursive(var C: MyArray);

i, j, k, ir, id: integer;

 

C[m][n].PathPrice:= 0;

 

for k:= m + n - 1 downto 1 do

for i:= m downto 1 do

j:= k - i;

if j > n then break;

if j < 1 then continue;

 


ir:= C[i][j + 1].CellPrice + C[i][j + 1].PathPrice

ir:= -1;

 

id:= C[i + 1][j].CellPrice + C[i + 1][j].PathPrice

id:= -1;

 


if (ir >= 0) and (id >= 0) then

if ir < id then

C[i][j].Direction:= 'r';

C[i][j].PathPrice:= ir;

C[i][j].Direction:= 'd';

C[i][j].PathPrice:= id;

end;


if ir >=0 then

C[i][j].Direction:= 'r'; C[i][j].PathPrice:= ir;

if id >= 0 then

C[i][j].Direction:= 'd'; C[i][j].PathPrice:= id;

Halt;

end;

end;

 

 


procedure ShowPath(var C: MyArray; var p: integer);

 

k, i, j: integer;

i:= 1;

j:= 1;

 

 


for k:= 1 to m + n - 2 do

Write(' ', C[i][j].Direction);

if C[i][j].Direction = 'r' then

Inc(j)

if C[i][j].Direction = 'd' then

Inc(i)

Halt;

 

end;

 

Writeln;

end;


InitArray(A);

ShowPrices(A);

 

BestPathNonRecoursive(A);

ShowPath(A, p);

 

Writeln('Price of best path = ', p);

ShowDirections(A);

 

Readln;

end.

 


Тип «Денежный»

 

x: Currency;

 

Диапазон изменения: –922337203685477.5808 .. 922337203685477.5807

Объем памяти: 8 байт.


 

Синтаксис TP7:

procedure Assign(var F: <Файловый тип>; <Имя файла>: string);

Процедура связывает файловую переменную с реальным файлом.

 

procedure Erase(var F: <Файловый тип>);

Удаляет файл.

 

procedure Rename(var F: <Файловый тип>; <Новое имя файла>: string);

Переименовывает файл

 

procedure MKDir(<Имя папки>: string);

Создает пустую папку

 

procedure RMDir(<Имя папки>: string);

Удаляет пустую папку

 

function IOResult: integer;

Возвращает код ошибки при работе с файлом.

 

Синтаксис Delphi:

 

procedure AssignFile(var F: <Файловый тип>; <Имя файла>: string);

Процедура аналогична процедуре Assign.


 

Существуют альтернативные варианты процедур:

 

procedure Rename(var F <Файловый тип>; <Новое имя файла>: PChar);

 

procedure MKDir(<Имя папки>: PChar);

 

procedure RMDir(<Имя папки>: PChar);

 

PChar – специальный «строковый» тип, разговор о нём пойдёт позже.

 




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


Дата добавления: 2014-01-06; Просмотров: 341; Нарушение авторских прав?; Мы поможем в написании вашей работы!


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



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




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