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

Переместить все цифры в конец, а остальные символы в начало строки, сохраняя порядок взаимного расположения

30.10.2015, 00:50. Показов 2395. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Преобразовать строку символов по пaравилу: переместить все цифры в конец, а остальные символы в начало строки, сохраняя порядок взаимного расположения символов в каждой из этих двух групп
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.10.2015, 00:50
Ответы с готовыми решениями:

Переместить в начало все отрицательные элементы списка, сохраняя их порядок
Дан список из n целых чисел a1,a2,.,an. Переместить в начало все отрицательные элементы списка,...

Все отрицательные элементы переместить в начало массива, а остальные — в конец
Здравствуйте, помогите пожалуйста решить задачу на языке VBA, на делфи частично могу сделать, но в...

Переставить в начало строки все буквы в порядке их следования, затем цифры, и в конце – остальные символы
Переставить в начало строки все буквы в порядке их следования, затем цифры, и в конце – остальные...

В одновременном массиве все отрицательные элементы переместить а начало, а остальные — в конец
написать программу

11
Платежеспособный зверь
8818 / 4245 / 1618
Регистрация: 28.10.2009
Сообщений: 11,386
30.10.2015, 02:03 2
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
var
a,b:string;
i,m:integer;
begin
readln(a);
m:=length(a);
while i<=m do
begin
inc(i);
if( ord(a[i])>=48)and(ord(a[i])<=57)then
begin
b:=b+a[i];
delete(a,i,1);
dec(i);
dec(m);
end;
end;
writeln(a+b);
end.
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32571 / 21042 / 8131
Регистрация: 22.10.2011
Сообщений: 36,316
Записей в блоге: 8
30.10.2015, 02:20 3
Pascal
1
2
3
4
5
begin
  var s : string := '292hello9pascal876abc23net';
  s := new string(s.OrderBy(ch -> char.IsDigit(ch)).ToArray());
  writeln(s)
end.
0
Платежеспособный зверь
8818 / 4245 / 1618
Регистрация: 28.10.2009
Сообщений: 11,386
30.10.2015, 07:40 4
volvo, я делал версию для классического паскаля
0
5058 / 2632 / 2345
Регистрация: 10.12.2014
Сообщений: 9,994
30.10.2015, 09:02 5
Цитата Сообщение от кот Бегемот Посмотреть сообщение
я делал версию для классического паскаля
В таком случае почему:
— не инициализируются переменные i и b перед первым использованием?
— при любых условиях выскакивает «Индекс находится вне границ массива.»

Вот мой почти «классический» вариант:
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
begin
  var s := '292hello9pascal876abc23net3';
  for var i := s.Length - 1 downto 1 do
    if (s[i] > #47) and (s[i] < #58) then
      begin
        var c := s[i];
        var p := i;
        repeat
          p += 1;
          s[p-1] := s[p];
        until (s[p] > #47) and (s[p] < #58) or (p = s.Length);
        s[p] := c;
      end;
   WriteLn(s);
end.
0
Платежеспособный зверь
8818 / 4245 / 1618
Регистрация: 28.10.2009
Сообщений: 11,386
30.10.2015, 09:35 6
Цитата Сообщение от JuriiMW Посмотреть сообщение
В таком случае почему:
— не инициализируются переменные i и b перед первым использованием?
Неаккуратность, не имеющая значения
Цитата Сообщение от JuriiMW Посмотреть сообщение
почему:
— при любых условиях выскакивает «Индекс находится вне границ массива.»
Откуда я знаю, почему ваш кривой ПаскальАВС не воспринимает a[1] как первый символ строки а, а требует объявления массива символов. В Турбо Паскале всё прекрасно работает
Цитата Сообщение от JuriiMW Посмотреть сообщение
Вот мой почти «классический» вариант
К классическому Паскалю ваш вариант не имеет никакого отношения и работать не будет, а в АВС уже сделали простую программу.
0
5058 / 2632 / 2345
Регистрация: 10.12.2014
Сообщений: 9,994
30.10.2015, 09:51 7
Он, вообще-то, вот после этого ругается:
Цитата Сообщение от кот Бегемот Посмотреть сообщение
while i<=m do
begin
inc(i);
m — длина строки, а значит
i — становится длинее строки!
0
Платежеспособный зверь
8818 / 4245 / 1618
Регистрация: 28.10.2009
Сообщений: 11,386
30.10.2015, 10:20 8
Это несложно исправить. Достаточно записать 7 строку так:
Pascal
1
while i<m do
Знак = там был ошибочен, так как обрабатывается следующий символ.
0
5058 / 2632 / 2345
Регистрация: 10.12.2014
Сообщений: 9,994
30.10.2015, 10:31 9
кот Бегемот, я то это сразу увидел… А вас пришлось на буксире тянуть…
И как теперь воспринять ваши же слова:
Цитата Сообщение от кот Бегемот Посмотреть сообщение
Неаккуратность, не имеющая значения
0
Платежеспособный зверь
8818 / 4245 / 1618
Регистрация: 28.10.2009
Сообщений: 11,386
30.10.2015, 10:37 10
А Вы обратили внимание в котором часу была написана программа?
И вообще, ты хто, чтобы меня учить?
Я справлюсь без Вашего участия.

Цитата Сообщение от JuriiMW Посмотреть сообщение
я то это сразу увидел
Ну, возьми с полочки пирожок и радуйся, что ты самый талантливый, а остальные - мусор
0
5058 / 2632 / 2345
Регистрация: 10.12.2014
Сообщений: 9,994
30.10.2015, 10:59 11
Цитата Сообщение от кот Бегемот Посмотреть сообщение
ты хто,
Цитата Сообщение от кот Бегемот Посмотреть сообщение
Ну, возьми с
Давайте без личностей!
0
Платежеспособный зверь
8818 / 4245 / 1618
Регистрация: 28.10.2009
Сообщений: 11,386
30.10.2015, 11:03 12
А вы ведите себя в рамках приличия, не читайте нравоучений, не хамите, не выпячивайте своё я.
Правильнее было бы послать тебя куда подальше.
Но я просто прекращаю общение навсегда.
Вы мне не интересны.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.10.2015, 11:03
Помогаю со студенческими работами здесь

В одномерном массиве все отрицательные элементы переместить в начало, а остальные-в конец
В одномерном массиве все отрицательные элементы переместить в начало массива, а остальные-в конец с...

В массиве все отрицательные элементы переместить в начало массива а остальные в конец
В одномерном массиве все отрицательные элементы перемещаются в начало массива а остальные в конец...

В одномерном массиве все отрицательные элементы переместить в начало, а остальные - в конец
Помогите написать блох-схему на данный код... //В одномерном массиве все отрицательные элементы...

Сдвинуть все элементы с четными индексами в начало массива, а с нечетными – в конец, сохраняя порядок их следования.
Задан одномерный массив. Сдвинуть все элементы с четными индексами в начало массива, а с нечетными...


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

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

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