Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RFpro.ru: Программирование на C / C++


РАССЫЛКИ ПОРТАЛА RFPRO.RU

Лучшие эксперты в разделе

solowey
Статус: Студент
Рейтинг: 44
∙ повысить рейтинг »
CradleA
Статус: Профессор
Рейтинг: 21
∙ повысить рейтинг »
Асмик Гаряка
Статус: Советник
Рейтинг: 18
∙ повысить рейтинг »

∙ С / С++

Номер выпуска:1943
Дата выхода:09.10.2018, 20:45
Администратор рассылки:Андрей Кузнецов aka Dr_Andrew (Старший модератор)
Подписчиков / экспертов:40 / 26
Вопросов / ответов:3 / 8

Консультация # 99271: Помогите пожалуйста. Никак не пойму как сделать эту прогу: Найти все натуральные n-значные числа, цифры в которых образуют строго возрастающую последовательность (например, 1234, 5789)....
Консультация # 146721: Уважаемые,помогите пожалуйста осущесвить данную задач smile Написать программу,выводящую Ваше имя и адрес так ,чтобы они всегда оставались центрированными посередине окна, даже если его размеры меняются....
Консультация # 167584: не могу запустить функцию SearchPath SearchPath(NULL,"disclaimer",".txt", 255,lpBuffer,NULL); из всего прочитаного я понял что нужно передать четыре параметра адрес директории имя файла тип файла размер буфера последние два должны содержать полный путь файла и размер буфера для адреса файла. посл.. .

Консультация # 99271:

Помогите пожалуйста. Никак не пойму как сделать эту прогу:

Найти все натуральные n-значные числа, цифры в которых образуют строго возрастающую последовательность (например, 1234, 5789).

Дата отправки: 22.08.2007, 14:09
Вопрос задал: Ренат
Всего ответов: 5
Страница онлайн-консультации »


Консультирует Delph:

Здравствуйте, Ренат !

Вам нужно использовать рекурсию. Задача изначально кажется сложной, но решение оказалось довольно коротким (см. приложение).

Я назвал проект Naturalе. Откомпилировав его при помощи Visual C++ 6, получил запускаемую программу Naturale.exe. Вывод программы на экран не умещается, поэтому я запустил её (в командной строке) так:

Naturale.exe > Naturale.txt

Такой запуск перенаправил вывод программы в файл Naturale.txt, который я затем просмотрел (можно использовать блокнот, если у Вас не найдётся ничего более удобного).
Программа вроде-бы достаточно проста для понимания, но если захотите что-то уточнить, спрашивайте.

Приложение:

Консультировал: Delph
Дата отправки: 22.08.2007, 16:19
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Новиков Андрей Викторович:

Здравствуйте, Ренат !
Мой Вам совет просто порезать n-значное число на цифры и каждая следующая по старшенству разряда должна меньше на 1.
Наиболее простой вариант использовать рекурсию.

Консультировал: Новиков Андрей Викторович
Дата отправки: 22.08.2007, 16:22
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Леуткин Дмитрий Николаевич:

Здравствуйте, Ренат !
Вот вам решение, правда простой перебор, но тоже вариант :)

Приложение:

Консультировал: Леуткин Дмитрий Николаевич
Дата отправки: 22.08.2007, 16:31
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Rockie:

Здравствуйте, Ренат !

Если посмотреть внимательно на эту формулу, то можно увидеть, что количество таких натуральных чисел ограничено:

разряды: числа:
1 нет
2 12 23 34 45 56 67 78 89 - 8 чисел
3 123 234 345 456 567 678 789 - 7 чисел
.
9 123456789 - 1 число
10 таких чисел опять нет

Так что исходя из этой формулы, можно реализовать пррограмму, которая будет в зависимости от разрядности числа выводить 10-n n-разрядных чисел. Код в приложении

Приложение:

Консультировал: Rockie
Дата отправки: 22.08.2007, 16:53
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Терсков Сергей:

Здравствуйте, Ренат !
Ваша задача в общем случае решается простым поиском подстрок в строке упорядоченных символов. В моем примере это цифры десятиричной системы. Можно, например, расширить ее до шестнадцатиричной (123456789ABCDEF). Задача решается безо всяких рекурсий и замысловатых вычислений...

Приложение:

Консультировал: Терсков Сергей
Дата отправки: 23.08.2007, 03:44
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 146721:

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

Дата отправки: 10.10.2008, 14:53
Вопрос задал: Иванов Роман Александрович
Всего ответов: 2
Страница онлайн-консультации »


Консультирует Vest:

Здравствуйте, Иванов Роман Александрович!
Вы не указали где вы программируете и какими средствами (ОС, Framework) потому даю описание в целом:
1. при прорисовке окна (событие обычно называемое OnRedraw) вы должны получать горизонтальные и (если надо) вертикальные размеры ваше обновляемой области.
2. обязательно нужно знать ширину вашего текста (это предоставляется средствами отображения букв шрифта на вашем окне). Либо вы знаете ширину буквы (и если у вас моношрифт) то ширина слова - ширина буквы умноженная на число букв в строке. Либо с помощью очередной функции можете определить ширину/высоту вашей строки.
3. Простая математика - центрование. Формула простая но я вам выведу ее:
допустим ваше слово находится на расстоянии x от левой границы области. Длинна слова (в пикселях) - w, ширина окна - width. тогда если вам нужно чтобы слово было по середке, то: x + w + x = width, выражайте оттуда x: x = (width - w) / 2.
Вот собственно и все. для высоты анало гично. а дальше вторую, например, строку рисуете с той же вертикальной позиции, что и первую но прибавляете к этому числу высоту строки (чтобы не было наложений, лучше как в "тетрадке" это число принимать постоянным, равным, допустим высоте большой буквы) плюс некоторый интервал (отступ между строками).
Почитайте Windows API, например, там есть объяснение как работать со шрифтами и про всякие отступы, выступы и прочее (раздел конечно же Fonts).
Удачи Вам

Консультировал: Vest
Дата отправки: 10.10.2008, 18:17
Рейтинг ответа:

НЕ одобряю 0 одобряю!


Консультирует Rockie:

Здравствуйте, Иванов Роман Александрович!

Вы не указали среду разработки. Программу за вас делать я не буду, зато могу объяснить принцып:
Ловите событие Resize() и в обработчике этого события устанавливайте положение формы в середину(возможно в вашей среде разработки это свойство будет Position-> "Centered" формы)

Консультировал: Rockie
Дата отправки: 10.10.2008, 19:09
Рейтинг ответа:

НЕ одобряю 0 одобряю!

Консультация # 167584:

не могу запустить функцию SearchPath
SearchPath(NULL,"disclaimer",".txt", 255,lpBuffer,NULL);
из всего прочитаного я понял что нужно передать четыре параметра
адрес директории
имя файла
тип файла
размер буфера

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

Дата отправки: 17.05.2009, 23:46
Вопрос задал: Ланчковский Алексей Викторович
Всего ответов: 1
Страница онлайн-консультации »


Консультирует Ross:

Здравствуйте, Ланчковский Алексей Викторович!

Последние два параметра не должны инициализироваться, здесь все верно.
Вот рабочий пример:

#include <windows.h>

void main()
{

	char file[MAX_PATH];
	SearchPathA("D:/","3b",".doc", MAX_PATH, file, NULL);
}

Консультировал: Ross
Дата отправки: 18.05.2009, 00:43

5
нет комментария
-----
Дата оценки: 01.01.2008, 00:00

Рейтинг ответа:

НЕ одобряю 0 одобряю!


Оценить выпуск | Задать вопрос экспертам

главная страница  |  стать участником  |  получить консультацию
техническая поддержка

Дорогой читатель!
Команда портала RFPRO.RU благодарит Вас за то, что Вы пользуетесь нашими услугами. Вы только что прочли очередной выпуск рассылки. Мы старались. Пожалуйста, оцените его. Если совет помог Вам, если Вам понравился ответ, Вы можете поблагодарить автора - для этого в каждом ответе есть специальные ссылки. Вы можете оставить отзыв о работе портале. Нам очень важно знать Ваше мнение. Вы можете поближе познакомиться с жизнью портала, посетив наш форум, почитав журнал, который издают наши эксперты. Если у Вас есть желание помочь людям, поделиться своими знаниями, Вы можете зарегистрироваться экспертом. Заходите - у нас интересно!
МЫ РАБОТАЕМ ДЛЯ ВАС!


В избранное