Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.12.2018, 20:15   #1
Necker
Пользователь
 
Регистрация: 23.09.2018
Сообщений: 23
По умолчанию [Delphi] Сортировка букв в слове

Нужно видоизменить код чтоб он изменял порядок всех букв кроме первой и последней
Код:
Цитата:
program Project2; {$APPTYPE CONSOLE} uses SysUtils; const //Разделители слов. D = ['.', ',', ':', ';', '!', '?', '-', ' ', #9, #10, #13]; var S : String; i, Pos1, Len : Integer; Ch : Char; begin repeat Writeln('Задайте строку:'); Readln(S); Len := Length(S); Pos1 := 0; for i := 1 to Len do begin //Пропускаем разделители. if S[i] in D then Continue; //Отслеживаем начало слова. if (i = 1) or (S[i - 1] in D) then Pos1 := i; //Отслеживаем конец слова. if (i = Len) or (S[i + 1] in D) then begin //Меняем местами первую и последнюю буквы слова. Ch := S[Pos1]; S[Pos1] := S[i]; S[i] := Ch; end; end; Writeln('Результат:'); Writeln(S); Writeln('Повторить - Enter, выход - любой символ + Enter.'); Readln(S); until S <> ''; end.
Necker вне форума Ответить с цитированием
Старый 17.12.2018, 21:16   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Necker Посмотреть сообщение
чтоб он изменял порядок всех букв кроме первой и последней
и как нужно изменять порядок букв?
Допустим, дано:
Молодой человек вышел на крыльцо.
что должно получится?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 18.12.2018, 12:12   #3
Necker
Пользователь
 
Регистрация: 23.09.2018
Сообщений: 23
По умолчанию

Рандомное изменение порядка букв кроме 1 и последней
Necker вне форума Ответить с цитированием
Старый 18.12.2018, 13:09   #4
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Вариант
Код:
{random (m - n + 1) + n }
if (i = Len) or (S[i + 1] in D) then begin
   for ii := Pos1+1 to I-1 do begin
      i1 := Random(i-pos1+1)+pos1+1
      Ch:= S[i1];
      S[i1] := S[ii];
      S[ii] := Ch;
   end;           
end;
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 18.12.2018, 13:52   #5
Necker
Пользователь
 
Регистрация: 23.09.2018
Сообщений: 23
По умолчанию

Цитата:
Сообщение от Aleksandr H. Посмотреть сообщение
Вариант
Код:
{random (m - n + 1) + n }
if (i = Len) or (S[i + 1] in D) then begin
   for ii := Pos1+1 to I-1 do begin
      i1 := Random(i-pos1+1)+pos1+1
      Ch:= S[i1];
      S[i1] := S[ii];
      S[ii] := Ch;
   end;           
end;
Спасибо за помощь

Последний раз редактировалось Necker; 18.12.2018 в 13:55.
Necker вне форума Ответить с цитированием
Старый 18.12.2018, 14:03   #6
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,772
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
и как нужно изменять порядок букв?
Так это известный прикол
Цитата:
По рзелульаттам илссеовадний одонго анлигйсокго унвиертисета, не иеемт занчнеия, в кокам пряокде рсапожолены бкувы в солве. Галвоне, чотбы преавя и пслоендяя бквуы блыи на мсете. Осатьлыне бкувы мгоут селдовтаь в плоонм бсепордяке, все-рвано ткест чтаитсея без побрелм. Пичрионй эгото ялвятеся то, что мы чиатем не кдаужю бкуву по отдльенотси, а все солво цликеом.
Black Fregat вне форума Ответить с цитированием
Старый 19.12.2018, 22:42   #7
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Код:
for ii := Pos1+1 to i-1 do
          begin                             // перемешка букв
            st := Pos1+1;
            fn := i-1;
            //to get a random number between n and m, do this:
            //random (m - n + 1) + n
            i1 := Random(fn-st+1)+st;
            Ch:=S[i1];
            S[i1]:=S[ii];
            S[ii]:=Ch;
          end;
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 20.12.2018, 22:45   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Молодой человек вышел на крыльцо.

Цитата:
Сообщение от Black Fregat Посмотреть сообщение
Так это известный прикол
Так?
Мдлооой чееолвк веышл на кцлрыьо.

особенно последнее слово доставляет
а такая фраза тоже не вызовет трудностей?
Так гооилвра в илюе 1805 гдоа иеавсзнтя Анна Пнввоала Шеерр, фиелнрйа и пеаиилннбржя итцаиемпрры Мриаи Фдрвноеооы

Последний раз редактировалось Serge_Bliznykov; 20.12.2018 в 22:52.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 21.12.2018, 10:59   #9
digitalis
Старожил
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Сообщений: 4,536
По умолчанию

Всего длонжо быть в меру, а если чресечур, то хан'а .
digitalis вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
подсчет гласных букв в слове santafer Lazarus, Free Pascal, CodeTyphon 4 28.11.2015 22:00
JavaScript: сортировка по количеству букв в слове Svyatoslav359 JavaScript, Ajax 3 10.06.2015 14:42
Комбинации букв в слове Palto Помощь студентам 4 24.04.2014 18:24
подсчет букв С в последнем слове Obey177 Помощь студентам 7 10.09.2010 16:06