• Учебник по информатике релевантный ЕГЭ и профильным вступительным собеседованиям?

    Сдавал ЕГЭ в 2015, буду сдавать ещё раз в этом году. (Готовился суммарно одну неделю по трем предметам, набрал жалкие 222 балла).

    В ЕГЭ есть Python. Кроме него Pascal, C, Basic и какой-то ужас под названием Алгоритмический язык. При этом формально допускается использование других языков программирования, т.е. допускается вариант, что ты прочел задание с кодом на Python, а потом написал решение на любимом Clojure.

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

    Насчёт материалов для подготовки:
    Учебники Угриновича тему ЕГЭ, совершенно не раскрывают. Лучше сразу забыть про них. Рекомендую использовать "Информатика. Полный справочник по подготовке к ЕГЭ" Богомоловой. В нем есть весь материал школьной программы: системы счисления, графы, основы логики, программирования, теории игр и т.д. Несмотря на то, что там мелькали даты вроде ЕГЭ 2012 года, материал актуален, де-факто немного поменялось количество заданий и может что-то ещё незначительное. Не обращал на это внимание, в этом году буду готовиться по этому же справочнику. Единственное, что меня не устроило, так это примеры на Паскале, сказалась избалованность Питоном.

    Чуть не забыл, советую обратить внимание на относительно простые задания из тестовой части. Мне вот было весьма досадно, когда я получил максимальные баллы за сложные задачи, а в тестах на половину ответил неправильно. Так что стоит потренировать внимательность и получше нарешать однотипные задания, которые кажутся легкими, чтобы не допускать глупых ошибок.
    Ответ написан
    Комментировать
  • Как сверстать такой градиент на css?

    Serj-One
    @Serj-One
    i'm sexy and i know it
    Это как раз повторяющаяся картинка.
    А что здесь действительно явно, так это отсутствие смысла в поисках несуществующего сложного решения при наличии очевидного простого.
    Ответ написан
    Комментировать
  • Как быть с margin во flex?

    delphinpro
    @delphinpro Куратор тега CSS
    frontend developer
    Пожалуй, с вашей версткой только так
    codepen.io/anon/pen/XXEXyo?editors=1100

    Если отступы нужны в пикселях, используйте паддинги+border-box+вложенный элемент.
    Ответ написан
    2 комментария
  • Как работает this?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Ох...

    Для начала нам стоит прояснить что в javascript "методы" это обычные функции, которые просто привязаны к объекту. Если не вдаваться в подробности работы интерпритатора, вы можете спокойно вынести содержимое конструктора и заменить this на экземпляр объекта.

    Если совсем упростить - в javascript нет "методов", у объектов могут быть только свойства. "Методы" реализуются присваиванием функции (обычно анонимной) к свойству объекта.

    Теперь про this. this - это контекст вызова. Это "волшебная" переменная указывает на контекст, в котором мы вызвали какую-либо функцию. Она никак не фиксируется, и мы можем крутить и вертеть ей как хотим.

    По умолчанию она указывает на "владельца" функции. Тот объект, в контексте которого мы вызвали функцию.

    function foo() {console.log(this);}
    
    function MyObject() {
        this.foo = foo;
    }
    
    var hashMap = {
        foo: foo
    };
    
    var obj = {};
    var instance = new MyObject();
    obj.bar = instance.foo;  // мы можем даже красть методы
    
    foo(); // выведет window, если для браузера и мы вызывали в глобальном контексте
    instance.foo(); // выведет instance так как в контексте этого объекта мы это дело и вызывали
    hashMap.foo(); // выведет hashMap по той же причине
    obj.bar(); // выведет obj опять же потому что мы вызывали функцию в этом контексте
    foo.call('my own context') //мы можем задать свой контекст


    Зачем присваивается this и используется в дальнейшем?


    У функции есть своя область видимости. Ей доступны все переменные/идентификаторы которые определены в ее области видимости и выше в плодь до глобальной. То есть наши обработчики событий будут всегда видеть переменные объявленные в конструкторе. Причем именно то что было на момент вызова конструктора (то есть сохраняется во времени даже после завершения работы функции). Это к слову является типичной проблемой мемориликов, так как иногда люди забывают почистить за собой ссылки на объекты.

    У нас конечно есть еще функция bind, которая позволяет явно зафиксировать контекст, но иногда удобнее так.

    Именно за счет областей видимости функций в javascript мы достигаем инкапсуляции, скрываля приватные штуки внутри нашей области видимости и выплевывая наружу только то, что нужно. Самая настоящая инкапсуляция, модификаторы доступа в этом плане - просто кастыли (хотя для восприятия они проще).
    Ответ написан
    12 комментариев
  • Почему после удаления элементов не изменяется длина массива?

    delete не удаляет свойство, только значение

    теперь ваш массив
    arr[undefined, undefined, undefined, undefined, undefined]
    длинной 5
    Ответ написан
    1 комментарий
  • Что я не понимаю в замыканиях?

    mbeloshitsky
    @mbeloshitsky
    Вебдев, систем оперейшонс, ж.д. автоматика
    Ну, до меня уже все написали, но попробую по-другому, вдруг так понятно будет.

    Суть замыканий в том, что вокруг функции замыкается ее контекст - окружение, в котором она была написана (именно написана, а не вызвана, поэтому еще иногда замыкания называют подробнее - замыкания лексического контекста). Это означает, что она всегда "видит" переменные, имеющиеся в этом контексте, даже если вызывается в совершенно других местах, где этими переменными и не пахнет.

    В данном примере у вас

    function(x)

    замкнута в контексте функции

    inBetween(a, b)

    и поэтому будет всегда видеть переменные a и b.

    --


    И выходит, что переменная val является параметром function(x)

    Это уже не про замыкания, это больше про функции высшего порядка.
    Ответ написан
    Комментировать
  • Что я не понимаю в замыканиях?

    petermzg
    @petermzg
    Самый лучший программист
    В Javascript функция является обьектом и этот обьект может сохранять связь на окружение, где был обьявлен.
    Вызывая inBetween(3, 6) вы получаете в результате обьект/функцию function(x), которая запомнила окружение содержащее переменные (a, b). И полученную функцию вы передаете параметром func в filter(arr, func)

    Выполняя if (func(val)) вы уже обращаетесь не к inBetween, а к той функции/обьекту внутри, которая помнит о своем окружнении.
    Ответ написан
    Комментировать
  • Что я не понимаю в замыканиях?

    Olej
    @Olej
    инженер, программист, преподаватель
    Что я не понимаю в замыканиях?

    Ничего не понимаете ;-)

    почему func при вызове в if обращается к функции внутри inBetween(a,b)?

    Обращается не к "функции внутри", а inBetween() возвращает функцию.
    Ответ написан
    Комментировать
  • Что я не понимаю в замыканиях?

    @nirvimel
    Сама функция inBetween вызывается на этой строке.
    alert( filter(arr, inBetween(3, 6)) ); // 3,4,5,6
    Обратите внимание, она не передается в filter, а именно вызывается в этом месте. Дальше из себя она возвращает другую функцию function(x), внутри нее переменные a и b принимают конкретные значения 3 и 6 в этот момент. Дальше возвращенная функция function(x) передается в filter в качестве параметра func, именно она и вызывается в этой строке:
    if (func(val)) {
    Ответ написан
    Комментировать
  • Каким решением вы пользуетесь для реализации прогрессбара?

    nalomenko
    @nalomenko
    Руководитель отдела разработок в студии «Lava»
    Да каким угодно расширяемым плагином. По большому счету, такой компонентик написать руками без сторонних плагинов — не такая уж проблема.

    Но если уж хочется совсем чего-нибудь такого-эдакого, то добро пожаловать в экспериментальный цех Codrops :)

    elasticprogress.gif
    Ответ написан
    1 комментарий
  • Как решить Задачу?

    @maxfox
    Как вариант:
    1. Сделать массив a из 13 элементов.
    2. Пройти по руке, делая a[i]++ , где i - номинал карты.
    3. Отсортировать массив a.
    4. Если первый элемент 5 или 4, все ясно, если 3 или 2, то посмотреть на второй.
    * Наверное, быстрее шаги 3 и 4 сделать просто в один проход массиву. Если 5 или 4 - выходим, если 2 или 3, ищем дальше 2 или 3.
    Ответ написан
    Комментировать
  • Как решить Задачу?

    @dmitryKovalskiy
    программист средней руки
    Шаг 1 - отсортируйте руку
    Шаг 2 - Сравниваем первую и вторую карту. Совпали - проверяем третью и т.д. выясняя самую длинную цепочку.
    Не совпали - сдвигаемся на вторую карту и продолжаем тоже самое.
    Ответ написан
    Комментировать
  • Как воспользоваться zeroclipboard?

    AlekseyNemiro
    @AlekseyNemiro
    full-stack developer
    Довольно капризная штука. Сколько раз сталкивался, постоянно какие-то проблемы.

    <div class="main-body">
    	<div class="result">
    		<div id="source">Скопируй меня, если не боишься!</div>
    	</div>
    	<button id="ButtonCopy">Копировать</button>
    </div>
    
    <script src="ZeroClipboard.min.js" type="text/javascript"></script>
    
    
    <script type="text/javascript">
    	var CopyText = document.getElementById('source').innerHTML;
    	var clip = new ZeroClipboard(document.getElementById('ButtonCopy'), { moviePath: 'ZeroClipboard.swf' });
    
    	clip.on('mousedown', function (client) {
    		client.setText(CopyText);
    	});
    
    	clip.on('complete', function (client, args) {
    		alert('Текст: "' + args.text + '" успешно помещен в буфер обмана!');
    	});
    
    	clip.on('noflash', function (client) {
    		alert("А <s>компот</s> Flash?");
    	});
    </script>


    Если просто в браузере открыть, может не сработать. Нужно с localhost или с сайта смотреть.

    Вот пример, у меня работает.
    Ответ написан
    1 комментарий
  • Как разместить inline-block'и друг под другом?

    AndruSender
    @AndruSender
    <br/>
    Решает :)
    Ответ написан
    Комментировать
  • Как сделать частично прозрачный border?

    Veneomin
    @Veneomin
    Ну как-то так, но может я и перестарался и кто-то сделает это попроще.
    jsfiddle.net/zdpsypkw
    Ответ написан
    Комментировать