Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 03.12.2007, 19:23
Vitek220 Vitek220 вне форума
Заблокирован
 
Регистрация: 03.12.2007
Сообщения: 22
Репутация: 5
Вопрос Работа со строками

Дан набор слов, разделённых точкой с запятой ( ; ) .Набор заканчивается двоеточием. Определить, сколько в нём слов, заканчивающихся буквой а.
Выполнить в виде консольного приложения.
Ответить с цитированием
  #2  
Старый 04.12.2007, 03:08
Rosenkrantz Rosenkrantz вне форума
Активный
 
Регистрация: 04.12.2007
Адрес: Москва
Сообщения: 234
Версия Delphi: Delphi 7
Репутация: 40
По умолчанию

Код:
function  CountWords(Phrase: String; Letter: Char; WordDelimiter: Char = ';'): Word;
var
  i : Integer;
  AWord : String;
begin
  // Если строка не заканчивается разделитерем - добавим его сами
  if (Phrase[Length(Phrase)] <> WordDelimiter) then
    Phrase := Phrase + WordDelimiter;

  Result := 0;
  // Найти первый разделитель в строке
  i := Pos(WordDelimiter, Phrase);
  While (i <> 0) Do begin
    AWord := Copy(Phrase, 1, i - 1);
    if (AWord <> '') and (AWord[Length(AWord)] = Letter) then
      // Если слово не нулевой длины и заканчивается на нужную букву
      Inc(Result);

    // Отсекаем уже обработанную часть строки
    Phrase := Copy(Phrase, i + 1, Length(Phrase) - i);
    // Ищем следующий разделитель
    i := Pos(WordDelimiter, Phrase);
  end;
end;

begin
  Writeln(CountWords('вода;еда;караганда', 'а'));
end.
Ответить с цитированием
  #3  
Старый 04.12.2007, 03:28
Rosenkrantz Rosenkrantz вне форума
Активный
 
Регистрация: 04.12.2007
Адрес: Москва
Сообщения: 234
Версия Delphi: Delphi 7
Репутация: 40
По умолчанию

Да, а чтобы в виде консольного приложения было, добавьте в начало строку {$APPTYPE CONSOLE}
Ответить с цитированием
  #4  
Старый 04.12.2007, 14:53
Vitek220 Vitek220 вне форума
Заблокирован
 
Регистрация: 03.12.2007
Сообщения: 22
Репутация: 5
Счастье ***

Большое спасибо, Rosenkrantz !!!
Ответить с цитированием
  #5  
Старый 31.03.2008, 10:01
Aigul Aigul вне форума
Прохожий
 
Регистрация: 30.03.2008
Сообщения: 2
Репутация: 10
Вопрос

Помогите решить, плиз! Дана строка символов. Группы символов, разделенные пробелами или несколькими пробелами и не содержащие пробелов внутри себя, будем называть словами. Найти длину самого длинного слова.На Delphi.
Ответить с цитированием
  #6  
Старый 31.03.2008, 11:09
Phedor Phedor вне форума
Начинающий
 
Регистрация: 28.02.2008
Сообщения: 118
Репутация: 21
По умолчанию

Код:
function LengthString(s: string): integer;
var
  temp: string;
begin
  Result := 0;
  // Если нет пробелов
  if pos(' ', s)=0 then
  begin
    Result := length(s);
    exit;
  end;
  Temp := s;
  // Проверям длины строк
  while pos(' ', Temp)<>0 do
  begin
    if (Result<pos(' ', Temp)-1) then Result := pos(' ', Temp)-1;
    System.Delete(Temp, 1, pos(' ', Temp);
  end;
  // Проверяем последнюю часть строки, т.к. в конце строки может и не быть пробела
  if length(Temp)>Result then Result := length(Temp);
end;
Ответить с цитированием
  #7  
Старый 31.03.2008, 18:57
Aigul Aigul вне форума
Прохожий
 
Регистрация: 30.03.2008
Сообщения: 2
Репутация: 10
По умолчанию

Спасибо, Phedor!
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 13:35.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter