2 / 2 / 0
Регистрация: 24.11.2010
Сообщений: 26
1

Поменять в строке слова с заданными номерами

15.03.2011, 14:03. Показов 2266. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Дана строка символов, состоящая из произвольного текста на английском языке, слова разделены пробелами. Поменять местами i- и j-е слова.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.03.2011, 14:03
Ответы с готовыми решениями:

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

В матрице поменять местами две строки с заданными номерами
Доброго времени суток. Прошу о помощи)) Выполнить над квадратной матрицей А порядка n...

В квадратной матрице поменять местами две строки с заданными номерами
В квадратной матрице А 1).поменять местами две строки с заданными номерами; 2) сформировать из...

В квадратной матрице A поменять местами два столбца с заданными номерами
Здравствуйте уважаемые программисты ! Помогите мне пожалуйста с задачей . В квадратной матрице...

2
13100 / 5881 / 1706
Регистрация: 19.09.2009
Сообщений: 8,808
16.03.2011, 12:02 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
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
program Project1;
 
type
  //Сведения о координатах слова.
  TWInfo = record
    Start, Len : Integer;
  end;
 
const
  //Множество разделителей слов.
  D = [' ', '.', ',', ':', ';', '!', '?', '-', #9, #10, #13];
var
  S, Sw : String;
  i, j, N1, N2, Pos1, Len, LenW : Integer;
  W, W1, W2 : TWInfo;
begin
  repeat
    //Исходный текст.
    Writeln('Задайте текст:');
    Readln(S);
    Writeln('Задайте номер первого слова 1..:');
    Readln(N1);
    Writeln('Задайте номер второго слова 1..:');
    Readln(N2);
 
    Len := Length(S);
    Pos1 := 0;
    //Начальное задание координат слова W1.
    W1.Start := 0;
    W1.Len := Len;
    //Начальное задание координат слова W2.
    W2.Start := 0;
    W2.Len := 0;
    //Номера слов.
    j := 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
        Inc(j);
        LenW := i - Pos1 + 1;
        if j = N1 then begin
          W1.Len := LenW;
          W1.Start := Pos1;
        end;
        if j = N2 then begin
          W2.Len := LenW;
          W2.Start := Pos1;
        end;
      end;
    end;
 
    //Меняем слова местами.
    if (W1.Start > 0) and (W2.Start > 0) then begin
      //Меняем данные так, чтобы в записи W1 было то слово,
      //которое расположено левее, а в W2 - то, которое правее.
      if W1.Start > W2.Start then begin
        W := W1;
        W1 := W2;
        W2 := W;
      end;
 
      //Запоминаем правое слово.
      Sw := Copy(S, W2.Start, W2.Len);
      //Удаляем правое слово.
      Delete(S, W2.Start, W2.Len);
      //На место правого слова вставляем левое слово.
      Insert(Copy(S, W1.Start, W1.Len), S, W2.Start);
      //Удаляем левое слово.
      Delete(S, W1.Start, W1.Len);
      //На место левого слова записываем правое слово.
      Insert(Sw, S, W1.Start);
      //Вывод результатов.
      Writeln('Изменённый текст:');
      Writeln(S);
    end else begin
      Writeln('Недостаточно слов в заданном тексте.');
    end;
 
    Writeln('Повторить - Enter. Выход - любой символ + Enter.');
    Readln(S);
  until S <> '';
end.
1
2 / 2 / 0
Регистрация: 24.11.2010
Сообщений: 26
16.03.2011, 12:42  [ТС] 3
где ты раньше был , я уже сам понел что как

---
Mawrat: За всем не уследишь. Что сам разобрался - это очень хорошо. Теперь можешь сравнить коды - полезно для расширения опыта.
1
16.03.2011, 12:42
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.03.2011, 12:42
Помогаю со студенческими работами здесь

Двумерный массив. Поменять местами строки матрицы с заданными номерами
Дана матрица размера MхN и целые числа К1 и К2 (1&lt;=K1&lt;K2&lt;=M). Поменять местами строки матрицы с...

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

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

В матрице А поменять местами две строки с заданными номерами
Выполнить над квадратной матрицей А порядка n последовательность действий, указанную в задании. а)...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru