вторник, 7 января 2014 г.

Длинная арифметика от Microsoft

Введение


Известно, что компьютер может оперировать числами, количество бит которых ограниченно. Как правило, мы привыкли работать с 32-х и 64-х разрядными целыми числами, которым на платформе .NET соответствуют типы Int32 (int) и Int64 (long) соответственно.

А что делать, если надо представить число, такое как, например, 29! = 8841761993739701954543616000000? Такое число не поместится ни в 64-х разрядный, ни тем более 32-х разрядный тип данных. Именно для работы с такими большими числами существует длинная арифметика.

суббота, 28 декабря 2013 г.

Ответы на LINQ Quiz

Вопрос 1. Ответ: A


Max — это один из агрегирующих LINQ операторов, определенный как метод расширения в классах System.Linq.Enumerable и System.Linq.Queryable.

Max — возвращает максимальное значение вычисленное лямбда выражением, а не элемент имеющий максимальное значение (то есть сначала выполняется проекция с помощью лямбда выражения, а потом ищется максимум).

четверг, 26 декабря 2013 г.

LINQ Quiz

Пройдите этот короткий тест и проверьте свои знания по LINQ.


Во всех примерах импортированы следующие пространства имен:
using System;
using System.Linq;
using System.Data.Linq;
using System.Xml.Linq;
using System.Collections;
а так же предполагается, что массив colors определён следующим образом:
string[] colors = { "green", "brown", "blue", "red" };
Поехали!

10 мифов о LINQ

Миф #1


Все LINQ запросы должны начинаться с ключевого слова 'var'. По сути основная цель ключевого слова 'var' — начать LINQ запрос!


Ключевое слово var и LINQ — это самостоятельные концепции. Ключевое слово var позволяет компилятору вывести тип локальной переменной на основании начального присваивания (неявная типизация). К примеру, следующий код:
var s = "Hello"; 
точный эквивалент для:
string s = "Hello"; 
потому что компилятор выводит тип переменной s как string.
Аналогично, следующий запрос:
string[] people = new [] { "Tom", "Dick", "Harry" };
var filteredPeople = people.Where (p => p.Length > 3); 
точный эквивалент для:
string[] people = new [] { "Tom", "Dick", "Harry" };
IEnumerable<string> filteredPeople = people.Where (p => p.Length > 3); 
Можно заметить, всё чего мы добились с помощью ключевого слова var — это создали сокращение для IEnumerable<string>. Многие люди любят такую запись, поскольку она короче; другие же считают, что неявная типизация способна сделать код менее понятным.

суббота, 30 ноября 2013 г.

Производящие функции — туда и обратно

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

Введение

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

Идея производящих функций достаточно проста: сопоставим некоторой последовательности <g0, g1, g2, ..., gn> — дискретному объекту, степенной ряд g0 + g1z + g2z2 +… + gnzn +… — объект непрерывный, тем самым мы подключаем к решению задачи целый арсенал средств математического анализа. Обычно говорят, последовательность генерируется, порождается производящей функцией. Важно понимать, что это символьная конструкция, то есть вместо символа z может быть любой объект, для которого определены операции сложения и умножения.

среда, 30 октября 2013 г.

Интервью с Джоном Скитом

Материал взят из журнала DotNetCurry посвященному технологиям основанным на платформе .NET.

Ссылка на журнал: http://www.dotnetcurry.com/magazine/dnc-magazine-issue2.aspx

Во втором номере этого журнала, мы рады видеть Джона Скита в нашем "виртуальном" кресле. Джон Скит - настоящий помощник сообщества (взгляните на его значки на StackOverflow), ведущий C# специалист и автор множества книг. Джон является MS MVP начиная с 2003 года. В настоящее время он работает в компании Google.



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

DNC: Привет Джон, мы очень рады, что ты нашел время в своём графике для этого интервью. Для начала мы все хотим знать больше о Джоне Ските, расскажи нам как все началось? Как Джон начал работать с компьютерами?

JS: Мой первый компьютер - общий для всей семьи был Sinclair ZX Spectrum 48 K, который мы купили  когда мне было 8. Со временем я покупал и другие модели Spectrum-а, но затем постепенно перешел на PC. Долгое время я проводил большинство своего времени за компьютером, просто играя в игры, но программирование так же всегда присутствовало.

воскресенье, 27 октября 2013 г.

Интервью с легендой C# Эриком Липпертом

Потрясающее интервью с замечательным человеком и программистом.

Материал взят из журнала DotNetCurry посвященному технологиям основанным на платформе .NET. 


Дорогие читатели, мы очень рады видеть Эрика Липперта в этом номере журнала DNC. Эрик не нуждается в представлении людям знакомым с C#, но для остальных Эрик известен своей работой в команде разработчиков компилятора языка С#. Он посвятил значительную часть своей карьеры компании Microsoft, работая на различных должностях. До того как придти в Microsoft, Эрик работал в компании Watcom. Наши "старички" помнят Watcom как компанию, которая создала очень хорошие компиляторы для языков C++ и Fortran. В настоящее время Эрик работает в компании Coverity, помогая создавать продукты статического анализа кода.