function RES=CmpStr (S1,S2)
% Порівнює два рядки
% Аргументи:
%   S1, S2 - рядки для порівняння, подані у вигляді масивів символів
% Результат: 
%   RES    - результат порівняння:
%                                  <0 - S1<S2
%                                  0  - S1=S2
%                                  >0 - S1>S2
% Обмеження:
%   1) S1, S2 повинні бути вектор-рядками
%   2) S1, S2 повинні бути масивами символів

% визначаємо розміри рядків
[temp,nS1]=size(S1);
[temp,nS2]=size(S2);

% починаючи із першого символа порівнюємо сиволи на однакових місцях
% у рядках до тих пір, поки не закінчиться один з рядків або не знайдеться
% пара неоднакових символів
index=1;
while ((index<=nS1) & (index<=nS2) & (S1(1,index)==S2(1,index))) index=index+1; end

% якщо закінчився перший рядок і не закінчився другий - перший менший
if ((index>nS1) & (index<=nS2)) RES=-1;
% якщо не закінчився перший рядок і закінчився другий - перший більший
elseif ((index<=nS1) & (index>nS2)) RES=1;
% якщо закінчились обидва - рядки рівні
elseif ((index>nS1) & (index>nS2)) RES=0;
% інакше відповіддю є різниця між черговими символами (вони різні)
else RES=S1(1,index)-S2(1,index);
end

% очищуємо локальні змінні
clear temp nS1 nS2 index;