Форум программистов, компьютерный форум, киберфорум
Turbo Pascal
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/20: Рейтинг темы: голосов - 20, средняя оценка - 4.60
4 / 4 / 1
Регистрация: 11.02.2010
Сообщений: 74
1

Найдите все слова, начинающиеся с заданной приставки

12.02.2010, 17:12. Просмотров 3603. Ответов 10
Метки нет (Все метки)

В заданной последовательности слов найдите все слова, начинающиеся с заданной приставки

Добавлено через 17 часов 12 минут
ну так кто поможет?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.02.2010, 17:12
Ответы с готовыми решениями:

Найти все слова, начинающиеся с заданной приставки
В заданной последовательности слов, найти все слова начинающиеся с заданной приставки

Записывать в файл все слова, начинающиеся с заданной буквы
Написать программу, которая записывает в файл все слова, начинающиеся с задаваемой с клавиатуры...

В заданной строке найти все слова начинающиеся с латинской гласной буквы.
Считать, что все слова разделены одниа или несколькими пробелами.

В заданной строке найти все слова , начинающиеся и заканчивающиеся одной и той же букой
1)Запись определена типом type , студент = record , группа, фамилия,имя:string; пол:char ; возраст...

10
88 / 88 / 56
Регистрация: 05.12.2009
Сообщений: 134
12.02.2010, 18:23 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
var i:integer;
                  st:string;                             {строка}
                  s:char;                                {приставка}
begin
 writeln('Введите строку слов:');
 readln(st);
 write('Введите бприставку: ');
 readln(s);
 st:=' '+st; {добавляем пробел в начале строки}
 repeat                       
  i:=pos(' '+s,st); {ищем слово на букву s}
  inc(i); {пробел не считаем}
  if i<>1 then {если слово нашли то}
   repeat
   write(st[i]); {напечатать букву найденного слова}
   delete(st,i,1); {удалить эту букву}
   until (st[i]=' ')or(i=length(st)); {если слово кончилось то конец цикла}
  writeln;
 until  i=1; {если больше нет найденных слов то КОНЕЦ ЦИКЛА}
 writeln('st=',st);
end.
1
Retired
7719 / 2551 / 671
Регистрация: 17.10.2009
Сообщений: 5,100
12.02.2010, 19:17 3
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Tom_Sawyer, я конечно может совсем позабыл уроки русского языка, но я думаю, что отводить под приставку только 1 символ - это совсем неверно...

Добавлено через 14 минут
Вот как вариант то, что Вам нужно
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
uses
  crt;
const
  dividers = [' ',',','.',';',':','-','=','+'];{äîïèñàòü íóæíûå}
var
  s,pri,temp:string;
  i:integer;
begin
  ClrScr;
  ReadLn(s,pri);
  temp:='';
  for i:=1 to Length(s) do
  begin
    if not (s[i] in dividers) then
      temp:=temp+s[i];
    if ((s[i] in dividers) or (i=Length(s))) and (temp<>'') then
    begin
      if Pos(pri,temp)=1 then
        Write(temp,' ');
      temp:='';
    end
  end
end.
Тут не учитывается регистр и нет проверки на повтор слов. Все это сделаете самостоятельно при необходимости.
2
Модератор
61218 / 45886 / 31672
Регистрация: 18.05.2008
Сообщений: 110,499
12.02.2010, 20:02 4
Вообще задания на русский язык тупые. Например задаем приставку пере-, имеем слова переехал и перед. В первом случае есть приставка, во втором нет, и как быть?
1
Retired
7719 / 2551 / 671
Регистрация: 17.10.2009
Сообщений: 5,100
12.02.2010, 20:20 5
Puporev, ну как правило преподы по программухе не проверяют правила по русскому, а смотрят на то, чтобы программа просто проверяла на соответствие начальную часть слова с заданной приставкой.
1
Модератор
61218 / 45886 / 31672
Регистрация: 18.05.2008
Сообщений: 110,499
12.02.2010, 21:16 6
Тогда не нужно и приставки поминать, а просто, если первые буквы слов совпадают с заданной группой символов.
За что и ненавижу задачи на работу с текстом, потому что на 99 процентов они тупо заданы.
1
Retired
7719 / 2551 / 671
Регистрация: 17.10.2009
Сообщений: 5,100
12.02.2010, 21:31 7
Да, согласен, но тут ничо не поделаешь... тупые задания как составляли так и будут составлять...
1
4 / 4 / 1
Регистрация: 11.02.2010
Сообщений: 74
16.02.2010, 01:02  [ТС] 8
Цитата Сообщение от Inadequate Посмотреть сообщение
Tom_Sawyer, я конечно может совсем позабыл уроки русского языка, но я думаю, что отводить под приставку только 1 символ - это совсем неверно...


Тут не учитывается регистр и нет проверки на повтор слов. Все это сделаете самостоятельно при необходимости.


если честно, без комментариев не очень понятно, первый вариант понятен, но там только первая буква работает...
0
Retired
7719 / 2551 / 671
Регистрация: 17.10.2009
Сообщений: 5,100
16.02.2010, 01:13 9
Adiga-07, а что именно не понятно? Задавай вопросы, а я постараюсь объяснить.
0
4 / 4 / 1
Регистрация: 11.02.2010
Сообщений: 74
16.02.2010, 15:25  [ТС] 10
Цитата Сообщение от Inadequate Посмотреть сообщение
Adiga-07, а что именно не понятно? Задавай вопросы, а я постараюсь объяснить.
Pascal
1
2
3
4
5
6
if ((s[i] in dividers) or (i=Length(s))) and (temp<>'') then
    begin
      if Pos(pri,temp)=1 then
        Write(temp,' ');
      temp:='';
    end
вот тут не очень. s кажется это весь текст?
0
Retired
7719 / 2551 / 671
Регистрация: 17.10.2009
Сообщений: 5,100
16.02.2010, 21:31 11
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Adiga-07, да s - это строковая переменная, в которой хранится так называемый текст.
Pascal
1
2
3
4
5
6
if ((s[i] in dividers) or (i=Length(s))) and (temp<>'') then//тут проверяем на вхождение символа в множество разделителей и проверяем не последний ли это символ в строке
    begin
      if Pos(pri,temp)=1 then//если приставка в слове есть тогда выводим данной слово
        Write(temp,' ');
      temp:='';//опустошаем временную переменную, т.к. возможно нам еще искать слова
    end
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.02.2010, 21:31

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Удалить из строки слова, начинающиеся с заданной буквы
Помогите пожалуйста решить задачу: Дана строка символов. Удалить из нее слова, начинающиеся с...

Вывести на экран все фамилии, начинающиеся с заданной буквы
В файле содержится информация (20-30 строк), например: Иванов Петр Петров Василий Семенов Иван ...

Удалить все слова начинающиеся с буквы
Удалить из введенного предложения все слова начинающиеся с буквы &quot;s&quot;.

Найти все слова, начинающиеся на букву а
Задано предложение-строка. Написать программу, которая находит и печатает слова, начинающиеся с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.