|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
05.11.2009, 20:00 | #1 |
Новичок
Джуниор
Регистрация: 05.11.2009
Сообщений: 7
|
Задача о шести подряд идущих единицах.
Здравствуйте помогите мне пожалуйста с данной задачкой:
Вводиться натурально число. Проверить есть ли в введённом числе 6 подряд идущих единиц. Вот мой код задачи: Код:
к Примеру число 211111156 - должно сказать что число верно, а число к примеру 21112111 - не верно. Помогите пожалуйста, заранее очень вам благодарен. Последний раз редактировалось Stilet; 06.11.2009 в 10:04. |
05.11.2009, 20:32 | #2 |
Максим Николаев
Форумчанин
Регистрация: 15.02.2009
Сообщений: 170
|
В таком случае лучше работать с числом как с текстом. И просто найти в строке s подстроку '111111' - реализуется одной строкой...
NeshSoft. Программирование на заказ для студентов. Delphi/Pascal. Подробнее на сайте neshsoft.narod.ru
|
05.11.2009, 20:36 | #3 |
Участник клуба
Регистрация: 12.08.2008
Сообщений: 1,977
|
1. Переводим число в строку (IntToStr);
2. Объявляем счетчик подсчета количества цифр '1' ; 3. Cчитываем строку посимвольно и сравниваем с символом '1'.При совпадении увеличиваем счетчик на еденицу и проверяем не достиг ли счетчик значения 6.(если достиг - значит есть шесть едениц подряд.Далее можно или закончить проверку или же продолжать проверку далее - это надо уточнить условием задачи) Если нет совпадения с '1' счетчик сбрасываем в "ноль" и продолжаем проверку. Вот такой вот алгоритм. Программная реализация не должна вызывать затруднения.
И не сомневайся даже ... отдых - кайф, работа - лажа!
|
05.11.2009, 20:36 | #4 |
Новичок
Джуниор
Регистрация: 05.11.2009
Сообщений: 7
|
согласен, но у меня лабораторная работа по теме "Циклы", поэтому не могу использовать функцию Pos, или какую либо другу, в этом вся и проблема.
|
05.11.2009, 20:39 | #5 |
Участник клуба
Регистрация: 12.08.2008
Сообщений: 1,977
|
Вот и используй цикл по условию - " до конца строки" в методе #3.
И не сомневайся даже ... отдых - кайф, работа - лажа!
|
05.11.2009, 20:43 | #6 | |
Новичок
Джуниор
Регистрация: 05.11.2009
Сообщений: 7
|
Цитата:
|
|
05.11.2009, 20:45 | #7 | |
Максим Николаев
Форумчанин
Регистрация: 15.02.2009
Сообщений: 170
|
Цитата:
В любом случае я согласен с DeKot, цикл можно применить более эффективно. А использовать столько раз деление - неразумно.
NeshSoft. Программирование на заказ для студентов. Delphi/Pascal. Подробнее на сайте neshsoft.narod.ru
|
|
05.11.2009, 20:54 | #8 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
а что должна выдать программа, если в числе 7 (или более единиц подряд!?
а так вот простенький вариант: Код:
|
05.11.2009, 21:12 | #9 | |
Новичок
Джуниор
Регистрация: 05.11.2009
Сообщений: 7
|
Цитата:
|
|
05.11.2009, 22:21 | #10 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
Цитата:
имя у этой переменной выбрано так, чтобы можно было догадаться, для чего она нужна: Is6DigitFound - в вольном перевод это "Найдено6цифр" Это своеобразный флажок - который мы устанавливаем в ИСТИНУ, если нашли шесть единиц подряд. он же проверяется в цикле (в операторе UNTIL), поэтому, если мы нашли 6 единиц - то всё, выходим из цикла. и последнее, по этой переменной мы решаем, какое сообщение выдавать, Yes или No |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Поиск двух одинаковых строк идущих последовательно | stasbz | Microsoft Office Excel | 4 | 21.06.2009 18:40 |
Массив чисел (найти 4 идущих подряд чётных числа) | SeregaKo | Общие вопросы Delphi | 2 | 18.05.2009 23:09 |
Изобрадение идущих часов | StudeHt | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 03.05.2009 19:21 |
найти подпоследовательность из подряд идущих элементов с наибольшей суммой на С++ | aj_tramp | Помощь студентам | 2 | 12.12.2008 08:57 |