Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/4: Рейтинг темы: голосов - 4, средняя оценка - 5.00
DeathKorps
0 / 0 / 0
Регистрация: 18.03.2016
Сообщений: 96
1

Дана строка. Найти в ней те слова, которые начинаются и оканчиваются одной и той же буквой

02.05.2016, 11:56. Просмотров 836. Ответов 8
Метки нет (Все метки)

1. Дана строка. Найти в ней те слова, которые начинаются и оканчиваются одной и той же буквой.
Нагуглил на форуме такой код.Как использовать не понимаю.
Возможно его переделать в функцию ?
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
  var
  s, a: string;
  i: integer;
begin
  readln(s);
  for i := 1 to length(s) do
  begin
    if s[i] <> ' ' then a := a + s[i];
    if (s[i] = ' ') or (i = length(s)) then
    begin
      if a[1] = a[length(a)] then writeln(a);
      a := '';
    end;
  end;
end.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.05.2016, 11:56
Ответы с готовыми решениями:

Работа со строковыми переменными. Дана строка. Найти в ней те слова, которые начинаются и оканчиваются одной и той же буквой
Дана строка. Найти в ней те слова, которые начинаются и оканчиваются одной и...

Дана строка.Найти в ней те слова, которые начинаются и заканчиваются одной и той же буквой.Вывести эти слова на экране
Дана строка.Найти в ней те слова, которые начинаются и заканчиваются одной и...

Определить количество слов в тексте которые начинаются и оканчиваются одной и той же буквой
Помогите пожалуйста. Дан текст.Определить количество слов в тексте которые...

Напечатать слова, которые начинаются и заканчиваются одной и той же буквой (консольное приложение)
Дана строка, состоящая из*слов, разделенных пробелами (одним или*несколькими)....

Вывести все слова, которые начинаются и заканчиваются буквой А
Помогите сделать в delphi7. 1. Вывести все слова, которые начинаются и...

8
JIeIIIa
869 / 503 / 118
Регистрация: 23.05.2012
Сообщений: 6,964
02.05.2016, 12:58 2
Лучший ответ Сообщение было отмечено DeathKorps как решение

Решение

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function Words(s: string):string;
var
  res, a: string;
  i: integer;
begin
  res := '';
  for i := 1 to length(s) do
  begin
    if s[i] <> ' ' then a := a + s[i];
    if (s[i] = ' ') or (i = length(s)) then
    begin
      if a[1] = a[length(a)] then res := res + a + ' ';
      a := '';
    end;
  end;
  Words := res;
end;
1
DeathKorps
0 / 0 / 0
Регистрация: 18.03.2016
Сообщений: 96
02.05.2016, 13:08  [ТС] 3
Можете объяснить что делает код ?
0
JIeIIIa
869 / 503 / 118
Регистрация: 23.05.2012
Сообщений: 6,964
02.05.2016, 13:13 4
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
function Words(s: string):string;
var
  res, a: string;
  i: integer;
begin
  res := '';       //строка для результата
  for i := 1 to length(s) do    //перебираем все буквы в строке s
  begin
    if s[i] <> ' ' then a := a + s[i];    //если текущая буква не пробел, то добавить ее к строке а
    if (s[i] = ' ') or (i = length(s)) then   //если текущая буква пробел или достигнут конец строки
    begin
      if a[1] = a[length(a)] then res := res + a + ' ';    //если первая бука равна последней, то дописать строку а к строке res
      a := '';   //очистить строку а (присваиваем ей пустую строку)
    end;
  end;
  Words := res;   //возвращаем результат функции
end;
1
DeathKorps
0 / 0 / 0
Регистрация: 18.03.2016
Сообщений: 96
02.05.2016, 13:23  [ТС] 5
Спасибо.Застрял на одной строчке
if a[1] = a[length(a)] если первая буква равна последней не понял почему такой код.У меня в методичке функция Length является количеством символов из которых состоит строка.Какая взаимосвязь тут ?
0
JIeIIIa
869 / 503 / 118
Регистрация: 23.05.2012
Сообщений: 6,964
02.05.2016, 13:25 6
length(a) - это длина строки = номер последнего символа.
a[length(a)] - это a[<номер последнего символа>]
1
DeathKorps
0 / 0 / 0
Регистрация: 18.03.2016
Сообщений: 96
02.05.2016, 13:43  [ТС] 7
Туго доходит что то.И проблема в коде.
Delphi
1
2
3
4
5
6
 procedure TForm1.Button1Click(Sender:Object);
var
MyString:Sting;
begin;
MyString:='zik relas saturn kapaz sis'
Edit1.text:=Words(MyString);
Если я ввожу ту строку ,что сейчас в MyString ,то ничего не выводится.Если я введу
MyString:='zak rekord maz' ,то выведется вся строка.
0
JIeIIIa
869 / 503 / 118
Регистрация: 23.05.2012
Сообщений: 6,964
02.05.2016, 13:51 8
DeathKorps, код с ошибками. Как он компилируется?
Цитата Сообщение от DeathKorps Посмотреть сообщение
procedure TForm1.Button1Click(Sender:Object);
var
MyString:String;
begin
MyString:='zik relas saturn kapaz sis';
Edit1.text:=Words(MyString);
Выводится sis. Все верно. Это единственное слово в предложении с одинаковыми первой и последней буквами.
MyString:='zak rekord maz' - выведена будет пустая строка. Как у Вас "выведется вся строка" не понятно.
0
DeathKorps
0 / 0 / 0
Регистрация: 18.03.2016
Сообщений: 96
02.05.2016, 14:07  [ТС] 9
Писал от руки смотря на другой компьютер)

Добавлено через 5 минут
блин я вообще туплю.Я подумал,что нужно два слова одно начинается с определенной букв другое слово этой же буквой заканчивается. Но тем не менее так и есть например если я выведу слова Zazor и rareZ они оба появятся в Edit1 если между ними добавлю другие слова, те тоже будут выводиться(Zazor pera mangal rareZ)

Добавлено через 2 минуты
sis и подобные слова не выводятся почему то.

Добавлено через 6 минут
Блин извиняюсь пересмотрел ваш код и понял,что не поставил пробелы
Цитата Сообщение от JIeIIIa Посмотреть сообщение
s[i] <> ' '
Цитата Сообщение от JIeIIIa Посмотреть сообщение
if (s[i] = ' ')
И это привело к ошибке. Arigato за помощь и извиняюсь за то что заставляю тратить время
0
02.05.2016, 14:07
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.05.2016, 14:07

Дана строка символов. Подсчитать, сколько в ней слов, заканчивающихся буквой «я»
Дана строка символов. Подсчитать, сколько в ней слов, заканчивающихся буквой...

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

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


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

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

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