Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
16 / 2 / 2
Регистрация: 12.12.2011
Сообщений: 37
1

Поменять местами первое и последнее предложение

15.10.2012, 17:09. Показов 1082. Ответов 9
Метки нет (Все метки)

Доброго времени суток,недавно попалась задача где нужно поменять местами 1-ое и последнее предложение.Но так получилось что я не могу логически довести ее до ума.Я допустил что все предложения отделяются только точками.Подскажите хоть примерно саму логику решения,потому что мои варианты просто не работали.Если уже были такие решения то киньте ссылку,буду очень благодарен.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.10.2012, 17:09
Ответы с готовыми решениями:

Поменять местами первое и последнее слово в строке
помогите поменять местами первое и последнее слово в строке. Язык Делфи Добавлено через 8 минут...

Строка: В заданном тексте (слова разделены пробелами) поменять первое и последнее слово
Помогите написать программы в Delphi, надо очень срочно, а то я понять не могу как их писать.......

Как поменять местами в предложение первое и последнее слово?
Доброго времени суток) подскажите ,пожалуйста,как в поменять местами в предложение первое и...

Дано предложение. Поменять местами его первое и последнее слово
Часть 1. Дан числовой массив. Реализовать алгоритм сортировки подсчётом. Часть 2. Дано...

__________________
9
3941 / 1866 / 337
Регистрация: 16.03.2012
Сообщений: 3,880
15.10.2012, 18:02 2
Выложи своё решение - подправим. Неохота догадываться откуда берётся текст, куда ложить результат, в каком виде оформлять программу и пр.
Логика то простая. Всё дело в том, откуда брать и куда складывать.
0
16 / 2 / 2
Регистрация: 12.12.2011
Сообщений: 37
15.10.2012, 20:04  [ТС] 3
да мое решение почти ничего не значит,я взял текст из мемо и посчитал кол-во точек,а дальше были только теории о занесении предложений в массив или по кусочку отрезать о текста и обрабатывать в цикле,у меня вообще фантазии нет.А откуда брать и куда возвращать тут не проблема,например в тот же мемо.У меня еще не было проблем с такими задачами,а тут как снег на голову
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
procedure TForm1.Button1Click(Sender: TObject);
 var a : array [1..100] of string;i,n,t : integer; s : string;
begin
 n := 0;
 s := memo1.Text;
  t := Length(s);
  for i := 1 to t do
   if s[i] = '.' then
   begin
    n := n + 1;
    for i :=1 to t do
     if s[i]<= pos('.') then
     begin
     
   Memo2.text := ;
 
end;
0
3941 / 1866 / 337
Регистрация: 16.03.2012
Сообщений: 3,880
15.10.2012, 23:42 4
Набирал-набирал, а когда нажал "ответить" - произошел сбой. Вся работа насмарку.
В общем - повторяю:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
procedure TForm1.Button1Click(Sender: TObject);
var 
  i,j,k,n,t : integer; 
  s,s1,s2 : string;
begin
  n := 0;
  s := memo1.Text;
  t := Length(s);
  //Ищем начало и конец последнего предложения
  //Предполагаем, что в конце последнего тоже стоит точка
  For i:=t DownTo 1 Do
  If s[i]='.' Then
  If j=0 Then j:=i Else
  Begin
    k:=i+1; //Начало последнего предложения
    Break;
  End;
  If k=0 Then Exit; //Предложений меньше 2-х
 
  n:=Pos('.',s); //Конец первого предложения
  s1:=Copy(s,1,n); //Первое предложение
  s2:=Copy(s,k,j-k+1); //Последнее предложение
 
  Delete(s,k,j-k+1); //Удаляем последнее
  Delete(s,1,n); //Удаляем первое
 
  Memo2.Text:=s2+s+s1;
end;
1
2474 / 1850 / 242
Регистрация: 14.09.2012
Сообщений: 5,981
Записей в блоге: 2
16.10.2012, 00:10 5
Разве через StringList не проще?
1
3941 / 1866 / 337
Регистрация: 16.03.2012
Сообщений: 3,880
16.10.2012, 00:44 6
Разве через StringList не проще?
Какая разница? Если бы одно предложение было в одной строке - и через Memo было бы просто.
angstrom: Может ты знаешь другой способ? Приведи.
0
2474 / 1850 / 242
Регистрация: 14.09.2012
Сообщений: 5,981
Записей в блоге: 2
16.10.2012, 00:55 7
Надеюсь, не ошибся.
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
var
  sl : TStringList;
  st : String;
begin
  sl := TStringList.Create;  
  try
    sl.Delimiter := '.';
    sl.DelimitedText := Memo1.Text;
    st := sl.Strings[0];
    sl.Strings[0] := sl.Strings[sl.Count - 1];
    sl.Strings[sl.Count - 1] := st;
    Memo2.Text := sl.Text;
  finally
    sl.Free;
  end;
0
3941 / 1866 / 337
Регистрация: 16.03.2012
Сообщений: 3,880
16.10.2012, 07:24 8
angstrom: Была такая мысль с Delimiter, но поленился проверить. Сейчас взял твой код, проверил и не получилось. Правда у меня был текст разбитый на строки с ВК, ПС. Не успеваю уже довести до конца. Так что тебе и карты в руки.
0
16 / 2 / 2
Регистрация: 12.12.2011
Сообщений: 37
16.10.2012, 07:24  [ТС] 9
спасибо всем большое,гора с плеч
0
2474 / 1850 / 242
Регистрация: 14.09.2012
Сообщений: 5,981
Записей в блоге: 2
16.10.2012, 10:59 10
Цитата Сообщение от Одиночка Посмотреть сообщение
Правда у меня был текст разбитый на строки с ВК, ПС. Не успеваю уже довести до конца. Так что тебе и карты в руки.
Проверил с двумя вариациями, текст разбитый на строки и "цельный". В любом случае в итоге разбивает на отдельные слова. Как раньше нормально такое делал и почему сейчас не получается?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.10.2012, 10:59

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

Дано предложение. Поменять местами его первое и последнее слово.
Дано предложение. Поменять местами его первое и последнее слово.

Дано предложение. Поменять местами его первое и последнее слово
Не знаю как записать во вторую переменную последнее слово. Помогите пожалуйста :wall: #include...

Отредактировать предложение, удаляя из него лишние пробелы, поменять местами в строке первое и последнее
прошу помощи с двумя заданиями: 1.Отредактировать предложение, удаляя из него лишние пробелы,...

Поменять местами первое и последнее слово
Ребят, помогите пожалуйста доделать скрипт. Надо поменять местами первое и последнее слово....

Поменять местами первое и последнее слово
Помогите написать программу. &quot;Поменяйте местами первое и последнее слово&quot; (ввод строк...

Поменять местами первое и последнее слово
Помогите решить задачу, используя строки. В заданном тексте (слова разделены пробелами) поменять...


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

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

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