• Правильно ли я понимаю?

    15432
    @15432
    Системный программист ^_^
    Неа, number[3] - четвертый элемент массива, нумерация с нуля идёт (0, 1, 2, 3 ,4).
    Ответ написан
    1 комментарий
  • Почему неправильно преобразуется структура?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Из за чего это ?

    Из-за выравнивания полей данных в структуре и из-за того, что long -- 8 байт. В структуре my_struct_in у тебя идут подряд short, short и long. Первые два short -- выравнены, а чтобы выравнять long компилятор вставил перед ним в структуру дырку длиной в 4 байта. Можно напечатать offsetof(struct my_struct_in, addr) чтобы в этом убедиться.

    Что делать? Использовать типы фиксированной ширины (uint32_t addr, если имелся в виду IP адрес). Паковать структуры (если выравнять нельзя), либо располагать поля согласно их натуральному выравниванию.
    Ответ написан
    3 комментария
  • В чем ошибка (работа с памятью, деструкторы)?

    vt4a2h
    @vt4a2h Куратор тега C++
    Senior software engineer (C++/Qt/boost)
    У вас же C++, т.е. можете использовать вектор для хранения элементов без необходимости явного выделения памяти:
    #include <vector>
    
    // double* _coords;
    std::vector<double> _coords;
    
    // _coords = new double[N];
    _coords.resize(N);

    Ну и деструктор можете не писать.
    Ответ написан
    Комментировать
  • Почему в решениях с одинаковой сложностью существенная разница во времени расчета?

    jcmvbkbc
    @jcmvbkbc
    "I'm here to consult you" © Dogbert
    Почему в решениях с одинаковой сложностью существенная разница во времени расчета?

    Я отвечу на вопрос из заголовка: потому что сложность алгоритма говорит о том, как он будет вести себя при неограниченном увеличении размерностей входных данных. И больше ни о чём. Т.е. нельзя имея два линейных алгоритма сказать, что они будут работать одинаковое время. Но можно имея линейный и квадратичный алгоритм сказать, что начиная с какого-то момента линейный всегда будет работать быстрее.
    Ответ написан
    2 комментария
  • Почему в решениях с одинаковой сложностью существенная разница во времени расчета?

    @dmshar
    "Я вам не скажу за всю Одессу" :-), но давайте сравним только with_map(a, l) и traditional_way(a, l). В обоих функциях присутствует цикл (for item in l:) который выполняется примерно за одинаковое время. Но with_map содержит еще и строку
    z = min(map(lambda x: abs(a-x), l)) , которая сначала выполняет map(lambda x: abs(a-x), l) -
    еще один проход по массиву, а в полученном результате ищет min - т.е. пробегает по списку еще раз. Итого - три прохода по массиву, вместо одного в traditional_way. С остальными функциями - примерно та-же история. (Например min(l, key=lambda x: abs(a-x)) - это как минимум два прохода по вашему списку).
    Ответ написан
    3 комментария
  • Почему перестает работать жесткий диск?

    hint000
    @hint000
    у админа три руки
    1.
    виктория не помогает
    - виктория помогает понять причину, никто не обещал чудесного исцеления. Если знаете, что такое SMART у жесткого диска, то смотрите, что выдаёт SMART, и сюда выкладывайте - на основе SMART'а вам кучу советов дадут. Если не знаете, что это такое и как посмотреть, тогда сначала гуглить.

    2. напишите, что за железо, хотя бы примерно, и сколько ему лет. А то вдруг у вас там материнки, БП и диски, которым по 7-10 лет - тогда было бы закономерно, что оно всё умирает одно за другим.
    Когда железо менялось на новое - это было на самом деле новое, т.е. из магазина?

    3. компьютеры подключены через нормальные сетевые фильтры? (а лучше через ИБП (а еще лучше фильтр+ИБП)) Не замечали явных косяков с питанием (например, меняется яркость освещения в комнате)? Есть ли возможность мультиметром измерить напряжение в розетке? Марку и мощность БП напишите.

    4. по второму системнику - при включении смотреть на индикатор активности диска. Если через несколько секунд после включения индикатор начинает моргать (и моргает так, грубо говоря, минуту), значит в это время система загружается, т.е. в целом комп живой, только надо понять, почему нет картинки на мониторе.
    Если индикатор диска вообще не мигает после включения, значит комп - труп (60% проблема с материнкой, 30% - с БП, 10% - что-то ещё таинственное).
    Ответ написан
    1 комментарий
  • Требуется бэкап отдельных файлов при их изменении под Windows10 (перехват функции сохранения)?

    tsklab
    @tsklab
    Здесь отвечаю на вопросы.
    История файлов в Windows 10.
    файл может быть изменен через 1 год.
    А для этого нужно делать резервные копии файлов.
    Ответ написан
    Комментировать
  • Требуется ли для системного администратора знание программирования в 1с/web?

    @Dementor
    программист, архитектор, аналитик
    Заходит в ИТ отдел главбухша и прямиком к ведущему админу подходит:
    - У меня такая-то такая-то проблема с 1c.
    - У нас нет штатного специалиста по 1c, но я его вызову, будет завтра.
    - А знаете, у меня на прошлой работе, этим занимался админ!
    Тот с небольшой паузой:
    - А у меня на прошлой работе, главбухша полы мыла!

    P.S. Думаю, что намек понятен. Единственное программирование, которым должен заниматься админ - это автоматизация своей работы, а не решение бизнес-задач.
    Ответ написан
    5 комментариев
  • Почему #define не рекомендуетс к использованию?

    BacCM
    @BacCM
    C++ почти с рождения
    Потому, что
    1. нет контроля типов
    2. нет ограничения по области видимости, типа неймспейсов.
    3. макрос разворачивается подстановкой в месте использования, т.е. там будет вставлен код
    ((a) > (b) ? (a) : (b)) который превратится в ((++a) > (b+10) ? (++a) : (b+10))
    4. макросы сложно отлаживать
    5. неправильно написанный макрос будет компилироваться в непонятно что. Например если убрать те же скобки

    как без них раскроется выражение x = max(a, b) + 10; ?
    x = a > b ? a : b+10;

    для max скорее всего параметры не имеет смысла оборачивать в скобки, достаточно общих, хотя наверное можно что-то придумать чтобы сломалось без них. Просто так принято, из за того что макросы могут оказаться внутри выражения и как там раскроются их нетривиальные параметры не понятно.
    например

    #include <iostream>
    
    #define mymax(a,b) a>b?a:b
    #define mul(a,b) a*b
    
    int main() 
    {
    
    	std::cout << mymax(5, 10) << std::endl; // Ошибка компиляции
    	std::cout << mul(5+5, 10) << std::endl; // Неожиданно на выходе 55, а не 100
    
    	return 0;
    }
    Ответ написан
    3 комментария
  • В какой специальности или должности можно соединить ИТ, финансы и юриспруденцию?

    Руководитель ИТ-компании.
    Ответ написан
    Комментировать
  • Объявление идентификатора #define в прототипе функции в Си (C), можно ли так делать?

    myjcom
    @myjcom
    Олег Филимоненко,
    у вас кривой вариант перевода
    ОНА?
    Б. Керниган, Д. Ритчи "Язык программирования C" Третье издание.
    Автор: Б. Керниган, Д. Ритчи (Перевод с английского Вт. С. Штаркмана, под редакцией Вс. С. Штаркмана.)
    Год: 1992
    Издательство: "Финансы и статистика"
    ISBN: 5-7940-0045-7
    Тут еще:
    5c61ed8cad500947739165.png
    в печку ее
    ...
    в оригинале
    прототип функции:
    int getline(char line[], int maxline);

    Правильное издание
    5c61ddfb74bf7964476334.png5c61de311e4e4785447824.png
    Язык программирования С, 2-е издание.
    Год: 2009
    Автор: Kernighan B., Ritchie D. / Керниган Б., Ритчи Д.
    Издательство: Вильямс
    ISBN: 978-5-8459-0891-9

    А в самом первом
    The C programming language - First Edition
    Год издания: 1978
    Автор: Kerninghan, Brian W.
    Издательство: Bell Telephone Laboratories
    ISBN: 0-13-110163-3
    Язык: Английский
    5c61e83b28570703220686.png5c61e8f0e2cc4890842644.png
    Ответ написан
    1 комментарий
  • Обмен сокетов между Python и Java?

    igorzakhar
    @igorzakhar
    Сокет - это абстракция операционной системы, некая структура данных ядра, которая не зависит от языка программирования. Вы можете написать сервер на одном языке, а клиент написать на другом языке. Программа-"сервер" создает слушающий сокет (listen), программа-клиент, написанная на другом ЯП, подключается (connect) к серверу.
    Ответ написан
    2 комментария
  • Правомерно ли использовать OEM-лицензию, при утере документов на приобретение устройства?

    Jump
    @Jump
    Системный администратор со стажем.
    Правомерно ли использовать OEM-лицензию, при утере документов на приобретение устройства?
    Не совсем правильная постановка вопроса.
    Используют софт, а не лицензию.
    У вас есть лицензия (разрешение правообладателя) на использование Windows Server 2012r2, следовательно вы можете его использовать на законных основаниях.

    документы на приобретение были похерены
    Утрата документов не лишает вас прав на использование. Но вот доказать правомерность использования становится сложнее.

    Самое главное - не путайте ключ активации с лицензией, это совершенно разные вещи.
    Вы можете использовать активированную честно купленным ключом программу - но это будет незаконно, если у вас нет лицензии.
    Вы можете использовать скаченную с торрента, патченную или активированную кейгеном, кряком программу и это полностью законно, если у вас есть лицензия.
    Ответ написан
    9 комментариев
  • Перевести wav файл в числовую последовательность значений от 0 до 255?

    Попробуйте посмотреть в сторону scipy.io.wavfile.read

    Судя по документации, во втором параметре возвращает как раз то что вам нужно - массив значений из файла wav.
    Ответ написан
    1 комментарий
  • Как отсортировать массив по Unicode?

    myjcom
    @myjcom Куратор тега C++
    Если не верить своим глазам и все таки массив.

    https://ru.cppreference.com/w/cpp/algorithm/sort
    #include<iostream>
    #include<string>
    #include<vector>
    #include<algorithm>
    using namespace std;
    
    int main()
    {
    	vector<wstring> words = { L"1", L"Goose", L"14", L"gas", L"/" , L"file10", L"file11" };
    	sort(words.begin(), words.end());
    
    	for(auto s : words)
    	{
    		wcout << s << " ";
    	}
      wcout << endl;
    	wcin.get();
    }
    OUT: / 1 14 Goose file10 file11 gas
    Ответ написан
    Комментировать
  • Как работает арифметика указателей Си?

    zagayevskiy
    @zagayevskiy
    Android developer at Yandex
    Когда ты вычитаешь указатели, результат это количество элементов указанного типа между этими указателями. В твоём случае 3 char, видимо, предполагается, что sizeof(char) == 1. В общем случае это не так, правильный ответ будет 3*sizeof(char).
    Ответ написан
    3 комментария
  • Как скрыть софт для удаленого администрирования рабочего стола Windows?

    edinorog
    @edinorog Куратор тега Windows
    Троллей не кормить!
    Денежка исть?) и сразу в догонку второй вопрос. А нахрена там какой-то софт?). Без стороннего софта админить не получается?)

    Давай я сразу даже уточню. Софт такого плана вообще не нужен. Даже при минимальном бюджете в говноконторе. Все решается штатными средствами.
    Ответ написан
    Комментировать
  • Заражение вирусами в ОЧЕНЬ большой сети?

    saboteur_kiev
    @saboteur_kiev Куратор тега Информационная безопасность
    software engineer
    Какая бы не была организация, не верю что ВСЕМ компам нужно связываться со ВСЕМИ компами.
    Ставите адекватные маршрутизаторы, разбиваете сеть на VLAN-ы, лечите их отдельно.

    Старые ОС можно запускать в виртуалках, с отключенной сетью. А на самом железе - нормальная, современная ОС.
    Во многих случаях комп с диагностическим оборудованием может быть совсем отключен от сети.
    Ответ написан
    Комментировать
  • Где в коде ошибка?

    zagayevskiy
    @zagayevskiy
    Android developer at Yandex
    static убирать не следует, смысл этого B подсчитать , сколько экземпляров класса А создано(static значит, что из всех мест программы виден один и тот же объект в этой переменной).
    С этой точки зрения доступ к статистической переменной через указатель на экземпляр класса это не совсем верно( a->storage.counter). Я бы ожидал видеть A::storage.counter.

    delete [] в деструктор к АА, тут ты верно заметил. Нужно использовать именно эту форму delete, т.к. память выделена под массив (new int[10]). В остальных местах выделен 1 объект, поэтому надо delete без [].

    Но, для того, чтобы деструктор АА вызывался при удалении указателя на А(auto a = new A; выведет тип A*), когда по этому указателю лежит объект класса АА, нужно объявить деструктор virtual ~А(а вовсе не virtual ~AA). При этом объявление виртуальным деструктоа АА само по себе ошибкой не будет.

    someValue++ в конструкторе АА достаточно бессмысленно, т.к. это поле класса А, которое просто инициализированно нулём. В результате во всех экземплярах АА там будет 1. Непонятно, чего пытались добиться.

    Вместо printf в С++ следует использовать operator<<, но не думаю, что придурок, составлявший такой тест, особо думал об этом.

    Больше ничего не заметил.
    Ответ написан
    Комментировать