Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
15
Добавлен:
28.06.2014
Размер:
2.41 Кб
Скачать
Unit s2a;

interface

procedure ReadArr(txt: string; var a: array of char; var an: byte); {Процедура чтения массива}
procedure WriteArr(var a: array of char; an: byte); {Процедура вывода массива}
procedure createD(var a, b, c, d: array of char; var an, bn, cn, dn: byte); {Генерация массива Д}

Implementation
{Процедура чтения массива. Входные данные - строка с адресом к файлу с массивом.
Вых.данные - Массив а. длина массива an}
procedure ReadArr(txt: string; var a: array of char; var an: byte);
var fin: text; {Ассоциация файла}
i: byte; {Cчётчик}
ch: char;
flag: boolean; {Флаг. True если текущий эл-т не содер в массиве}
begin
assign(fin, 'G:\tpascal\2semestr\laba4\'+txt);
reset(fin); {Открытие файла}
an:=0;
repeat
read(fin, ch);{Читаем символ из файла}
flag:=true;
for i := 0 to an do {Проверяем, не содержится ли текущий эл-т в массиве}
if a[i] = ch then
flag:=false;
if flag then {Если можно добавить...}
begin
a[an]:=ch; {Добавляем}
an:=an+1;
end;
until eof(fin);
close(fin);
end;

{Процедура вывода массива. Вх.данные - массив, и длина.}
procedure WriteArr(var a: array of char; an: byte);
var j:byte;
begin
for j:=0 to an do
write(a[j], ' ');
end;

{Процедура создания мно-ва Д. Вх. данные - а, б,с - массивы и их длины.
Вых.Данные - Массив д и его длина}
procedure createD(var a, b, c, d: array of char; var an, bn, cn, dn: byte);
var i, j: byte; {Счётчики}
flag:boolean; {Флаг, отвечающий на разрешение добавления эл-та}
begin
for i:=0 to 255 do {Просматриваем все символы из таблицы.}
begin
flag:=true;
for j:= 0 to cn do {Если э-т принадлежит с, }
if chr(i) = c[j] then
flag:=false; {То он не войдёт в массив D}
if flag then {Если он не принадлежит с, то проверим, принадлежит ли он а или б}
begin
flag:=false;
for j:=0 to an do
if chr(i) = a[j] then {Если принадлежит а то добавляем в д}
flag:=true;
if flag then
begin
dn:=dn+1;
d[dn]:=chr(i);
end
else
begin
flag:=false;
for j:=0 to bn do{Если принадлежит б то добавляем в д}
if chr(i) = b[j] then
flag:=true;
if flag then
begin
dn:=dn+1;
d[dn]:=chr(i);
end
end;
end;
end;
end;

end.
Соседние файлы в папке Laba4