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

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

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

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

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

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

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

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

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

Наверно, это тема "обход дерева". Я вообще специфику не знаю, т.к. алгоритмов не изучал.
мой канал на Ютубе: youtube.com/@games-zz3ju/videos/
мой канал на Рутубе: rutube.ru/channel/31423139/videos/
В ожидании Кеши...
jura_k вне форума Ответить с цитированием
Старый 09.01.2016, 19:35   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

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

Видимо надо просто обойти рекурсивно все (под)каталоги попутно сравнивая длину имен для поиска минимальной (ну стандартный алгоритм как тут внизу 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 важнее, чем алгоритмы. Правильной дорогой идете.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.

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

Цитата:
Сообщение от Alex11223 Посмотреть сообщение
Ну да, изучать 15 лет Visual Basic 6.0 важнее, чем алгоритмы. Правильной дорогой идете.
Книжек много. Кто его знает, за какую браться.
мой канал на Ютубе: youtube.com/@games-zz3ju/videos/
мой канал на Рутубе: rutube.ru/channel/31423139/videos/
В ожидании Кеши...
jura_k вне форума Ответить с цитированием
Старый 10.01.2016, 10:09   #6
Daniiil
 
Регистрация: 01.01.2016
Сообщений: 5
По умолчанию

Спасибо, за помощь
Daniiil вне форума Ответить с цитированием
Старый 10.01.2016, 12: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 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамическое программирование Obey177 Помощь студентам 8 21.04.2015 18: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 22:05
Динамическое программирование. MAKEDON Помощь студентам 6 26.08.2009 14:10