Курсовая работа: Нейминг. Разработка генератора
$slog=$_POST["slog"];
В переменных kol и slogсейчас находятся какие-либо числа, а в переменной slova находится строка, состоящая из слов, разделенных запятыми и пробелами. Преобразуем её в массив строк (s):
$s=explode(",",$slo);
Для дальнейшей работы нам необходимо еще избавиться от ненужных нам пробельных символов (которые могут появиться при заполнении формы). Для этого воспользуемся встроенной функцией string trim (string str [, string charlist]). После такого рода обработки, можно будет приступить непосредственно к реализации алгоритма разбиения слова на слоги.
2.1 Разработка функции деления слова на слоги
Слова из массива строк sпо одному будем посылать на обработку в функцию delslog($str).
function delslog ($ str )
{$k=k_slog($str); //посчитаем количество слогов
$mas=slog($str, $k); //разобьём слово на слоги
$f=fopen("slogi.txt","a");//откроем файл slogi.txt
for($i=0;$i<count($mas);$i++) //длязаписии
{//через «-» запишем в
$mas[$i].='-'; //него слоги
fwrite( $f,$mas[$i]);}
fclose($f);} //закроем файл
В этой части программы происходит вызов функций k_slog($str)и slog($s, $k). Рассмотрим их подробнее.
function k _ slog ($ str ) //считает количество слогов
{//бежим по строке
for($i=0, $q=0; $i < strlen($str); $i++)
if(glas($str[$i])) // если очередная буква
$q++; //гласная, увеличим счетчик
return $q; } //вернём значение счетчика
Функция slog($s, $k)выполняет непосредственно разбиение слова на слоги. Как видно из примеров в п. 1.3.1, многие слова можно разделить на слоги несколькими способами. По этому определить принадлежность каждой буквы к тому или иному слогу – довольно-таки сложная задача.
Разберемся сначала с гласными буквами. Каждая из них является основой слога, по этому достаточно только отслеживать, чтобы в слог не попала вторая гласная (в этом случае должен осуществиться переход к новому слогу). За это будет отвечать флажок q.
С согласными все сложнее. Из-за разночтений в правилах деления слов на слоги я решила придерживаться следующих пунктов:
1. Согласная и последующая гласная относятся к одному и тому же слогу;
2. Все согласные буквы, находящиеся перед первой гласной принадлежат одному слогу;
3. Все согласные буквы, расположенные после последней гласной принадлежат одному и тому же слогу;
4. Из нескольких согласных, расположенных в середине слова, первая относится к текущему слогу, остальные – к следующему (исключения составляют буквы «ъ» и «ь», которые «привязываются» к предыдущей согласной).
Последний пункт вызывает наибольшее количество сомнений относительно правильности, но вполне удовлетворяет изложенным в учебнике [1] правилам.