Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
3 / 3 / 0
Регистрация: 23.10.2014
Сообщений: 49
1

Для всей строки поменять символы местами в каждой паре, начиная с начала

23.10.2014, 12:39. Показов 1421. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Задано произвольную строку. Для всей строки поменять в каждой паре, начиная сначала, символы местами.
Help please!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
23.10.2014, 12:39
Ответы с готовыми решениями:

Строки: Поменять местами символы каждой пары
В данной символьной строке содержится четное число символов. Поменяйте местами символы каждой пары

В каждой паре элементов массива поменять их местами
Написать программу, которая заполняет элементы массива X, состоящего из n элементов (n≤20...

поменять в файле местами элементы в каждой паре:
заполнить файл f целыми числами,полученными с помощью генератора случайных чисел.поменять в файле...

Поменять местами числа в каждой последовательной непересекающейся паре массива
Здравствуйте, хочу попросить помощи у знающих. Заставили писать макрос на VBA в Excell, я в этом...

8
726 / 478 / 130
Регистрация: 24.12.2008
Сообщений: 3,924
23.10.2014, 13:56 2
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Как-то так
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
var
 s, c: string;
 i: integer;
begin
 s:='sakjdfhajkf';
 i:=1;
 while i<length(s)-1 do
 begin
  c:=s[i];
  s[i]:=s[i+1];
  s[i+1]:=c;
  inc(i, 2);
 end;
0
Модератор
9256 / 6034 / 2379
Регистрация: 21.01.2014
Сообщений: 25,793
Записей в блоге: 3
23.10.2014, 14:13 3
Svetlana_Lavrin, в случае, если число символов - число нечетное, то будет отброшен последний символ, что не есть гуд.
Кроме того, у меня возникла ошибка компиляции
[dcc32 Error] Unit1.pas(111): E2010 Incompatible types: 'Char' and 'string'
на строке 11 Вашего кода.
Поэтому предлагаю немного другое решение:
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
procedure TForm1.Button4Click(Sender: TObject);
var s, rez, c : string;
    i : Integer;
begin
 Rez := '';
 if Length(Edit1.Text) mod 2 <> 0
  then begin
        c := copy(Edit1.Text, Length(Edit1.Text), 1);
        s := copy(Edit1.Text, 1, Length(Edit1.Text) - 1);
       end
  else s := Edit1.Text;
  i := 1;
  while  i <= length(s) - 1 do
   begin
    rez := rez + s[i + 1] + s[i];
    i := i + 2;
   end;
  if Length(c) > 0 then Rez := Rez + c;
  Label1.Caption := Rez;
end;
0
726 / 478 / 130
Регистрация: 24.12.2008
Сообщений: 3,924
23.10.2014, 14:28 4
Мой мозговой компилятор плохо работает
Delphi
1
2
s: string;
c: char;
0
3 / 3 / 0
Регистрация: 23.10.2014
Сообщений: 49
29.10.2014, 18:23  [ТС] 5
не работает( когда ввожу буквы/цифры в самой программе, оно ничего не меняет, с сразу выходит.

Добавлено через 21 секунду
мне нужен консольный код((
0
Puporev
29.10.2014, 18:29
  #6

Не по теме:

Цитата Сообщение от Svetlana_Lavrin Посмотреть сообщение
мне нужен консольный код((
D1973, и Игорь[Igor], расстрелять!

0
726 / 478 / 130
Регистрация: 24.12.2008
Сообщений: 3,924
29.10.2014, 18:35 7
readln в конце или в цикле while с проверко нажатия клавиши для выхода из цикла
0
3 / 3 / 0
Регистрация: 23.10.2014
Сообщений: 49
30.10.2014, 11:44  [ТС] 8
но оно всё также не выводит мне результат.
0
Модератор
9256 / 6034 / 2379
Регистрация: 21.01.2014
Сообщений: 25,793
Записей в блоге: 3
30.10.2014, 11:58 9
Лучший ответ Сообщение было отмечено Svetlana_Lavrin как решение

Решение

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
29
30
program Project1;
 
{$APPTYPE CONSOLE}
 
uses SysUtils;
 
var s, rez, c, OurString : string;
    i : Integer;
    key : char;
begin
 rez := '';
 write('Enter Your string: ');
 readln(OurString);
 if Length(OurString) mod 2 <> 0
  then begin
        c := copy(OurString, Length(OurString), 1);
        s := copy(OurString, 1, Length(OurString) - 1);
       end
  else s := OurString;
  i := 1;
  while  i <= length(s) - 1 do
   begin
    rez := rez + s[i + 1] + s[i];
    i := i + 2;
   end;
  if Length(c) > 0 then Rez := Rez + c;
  writeln(Rez);
  write('Press Enter to exit...');
  readln(key);
end.
Теперь Ваша душенька довольна?
Изображения
 
1
30.10.2014, 11:58
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.10.2014, 11:58
Помогаю со студенческими работами здесь

Перевернуть строки, содержащиеся в каждой паре совпадающих скобок, начиная с самой внутренней пары
Написал почти всё) Только вот думаю,как реализовать замену в самой исходной строки на найденные...

Напечатать все слова, предварительно в каждой паре букв в слове поменять их местами;
Напечатать все слова, предварительно в каждой паре букв в слове поменять их местами;

В функции, для каждой строки матрицы M[n][k], максимальный элемент поменять местами с первым элементом строки
В функции, для каждой строки матрицы M, максимальный элемент поменять местами с первым элементом...

Для каждой строки таблицы поменять местами соседние элементы
Написать консольную программу, выполняющую следующие действия: 1. Обеспечить получение параметров...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru