Иаков
нет, показалось
Иаков
а на какую виртуалку можно ещё поставить? От виртуалки зависит, как производительно будет работать система?
Иаков
на флешку, что ли, поставить.... И поюзать её так?
Иаков
на флешку тоже можно
блин... Только вот нет её у меняя
Иаков
Да факенг щеет
Михаил
я кст на DVD залил)
Иаков
я кст на DVD залил)
а у меня привода нет... Пхпхпх
Иаков
создал машину для федоры, а запущу-ка я на ней не федору... Так же можно?
Иаков
Вот, xubuntu летает, как ошпаренная, а kde fedora лагает, как ошпаренная(((( Ладно, буду юзать xubuntu... Но fedora в моём сердце теперь, пхпхпх
Илья
здравствуйте, кто то из присутствующих людей проходил второй курс на Stepik, там последние задание в разделе Пространства имён и области видимости, можете посоветовать ресурсы чтобы понять как решить эту задачу
Илья
python
Илья
проблема в том, что даже не понятно как вопрос задать
Vyacheslav
проблема в том, что даже не понятно как вопрос задать
Задачу хоть покажи тогда А то непонятно на что отвечать даже )
Илья
окей
Иаков
python
а, пайтон. Ну, ты спроси, как понимать пространства имен. Когда я изучал, то у меня погнятия пространства имен были папки. Типо, дирректория проекта, потом каталоги проекта и прочее - это всё составные пространства имен. Проект - DeliveryProducts - это пространства имен именно этого каталога, но там может быть папка Models, тогда DeliveryProducts.Models - это будет другое прострнаства имен, там свои классы
Иаков
Это про C# если, там всё понятно было. Удачи тебе понять это!)
Илья
Реализуйте программу, которая будет эмулировать работу с пространствами имен. Необходимо реализовать поддержку создания пространств имен и добавление в них переменных. В данной задаче у каждого пространства имен есть уникальный текстовый идентификатор – его имя. Вашей программе на вход подаются следующие запросы: create <namespace> <parent> – создать новое пространство имен с именем <namespace> внутри пространства <parent> add <namespace> <var> – добавить в пространство <namespace> переменную <var> get <namespace> <var> – получить имя пространства, из которого будет взята переменная <var> при запросе из пространства <namespace>, или None, если такого пространства не существует Рассмотрим набор запросов add global a create foo global add foo b create bar foo add bar a Структура пространств имен описанная данными запросами будет эквивалентна структуре пространств имен, созданной при выполнении данного кода a = 0 def foo(): b = 1 def bar(): a = 2 В основном теле программы мы объявляем переменную a, тем самым добавляя ее в пространство global. Далее мы объявляем функцию foo, что влечет за собой создание локального для нее пространства имен внутри пространства global. В нашем случае, это описывается командой create foo global. Далее мы объявляем внутри функции foo функцию bar, тем самым создавая пространство bar внутри пространства foo, и добавляем в bar переменную a. Добавим запросы get к нашим запросам get foo a get foo c get bar a get bar b Представим как это могло бы выглядеть в коде a = 0 def foo(): b = 1 get(a) get(c) def bar(): a = 2 get(a) get(b) Результатом запроса get будет имя пространства, из которого будет взята нужная переменная. Например, результатом запроса get foo a будет global, потому что в пространстве foo не объявлена переменная a, но в пространстве global, внутри которого находится пространство foo, она объявлена. Аналогично, результатом запроса get bar b будет являться foo, а результатом работы get bar a будет являться bar. Результатом get foo c будет являться None, потому что ни в пространстве foo, ни в его внешнем пространстве global не была объявлена переменная с. Более формально, результатом работы get <namespace> <var> является <namespace>, если в пространстве <namespace> была объявлена переменная <var> get <parent> <var> – результат запроса к пространству, внутри которого было создано пространство <namespace>, если переменная не была объявлена None, если не существует <parent>, т. е. <namespace> – это global Формат входных данных В первой строке дано число n (1 ≤ n ≤ 100) – число запросов. В каждой из следующих n строк дано по одному запросу. Запросы выполняются в порядке, в котором они даны во входных данных. Имена пространства имен и имена переменных представляют из себя строки длины не более 10, состоящие из строчных латинских букв. Формат выходных данных Для каждого запроса get выведите в отдельной строке его результат. Sample Input: 9 add global a create foo global add foo b get foo a get foo c create bar foo add bar a get bar a get bar b Sample Output: global None bar foo
Jsx707
Никогда не видел ...... Видел в C++ , C# , но больше нигде
Иаков
namespace в Python ?
ну, это в C# так будет, а в python по-другому же.
Алексей
Да, виндовая
Так мы вроде линукс обсуждали
Vyacheslav
Так мы вроде линукс обсуждали
Там вопрос про ssh на гитхабе был )
Jsx707
C# кстати решил изучить как дополнение к C++ , я хотел на нём реализовать приложение с графическим интерфейсом как дополнение к моему движку на C++ , но C# конечно тот ещё ... Подарок , особенно последний .net
Jsx707
Но в принципе , после C++ всё понятно
Илья
друзья, у кого то есть чат питонистов
Kenin
Почему в С++ Std'шный вектор не может быть частью typename'a?
Илья
был бы рад если бы скинули ссылку
Иаков
C# кстати решил изучить как дополнение к C++ , я хотел на нём реализовать приложение с графическим интерфейсом как дополнение к моему движку на C++ , но C# конечно тот ещё ... Подарок , особенно последний .net
Не надо гнать на C#, C# - это улучшенная java, к тому же, синтаксис на C# очень красивый, по красивее java... Хотя, наверное, не привычно на 6 .net, как в питоне, без class и namespace, даже без метода, сразу писать код, как в js или python
Jsx707
Я уже имею представление о том , что такое класс , метод , пространство имён , что такое модификатор доступа и ТД , поэтому , не так сложно , но парадигма ООП она интересна ,но все же , там есть некоторые моменты , я не понимаю до конца , как их использовать , а ещё в C# мне не знакомо слово foreach
Kenin
Это как?
ну нельзя перегружать typename вектором
Иаков
Vyacheslav
ну нельзя перегружать typename вектором
А как ты typename перегружаешь?
Kenin
А как ты typename перегружаешь?
ну это грубо говоря... я не могу написать template<typename T> и под T брать веткор
Andrii
typename просто используется в шаблонах, чтобы подсказать компилятору, что это имя типа. По сути костыль, который позвляет обойти неоднозначность грамматики
Иаков
Эх, ладно... Буду теперь кодить в xubuntu, щас скачаю vs code, посморим, чё поменяется. Эх, хотел бы я норм поюзать kde fedora, но не судьба, видать
Jsx707
друзья, у кого то есть чат питонистов
Есть англоязычный , он очень крупный и его в поиске можно найти ,но там недавно у админа поехала кукуха просто . .. хз как сейчас Просто в поиске пиши "Python" и всё , но там есть много версий для разных людей , говорящих на разных языках Типа : Python Spanish Python Portuguese И ТД
Jsx707
ну, тоже решение)
Я ещё немного повтыкал в интерактивные уроки от Майкрософт
Иаков
Он банил просто кого попало
оу... За то, что не признавал питон? Хпхпхпх... Я ничего про питон не говорю, норм язык, свои задачи решает. Просто есть на эту тему рофлы и прочее
Jsx707
Я просто хотел на C# , WinForms сделать файловый менеджер к движку со своим api , а ещё сделать графический менеджер сборки его из исходников и графический установщик зависимостей
Иаков
Я просто хотел на C# , WinForms сделать файловый менеджер к движку со своим api , а ещё сделать графический менеджер сборки его из исходников и графический установщик зависимостей
ну, это неплохо, но не лучше было бы сначала сделать файловый менеджер по типу ranger или Far manager? Консольный, чтоб разобраться с работами классами и методами System.IO?
Andrii
ну это грубо говоря... я не могу написать template<typename T> и под T брать веткор
#include <vector> using namespace std; template<typename T> T id(const T& obj) { return obj; } size_t test() { vector<int> a = {1, 2, 3}; vector<int> b = id(a); return a.size() + b.size(); }
Jsx707
оу... За то, что не признавал питон? Хпхпхпх... Я ничего про питон не говорю, норм язык, свои задачи решает. Просто есть на эту тему рофлы и прочее
Та нет , там просто мой знакомый из Индии сделал канал , по подробному изучению грамматики английского языка и скинул админу , ну просто у админа видимо Английский не родной язык , вот он и просто посоветовал типа если он , его друзья или кто-то из группы захочет что-то узнать ,то пожалуйста Ну и тот .... А тот баран
Алексей
Там вопрос про ssh на гитхабе был )
Так а там я просто по паролю захожу. Вернее студия пушит
Jsx707
#include <vector> using namespace std; template<typename T> T id(const T& obj) { return obj; } size_t test() { vector<int> a = {1, 2, 3}; vector<int> b = id(a); return a.size() + b.size(); }
По-моему , вот никогда нельзя использовать пространства имён ..... Я имею в виду никогда нельзя их подключать , особенно если проект многофайловый , мне это уже личный опыт объяснил и дяденьки на форумах Компилятору то все равно , а вот Linker.....
Jsx707
Тебе виднее , но по-моему using namespace это очень злая вещь
Kenin
я просто как помню, что std::cin не проходило по тестам, в отличиии о подключенного пространства имён
Jsx707
там cin как-то по-другому начинает работать
Та нет , он будет работать по-моему также , просто если подключить пространства имён сразу в несколько файлов , то на этапе линковки могут пойти непонятные ошибки , ещё код , который был в этом пространстве имён может конфликтовать с вашим кодом
Andrii
Тебе виднее , но по-моему using namespace это очень злая вещь
Я просто чтобы меньше писать, подставил вместо T тип std::vector.
Иаков
Блин... Раздражает, что даже xubuntu не ведет себя также, как если бы я сидел на ней нативно... Печально(((
Jsx707
Просто линкер вещь очень капризная местами , особенно в многофайловых проектах
Jsx707
Если не осторожно пользоваться #include , пространством имён , extern-ами ,то можно получить много ошибок на каком-то непонятном языке
Михаил
а за что больше можно по шапке получить: за использование goto или за использование using namespace std в хедерах?
Иаков
Михаил
хз, oracle же
а вот я бы не парился: просто дефрагментировать диск (чтоб побстрее все разделилось), отделить свободные 40-60 гигов на диске, туда все поставить, потом если что форматнуть и присоединить обратно
Михаил
в смысле не париться с этой ВМ
Михаил
А с разделом диска.. 😁
Иаков
Ну.. Хзхз... Я пока не готов на такие риски, но я рассмотрю этот план.. Думаю, можно такое провернуть. Удалю пару игр на пк и поставлю таким образом федору