Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Здесь нужно купить рекламу за 20 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru
Без учёта ботов - 20000 человек в день, 350000 в месяц.

Ответ
 
Опции темы
Старый 09.01.2016, 18:24   #1
Daniiil
 
Регистрация: 02.01.2016
Сообщений: 5
По умолчанию Динамическое программирование

Здравствуйте,
Не знаю, как написать эту программу, единственное что я придумал, что она долга иметь в рекурсию

Вот вообщем-то и само заданье:

Найти файл (выведите на экран его имя), имеющий наименьшую длину среди файлов, расположенных в текущем каталоге или его подкаталоге любой степени вложенности. Если таких файлов несколько, то найдите любой из них
Daniiil вне форума Ответить с цитированием
Старый 09.01.2016, 20:34   #2
jura_k
gamer
Участник клуба
 
Аватар для jura_k
 
Регистрация: 09.05.2015
Сообщений: 1,275
По умолчанию

Наверно, это тема "обход дерева". Я вообще специфику не знаю, т.к. алгоритмов не изучал.
мой канал на Ютубе: youtube.com/channel/UCdtIJx_8tDGrc9n-Y0JsllA
jura_k вне форума Ответить с цитированием
Старый 09.01.2016, 20:35   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,840
По умолчанию

Для старта предлагаю ознакомится с таким примером:
http://www.programmersforum.ru/showthread.php?t=117854
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 09.01.2016, 20:45   #4
Alex11223
Модератор
Заслуженный модератор
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,491
По умолчанию

Видимо надо просто обойти рекурсивно все (под)каталоги попутно сравнивая длину имен для поиска минимальной (ну стандартный алгоритм как тут внизу 1 сообщения http://programmersforum.ru/showthread.php?t=70310).
В гугле полно примеров реализации обхода каталогов, в целом что-то типа
Код:
void searchDir(string dir)
{
    для каждого файла f в dir:
        если f — файл:
           сделать что-то;
        если f — директория:
           searchDir(f);
}
Функции для работы с файлами зависят от используемой ОС (вин, линукс) или библиотеки (Qt, ...).
В WinApi например FindFirst/FindNext

Цитата:
Я вообще специфику не знаю, т.к. алгоритмов не изучал.
Ну да, изучать 15 лет Visual Basic 6.0 важнее, чем алгоритмы. Правильной дорогой идете.

Последний раз редактировалось Alex11223; 09.01.2016 в 20:49.
Alex11223 на форуме Ответить с цитированием
Старый 09.01.2016, 20:49   #5
jura_k
gamer
Участник клуба
 
Аватар для jura_k
 
Регистрация: 09.05.2015
Сообщений: 1,275
По умолчанию

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Ну да, изучать 15 лет Visual Basic 6.0 важнее, чем алгоритмы. Правильной дорогой идете.
Книжек много. Кто его знает, за какую браться.
мой канал на Ютубе: youtube.com/channel/UCdtIJx_8tDGrc9n-Y0JsllA
jura_k вне форума Ответить с цитированием
Старый 10.01.2016, 11:09   #6
Daniiil
 
Регистрация: 02.01.2016
Сообщений: 5
По умолчанию

Спасибо, за помощь
Daniiil вне форума Ответить с цитированием
Старый 10.01.2016, 13:48   #7
Croessmah
Вредный кошак
Участник клуба
 
Аватар для Croessmah
 
Регистрация: 14.10.2012
Сообщений: 1,159
По умолчанию

Код:
#include <iostream>
#include <algorithm>
#include <limits>

#include <boost/filesystem.hpp>





int main()
{
	using namespace boost::filesystem ;
	using rdi = boost::filesystem::recursive_directory_iterator ;
	size_t min_file_size = std::numeric_limits<size_t>::max() ;
	path min_size_path ;
	std::for_each(
			rdi("/home/sasha/cpp/test"),
			rdi() ,
			[&min_file_size, &min_size_path](const boost::filesystem::directory_entry & dir_iter)
			 {
				if( is_regular_file(dir_iter.path()) ){
					size_t fsize = file_size(dir_iter.path()) ;
					if( fsize<min_file_size ){
						min_file_size = fsize ;
						min_size_path = dir_iter.path() ;
					}
				}
			 }
	) ;
	std::cout << "file: " << min_size_path << "\n\tsize: " << min_file_size <<std::endl ;
}
Croessmah вне форума Ответить с цитированием
Ответ
Опции темы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамическое программирование Obey177 Помощь студентам 8 21.04.2015 19:03
Динамическое программирование GoldSieg Паскаль, Turbo Pascal, PascalABC.NET 0 12.04.2012 16:35
Динамическое программирование!!! Fuckkiller Microsoft Office Excel 13 04.05.2011 19:03
динамическое программирование stefan0202 Паскаль, Turbo Pascal, PascalABC.NET 3 07.02.2011 23:05
Динамическое программирование. MAKEDON Помощь студентам 6 26.08.2009 14:10