Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
18
Добавлен:
28.06.2014
Размер:
2 Кб
Скачать
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