• Home

Учебник Эксель 2010 Продвинутый Уровень

 
Учебник Эксель 2010 Продвинутый Уровень Rating: 6,6/10 5704 reviews

Юзаю xcode, поудобней всяких Нетбинов и кодблоков (особенно с учетом того, что последний не умеет в ретину). На стационарнике юзаю VS. Как универсальный вариант кьютикриэйтор неплох, но там несколько непропорциональный интерфейс, часть рабочего пространства в никуда пропадает, кривоватые шрифты. Большей частью это настраивается, но всеравно не слишком удобно. К тому же он слишком частно выдает бесполезные алерты, навроде предупреждения о сравнивании разных типов переменных. Если писать изначально полностью на крестах, то ничего не получают в поддержке ибо проёбывают все сроки Если есть мозги, то ничего не проёбывают. Си и вправду не лучший вариант для фронтэнда, но для бэка подходит как нельзя лучше.

Enjoy english 3 класс учебник. (Сборник лучиков надежды) 2010 г. Алексей Меркулов Продвинутый. Скачать FIFA 10 Mods РПЛ 10 v2.0 для FIFA 10 by Fifachamp Team Software 2010 Origin. Продвинутый курс. Трюки и приемы работы в Excel, надстройки, программы, тренинги и обучение Excel, разработка. Автофильтр в Excel 2007-2010. Темы напишите мне письмо с пометкой 'эксель'.

Если коротко, то единственным прайвит-членом твоего класса становится указатель на вспомогательный объект, где уже содержатся все остальные нужные тебе данные. Тогда, как бы ты не менял внутреннюю логику работы класса, (без изменения паблик членов), у тебя не изменится ни интерфейс класса, ни размер объекта этого класса. Удобно при разработке библиотек, особенно если ты их кому-то передаешь без исходников, Если в новой версии меняется только внутрення логика классов, никто ничего не заметит, можно просто переподложить либу. tagged structure выкинутых Здесь ошибка компиляции, нельзя выкинуть то, чего нет, в одном из самых распространенных компиляторов (угадать с 1 раза) даже в 2013 версии их нормально не сделали.

По поводу остального, полностью соглсен с саморезом и дровами, но в списке явно не хватает буста. Нужно больше буста, мои алгоритмы по записи жисана в БД недостаточно generic, а ошибки компиляции все еще уступают по длине жабостектрейсами из жибосса - буст.рейнджи обмазанные концептами на буст.препроцессоре уже спешат на помощь. А stl ты зря обидел, у Степанова какая-то особая трава и stl-коллекции (за исключением vector который торчки из исоцпп добавили) на удивление трезвые и приземленные. Запощу в профильный тред, так как в ньюфаго треде меня заигнорили. В общем суть. Антоны, снова вопрос про читерство в игре freelancer. Суть, можно написать аимбот, даже не написать, а просто каким то образом перехватить функцию в игре.

Вот нашел копипасту. since ive been asked many times how to do it, here a short tut: you should be skilled in using C/C and some Assembler. Locate the function CEGun::Fire with a disassembler of your choice in common.dll 2.

In the hook call CEGun::ComputeTgtLeadPosition with the given thisptr to calculate the Target Vector 4. Overwrite the Vector given as Parameter to CEGun::Fire with the calculated one 5. Call the original function 6.

If you want 360° fire, check the returnvalue and replace if necessary - you may do rapidfire etc. With this too. В общем суть в том, что нужно написать хук на функцию наверно, я не разобрался особо, ничего сложнее вычислительных методов не делал. Инжектор есть, нужно написать саму библиотеку, но как это делать, я не знаю. Посоветуйте кто что может.

Знаешь, как это выглядит со стороны? Представь ситуацию. Господа в смокингах и цилиндрах сидят в обедне и пьют чай, обсуждая катаморфизмы, анаморфизмы, параморфизмы наконец. Тут к ним вползает пьяный вдрызг кучер Ванька. Отплевывая лошадиный навоз, он ссыт под себя, одновременно блюя на пол прокисшим борщом. Затем достает задроченный томик Александреску, найденный на помойке.

'Modern C Design - вот где мыслЯ, блеать, вот где красота и свежесть!' Смеясь, господа растегивают ширинки и мочатся быдлу в рот. Зовут дворника Ваську - местного лисп-задрота, он спускает крестохолопа с лестницы.

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

Андрюха, конечно, умный мужик(без иронии). Предложенные им техники - прекрасная теоретическая проработка возможностей языка. Я когда до буста дорвался - у меня глаза горели. Хотелось использовать все. Это происходило во времена буста версии 1.37.

Я начал использовать boost::mpl, boost::lambda, boost::spirit. Программа компилировалась все медленней и медленней, отлаживаться становилось все труднее и труднее.

Собщения компилятора не помещались на экран. Я даже не пытался их читать - просто тыкал в то место, где ошибка и понялся понять в чем проблема, анализируя код. Все это стоило мне очень больших затрат нервов и времени. Короче через пот и кровь я уяснил, что в бусте есть очень практичные библиотеки, а есть те, от которых стоит держаться подальше. И зависимость примерно такая - чем эта библиотека ближе mpl и заветам Александреску, тем от нее стоит держаться подальше.

Дети, не повторяйте моей ошибки. Если вам нужна сложная логика и высокий уровень абстракции - используйте Хаскель.

Не слушайте неосилятора. Сейчас все эти штуки из boost'а даже в стандартную библиотеку потихоньку перетекают (typetraits, например). Всё, что связано с дизайном программ, с архитектурой, абстракцией (mpl, typeerasure, concepts, variant) - усугубляют компиляцию не больше, чем использование всяких стандартных vector. От чего действительно стоит держаться подальше - это от библиотек spirit и lambda - вот они без проблем повесят компилятор на ночь в рекордное количество строк кода. А всё почему?

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

Сейчас все эти штуки из boost'а даже в стандартную библиотеку потихоньку перетекают (typetraits, например). Я не против буста, я сам его много его использую. Всё, что связано с дизайном программ, с архитектурой, абстракцией (mpl, typeerasure, concepts, variant) - усугубляют компиляцию не больше, чем использование всяких стандартных vector. Осбенно 5 лет назад, особенно на тех компьютерах, особенно на 2003 студии. Или когда ты пытаешься сделать AST на вариантах. И по мере расширения языка у тебя возможное количество альтернатив boost::variant ВНЕЗАПНО упирается в ограничения библиотеки. Вот это реально нежданчик.

От чего действительно стоит держаться подальше - это от библиотек spirit и lambda - вот они без проблем повесят компилятор на ночь в рекордное количество строк кода. Прошивка dell 1133. Бежать как от огня, тем более сейчас есть нормальные лямбды(ну по стандартам нормальности мира С конечно).

Тем более 'необходимый минимум' - это абсолютно субъективное понятие. Для кого-то никак-не-обходимый минимум - это сишка, потому что у него мышление так устроено, для кого-то - можно больше абстракций, если кода становится меньше, для кого-то - можно больше абстракций, если код становится общней (кто-то скажет, что считается только такая общность, которая с вероятностью выше какого-то порогового значения будет полезной в данном конкретном проекте), для кого-то - ещё что, а кто-то скажет, что вот да, так может и короче и лучше, но нам трудно и вообще лень изучать эти концепции и либы, потому давайте оставим как есть. Поясните ещё за Аду. Несколько дней назад от скуки немного почитал про неё и что-то загорелся желанием выучить.

Тут вроде и ООП, и какой-то продвинутый менеджмент памяти/объектов, и встроенная многопоточность, и многое сделано для контроля ошибок как на этапе компиляции, так и в рантайме. Потестил немного компилятор (gnat) - выдает код всего лишь немного уступающий в производительности аналогичному сишному.

И вроде всё хорошо, единственное, что пока не очень понравилось (или я что-то не очень понял) это то, что при использовании именованных типов аксесс-к-функции иногда получается ошибка 'subprogram must not be deeper than access type', при этом с аналогичными анонимными типами всё норм. В общем вопрос в следующем - нет ли в языке каких-нибудь не очевидных сразу недостатков, которые могут потом заставить меня разочароваться в нем? Просто хочется учить только безупречные языки (не обязательно универсальные, главное - без серьезных косяков в дизайне, например вот сишка - безупречный язык).

у большинства памяти уже достаточно джава достаточно памяти лол не единственная жрущая память программа Она обычно основная рабочая. К тому же с течением времени, сюрприз, требования к памяти у софта растут.

У джава-софта тоже, причем быстрее рынка. Так что лишнюю планку памяти надо будет докупать каждый апгрейд.

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

600 млн - это огромное преувеличчение Это только для одной программы, заметь. Зато пока ты выебешь пару байт (а скорее они тебя), я уже выкачу бету продукта. Потому что код - это инструмент. И если я могу положить на оверхед и память - я это сделаю, зачем мне тратить время на еблю с инструментом. Если я могу топором забить гвоздь - я не буду тратить время на отливку молотка из болванки, и вытачивание к нему ручки (потому что покпокпок зато ты можешь вылить болванку идеально подходящую к нужному тебе типу гвоздей, и эргономичную атропедическую ручку выстругать. И похуй что тебе придется на это дохуя времени потратить, ТЫ ЖЕ МОЖЕШЬ). пока ты выебешь пару байт (а скорее они тебя), я уже выкачу бету продукта Пока ты неделю ебешься с уродливым говносвингом, чтобы сделать простейшую вещь, я делаю все на Qt за вечер.

Пока ты долго и старательно пишешь обертку с байтбуферами для работы с сырыми данными, я легко и быстро все делаю указателями. Пока ты вечер сидишь с профайлером, выискавая утечку ресурса, и подсчитывая ссылочки вручную, я пью кофе, потому что RAII работает с ресурсами за меня.

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

Смотрим, например, сюда: Посчитай, сколько раз там жабка упоминается. Какой-то уебанский дизайн библиотеки, пиздец.

Можешь почитать комментарии к статье выше. Что-там ссылается друг на друга по ссылкам, кококо, выходит из скоупа, висячие ссылки, кровь кишки распидорасило. И это в моем C11/14, с rvalue, ага. Не хочу нормальные перегрузки операторов для rvalue - хочу говно с висячими ссылками жрать. В общем насколько я понял из той статьи, надо использовать макрос BOOSTSPIRITAUTO, который делает deep copy всех этих спиритовских хуйнь и затем вызывает BOOSTAUTO - костыль/замену auto из буста, сделанный до того, как C11 стал существовать. Автор спирита вроде как обещает починить это в Spirit 3.

Iostream и fstream это не STL, их за 10 лет до STL написали, когда еще эксепшенов не было. И не юзабельные они вообще - фейлбит, названия методов идиотские, нахер не нужный форматированный вывод (строки, сука, конкатенируй же их) и прочая хуита.

Для стримов есть кошерный boost.iostreams - header-only, std:: стримы понимает как родные, есть магический iostreams::read который читает все подряд, указание списка фильтров через pipe и т.п. Я до него считал что буст - это для наркоманов-любителей-spirit-и-mpl. А в итоге оказалось что без iostreams никуда. Вот я и говорю, муть там в лицензии. GNAT вроде-бы свободный, а пилит его компания, которая живет с продажи адского рантайма. Значит где-то подвох и ограничения бесплатно без смс. В крестах все так хорошо с компилерами, так как GCC (RedHat), Clang (Apple) и MSVS (райнтайм и компилятор, в pro тулзы за деньги) пилят забесплатно, так как для бизнеса полезно.

А запилить компилятор и рантайм к нему - это не фунт изюма, почитай почему MS не могли 3 года вариадик темплейты добавить в stdlib. Там какая-то нереальная запредельная стоимость тестирования изменений (я где-то читал про десятки миллионов зелени на 1 цикл тестирования).

MinGW вот шипают без тестирования, поэтому в больших кроссплатформенных проектах плачут, плюются, но юзают MSVS. Они там продают в основном техподдержку как я понял, плюс их IDE (студия) для коммерческого использования доступна только платно (вроде). По лицензиям там 3 версии: GNAT Pro (платная, компилер, IDE, поддержка) = GNAT-Modified GPL GNAT GPL (бесплатная, компилер, IDE) = GPL version 3 GNAT FSF (бесплатная, только компилер с либами) = GPL version 3 with GCC runtime library exception 1 и 3 лицензия - аналоги LGPL, т.е. Сама софтина GPL, но на исполняемые файлы, слинкованные со стандартной библиотекой GPL уже не распространяется. Хотя в любом случае такой пиздец может отпугнуть кого угодно. Нахуя С вообще описания ошибок придумал? Писал бы просто 'У тебя тут программа сломалась, почини', и строку бы в код в случае дебага крайнем случае написал - один хуй ничего непонятно, когда у тебя выскакивает ошибка вида '%projectname.exe% has triggered a bearkpoint', вылетая где-то в коде stl, а когда ты проходишь по стектрейсу - ты вообще оказываешься в точке конца скоупа, и следующая точка в стектрейсе - это деструктор std::vector, а дальше в стектрейсе твоего кода нет вообще.

Нахуя вообще нужен дебаггер, если все равно тебе придется как будто alert'ами угадывать, де у тебя ошибка в коде, потому что хуй что тебе полезного даст информация из эксепшена или стектрейса при дебаге. Почему когда другие языки пытаются облегчить написание кода, и ускорить процесс отладки, выдавая понятные сообщения о том, что пошло не так, в считается нормой срать разработчику в лицо HEX кодами и адресами в памяти (из которых понять можно разве что нихуя), и выкидывать тебя в коде stl или другой стандартной и отлаженной библиотеки, отношения к которой ты имеешь чуть меньше чем никакого? А потом еще удивляются, что разработчики бегут на нормальные инструменты, а тут остаются только самые задроты, готовые целыми днями зубрить HEX коды сообщений, и читать дампы упавших программ, которые ты сам и разработал. Все проще - не шипай юзерам сырое @ пиши тесты @ пускай под valgrind'ом @ юзай тулзы по статическому анализу (говорят в кланге годные) В такое говно, как ты написал, обычно undefined behaviour вещи падают, которые под валгриндом сразу будет видно. Пиши тесты к кускам программы, пускай тесты под валгриндом., профит. А то, что у эксепшенов нет стектрейсов - это да, грустнота. Но дорогие они слишком - стектрейсы.

Для своих эксепшенов их можно руками собирать (вместе с именем файла, строкой, именем функции и т.п.). Нужно написать небольшую программу, записывающую в файл структуру данных. Вот кот, который я написал: Пишу в MS VS 2010.

Сначала была проблема в том, что по завершении ввода (после ввода группы) программа сваливалась в бесконечный цикл, причём даже не останавливаясь для ввода новых данных, т.е. Тупо начинала ебашить вывод 'Имя: Фамилия: Год рождения: Группа:', в общем скрин прилагается. Спросил у одного анона что делать, посоветовал перед вводом выбора 'Продолжить/прекратить' сделать очистку потока, поэтому добавил сin.sync; (позже добавил его и с конец функции). Но теперь проблема преобразилась: теперь в цикл функция сваливается не всегда, а лишь иногда. Первый и второй раз программа ведёт себя адекватно, а вот после 2-го (иногда после 3-4-го, т.е. Не всегда именно после 2-го) ввода данных вновь сваливается в цикл.

Аноны, что делать, подскажите? В плюсах чайник, вообще туго в них соображаю. Анон, обесни, зачем в boost::iteratorfacade метод dereference (который собственно значение текущее возвращает) сделали const? Это же ебануться, итератор же дереференсят сразу после создания - т.е. После создания он сразу должен на первый элемент указывать и при dereference не имеет права внутреннее состояние менять.

Но блджад, мой итератор всякое говно из сокета читает, я не хочу в конструкторе сокет открывать раньше времени, хочу открыть только когда юзер попросит значение. (можно создать 10 'пассивных' итераторов, которые полезут за данными только когда их реально начнут читать, а не сразу после создания). STL итераторы без проблем такую штуку позволяют - operator не обязательно const. Нахрена наркоманы из буста в своих наркоманских NEW ITERATORS здесь const учудили? Iteratorfacade для того и придуман, чтобы можно было всякое говно простым образом оборачивать в итератор. И такие идиотские ограничения. Я не один такой -, но я так и не понял, как эту проблему по ссылке решили, что блджад значит make mutable, какие нахрен mutable внутри const метода?

Посоны, задача есть, реализовать передачу файла по сети через сокеты. Консольный клиент и консольный сервер. Клиент загружает файл на сервер, сервер соответственно получает и сохраняет.

Продумать иерархию классов и протокол. 1) На крестах есть ООП обёртка над сишными функциями для сокетов (Berkeley sockets)? 2) можно ли одновременно в одном потоке передавать инфу а втором принимать/ожидать новую инфу из того же сокета? 3) Разумеется я собираюсь использовать TCP, вот только я не понимаю какую там иерархию классов продумывать? По сути же это всё делается в одном main, ну или если написать ООП обёртку - в 2 cpp файла для сервера и 2 файла для клиента. Слушай, ещё 2 вопроса если ты разбираешься в этом: 1) я так понимаю мне чтоб понять на сервере когда я принял файл - надо заранее передать его размер? Иначе ведь я не отличу закончились данные в стриме(Файл полностью прислали) или просто они ещё не дошли до меня, или может вообще коннект разорвался.

2) Париться с кодированием в network-byte order я должен только на примитивах более чем в 1 байт? Т.е int'ы, float'ы и символы в юникоде мне переводить нужно, а если я отсылаю побайтово файл или обычный массив char - это будет приниматься нормально на большинстве платформ? Не делай на голом TCP ни в коем случае. Никаких boost::asio и прочей низкоуровневой хуиты. Задача прикладная до безобразия. Протокол - HTTP. Формат передачи - multipart form data.

Спеки сам нагуглишь, на клиенте надо только cURL обернуть. На сервере - поковыряй открытые реализации HTTP серверов, pion какой-нибудь и т.п. Профит - бесплатная загрузка из браузера, бесплатное шифрование и аутентификация. Если HTTP медленно (ты шо хадуп пишешь штоле), то все то же самое, но на сервере FTP вместо HTTP (на клиенте cURL и так все протоколы умеет). FTP здесь только для выбора директорий и (несекурной) аутентификации, данные там будут течь точно также как в голых сокетах с нулевым оверхедом.

Посоны, кросспостну из ньюфаг-треда. Антош, не могу вот что понять. Смотри, итератор у std::map по дереференсу возвращает std::pair Как создавать возвращать такую пару??? Если такая пара хранится как член итератора (как в примере) - ее надо как-то менять при инкременте, например, итератора.

Но ведь менять такую пару нельзя, можно только создавать заново. А как это делать на стеке я не понял. В общем, выходит уебанство одно, поясни, пожалуйста, антош.

Я вижу только два варианта - либо менять const-value в паре, что зашквар и undefined behaviour, либо создавать динамически новую пару каждый раз при изменении итератора (что тоже зашквар, в общем и целом). Опытным байтоёбам вопрос. Имеется следующая задача: необходим булевой массив. Требования (в порядке убывания важности - т.е. Если не выполнено первое, на второе можно даже не смотреть, и т.д.): 1) не нужно вообще никаких операций/операторов, кроме возможности проставить true или false для конкретного элемента массива; 3) максимальная экономия памяти; 4) опционально максимально простая реализация этого дела (если имеется готовое решение - хотелось бы исходный код); 5) опционально высокая скорость (понятно, что она должна вытекать из простой реализации без всяких ).

Вот нашёл научную статейку на сей счёт, не сказать что впечатлён имеющимися решениями. По ходу дела задачу можно уточнить, если я что-то неправильно/криво сфрмулировал. 1) Не считая std::cout и обёртку классом, это по сути язык C в чистом виде? Да 2) Почему используется unsigned char, а не скажем uint8t? Или uint64t?

При uint64 максимальный проёб по памяти будет 63 бита, тебе же экономно надо. Разницы между уинт8 и ансайнд чар нету, я по-старинке использую чар 3) платина Почему calloc/free, а не new/delete? Обусловлено байтоеблей и/или другой причиной? Потому что я сиблядь. Можешь делать нью и делит 4) Что значит - на 20, 25 и т.д.

Разыменовывание указателя this, который указывает на тот объект, для которого вызван метод 5) Ну и занудство: почему на 18 строчке size, а не size? В данном случае похуй. 0) Самое главное забыл спросить: это решение будет быстрее dynamicbitset? Boost::dynamicbitset самый быстрый булевой массив из побитовых: (даже быстрее std::bitset, хотя в статье об этом не сказано) 2) Нефизично мыслишь, братишка.

Проёб в 7 бит или 63 бита абсолютно некритичен, это же проёб в абсолютном количестве. А вот проёб при array в 8 раз (относительный): если я с пятиста мегабайт потеряю 63 бита, я смогу с этим жить.

А если 3500 мегабайт, то это уже ни в какую оперативку не лезет. Собственно, почему я спрашиваю про uint64t (Это же unsigned long long, я так понимаю?): вопрос в том, как наиболее эффективно (читай быстро) читать блочки данных на заданной архитектуре (пускай 64 бита для определённости). Вообще нет разницы между calloc/free, и new/delete? Разве не расходуются дополнительно ресурсы на саму возможность пробросить исключение и т.д. Асинхронность Услышав это слово, у программистов начинают блестеть глаза, дыхание становится поверхностным, руки начинают трястись, голос — заикаться, мозг начинает рисовать многочисленные уровни абстракции У менеджеров округляются глаза, звуки становятся нечленораздельными, руки сжимаются в кулаки, а голос переходит на обертона Единственное, что их объединяет — это учащенный пульс. Только причины этого различны: программисты рвутся в бой, а менеджеры пытаются заглянуть в хрустальный шар и осознать риски, начинают судорожно придумывать причины увеличения сроков в разы И уже потом, когда большая часть кода написана, программисты начинают осознавать и познавать всю горечь асинхронности, проводя бесконечные ночи в дебаггере, отчаянно пытаясь понять, что же все-таки происходит Лол, bitches don't know 'bout my Akka. /код в статье/ Ну ёбаный пельмень.

Скачать Excel Для Windows 7

Учебник Эксель 2010 Продвинутый Уровень

Что вас заставляет писать на этом? Вы там одни драйвера и прошивки для роутеров пишете, что не можете взять нормальный высокоуровневый язык? Программы должны тратить времени и ресурсов не больше, чем им выделено. Не 'работать как можно быстрее', а 'настолько быстро, насколько это необходимо', блядь! А то начинают переписывать каждый пук чуть ли не на ассемблере, а добрым прогерам потом все это читать, ёбаный пердот!

Ограничения по ресурсам и времени могут задаваться не только явно ('12.345 мс. На обработку внезапного увеличения яркости, 67.890 мс. На формирование и подачу конкретной команды ориентировочным двигателям солнечных батарей'), но и в неявном виде ('чтоб не тормозило!' В любом случае конечным критерием служит реакция заказчика: 'Чё так медленно!'

- или молчание. Как только заказчик перестал возмущаться по поводу быстродействия программы, работы по ее оптимизации можно прекращать. И нужно прекращать, блядь, а то начинают потом переписывать каждый пук чуть ли не на ассемблере, а добрым прогерам потом все это читать, ёбаный пердот! Эффективность почти всегда стоит вразрез с остальными критериями качества ПО. В подавляющем большинстве случаев программа либо корректная, устойчивая, понятная и т.

Д., но тормозит; либо быстрая, как пулемет, но не работает. Почти всегда, чтобы заставить программу работать быстрее, приходится раскрывать детали реализации ('opencache(.)', 'optimizefor(.)'), повышать уровень абстракции и вообще всячески ломать архитектуру.

Именно поэтому п. 2, именно поэтому ранняя оптимизация - зло, именно поэтому нельзя переписывать каждый пук на ассемблере - потому, что добрым прогерам потом всё это читать, ёбаный пердот! 'Не надо заставлять машину делать лишние действия!' - раздалось со стороны параши. Во-первых, не человек - раб машины, а машина - раб человека (она для этого и создавалась, ebitten nahuj wrot!). Во-вторых, лишние действия машины стоят гораздо дешевле, чем лишние действия человека, и еще на много порядков дешевле, чем лишние действия программиста.

Я не знаю, каким надо быть ничтожеством, чтобы ценить собственное время дешевле машинного. MRI не оптимизирован вообще никак, вся его функциональность реализована наивно, без малейших намеков на эффективность. Это не помешало ему завоевать популярность в Японии, а после выхода англоязычной документации - и во всем мире. Ruby on Rails - второй по популярности веб-фреймворк после PHP-овых. Короче, эффективность - последний критерий, по которому оцениваются программы. Но нельзя забывать, что эффективность может стать частью корректности. Никому нахуй не нужна сортировка, уничтожающая и пересобирающая весь мир, пока сортируемый массив не окажется в нужном порядке.

Программы должны поставляться вовремя. Никому нахуй не сдались программы, которые были заказаны за месяц, а поступили через год. Программисты могут и должны называть адекватные сроки разработки и соблюдать их, блядь! Назвать один срок, а программу выпустить в другой равносильно расписке в собственной некомпетенции. Делать так периодически - прослыть пиздоболом и саботажником (отсюда вывод: IBM, открыто признавшиеся, что им ни разу не удавалось выпускать программы точно в срок - феерические пиздоболы и саботажники, которые нихрена не умеют, даже hello-world-ы писать). Форс-мажор допустим. Подсчитывать сроки проще, чем кажется.

Я сказал форс-мажор, блядь, а не недальновидность!!! При прочих равных условиях больше шансов на рынке имеет тот, кто тратит меньше времени на разработку. Какая-нибудь с годичным циклом разработки имеет все шансы растерять нахуй всю клиентуру и обдрочиться на учеников ак. Евгения Михайловича Пастобло, организовавших свое дело и выпускающих аналогичную продукцию по штуке в месяц. Короче говоря, ключевым критерием, характеризующим профессионализм программиста, является время, которое он проводит над кодом. Именно поэтому программы надо писать без ошибок - если вы допустите ошибку в программе, пользователь ее завернет, и вам придется снова сидеть над ней. Плюс практика показывает, что чем позже была обнаружена ошибка, тем больше времени уходит на ее исправление.

Учебник Excel 2010 Продвинутый Уровень

Именно поэтому программы должны быть устойчивы - если вы не предусмотрите какую-либо внештатную ситуацию, то рано или поздно ваш продукт завернут и 'вежливо' попросят таки предусмотреть её. И если в вашей лаборатории вы точно будете знать, какая именно внештатная ситуация возникла при том или ином тесте, то 'с поля' самое информативное сообщение, которое вам придет - это 'divide by zero'.

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

Программист, целый месяц тратящий на перевелосипедивание скоростных комбинаторов парсеров с коррекцией ошибок - это не программист, а какой-то пидарас. Именно поэтому необходимо изучать существующие на сегодняшний день технологии ИТ и быть в курсе их развития. В высшей степени комично смотрится программист, переделывающий XML-файл с данными в набор команд для СУБД при помощи 'Блокнота' и рук.

Еще ржачнее смотрится программист, две недели пидорасящий для этой цели 'утилитку на C'. Именно поэтому каждый программист должен знать Python/Ruby/Groovy, Bash, Text Utils,.NET, WPF и много всего того, что знать 'не нужно' (ибо 'на Java/PHP/C можно написать всё! ) - там, где байтопидоры и плюсокодерьё дергают ОС за системные вызовы мегабайтами темплейтолапши, обычные грамотные специалисты захуяривают пару строчек на Питоне и сдают всё это заказчику в красивой инсталляшке. За ебические деньги.

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

Я предлагаю приравнивать дрочку на байты и такты к саботажу или хотя бы просмотру порнографии за работой. Именно поэтому системные программисты придумали, придумывают и будут придумывать все эти ваши Python, Ruby, PHP и прочее - чтобы 'прикладники' могли выполнять свою работу тупо быстрее. И именно по этой причине они никак не оптимизируют свои продукты ('100 тактов на сложение чисел' - это ж всё, блядь, пиздец, вся жизнь насмарку) - потому, что это НАХУЙ никому не нужно.

Введение Многие люди, годами используя Microsoft Excel, даже не подозревают о возможностях программы, упрощающих работу с таблицами. В этой статье мы рассмотрим несколько особо примечательных функций:. Группировка данных Когда вы подготавливаете каталог товаров с ценами, было бы неплохо побеспокоиться об удобстве его использования. Большое количество позиций на одном листе вынуждает использовать поиск, но что, если пользователь только делает выбор и не имеет представления о наименовании? В Интернет-каталогах проблема решается созданием групп товаров.

Так почему бы и в книге Excel не сделать так же? Организовать группировку достаточно просто.

Выделите несколько строк и нажмите кнопку Группировать на вкладке Данные (см. Рисунок 1 – Кнопка группировки Затем укажите тип группировки – по строкам (см. Рисунок 2 – Выбор типа группировки В итоге мы получаем не то, что нам нужно. Строки товаров объединились в группу, указанную под ними (см. В каталогах обычно сначала идёт заголовок, а потом содержимое.

Рисунок 3 – Группировка строк «вниз» Это отнюдь не ошибка программы. Видимо, разработчики посчитали, что группировкой строк занимаются в основном составители финансовой отчётности, где итоговый результат выводится в конце блока. Чтобы группировать строки «вверх» нужно изменить одну настройку. На вкладке Данные нажмите на маленькую стрелочку в нижнем правом углу раздела Структура (см. Рисунок 4 – Кнопка, отвечающая за вывод окна настроек структуры В открывшемся окне настроек снимите флажок с пункта Итоги в строках под данными (см. 5) и нажмите кнопку ОК.

Рисунок 5 – Окно настроек структуры Все группы, которые вы успели создать, автоматически изменятся на «верхний» тип. Разумеется, установленный параметр повлияет и на дальнейшее поведение программы. Однако снимать этот флажок вам придётся для каждого нового листа и каждой новой книги Excel, т.к. Разработчики не предусмотрели «глобальной» установки типа группировки. Точно также нельзя использовать различные типы групп в пределах одной страницы. После того, как вы распределили товары по категориям, можно собрать категории в более крупные разделы. Всего предусмотрено до девяти уровней группировки.

Неудобство при использовании данной функции заключается в необходимости нажимать кнопку ОК во всплывающем окошке, а собрать несвязанные диапазоны за один подход не удастся. Рисунок 6 – Многоуровневая структура каталога в Excel Теперь вы сможете раскрывать и закрывать части каталога, щёлкая по плюсам и минусам в левой колонке (см. Чтобы развернуть весь уровень, нажмите на одну из цифр в верхней части. Чтобы вывести строки на более высокий уровень иерархии, воспользуйтесь кнопкой Разгруппировать вкладки Данные. Полностью избавиться от группировки можно при помощи пункта меню Удалить структуру (см.

Будьте внимательны, отменить действие невозможно! Рисунок 7 – Снимаем группировку строк Закрепление областей листа Достаточно часто при работе с таблицами Excel возникает необходимость закрепить некоторые области листа. Там могут располагаться, например, заголовки строк / столбцов, логотип компании или другая информация. Если вы закрепляете первую строку или первый столбец, то всё очень просто. Откройте вкладку Вид и в раскрывающемся меню Закрепить области выберите соответственно пункты Закрепить верхнюю строку или Закрепить первый столбец (см. Однако одновременно и строку, и столбец таким образом «заморозить» не удастся. Рисунок 8 – Закрепляем строку или столбец Чтобы снять закрепление, выберите в том же меню пункт Снять закрепление областей (пункт заменяет собой строку Закрепить области, если на странице применена «заморозка»).

А вот закрепление нескольких строк или области из строк и столбцов осуществляется не так прозрачно. Вы выделяете три строки, щёлкаете по пункту Закрепить области, и Excel «замораживает» только две. Возможен ещё более плохой вариант, когда области закрепляются непредсказуемым образом (например, вы выделяете две строки, а программа ставит границы после пятнадцатой). Но не будем списывать это на недосмотр разработчиков, потому что единственный правильный вариант использования данной функции выглядит по-другому. Вам нужно щёлкнуть мышью по ячейке ниже строк, которые вы хотите закрепить, и, соответственно, правее закрепляемых столбцов, а уже потом выбрать пункт Закрепить области. Пример: на рисунке 9 выделена ячейка B 4. Значит, закрепляться будут три строки и первый столбец, которые останутся на своих местах при прокрутке листа как по горизонтали, так и по вертикали.

Рисунок 9 – Закрепляем область из строк и столбцов Вы можете применить фоновую заливку для закреплённых областей, чтобы указать пользователю на особенное поведение данных ячеек. Поворот листа (замена строк на столбцы и наоборот) Представьте такую ситуацию: вы несколько часов работали над набором таблицы в Excel и вдруг поняли, что неверно спроектировали структуру – заголовки столбцов следовало бы расписать по строкам или строки по столбцам (это не имеет значения). Набирать всё вручную заново? В Excel предусмотрена функция, позволяющая осуществить «поворот» листа на 90 градусов, переместив таким образом содержимое строк в столбцы.

Рисунок 10 – Исходная таблица Итак, мы имеем некоторую таблицу, которую нужно «повернуть» (см. Выделяем ячейки с данными.

Выделяются именно ячейки, а не строки и столбцы, иначе ничего не получится. Копируем их в буфер обмена сочетанием клавиш или любым другим способом. Переходим к пустому листу или свободному пространству текущего листа. Важное замечание: вставлять поверх текущих данных нельзя!. Вставляем данные комбинацией клавиш и в меню параметров вставки выбираем вариант Транспонировать (см. Как вариант, вы можете использовать меню Вставить со вкладки Главная (см.

Рисунок 11 – Вставка с транспонированием Рисунок 12 – Транспонирование из главного меню Вот и всё, поворот таблицы выполнен (см. При этом форматирование сохраняется, а формулы изменяются в соответствии с новым положением ячеек – никакой рутинной работы не потребуется. Рисунок 13 – Результат после поворота Показ формул Иногда возникает ситуация, когда вы не можете найти нужную формулу среди большого количества ячеек, либо просто не знаете, что и где следует искать. В этом случае вам пригодится возможность вывести на лист не результат вычислений, а исходные формулы. Нажмите кнопку Показать формулы на вкладке Формулы (см.

14), чтобы изменить представление данных на листе (см. Рисунок 14 – Кнопка «Показать формулы» Рисунок 15 – Теперь на листе видны формулы, а не результаты расчёта Если вам трудно сориентироваться по адресам ячеек, отображаемым в строке формул, нажмите кнопку Влияющие ячейки со вкладки Формулы (см. Зависимости будут показаны стрелками (см. Для использования этой функции сначала следует выделить одну ячейку. Рисунок 16 – Зависимости ячейки показаны стрелками Скрываются зависимости нажатием кнопки Убрать стрелки. Перенос строк в ячейках Достаточно часто в книгах Excel встречаются длинные надписи, не помещающиеся в ячейку по ширине (см.

Можно, конечно, раздвинуть столбец, но не всегда этот вариант приемлем. Рисунок 17 – Надписи не помещаются в ячейки Выделите ячейки с длинными надписями и нажмите кнопку Перенос текста на Главной вкладке (см. 18), чтобы перейти к многострочному отображению (см. Рисунок 18 – Кнопка «Перенос текста» Рисунок 19 – Многострочное отображение текста Поворот текста в ячейке Наверняка вы сталкивались с ситуацией, когда текст в ячейках нужно было разместить не по горизонтали, а по вертикали. Например, чтобы подписать группу строк или узкие столбцы. В Excel 2010 имеются средства, позволяющие повернуть текст в ячейках. В зависимости от своих предпочтений вы можете пойти двумя путями:.

Сначала создать надпись, а потом её повернуть. Настроить поворот надписи в ячейке, а потом ввести текст. Варианты различаются незначительно, поэтому рассмотрим только один из них. Для начала я объединил шесть строк в одну при помощи кнопки Объединить и поместить в центре на Главной вкладке (см.

20) и ввёл обобщающую надпись (см. Рисунок 20 – Кнопка объединения ячеек Рисунок 21 – Сначала создаём горизонтальную подпись Далее опять же на Главной вкладке щёлкаем по кнопке направления текста и в раскрывающемся списке выбираем пункт Повернуть текст вверх (см. Рисунок 22 – Кнопка поворота текста Можно дополнительно уменьшить ширину столбца (см. Рисунок 23 – Вертикальный текст ячейки Если есть такое желание, угол поворота текста вы можете задать вручную.

В том же списке (см. 22) выберите пункт Формат выравнивания ячейки и в открывшемся окошке задайте произвольный угол и выравнивание (см. Рисунок 24 – Задаём произвольный угол поворота текста Форматирование ячеек по условию Возможности условного форматирования появились в Excel уже давно, но к версии 2010 года были значительно усовершенствованы. Возможно, вам даже не придётся разбираться в тонкостях создания правил, т.к. Разработчики предусмотрели множество заготовок. Давайте посмотрим, как пользоваться условным форматированием в Excel 2010.

Первое, что нужно сделать – выделить ячейки. Далее, на Главной вкладке нажмите кнопку Условное форматирование и выберите одну из заготовок (см. Результат будет отображаться на листе сразу, поэтому вам не придётся долго перебирать варианты. Рисунок 25 – Выбираем заготовку условного форматирования Гистограммы выглядят достаточно интересно и хорошо отражают суть информации о цене – чем она выше, тем длиннее отрезок. Цветовые шкалы и наборы значков можно использовать для индикации различных состояний, например, переходы от критических затрат к допустимым (см. Рисунок 26 – Цветовая шкала от красного к зелёному с промежуточным жёлтым Вы можете комбинировать гистограммы, шкалы и значки в одном диапазоне ячеек. Например, гистограммы и значки на рисунке 27 показывают допустимую и чрезмерно низкую производительность устройств.

Рисунок 27 – Гистограмма и набор значков отражают производительность некоторых условных устройств Чтобы удалить условное форматирование ячеек, выделите их и в меню условного форматирования выберите пункт Удалить правила из выделенных ячеек (см. Рисунок 28 – Удаляем правила условного форматирования Excel 2010 использует заготовки для быстрого доступа к возможностям условного форматирования, т.к. Настройка собственных правил для большинства людей является далеко не очевидной. Однако, если предусмотренные разработчиками шаблоны вас не устраивают, вы можете создать свои правила оформления ячеек по различных условиям. Полное описание данного функционала выходит за рамки текущей статьи. Использование фильтров Фильтры позволяют быстро находить нужную информацию в большой таблице и представлять её в компактном виде. Например, из длинного списка книг можно выбрать произведения Гоголя, а из прайс-листа компьютерного магазина – процессоры Intel.

Как и большинство других операций, фильтр требует выделения ячеек. Однако выделять всю таблицу с данными не потребуется, достаточно отметить строки над нужными столбцами данных. Это значительно увеличивает удобство от использования фильтров. После того, как ячейки выделены, на вкладке Главная нажмите кнопку Сортировка и фильтр и выберите пункт Фильтр (см. Рисунок 29 – Создаём фильтры Теперь ячейки преобразятся в раскрывающиеся списки, где вы можете задать параметры выборки.

Например, мы ищем все упоминания про Intel в столбце Наименование товара. Для этого выбираем текстовый фильтр Содержит (см. Рисунок 30 – Создаём текстовый фильтр Далее, вписываем искомое слово в соответствующее поле открывшегося окна (см. 31) и нажимаем кнопку ОК.

В таблице будут показаны только те строки, в которых содержится нужная нам информация. Рисунок 31 – Создаём фильтр по слову Впрочем, гораздо быстрее добиться того же эффекта, вписав слово в поле Поиск контекстного меню, показанного на рисунке 30. Зачем тогда вызывать дополнительное окно? Оно пригодится в том случае, если вы хотите указать несколько условий выборки или выбрать другие параметры фильтрации ( не содержит, начинается с, заканчивается на).

Excel Скачать Бесплатно 2013

Для числовых данных доступны другие параметры (см. Например, можно выбрать 10 наибольших или 7 наименьших значений (количество настраивается). Рисунок 32 – Числовые фильтры Фильтры Excel предоставляют достаточно богатые возможности, сравнимые с выборкой запросом SELECT в системах управления базами данных (СУБД). Отображение информационных кривых Информационные кривые (инфокривые) – нововведение в Excel 2010. Эта функция позволяет отобразить динамику изменения числовых параметров прямо в ячейке, не прибегая к построению диаграммы. Изменения в числах будут сразу же показаны на микрографике. Рисунок 33 – Инфокривая Excel 2010 Чтобы создать инфокривую, нажмите на одну из кнопок в блоке Инфокривые на вкладке Вставка (см.

34), а затем задайте диапазон ячеек для построения. Рисунок 34 – Вставка инфокривой Как и диаграммы, информационные кривые имеют множество параметров для настройки.

Более подробное руководство по использованию данного функционала описано в статье. Заключение В статье были рассмотрены некоторые полезные возможности Excel 2010, ускоряющие работу, улучшающие внешний вид таблиц или удобство использования. При этом не имеет значения, создаёте ли вы файл сами или используете чужой – в Excel 2010 найдутся функции для всех пользователей.

Статья опубликована в рамках « – эффективное воплощение ваших идей».