Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.01.2022, 22:40   #1
Надежда_Б
Новичок
Джуниор
 
Регистрация: 06.01.2022
Сообщений: 2
По умолчанию Написать метод RepZ

Класс TNumbers. Вводится многозначное число, каждая цифра становится элементом массива. Помогите написать метод RepZ определяет группы подряд стоящих одинаковых цифр (одна цифра не считается группой) в числе и формирует строку типа String, в которую вместо повторяющихся цифр скобках записывается количество цифр в группе и сумма цифр в группе через пробел, напр.: 222345555123 –>(3 6)(4 20). Цифры без групп удаляются
Надежда_Б вне форума Ответить с цитированием
Старый 06.01.2022, 22:42   #2
Надежда_Б
Новичок
Джуниор
 
Регистрация: 06.01.2022
Сообщений: 2
По умолчанию

Язык С++
Надежда_Б вне форума Ответить с цитированием
Старый 07.01.2022, 10:26   #3
ViktorR
Старожил
 
Регистрация: 23.10.2010
Сообщений: 2,379
По умолчанию

Пусть вводится многозначное число, которое мы принимаем в переменную number типа string.
Первая часть:
Цитата:
Вводится многозначное число, каждая цифра становится элементом массива.
Организуем массив masdigit типа char, например, или integer (какой тип нужен?)
Организуем цикл do ... while <>, в котором переносим цифры числа в элементы массива
Перед началом цикла обнулим переменную, например, count, которая будет индексом, изменяющемся до len(number): число цифр числа.
В цикле: masdigit[count] = number[count]; count++;

Другой вариант: Цикл for с параметром, например, i до len(number).

Вторая часть:
Цитата:
метод RepZ определяет группы подряд стоящих одинаковых цифр (одна цифра не считается группой) в числе и формирует строку типа String, в которую вместо повторяющихся цифр скобках записывается количество цифр в группе и сумма цифр в группе через пробел, напр.: 222345555123 –>(3 6)(4 20). Цифры без групп удаляются
Метод - это функция класса.
Код:
Описываем переменные:
count - число цифр в группе.
digit - цифра группы.
newstr - строка результата
   Перед циклом: count = 1; digit = number[0];  // или digit = masdigit[0];
   newstr = '' // пустая строка
   В цикле, например for, с параметром, например, i просматриваем строку number
   или массив masdigit до len(number) (а что надо?). Начальное значение параметра i = 1.
   В теле цикла пишем условный оператор:
{
      if digit = number[i] {   // цифра принадлежит группе
            count++;           // подсчитываем число цифр группы
      }
      else {                   // другая цифра
            if count > 1 {     // а что там накопилось?
                  tmpstr = '(' + str(count) + '<тут пробел>' + str(digit * count) + ')';
                  newstr = newstr + tmpstr;  // объединим строку результата с полученным на данном шаге
            };
            count = 1;        // набираем новую группу
            digit = number[i]
      }
} // конец цикла просмотра числа
Как-то так, ...
ViktorR вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
написать метод Tytik C# (си шарп) 16 17.12.2018 06:04
Помогите написать код в котором нужно заменить метод подсчёта на метод выбора и вставить ключ float[3] (файл вложен) Sasha48 Помощь студентам 0 26.02.2017 12:03
Написать через метод ООП + модуль lalka123 Паскаль, Turbo Pascal, PascalABC.NET 1 26.06.2014 20:51
Написать программу через метод (C#) corebitlol Помощь студентам 0 12.04.2012 13:25
[C++] Написать метод! Actimel Помощь студентам 3 17.01.2012 02:20