Практическая обработка набора данных, представленного в виде файла
Чтобы создать НД, нужно выбрать в меню пункт «Создание НД». После выбора программа будет делать запросы на ввод каждого поля элемента, после введения элемента программа запрашивает подтверждения на ввод ещё одного элемента. После окончания создания НД программа вернется в меню. Создадим НД (рисунок 2). Для сохранения НД в файле нужно выбрать в меню пункт «Сохранение НД в файле», после этого… Читать ещё >
Практическая обработка набора данных, представленного в виде файла (реферат, курсовая, диплом, контрольная)
Введение
Целью данной курсовой работы является практическая обработка набора данных, представленного в виде файла. В данной работе необходимо обеспечить реализацию следующих запросов к заданному множеству структурированной информации:
1 Создание набора данных (МД).
2 Добавление новых элементов в конец МД.
3 Просмотр всех элементов МД.
4 Поиск элемента по номеру.
5 Переход к работе с другим МД.
В соответствии с заданием моего варианта необходимо обеспечить реализацию двух запросов к заданному множеству структурированной информации:
6 Вставка нового элемента перед текущим элементом.
7 Сохранение всех элементов в другом МД.
Множество данных должно представлять собой информацию об породах собак:
1 средняя продолжительность жизни (longint).
2 рост (integer).
3 название (string).
4 тип: служебная, декоративная, охотничья, другая (перечислимый тип).
Условия и ограничения, которые должны быть соблюдены при написании данного программного комплекса:
1 Главную процедуру программы с реализацией простейшего меню следует определить в отдельном модуле.
2 Процедуры, реализующие запросы, должны быть размещены в одном или более модулях.
3 Глобальные данные использовать нельзя.
4 На экран выводить элементы в виде таблицы (один элемент — одна строка таблицы).
5 Если после выполнения запроса изменяется хотя бы один элемент, то заканчивать запрос выводом всего множества элементов.
6 Тестами к заданиям служат 2 текстовых файла с правдоподобной информацией.
1 Описание программного комплекса
1.1 Структура программного комплекса
Программный комплекс состоит из одного модуля, который содержит процедуры, реализующие запросы, модуля, содержащего главную процедуру и исполняемой программы, вызывающей главную процедуру.
Главная программа подключает следующие модули: crt, menu, zaprosi.
В основной программе реализован вывод массива меню действий и выбор с помощью оператора case.
Псевдокод программы Kyrsov:
uses menu, zaprosi, crt;
var
mas:f;
s:char;
KolvoElm, poz: integer;
Begin
New (mas);
{vvod parametrov ekrana}
Repeat
{vivod menu}
case poz of
1:Sozdanie (mas, KolvoElm);
2:DobavVkon (mas, KolvoElm);
3:Porsmotr (mas, KolvoElm);
4:Poisk (mas, KolvoElm);
5:Perehod (mas, KolvoElm);
6:VstavkaPered (mas, KolvoElm);
7:VivodVfail (mas, KolvoElm);
8:halt;
end;
until {izmenilsya el-t};
if {izmenilsya} then
{vivod vseh el-v}
end.
1.2 Описание модуля menu. tpu
В модуле menu. tpu описана одна процедура glavn.
Описательная часть модуля:
unit menu;
interface
uses crt, zaprosi;
procedure glavn (var poz: integer);
implementation
В menu. tpu осуществляется вывод меню интерфейса. Процедурой glavn (var poz: integer), обрабатывается нажатие клавиш, в зависимости от переданного параметра выполняется определённое действие, т. е пункт меню. Формальным параметром передаётся выбранный пункт в меню (poz).
Псевдокод процедуры glavn:
var
i, k: integer;
vibor:char;
MasMenu:array [1.10] of string [40];
Begin
MasMenu[1]:= Sozdanie MD ';
.
{вывод остальных пунктов меню}
{Назначение параметров окна}
{Назначение цвета текста и фона}
for i:=1 to 8 do
{Вывод пунктов меню}
{end for i:=1.}
{Назначение цвета текста и фона текущей строки}
{Вывод текущего пункта меню}
Repeat
{Считывание нажатой клавиши}
vibor:=readkey;
{Назначение цвета текста и фона остальных строк}
for i:=1 to 8 do
{Вывод пунктов меню}
{end for i:=1.}
case vibor of
#72{vverh}: begin
{Prisvoenie stroke znach menshe na 1}
poz:=poz-1;
{Proverka na vihod za granicy menu}
end;
#80{vniz}: begin
{Prisvoenie stroke znach bolshe na 1}
poz:=poz+1;
{Proverka na vihod za granicy menu}
end;
#13 {Enter}: i:=poz;
#27: halt;
end;
{end case vibor of}
{Назначение цвета текста и фона текущей строки}
{Вывод текущего пункта меню}
until i=poz;
end;
1.3 Описание модуля procedur. tpu
В модуле procedur. tpu описаны процедуры которые реализуют запросы, и типы необходимые для работы с множеством данных.
Описательная часть модуля:
unit Zaprosi;
interface
uses crt;
Type
Vid=(Dekorat, Slugeb, Ohotnichaya);
Sobaka=record
Nazvanie: string[20];
Life: longint;
Rost:integer;
Tip: Vid;
end;
F=array[1.30] of sobaka;
procedure Sozdanie (var mas: F;var KolvoElm: integer);
procedure DobavVkon (var mas: F;var KolvoElm: integer);
procedure Porsmotr (mas:F; KolvoElm: integer);
procedure Poisk (mas:F; KolvoElm: integer);
procedure Perehod (var mas: F;var KolvoElm: integer);
procedure VstavkaPered (var mas: F;var KolvoElm: integer);
procedure VivodVfail (mas:F; KolvoElm: integer);
implementation
Процедура Sozdanie (var mas: F;var KolvoElm: integer) создаёт новый массив данных. Формальными параметрами этой процедуры являются массив с данными (mas) типом (F), описанным в разделе типов и количеством элементов в массиве (KolvoElm).
Псевдокод процедуры Sozdanie:
var
i:integer;
s:char;
begin
{Назначение цвета текста и фона}
KolvoElm:=0;
i:=1;
while i=1 do
begin
{Подсчёт количества элементов};
{Ввод нового элемента}
{Запрос на ввод ещё элемента};
end;
end;
Процедура DobavVkon (var mas: F;var KolvoElm: integer) добавляет записи в конец массива, количество записей корректирует пользователь. Формальными параметрами этой процедуры являются массив с данными (mas) типом (F), описанным в разделе типов и количеством элементов в массиве (KolvoElm).
Псевдокод процедуры DobavVkon:
var
i:integer;
begin
{Назначение цвета текста и фона}
repeat
{приращение счётчика количества элементов}
{Ввод Названия предмета}
{Ввод номера курса}
{Ввод чавсов в год}
{Запрос на ввод ещё одного предмета}
readln (i);
until i=2;
end;
Процедура Porsmotr (mas:F; KolvoElm: integer) выводит массив записей в виде таблицы. Формальными параметрами этой процедуры являются массив с данными (mas) типом (F), описанным в разделе типов и количеством элементов в массиве (KolvoElm).
Псевдокод процедуры Porsmotr:
var
i, k, j:integer;
z, x: longint;
s:char;
begin
{Назначение цвета текста и фона}
{вывод шапки таблицы}
For i:=1 to KolvoElm do
begin
{Вывод первого столбика}
{дополнение пробелами}
{Вывод второго столбика }
{Подсчёт количества символов в числе}
repeat
inc (k);
z:=x div 10;
x:=z;
if (x<10) and (x<>0) then
begin
inc (k);
x:=0;
end;
until x=0;
{дополнение пробелами}
{Вывод третьего столбика}
{Подсчёт количества символов в числе}
{дополнение пробелами}
{Вывод четвёртого столбика}
end;
{end for i:=1.}
{Вывод окончания таблицы}
end;
Процедура Poisk (mas:F; KolvoElm: integer) выводит элемент по введенному номеру. Формальными параметрами этой процедуры являются массив с данными (mas) типом (F), описанным в разделе типов и количеством элементов в массиве (KolvoElm).
Псевдокод процедуры Poisk:
var
i, k, j:integer;
z, x: longint;
s:char;
begin
{Назначение цвета текста и фона}
{вывод шапки таблицы}
{Запрос на ввод элемента}
{Вывод первого столбика}
{дополнение пробелами}
{Вывод второго столбика }
{Подсчёт количества символов в числе}
repeat
inc (k);
z:=x div 10;
x:=z;
if (x<10) and (x<>0) then
begin
inc (k);
x:=0;
end;
until x=0;
{дополнение пробелами}
{Вывод третьего столбика}
{Подсчёт количества символов в числе}
{дополнение пробелами}
{Вывод четвёртого столбика}
{Вывод окончания таблицы}
end;
Процедура perehod (var mas: F;var KolvoElm: integer) Помещает новый символ после выбранного. Формальными параметрами этой процедуры являются массив с данными (mas) типом (F), описанным в разделе типов и количеством элементов в массиве (KolvoElm).
Псевдокод процедуры Perehod:
var
PytbKfail:string;
Fail: file of predmet;
s:char;
begin
{Назначение цвета текста и фона}
{Ввод пути к файлу}
assign (fail, PytbKfail);
{открытие файла для чтения}
while not eof (fail) do {Пока не конец файла}
begin
{Наращение счётчика количества элементов}
{копирование по одному значению в массив данных}
end;
{end while not.}
close (fail);
end;
Процедура VstavkaPered (var mas: F;var KolvoElm: integer) вставляет новый элемент перед выбранным. Формальными параметрами этой процедуры являются массив с данными (mas) типом (F), описанным в разделе типов и количеством элементов в массиве (KolvoElm).
Псевдокод процедуры SozdanieS:
var
mas1:T;
k, i: integer;
begin
{Назначение цвета текста и фона}
{Ввод номера элемента перед которым нужно вставить новый элемент}
{Запоминание элементов начиная с выбранного}
for k:=i to KolvoElm do
mas1[k]: =mas ^ [k];
{Ввод нового элемента}
inc (KolvoElm);
{Вставка элементов которые запоминали}
for k:=i+1 to KolvoElm do
mas ^ [k]: =mas1[k-1];
end;
Процедура VivodVfail (mas:F; KolvoElm: integer) Сохраняет все элементы МД в другогом НД. Формальными параметрами этой процедуры являются массив с данными (mas) типом (F), описанным в разделе типов и количеством элементов в массиве (KolvoElm).
Псевдокод процедуры VivodVfail:
var
PytbKfail:string;
Fail: file of dom;
i:integer;
s:char;
begin
{Назначение цвета текста и фона}
{Ввод пути к файлу}
assign (fail, PytbKfail);
{открытие файла для записи}
for i:=1 to k do
{запись информации в файл}
{end for.}
{закрытие файла}
end;
2 Описание работы программы по контрольному примеру
Программ начинается с вывода меню. Для передвижения по пунктам меню нужно использовать клавиши «Вверх» и «Вниз» (Рисунок 1).
Рисунок 1 — Главное меню
2.1 Создание набора данных
Чтобы создать НД, нужно выбрать в меню пункт «Создание НД». После выбора программа будет делать запросы на ввод каждого поля элемента, после введения элемента программа запрашивает подтверждения на ввод ещё одного элемента. После окончания создания НД программа вернется в меню. Создадим НД (рисунок 2).
Рисунок 2 — Создание НД
2.2 Добавление элементов в конец набора данных
Чтобы добавить в уже существующий набор данных новые элементы, нужно выбрать в меню пункт «Добавление новых элементов конец». Программа попросит ввести поочередно все пункты записи, после чего спросит нужно ли ввести ещё запись. На рисунке 3 — процесс добавления элементов, на рисунке 4 — конечное состояние набора данных.
Рисунок 5 — Добавление элементов в конец нд Рисунок 6 — Конечное состояние нд
2.3 Просмотр всех элементов набора данных
Для просмотра всех элементов набора данных нужно выбрать в меню пункт «Просмотр всех элементов». Выводится таблица со всеми данными (рисунок 7).
Рисунок 7 — Вывод набора данных
2.4 Поиск элемента по номеру
Чтобы найти элемент по заданному номеру, нужно выбрать в меню пункт «Поиск элемента по номеру». После выбора программа попросит ввести номер элемента который хотите просмотреть, после чего программа выведет этот элемент в виде таблицы. После нажатия любой клавиши программа вернется в меню. Найдём элемент под номером 1 (рисунок 8).
Рисунок 8 — Поиск
2.5 Переход к другому НД
Чтобы перейти к другому набору данных нужно выбрать в меню пункт «Переход к другому НД», далее ввести имя файлв котором храниться другой НД. После перехода программа уведомит о его совершении. В примере выполнен переход от одного НД к другому и показаны результаты до (рисунок 9) и после (рисунок 10) перехода.
Рисунок 9 — НД до перехода Рисунок 10 — Результат после перехода
2.6 Вставка элемента перед выбранным элементом
Для вставки элемента перед выбранным нужно выбрать в меню пункт «Вставка перед выбранным» а затем, нужно ввести номер элемента перед которым нужно вставить новый, после этого программа предоставит вам возможность ввести данные о новом элементе, после чего добавит его. На примере показан НД до (рисунок 12) и после (рисунок 13) добавления.
Рисунок 11 — До вставки Рисунок 12 — После вставки
2.7 Сохранение НД в файле
Для сохранения НД в файле нужно выбрать в меню пункт «Сохранение НД в файле», после этого программа предоставит вам возможность ввести имя файла, после чего сохранит туда данные, и оповестит о удачном сохранении. На примере показан результат завершившегося сохранения.
Рисунок 13 — Сохранение
Заключение
Итогом выполнения данной курсовой работы является написание программного комплекса по обработке набора данных. В результате написания программного комплекса, я закрепил свои знания по основам алгоритмизации и программирования, углубил свои знания по алгоритмическому языку Pascal, получил опыт разработки программных комплексов и на практике освоил основы модульного программирования. Все условия данной курсовой работы были соблюдены. Все запросы выполняются корректно.
файл сортировка массив данные
Список использованных источников
Савелин, В.К. MathCAD 7.0./ Руководство пользователя./ BHV-Киев, 1998.
Колесников, А. «Турбо Паскаль 7.0"/ В.Гинзвург./ BHV/ Киев, 1996.
Бородич, Ю. С. Паскаль для персональных компьютеров. — Минск: Высшая школа, 1991.
Языки программирования Pascal & Delphi [Электронный ресурс]/ Структурное программирование — Режим доступа: http://www.maksakov-sa.ru/TehProgram/StrProgr/index.html — Дата доступа: 28.05.2013
Приложение А
Текст главной программы
uses menu, Zaprosi, crt;
var
mas:f;
s:char;
KolvoElm, poz: integer;
Begin
New (mas);
clrscr;
textbackground (black);
textcolor (white);
repeat
glavn (poz);
case poz of
1:Sozdanie (mas, KolvoElm);
2:DobavVkon (mas, KolvoElm);
3:Porsmotr (mas, KolvoElm);
4:Poisk (mas, KolvoElm);
5:Perehod (mas, KolvoElm);
6:VstavkaPered (mas, KolvoElm);
7:VivodVfail (mas, KolvoElm);
8:halt;
end;
until (poz=8)or (poz=2) or (poz=6);
if (poz=2)or (poz=6) then
porsmotr (mas, KolvoElm);
end.
Приложение Б
Текст модуля реализации меню (menu)
unit menu;
interface
uses crt, Zaprosi;
procedure glavn (var poz: integer);
implementation
procedure glavn (var poz: integer);
var
i, k: integer;
vibor:char;
MasMenu:array [1.10] of string [40];
begin
MasMenu[1]:='Sozdanie MD ';
MasMenu[2]: ='Dobavlenie Novih el-v v konec ';
MasMenu[3]: ='Prosmotr vseh el-v ';
MasMenu[4]: ='Poisk el-ta po nomery ';
MasMenu[5]: ='Perehod Kdrugomy MD ';
MasMenu[6]: ='Vstavka el-ta pered tekushim ';
MasMenu[7]: ='Sohranenye MD v faile ';
MasMenu[8]: ='EXIT ';
window (1,1,80,25);
textbackground (white);
clrscr;
textbackground (black);
textcolor (white);
for i:=1 to 8 do
begin
gotoxy (1,i);
write (MasMenu[i]);
end;
{end for i:=1.}
textbackground (yellow);
textcolor (red);
poz:=1;
gotoxy (1,poz);
write (MasMenu[poz]);
repeat
vibor:=readkey;
textbackground (black);
textcolor (white);
for i:=1 to 8 do
begin
gotoxy (1,i);
write (MasMenu[i]);
end;
{end for i:=1.}
i:=0;
case vibor of
#72{vverh}: begin
{Prisvoenie stroke znach menshe na 1}
poz:=poz-1;
{Proverka na vihod za granicy menu}
if poz<1 then
poz:=8;
end;
#80{vniz}: begin
{Prisvoenie stroke znach bolshe na 1}
poz:=poz+1;
{Proverka na vihod za granicy menu}
if poz>8 then
poz:=1;
end;
#13 {Enter}: i:=poz;
#27: halt;
end;
{end case vibor of}
textbackground (yellow);
textcolor (red);
gotoxy (1,poz);
write (MasMenu[poz]);
until i=poz;
end;
end.
Приложение В
Текст модуля реализации всех запросов (zaprosi)
unit Zaprosi;
interface
uses crt;
Type
Vid=(Dekorat, Slugeb, Ohotnichaya);
Sobaka=record
Nazvanie: string[20];
Life: longint;
Rost:integer;
Tip: Vid;
end;
F=array[1.30] of sobaka;
procedure Sozdanie (var mas: F;var KolvoElm: integer);
procedure DobavVkon (var mas: F;var KolvoElm: integer);
procedure Porsmotr (mas:F; KolvoElm: integer);
procedure Poisk (mas:F; KolvoElm: integer);
procedure Perehod (var mas: F;var KolvoElm: integer);
procedure VstavkaPered (var mas: F;var KolvoElm: integer);
procedure VivodVfail (mas:F; KolvoElm: integer);
implementation
procedure Sozdanie (var mas: F;var KolvoElm: integer);
var
i:integer;
PytbKfail:string;
Fail: file of Sobaka;
s:char;
begin
textbackground (black);
clrscr;
textcolor (green);
KolvoElm:=0;
i:=1;
while i=1 do
begin
inc (KolvoElm);
writeln ('Vvedite Porodu sobaki:');
readln (Mas ^ [KolvoElm]. Nazvanie);
writeln ('Vvedite srednuu life sobaki:');
readln (Mas ^ [KolvoElm]. Life);
writeln ('Vvedite Rost sobaki:');
readln (Mas ^ [KolvoElm]. Rost);
writeln ('Vvedite Tip sobaki: 1- Dekorat 2-Slugeb 3-Ohotnichaya:');
readln (i);
case i of
1:Mas ^ [KolvoElm]. Tip:=Dekorat;
2:Mas ^ [KolvoElm]. Tip:=Slugeb;
3:Mas ^ [KolvoElm]. Tip:=Ohotnichaya;
end;
writeln ('Hotite vvesti eshe? Da-1, Net-2');
readln (i);
end;
s:=readkey;
end;
procedure DobavVkon (var mas: F;var KolvoElm: integer);
var
i:integer;
begin
textbackground (black);
clrscr;
textcolor (green);
repeat
inc (KolvoElm);
writeln ('Vvedite Porodu sobaki:');
readln (Mas ^ [KolvoElm]. Nazvanie);
writeln ('Vvedite srednuu life sobaki');
readln (Mas ^ [KolvoElm]. Life);
writeln ('Vvedite Rost sobaki:');
readln (Mas ^ [KolvoElm]. Rost);
writeln ('Vvedite Tip sobaki: 1- Dekorat 2-Slugeb 3-Ohotnichaya:');
readln (i);
case i of
1:Mas ^ [KolvoElm]. Tip:=Dekorat;
2:Mas ^ [KolvoElm]. Tip:=Slugeb;
3:Mas ^ [KolvoElm]. Tip:=Ohotnichaya;
end;
writeln ('Hotite vvesti eshe? Da-1, Net-2');
readln (i);
until i=2;
end;
procedure Porsmotr (mas:F; KolvoElm: integer);
var
i, k, j:integer;
z, x: longint;
s:char;
begin
textbackground (black);
clrscr;
textcolor (green);
writeln;
writeln ('¦ Poroda ¦ Life ¦ Rost ¦ Tip ¦');
For i:=1 to KolvoElm do
begin
writeln;
write ('¦ ', mas ^ [i]. Nazvanie);
for k:=1 to 11-length (mas ^ [i]. Nazvanie) do
write (' ');
{end for k:=1.}
write ('¦ ', mas ^ [i]. Life);
z:=0;
repeat
inc (z);
k:=mas ^ [i]. Life;
j:=k div 10;
k:=j;
if (j<10) and (j<>0) then
begin
inc (z);
j:=0;
end;
until j=0;
for x:=1 to 11-z do
write (' ');
{end for k:=1.}
x:=mas ^ [i]. Rost;
write ('¦ ', x);
k:=0;
repeat
inc (k);
z:=x div 10;
x:=z;
if (x<10) and (x<>0) then
begin
inc (k);
x:=0;
end;
until x=0;
for j:=1 to 10-k do
write (' ');
{end for k:=1.}
case mas ^ [i]. Tip of
Dekorat: write ('¦ Dekorat ');
Slugeb: write ('¦ Slugeb ');
Ohotnichaya: write ('¦ Ohotnichaya');
end;
writeln (' ¦ ');
end;
{end for i:=1.}
writeln
s:=readkey;
end;
procedure Poisk (mas:F; KolvoElm: integer);
var
i, k, j:integer;
z, x: longint;
s:char;
begin
textbackground (black);
clrscr;
textcolor (green);
write ('Vvedite nomer el-ta');
readln (i);
writeln
writeln ('¦ Poroda ¦ Life ¦ Rost ¦ Tip ¦');
writeln
write ('¦ ', mas ^ [i]. Nazvanie);
for k:=1 to 11-length (mas ^ [i]. Nazvanie) do
write (' ');
{end for k:=1.}
write ('¦ ', mas ^ [i]. Life);
z:=0;
repeat
inc (z);
k:=mas ^ [i]. Life;
j:=k div 10;
k:=j;
if (j<10) and (j<>0) then
begin
inc (z);
j:=0;
end;
until j=0;
for x:=1 to 11-z do
write (' ');
{end for k:=1.}
x:=mas ^ [i]. Rost;
write ('¦ ', x);
k:=0;
repeat
inc (k);
z:=x div 10;
x:=z;
if (x<10) and (x<>0) then
begin
inc (k);
x:=0;
end;
until x=0;
for j:=1 to 10-k do
write (' ');
{end for k:=1.}
case mas ^ [i]. Tip of
Dekorat: write ('¦ Dekorat ');
Slugeb: write ('¦ Slugeb ');
Ohotnichaya: write ('¦ Ohotnichaya');
end;
writeln (' ¦ ');
writeln;
s:=readkey;
end;
procedure Perehod (var mas: F;var KolvoElm: integer);
var
PytbKfail:string;
Fail: file of sobaka;
s:char;
begin
textbackground (black);
clrscr;
textcolor (green);
KolvoElm:=0;
Writeln ('Vvedite Pytb k faily');
readln (PytbKfail);
assign (fail, PytbKfail);
reset (fail);
while not eof (fail) do
begin
inc (KolvoElm);
read (fail, mas ^ [KolvoElm]);
end;
{end while not.}
close (fail);
Writeln (' Perehod vipolnen :)');
s:=readkey;
end;
procedure VstavkaPered (var mas: F;var KolvoElm: integer);
var
mas1:T;
k, i: integer;
begin
textbackground (black);
clrscr;
textcolor (green);
writeln ('Vvedite nomer el-ta pered kotorim vstavite drugoi');
readln (i);
for k:=i to KolvoElm do
mas1[k]: =mas ^ [k];
writeln ('Vvedite Porodu sobaki:');
readln (Mas ^ [i]. Nazvanie);
writeln ('Vvedite Srednuu life sobaki:');
readln (Mas ^ [i]. Life);
writeln ('Vvedite rost sobaki:');
readln (Mas ^ [i]. Rost);
writeln ('Vvedite Tip sobaki: 1- Dekorat 2-Slugeb 3-Ohotnichaya:');
readln (i);
case i of
1:Mas ^ [i]. Tip:=Dekorat;
2:Mas ^ [i]. Tip:=Slugeb;
3:Mas ^ [i]. Tip:=Ohotnichaya;
end;
inc (KolvoElm);
for k:=i+1 to KolvoElm do
mas ^ [k]: =mas1[k-1];
end;
procedure VivodVfail (mas:F; KolvoElm: integer);
var
PytbKfail:string;
Fail: file of sobaka;
i:integer;
s:char;
begin
textbackground (black);
clrscr;
textcolor (green);
Writeln ('Vvedite Pytb k faily');
readln (PytbKfail);
assign (fail, PytbKfail);
rewrite (fail);
for i:=1 to KolvoElm do
write (fail, mas ^ [i]);
{end for.}
close (fail);
textbackground (black);
clrscr;
textcolor (green);
Writeln (' Sohraneno :)');
s:=readkey;
end;
end.
.ur