Работа со строками

За вознаграждение или нахаляву (если повезёт)

Модераторы: Хыиуду, dr.Jekill, MOTOCoder, Medved

Ответить
Аватара пользователя
Колядин Максим
Сообщения: 285
Зарегистрирован: 16 ноя 2006, 19:09
Откуда: Seattle, WA
Контактная информация:

16 янв 2007, 22:05

Да, задачи на первый-то взгляд лёгкие....
1)Дан текст. Посчитать количество слов, заканчивающихся на заданную букву и перенести их в другую строку, написав через запятую. Вывести полученную строку на экран.
2)Дан текст. Посчитать количество слов в тексте.
Заранее спасибо.
Программист - это человек, который решает способом, который вы не понимаете, проблемы, о которых вы даже не подозревали...
Хыиуду
Сообщения: 2388
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

16 янв 2007, 22:44

Откуда берется текст? Из файла, из Мемо, откуда-то еще?
Как разбивать строку на слова - где-то обсуждалось (по-моему Cade спрашивал, а Somewhere отвечал).
стало быть (изображаю общую идею, думаю, разберешься)

Код: Выделить всё

wordscount:=0;
zadannayabukva='A';
for i:=0 или 1 (в зависимости от нумерации) to textlinescount do
begin
  s:=text[i];
  s_out:='';
  while s<>'' do
  begin
    s1:={взять слово из строки s};
    inc(wordscount);
    if s1[length(s1)]=zadannayabukva
       then s_out:=s_out+s1+', ';
  end;
  delete(s_out,length(s_out),2);// удаляем последнюю запятую и пробел
  writeln(s_out);
end;
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Аватара пользователя
Колядин Максим
Сообщения: 285
Зарегистрирован: 16 ноя 2006, 19:09
Откуда: Seattle, WA
Контактная информация:

17 янв 2007, 03:00

Спасибо, разобрался
Программист - это человек, который решает способом, который вы не понимаете, проблемы, о которых вы даже не подозревали...
Аватара пользователя
Oleg_Rus
Сообщения: 330
Зарегистрирован: 16 окт 2006, 09:56
Откуда: г.Улан-Удэ, респ.Бурятия, Российская Федерация
Контактная информация:

29 янв 2007, 02:50

Хыиуду, а не проще ли будет заранее поставить условие сравнения с Zadannayabukva

if (text=Zadannayabukva) and (Text[i+1] = ' ') Then
// забивай в в строку

мне кажется так будет и проще, и понятней...
e-mail: garmayev@yandex.ru
---------------------------------------------------------------------------
<a href="http://nick-name.ru/sertificates/711965/"><img src="http://nick-name.ru/img.php?nick=Garmay ... =2&text=t5" alt="Никнейм Garmayev зарегистрирован!" /></a>
Хыиуду
Сообщения: 2388
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

30 янв 2007, 10:20

Можно и так. Тогда надо еще проверять не только пробел, но и некоторые знаки препинания. Например, запятая или точка после буквенного символа однозначно указывает на окончание слова, а дефис или апостроф являются частями слова (кое-где, д'Артаньян). И еще сделать проверку, не является ли буква последней в строке. А то ведь падать будет с эксепшном...
if (text=Zadannayabukva) and
((i=length(text)) or (pos(Text[i+1],' !?.,')<>0)
Then // забивай в в строку
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Аватара пользователя
Oleg_Rus
Сообщения: 330
Зарегистрирован: 16 окт 2006, 09:56
Откуда: г.Улан-Удэ, респ.Бурятия, Российская Федерация
Контактная информация:

01 фев 2007, 04:30

Точно... так будет и красивее и более наглядно
e-mail: garmayev@yandex.ru
---------------------------------------------------------------------------
<a href="http://nick-name.ru/sertificates/711965/"><img src="http://nick-name.ru/img.php?nick=Garmay ... =2&text=t5" alt="Никнейм Garmayev зарегистрирован!" /></a>
Хыиуду
Сообщения: 2388
Зарегистрирован: 06 мар 2005, 21:03
Откуда: Москва
Контактная информация:

01 фев 2007, 10:11

Oleg_Rus писал(а):Точно... так будет и красивее и более наглядно
Ну... не скажу, что красивее и более наглядно, зато правильнее и более надежно :)
Искусство программирования - заставить компьютер делать все то, что вам делать лень.
Для "спасибо" есть кнопка "Спасибо" в виде звездочки внизу под ником автора поста.
Ответить