0 / 0 / 0
Регистрация: 10.07.2013
Сообщений: 12

Перенести последнюю букву в начало слова

10.07.2013, 21:57. Показов 2891. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Дана последовательность, содержащая до 5 слов, в каждом из которых до 5 строчных латинских букв; между соседними словами — не менее одного пробела, за последним словом — точка. Напечатать все слова последовательности, предварительно преобразовав каждое из них по следующему правилу:
1) перенести последнюю букву в начало слова;
2) удалить из слова первую букву.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.07.2013, 21:57
Ответы с готовыми решениями:

Перенести первую букву в конец слова, последнюю букву в начало слова
Дан текст, содержащий от 2 до 30 слов, в каждом из которых от 2 до 10 латинских букв; между соседними словами - не менее одного пробела....

Перенести последнюю букву в начало слова
31. Дано слово. Перенести последнюю букву в начало слова.

Строки. Перенести последнюю букву в начало слова
Дана последовательность, содержащая от 2 до 30 слов, в каждом из которых от 2 до 10 строчных латинских букв; между соседними словами –...

1
 Аватар для Mawrat
13113 / 5894 / 1708
Регистрация: 19.09.2009
Сообщений: 8,809
11.07.2013, 01:14
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Если условия 1 и 2 нужно выполнить в одном задании, тогда так:
Pascal
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
29
30
31
32
33
34
35
program Project1;
 
const
  {Множество разделителей слов.}
  D = ['.', ',', ':', ';', '!', '?', '-', ' ', #9, #10, #13];
var
  S : String;
  i, Len, LenW : Integer;
begin
  repeat
    Writeln('Задайте текст:');
    Readln(S);
 
    Len := Length(S); {Длина строки.}
    LenW := 0; {Длина текущего слова.}
    for i := 1 to Len do
      {Если символ не является разделителем, значит он принадлежит слову.}
      if not (S[i] in D) then begin
        Inc(LenW); {Учитываем очередной символ в длине слова.}
        {Отслеживаем конец слова.}
        if (i = Len) or (S[i + 1] in D) then begin
          S[i - LenW + 1] := S[i]; {Заменяем первую букву на последнюю.}
          {Удаляем последнюю букву слова, если в нём более 1 буквы.}
          if LenW > 1 then Delete(S, i, 1);
          LenW := 0;
        end;
      end;
 
    Writeln('Текст после обработки:');
    Writeln(S);
 
    Writeln('Повторить - Enter. Выход - любой символ + Enter.');
    Readln(S);
  until S <> '';
end.
Если условия следует выполнять отдельно:
1. В каждом слове перенести последнюю букву в начало слова.
Pascal
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
29
30
31
32
33
34
35
36
37
program Project1;
 
const
  {Множество разделителей слов.}
  D = ['.', ',', ':', ';', '!', '?', '-', ' ', #9, #10, #13];
var
  S : String;
  i, Len, LenW : Integer;
begin
  repeat
    Writeln('Задайте текст:');
    Readln(S);
 
    Len := Length(S); {Длина строки.}
    LenW := 0; {Длина текущего слова.}
    for i := 1 to Len do
      {Если символ не является разделителем, значит он принадлежит слову.}
      if not (S[i] in D) then begin
        Inc(LenW); {Учитываем очередной символ в длине слова.}
        {Отслеживаем конец слова.}
        if (i = Len) or (S[i + 1] in D) then begin
          {Вставляем последнюю букву в начало слова.}
          Insert(S[i], S, i - LenW + 1);
          {Удаляем последнюю букву слова. Из-за предыдущей вставки индекс
          последней буквы сместился на 1 позицию вправо, поэтому: i + 1.}
          Delete(S, i + 1, 1);
          LenW := 0;
        end;
      end;
 
    Writeln('Текст после обработки:');
    Writeln(S);
 
    Writeln('Повторить - Enter. Выход - любой символ + Enter.');
    Readln(S);
  until S <> '';
end.
2. Удалить в каждом слове первую букву.
Pascal
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
program Project1;
 
const
  {Множество разделителей слов.}
  D = ['.', ',', ':', ';', '!', '?', '-', ' ', #9, #10, #13];
var
  S : String;
  i, Len : Integer;
begin
  repeat
    Writeln('Задайте текст:');
    Readln(S);
 
    Len := Length(S);
    for i := Len downto 1 do
      {Если символ не является разделителем, значит он принадлежит слову.}
      if not (S[i] in D) then begin
        {Отслеживаем начало слова.}
        if (i = 1) or (S[i - 1] in D) then Delete(S, i, 1);
      end;
 
    Writeln('Текст после обработки:');
    Writeln(S);
 
    Writeln('Повторить - Enter. Выход - любой символ + Enter.');
    Readln(S);
  until S <> '';
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.07.2013, 01:14
Помогаю со студенческими работами здесь

Дано слово. Перенести последнюю букву в начало слова
Дано слово. Перенести последнюю букву в начало слова

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

Напечатать все слова, перенеся их последнюю букву в начало
Текст задан строкой: var St: string. Напечатать все слова, перенеся их последнюю букву в начало. (помогите пожалуйста)

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

Вывести слова, отличные от последнего слова, предварительно удалив из каждого слова последнюю букву
Дана последовательность, содержащая от 2 до 30 слов, в каждом из которых от 2 до 10 строчных латинских букв; между соседними словами –...


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

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

Новые блоги и статьи
Мульти-тенантные БД с PostgreSQL Row Security
Codd 23.04.2025
Современные облачные сервисы и бизнес-приложения всё чаще обслуживают множество клиентов в рамках единой программной инфраструктуры. Эта архитектурная модель, известная как мульти-тенантность, стала. . .
Реализация конвейеров машинного обучения с Python и Scikit-learn
AI_Generated 23.04.2025
Мир данных вокруг нас растёт с каждым днём, и умение эффективно обрабатывать информацию стало необходимым навыком. Специалисты по машинному обучению ежедневно сталкиваются с задачами предобработки. . .
Контроллеры Kubernetes Ingress: Сравнительный анализ
Mr. Docker 23.04.2025
В Kubernetes управление входящим трафиком представляет собой одну из ключевых задач при построении масштабируемых и отказоустойчивых приложений. Ingress — это API-объект, который служит вратами. . .
Оптимизация кода Python с Cython и Numba
py-thonny 23.04.2025
Python прочно обосновался в топе языков программирования благодаря своей простоте и гибкости. Разработчики любят его за читабельность кода и богатую экосистему библиотек. Но у этой медали есть и. . .
Микросервис на Python с FastAPI и Docker
ArchitectMsa 23.04.2025
В эпоху облачных вычислений и растущей сложности программных продуктов классическая монолитная архитектура всё чаще уступает место новым подходам. Микросервисная архитектура становится фаворитом. . .
Создаем веб-приложение на Vue.js и Laravel
Reangularity 23.04.2025
Выбор правильного технологического стека определяет успех веб-проекта. Laravel и Vue. js формируют отличную комбинацию для создания современных приложений. Laravel — это PHP-фреймворк с элегантным. . .
Максимальная производительность C#: Span<T> и Memory<T>
stackOverflow 22.04.2025
Мир высоконагруженных приложений безжалостен к неэффективному коду. Каждая миллисекунда на счету, каждый выделенный байт памяти может стать причиной падения производительности. Разработчики на C#. . .
JWT аутентификация в Java
Javaican 21.04.2025
JWT (JSON Web Token) представляет собой открытый стандарт (RFC 7519), который определяет компактный и самодостаточный способ передачи информации между сторонами в виде JSON-объекта. Эта информация. . .
Спринты Agile: Планирование, выполнение, ревью и ретроспектива
EggHead 21.04.2025
Спринты — сердцевина Agile-методологии, позволяющая командам создавать работающий продукт итерационно, с постоянной проверкой гипотез и адаптацией к изменениям. В основе концепции спринтов лежит. . .
Очередные открытия мега простых чисел, сделанные добровольцами с помощью домашних компьютеров
Programma_Boinc 21.04.2025
Очередные открытия мега простых чисел, сделанные добровольцами с помощью домашних компьютеров. 3 марта 2025 года, в результате обобщенного поиска простых чисел Ферма в PrimeGrid был найден. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru