Упорядочивание элементов файла
СодержаниеЗаданиеБлок схемаЛистинг исходного файла программыСнимки с экрана при работе программы1. ЗаданиеНаписать программу упорядочивания элементов файлов.Описать запись с именем Bill, содержащую следующие поля:- расчётный счёт плательщика;- расчётный счёт получателя;- перечисляемая сумма в рублях.2) Написать программу, выполняющую следующие действий:- ввод данных с клавиатуры в массив, состоящий из 8 элементов типа Bill; записи должны быть упорядочены в алфавитном порядке по расчетным счетам плательщиков;- вывод на экран информации о сумме снятой с расчётного счёта плательщика, введённого с клавиатуры; если такого расчётного счёта нет, вывести на экран соответствующие сообщение;- запись массива в файл под заданным с клавиатуры именем.2. Блок схемаРис 1. Блок-схема алгоритма основной программыРис2. Блок-схема процедуры ввода данных в списокРис 3. Блок-схема процедуры вывода данных из списка на дисплейРис4. Блок-схема процедуры ввода данных в список из файла записейРис5. Блок-схема процедуры поиска данных в спискеРис 6. Блок-схема процедуры записи данных списка в файлЛистинг исходного файла программыprogram Prog1;usesCrt;constMaxRecCount = 8;typeTBill = recordChetPlatel: string [30];ChetPoluch: string [30];SummaPlateja: real;end;TRecArr = array [1..MaxRecCount] of TBill;varRecArr: TRecArr;Bill: TBill;RecCount: integer;FileName: string [15];c: char;procedure RecArrInit(var RecArr: TRecArr);vari: integer;beginfor i:= 1 to MaxRecCount dobeginRecArr[i].ChetPlatel:= '';RecArr[i].ChetPoluch:= '';RecArr[i].SummaPlateja:= 0endend;function FillRecArr(var RecArr: TRecArr): integer;vari, n: integer;c: char;beginFillRecArr:= 0;i:= 0;while i < MaxRecCount dobeginc:= #0;WriteLn('Do you want insert new record in list?(y/n)');c:= ReadKey;if (c in ['n', 'N', #27]) then Break;ClrScr;Inc(i);Write('Please get Pay #', i, ' :');ReadLn(RecArr[i].ChetPlatel);Write('Please get Dest #', i, ' :');ReadLn(RecArr[i].ChetPoluch);repeatWrite('Please get summ :');{$I-}ReadLn(RecArr[i].SummaPlateja);{$I+}n:= IOResult;if n <> 0 thenWriteLn('The summ is fault.Try again.');until n = 0;ClrScrend;FillRecArr:= i;end;procedure PrintRecArr(RecArr: TRecArr);vari: integer;beginClrScr;for i:= 1 to MaxRecCount doif RecArr[i].ChetPlatel <> '' thenbeginWriteLn('Pay #', i, ' : ', RecArr[i].ChetPlatel);WriteLn('Dest #', i, ' : ', RecArr[i].ChetPoluch);WriteLn('Pay summ', i, ' : ', RecArr[i].SummaPlateja:8:2);WriteLn('--------------------------');endend;procedure FindInRecArr(RecArr: TRecArr);vari: integer;isFind: boolean;s: string [30];summ: real;