• Обращение к ячейки массива не по "числу"?

    longclaps
    @longclaps
    Ответ написан
    Комментировать
  • Dos.Должна ли стоять?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    Без DOS на ноуте поселится пингвин. Вот просто так придет и поселится :) Включаете однажды - а там ОН! :D
    Ответ написан
    1 комментарий
  • Dos.Должна ли стоять?

    fdroid
    @fdroid
    press any key

    …Одним из примеров громоздкой и, по мнению авторов, бесполезной надстройки является интегрированная система WINDOWS фирмы Microsoft. Эта система занимает почти 1 Мбайт дисковой памяти и рассчитана на преимущественное использование совместно с устройством типа мышь…

    …Таким образом, читатель уже понял, что среди надстроек над ДОС бывают довольно бесполезные системы, которые только выглядят красиво, а на самом деле отнимают время пользователя, память на дисках и оперативную память ЭВМ. Обманчивая красота таких систем, однако, сильно воздействует на неискушенных пользователей, которые не имели практики работы на машине. Инерция мышления бывает столь сильна, что авторам приходилось наблюдать, как люди, начавшие работать с подобной настройкой, впоследствии с трудом заставляют себя изучать команды ДОС… Хочется предостеречь от этой ошибки читателей…



    "Персональные ЭВМ в инженерной практике", 1992
    Ответ написан
    2 комментария
  • Как передать параметр в c++ приложение?

    RTFM
    pCmdLine contains the command-line arguments as a Unicode string.
    Ответ написан
    Комментировать
  • Как ловить и обрабатывать любые исключения?

    Nipheris
    @Nipheris Куратор тега C++
    В C++ с точки зрения языка у исключений нет базового класса или какого-то другого общего типа, представляющего всякое значение, летящее в исключении. Не забывайте, что выбросить вы можете, к примеру, целое число (хоть это и не рекомендуется).

    Поэтому встречный вопрос - если форма значения в исключении заранее неизвестна, как можно сделать что-либо с этим значением? Что вы хотите "распознать", когда поймали исключение? Какую операцию вы хотите выполнить?

    Вообще посмотрите на std::current_exception, но убедитесь, что оно вам подойдёт.
    Ответ написан
    8 комментариев
  • Как вывести все числа являющиеся произведением простых чисел?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Все, являющиеся произведением – это все, кроме простых.
    Значит, надо получить все числа, кроме простых, в интервале 1..1400.
    Для поиска простых в таком небольшом диапазоне подойдёт алгоритм решета Эратосфена. Чтобы не писать вам целиком готовое решение, вот код, который только получает массив простых чисел от 2 до N:

    function primes(n) {
      var i, j, isPrime = Array(n), result= [];
      for(i=2; i<n; i++) isPrime[i] = true;
      for(i=2; i * i <= n; i++) {
        if( isPrime[i]) {
          for(j = i * i; j <= n; j += i) isPrime[j] = false;
        }
      }
      
      for(i=2; i<n; i++) {
        if(isPrime[i] === true) result.push(i);
      }
      return result;
    }


    Дальше вы уж сами, пожалуйста.
    Ответ написан
    3 комментария
  • Нужно ли делать фильтрацию входных данных от фронта?

    usdglander
    @usdglander
    Yipee-ki-yay
    Конечно нужно! Мне никто не помешает отправить какие угодно данные в обход вашей формы/страницы/javascript. Фильтрация на приемной стороне обязательна всегда! Фильтрация на странице - это только для удобства пользователя.
    Ответ написан
    1 комментарий
  • Что такое микрокод процессора?

    @pfg21
    ex-турист
    CISC-команда исходного x86-кода разбивается в набор RISC-команд, которые и скармливаются аппаратному RISC-процессору. т.е. во всех современных процессорах x86 и x86-64 эмулируется, алгоритмы этой эмуляции и записаны в микрокоде
    практическое описание примения микрокода процессора к примеру здесь
    Ответ написан
    2 комментария
  • Где посмотреть, какие операции можно применить к определенному типу данных в C++?

    saboteur_kiev
    @saboteur_kiev Куратор тега C++
    software engineer
    Это legacy наследние, которое сейчас считается устаревшим.
    Когда трава была зеленее, а С++ еще слишком молод, в чистом С вообще не было boolean, поэтому использовался int, который использовался в качестве flag переменных.
    При этом 0+1 = true, 1+1 = true, 2+1 = true (все верно)
    Но при этом 1-0=false (верно), однако 2-1=true, 3-1=true.

    Поэтому никогда никто не использовал декремент для подобных значений - иначе это могло привести к ошибке. Собственно инкремент тоже теоретически мог однажды переполниться...

    Когда появился boolean, то для совместимости сохранили возможность инкремента boolean, но с самого начала это считалось deprecated.

    The value obtained by applying a postfix ++ is the value that the operand had before applying the operator. [Note: the value obtained is a copy of the original value ] The operand shall be a modifiable lvalue. The type of the operand shall be an arithmetic type or a pointer to a complete object type. After the result is noted, the value of the object is modified by adding 1 to it, unless the object is of type bool, in which case it is set to true. [Note: this use is deprecated, see annex D. ]


    Кстати это в 2015 году уже официально отменили:
    www.open-std.org/jtc1/sc22/wg21/docs/papers/2015/p...
    "The ++ operator for bool was deprecated in the original 1998 C++ standard, and it is past time to formally remove it.
    Ответ написан
    Комментировать
  • Почему .if не работает?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    .IF не сравнивает строки. Вам нужно написать свою функцию для сравнения строк побайтно.
    Ответ написан
    Комментировать
  • Как в потоке вызвать функцию с несколькими параметрами?

    longclaps
    @longclaps
    Сформируй структуру из параметров, передай указатель на неё и разыменовывай (*ТвояСтруктура)Parameter.
    Ответ написан
    5 комментариев
  • Какая разница в пути с слэшем или без?

    amorphis
    @amorphis
    Технолог в Студии Артемия Лебедева
    Первый вариант это относительный адрес (относительно текущего адреса страницы), второй абсолютный - относительно корня сайта.

    Например, вы находитесь на странице test.com/news:
    - указывая адрес картинки <img src="images/picture.jpg"> браузер будет загружать её по адресу test.com/news/images/picture.jpg
    - указывая адрес картинки <img src="/images/picture.jpg"> браузер будет загружать её по адресу test.com/images/picture.jpg
    Ответ написан
    3 комментария
  • Можно ли передать ADSL сигнал, по схеме RJ11-RJ45-RJ11?

    Конечно можно, хоть обычной лапшой передавайте, сплитер просто делит сигнал. После сплитера вам нужны любые два провода до разъема rj-11 на модеме. Розетки rg-45 или выкинуть, или сделайте два переходника разъем rj11- разъем rj45
    Ответ написан
    Комментировать
  • Как исправить ошибку конвертации?

    vt4a2h
    @vt4a2h Куратор тега C++
    Senior software engineer (C++/Qt/boost)
    Вам нужно поправить ровно то, о чём гласит текст ошибки: class AthleteForm : public MySwither<int>.
    Ответ написан
    3 комментария
  • Что не даёт на C++ писать кроссплатформенные приложения?

    @MarkusD Куратор тега C++
    все время мелю чепуху :)
    Да, как бы, ничего не мешает писать один С++ код для множества платформ. Почти весь мой трудовой стаж связан именно с разработкой кроссплатформенных игр. Я работал с несколькими (самодельными и не очень) движками и имею свое собственное детище, прекрасно и однозначно собирающееся на 5 целевых платформ (Win, Mac, Linux, ios, Android), к которым без труда можно добавить и консоли, и новые платформы.

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

    Кроссплатформенность подразумевает решение ряда вопросов, которые и выливаются в слой абстракции над операционной системой. Эти вопросы, зачастую, решать никто не хочет. Несколько раз встречал такое сам и еще мне рассказывали о том, как тот или иной движок сперва был только под конкретную ###, а потом решили портировать на @@@. Оказалось, что компилятор, которым всегда и собирали движок, нашпигован расширениями языка, которые конечно же все пользовали на 100%, и при смене компилятора ни один файл исходников не остался без доброй сотни ошибок. Т.е. переписывать надо было ВСЁ.

    Mercury13 хорошо рассказал про Unicode пути к файлам. Drakonoved правильно подметил про разделители путей к файлам. Максим Гришин очень хорошо напомнил про порядок следования байт. Это все и есть часть этого ряда вопросов.
    У каждой платформы есть свой API, которого не будет на другой платформе. Но на другой платформе будет свой API, со своими именами и схожей функциональностью. И работу с API надо абстрагировать от универсального кода.
    Еще, на одной платформе у тебя может быть разомкнутый главный цикл обработки сообщений (Win), а на другой - замкнутый (Android). Надо подстраиваться. GUI везде разный, надо подстраиваться. Сама структура приложения на одной платформе может быть монолитной, а на другой - композиционной. Графические и звуковые API могут быть и кроссплатформенными, однако простоты использования это им не прибавляет. Инициализация все равно будет платформозависимой.
    На самом деле даже в рамках работы на одной платформе надо соблюдать ряд правил, чтобы иметь возможность из одного кода получать и 32-битное приложение, и 64-битное тоже. Об этом неплохо написано на сайте разработчиков PVS-Studio.

    И все это решается. От части - с помощью архитектурных приемов. Один из таких я уже показывал в другом своем ответе.
    И еще эти вопросы можно не решать.
    ДубльГИС, например, уже давно работает на базе Qt, что сильно упростило им кроссплатформенную жизнь. Qt решает ряд проблем кроссплатформенности.
    Ответ написан
    10 комментариев
  • Как исправить фризы курсора?

    @bubn0ff
    it-шник
    Мышь менять пробовали?
    Ответ написан
    Комментировать
  • На что жалуется Valgrind?

    @DancingOnWater
    free (current->next);

    Здесь вы убиваете объект
    current=current->next;

    Здесь вы запоминаете адрес, ведущий убитый объект, т.е. на мусор в памяти.
    while(current->next)

    А здесь вы его используете.
    Ответ написан
    2 комментария
  • Как подключить два ПК к одному монитору?

    sHinE
    @sHinE
    веб-разработчик, php/js/mysql и сопутствующее
    У меня на мониторе есть отдельная физическая кнопка для выбора источника, с которого будет выводиться сигнал. Подозреваю, что и на вашем мониторе есть что-то аналогичное - или физическая кнопка или в меню. Возможно, ваш монитор умеет сам выбирать нужный источник сигнала, если он один. У меня вот не умеет, например.
    Ответ написан
    1 комментарий
  • Высокоуровневый язык программирования?

    pi314
    @pi314
    Президент Солнечной системы и окрестностей
    Потому, что "высоко-/низко-уровневый" это просто условная и достаточно относительная классификация языков по одному конкретному качеству - по уровню абстракции, предоставляемой языком его пользователю. А когда всплывает слово "абстракция", обязательно нужно задуматься над тем, что от чего абстрагируется. В данном случае речь идет об абстрагировании конструкций языка от среды выполнения программы, написаной на этом языке. Например, во всех этих ЯВУ есть такие абстракци, как именованная переменная, тип данных, конструкции управления потоком выполнения или вызов функций системы/стандартных библиотек и т.д. Мы просто пишем int а = 3; или while(flag == true)..., а обо всем остальном заботится язык. Для сравнения, в ассемблере (низкий уровень) нам приходится иметь дело с конкретными регистрами, битами, адресами и jump-ами, и никакой среды, которая пришла бы нам на помощь, там тоже нет. В этом смысле уровень абстракции того же С намного выше.

    Классификация эта (как и любая другая) - условная, т.к. если по этому признаку сравнить, например, те же Яву или Шарп с теми же C++ или Паскаль, то можно бы было сказать, что уровень абстракции первых "несколько выше" - между программой на первых языках и "средой" есть еще промежуточный уровень (байткод/IL), а программы на вторых компилируются прямо в инструкции конкретного процессора. Только смысла в таком утверждении уже не так много, и для указания на эти качества языков проще и полезнее классифицировать их как "компилируемые в инструкции виртуальной машины" и "компилируемые в инстрикции процессора".

    И, наконец, сортировка массива - это уже совсем из другой оперы. К языку тут (если вообще!) относится только абстракция "массив". В большинстве языков есть такое понятие, как стандартная библиотека (JDK, stl, те же модули в пыхе и т.д.). Функции вроде сортировки массива, предоставляются не языком, а именно этой библиотекой (как правило, написанной на этом же языке и/или на более низкоуровневых). А, собственно, языком называется очень-очень маленький набор универсальных семантически однозначных конструкций, типа операторов сравнения, циклов или вызовов функций. Фактически, любой современный язык можно "выучить" за день... остаток жизни уйдет на то, чтоб научиться правильно пользоваться им и его библиотеками для написания нужных программ ))
    Ответ написан
    Комментировать