Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
 Аватар для igor myakota
73 / 74 / 16
Регистрация: 03.05.2012
Сообщений: 1,271

В строке удалить все слова на нечетных порядковых позициях, а слова на четных позициях напечатать перевернутыми

10.03.2014, 23:33. Показов 2996. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
в строке удалить все слова на нечетных порядковых позициях, а слова на четных позициях напечатать перевернутыми
Предложения может быть любое
зделал на С++ а вот в паскале не могу реализовать
C#
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
using System;
using System.Collections.Generic;
using System.Text;
using System.Text.RegularExpressions;
 
namespace ConsoleApplication1
{
    class Program
    {
        static string ChangeStr(string str)
        {
            bool isEven = false; // Флаг для оценки чётное-нечётное. false - нечётное. true - чётное.
            int pos = 0; // Позиция начала слова
            string changedStr = "Упс. Неудачный исход ChangeStr()"; // Возвращаемая строка
 
            char[] tempWord; // Массив символов
            StringBuilder newStr = new StringBuilder(str); // 
            Regex reg = new Regex(@"\w+"); // Регулярное выражение для выборки слова
 
            Match word = reg.Match(str); // Выбираем только слова из строки
            while (word.Success) // Пока получаем слова, обрабатываем их
            {
                if (isEven) // Если слово чётное
                {
                    pos = word.Index; // Запоминаем позицию слова в строке
                    tempWord = word.ToString().ToCharArray(); // Преобразуем его в массив символов
                    
tempWord = word.Value.ToCharArray(); // Преобразуем его в массив символов
 
 
                    // Заменяем слово в строке на новое. Для этого
                    newStr.Remove(pos, tempWord.Length); // Удаляем исходное слово из строки
                    newStr.Insert(pos, tempWord); // Вставляем новое слово
                } // if
                isEven = !isEven; // Инвертируем флаг чётности
                word = word.NextMatch(); // Ищем следующее слово в строке
            } // while
 
            changedStr = newStr.ToString();
            return changedStr; // Покидаем метод с возвратом строки
        } // ChangeStr(string str)
        
        
        static void Main(string[] args)
        {
            // Для ввода строки с клавиатуры эту строку убрать
            string strInput = "Постановка задачи такая: ввести строку символов с клавиатуры. Строка состоит из слов, разделенных пробелами (пробелов может быть несколько) и знаками препинания (, ;: ). В строке может быть несколько предложений, в конце каждого предложения стоит знак препинания (.!?).Необходимо перевернуть каждое четное слово.";
 
            Console.WriteLine("Исходная строка.");
            // Для ввода строки с клавиатуры эту строку убрать
            Console.WriteLine(strInput);
            // Для ввода строки с клавиатуры эту строку раскомментировать
            //strInput = Console.ReadLine();
 
            Console.WriteLine();
            Console.WriteLine("Изменённая строка");
            strInput = ChangeStr(strInput);
            Console.WriteLine(strInput);
        } // Main()
    }
}
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
10.03.2014, 23:33
Ответы с готовыми решениями:

Типизированные файлы: Найти максимум среди компонент, расположенных на четных позициях файла и минимум среди компонент на нечётных позициях
Задан числовой файл . Найти максимум среди компонент, расположенных на четных позициях файла и...

Отсортировать элементы на четных позициях по возрастанию, на нечетных позициях по убыванию
Помогите пожалуйста, срочна нужно помощь. Дан массив размера N. Отсортировать элементы, стоящие на...

Слова на четных позициях напечатать заглавными символами, а нечетные - в обратном порядке
Запросить с клавиатуры текст(строку символов). Изменить текст таким образом, чтобы слова, стоящие...

5
Модератор
10451 / 5741 / 3409
Регистрация: 17.08.2012
Сообщений: 17,474
11.03.2014, 03:49
Словом считаю множество символов, оканчивающихся пробелом. Моё решение, без проверок и украшений.
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
program igor;
var s, w: string;
    i: integer;
begin
  writeln('Enter string:');
  readln(s);
  s := s + ' ';
  writeln('Result:');
  while length(s) > 0 do
    begin
      delete(s, 1, pos(' ', s));
      if length(s) > 0
        then begin
          w := copy(s, 1, pos(' ', s) - 1);
          delete(s, 1, pos(' ', s));
          for i := length(w) downto 1 do write(w[i]);
          write(' ');
        end
    end;
  readln
end.
1
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33404 / 21514 / 8236
Регистрация: 22.10.2011
Сообщений: 36,914
Записей в блоге: 12
11.03.2014, 04:33
Лучший ответ Сообщение было отмечено volvo как решение

Решение

Цитата Сообщение от igor myakota Посмотреть сообщение
зделал на С++
Не на С++, а на C#, это разные вещи... На Паскале (.NET-овском, разумеется) то же самое делается еще проще:
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
38
39
uses
  System.Collections.Generic, 
  System.Text.RegularExpressions;
 
function ChangeStr(str: string): string;
begin
  var isEven: boolean := false;
  result := str;
  var offset: Integer :=  0;
  
  var reg: System.Text.RegularExpressions.Regex := new Regex('\w+');
  var MyWord: Match := reg.Match(str);
  while MyWord.Success do
  begin
    result := result.Remove(MyWord.Index - Offset, MyWord.Length);
    if isEven then 
      result := result.Insert(MyWord.Index - Offset, ReverseString(MyWord.Value))
    else 
      inc(Offset, MyWord.Length);
    
    isEven := not isEven;
    MyWord := MyWord.NextMatch;
  end;
end;
 
begin
  var strInput: string := 
    'Постановка задачи такая: ввести строку символов с клавиатуры. ' +
    'Строка состоит из слов, разделенных пробелами (пробелов может ' +
    'быть несколько) и знаками препинания (, ;: ). В строке может ' +
    'быть несколько предложений, в конце каждого предложения стоит ' +
    'знак препинания (.!?).Необходимо перевернуть каждое четное слово.';
  
  writeln('Исходная строка:');
  writeln(strInput);
  
  writeln('Изменённая строка');
  writeln(ChangeStr(strInput));
end.
1
0 / 0 / 0
Регистрация: 02.03.2020
Сообщений: 30
08.12.2020, 21:37
Cyborg Drone, Можете пожалуйста написать эту же программу только на С (Си)
Заранее огроомное спасибо
0
Модератор
10451 / 5741 / 3409
Регистрация: 17.08.2012
Сообщений: 17,474
08.12.2020, 22:31
Вы уверены, что Вам нужна программа именно на этом архаичном C, а не на С++ или не на C#? Я не люблю делать зряшную работу.
0
0 / 0 / 0
Регистрация: 02.03.2020
Сообщений: 30
09.12.2020, 08:44
Cyborg Drone, Да впринципе без разницы
Сделайте если можете на С++
Я буду очень благодарен
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.12.2020, 08:44
Помогаю со студенческими работами здесь

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

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

Массив: Заменить все четные элементы заданного массива их «перевернутыми» индексами
Дано двумерный массив целых чисел. Заменить все четные элементы заданного массива их...

Массив. Заменить все четные элементы заданного массива их «перевернутыми» индексами
Дано двумерный массив целых чисел. Заменить все четные элементы заданного массива их...

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


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru