Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.03.2009, 17:51   #1
Xeon332
Скоро сессия...
Форумчанин
 
Регистрация: 03.01.2008
Сообщений: 224
По умолчанию Функция подсчёта кол-ва слогов в слове

почти прогу добил. осталось 2 функции (подсчета количества слогов в слове и замена в строках пробелов на символ подчеркивания)

мыслей нет вобще как эти функции в делфи реализовать...

Вот функция по подсчёту кол-ва слов в строкее

Код:
function kolvo_slov (s: string): integer;    
var
  i, count, n: integer;
begin
  n:=length(s);
  i:=1;
  count := 0;
  repeat
    while (s[i]=' ')and(i<=n) do
      i:=i+1;
    if (s[i]<>' ')and(i<=n) then begin
      count := count+1;
      while (s[i]<>' ')and(i<=n) do
        i:=i+1;
    end;
  until i>n;
  kolvo_slov  := count;
end;
как можно её изменить или необходимо новую функцию писать? подскажите по этим 2 функциям... (как их реализовать)
Xeon332 вне форума Ответить с цитированием
Старый 25.03.2009, 18:27   #2
Роман Радер
Форумчанин
 
Аватар для Роман Радер
 
Регистрация: 16.12.2006
Сообщений: 859
По умолчанию

Открою секрет. Слогов в слове столько-же, сколько и гласных букв. Просто их посчитайте.
А замена пробелов - дело техники. Циклом по всем символам проверяете на пробелы, если да - то заменяете на "_"
Роман Радер вне форума Ответить с цитированием
Старый 25.03.2009, 18:47   #3
maladoy
delphi-ст!
Форумчанин
 
Аватар для maladoy
 
Регистрация: 02.01.2009
Сообщений: 825
По умолчанию

подсчет слогов правда паскаль! но думаю в delphi переделать труда не составит
Код:
program Slogi;
  uses crt;
var
 sl,sl1:string[255];
 k,i,n,j:integer;
begin
 clrscr;
 write(' Введите предложение  ');
 readln(sl);
 k:=0;
 n:=length(sl);
 sl1:='ауыеоэюияё';
for i:=1 to n do
for j:=1 to 10 do
begin
if (sl[i]=sl1[j]) then
 k:=k+1;
end;
 writeln('  Слогов  ',  k);
 readln;
end.
вступлю в команду разработчиков ПО на Delphi
maladoy вне форума Ответить с цитированием
Старый 26.03.2009, 06:05   #4
Xeon332
Скоро сессия...
Форумчанин
 
Регистрация: 03.01.2008
Сообщений: 224
По умолчанию

благодарю. со слогами оказалось всё просто)))
Xeon332 вне форума Ответить с цитированием
Старый 26.03.2009, 08:09   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Слогов в слове столько-же, сколько и гласных букв
Вопрос на засыпку - Сколько слогов с в слове "Регистрация"?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.03.2009, 08:17   #6
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Ре-гист-ра-ци-я
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 26.03.2009, 08:22   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Лана. Убедил.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.03.2009, 08:54   #8
maladoy
delphi-ст!
Форумчанин
 
Аватар для maladoy
 
Регистрация: 02.01.2009
Сообщений: 825
По умолчанию

Код:
//функция  замены пробела на '_'
function zamena(var s:string):string;
  var i:integer;
      st:string;
begin
  st:=''
  for i:= 1 to length(s) do
    begin
	  if s[i]:=' ' then st:=st+'_'
      else st:=st+s[i];
    end;
  result:=st;
end;
вступлю в команду разработчиков ПО на Delphi
maladoy вне форума Ответить с цитированием
Старый 26.03.2009, 08:57   #9
Toxa
Форумчанин Подтвердите свой е-майл
 
Аватар для Toxa
 
Регистрация: 01.12.2006
Сообщений: 514
По умолчанию

Роман Радер, а пробелы заменить можно проще, stringreplace(text,' ','_',[rfReplaceAll])
Пишу на Delphi за еду
Toxa вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
первая буква в слове Cdevelop Общие вопросы C/C++ 2 17.03.2009 13:44
Исключить из файла слово с минимальным количеством слогов. катя@90 Паскаль, Turbo Pascal, PascalABC.NET 2 11.12.2008 14:23
одна функция потока, а другая функция - член класса запускающего этот поток Дмитрий_Ч Общие вопросы C/C++ 2 27.09.2007 08:50
Формула в Экселе для подсчёта стоимости Oxidous Microsoft Office Excel 13 31.08.2007 13:13