Запись урока: Часть 1 [vk]http://vk.com/video_ext.php?oid=-66674957&id=167891624&hash=f0ca69e514ff475e&hd=3[/vk]
Часть 2 [vk]http://vk.com/video_ext.php?oid=-66674957&id=167894426&hash=6b0bfcf795fbaf49&hd=3[/vk]
Темы занятия:Повторное рассмотрение ключевых моментов по изученному материалу.
Домашнее задание:Ко все методам написать тесты или хотя бы вызвать каждый из методов с различными параметрами и проверить результат "на глазок". Но лучше написать тесты - ведь тесты дают гарантии и вселяют уверенность))
1. Написать метод, вычисляющий значение простого числа по его номеру. Простое число - то которое делится лишь на 1 и на само себя.
2. Написать метод проверки числа на простоту. Использовать этот метод в решении предыдущего задания.
3. Написать метод, возвращающий все простые числа. Я не ошибся. Все. Использовать конструкцию yield return.
4. Написать метод MergeSum, принимающий на вход 2 последовательности интов и возвращающий одну последовательность с поэлементной суммой. Использовать yield return.
Полезные ссылки:1. Скачать 
dotCover (используется при тестировании).
2. 
Информация о yield return.Пример решения домашнего задания:Code
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace App0526
{
    public class Program
    {
        // 1. Написать метод, вычисляющий значение простого числа по его номеру. 
        // Простое число - то которое делится лишь на 1 и на само себя.
         
        /// <summary>
        /// Поиск простого числа по его порядковому номеру
        /// </summary>
        /// <param name="index">Порядковый номер числа</param>
        /// <returns>Простое число</returns>
        public static int SimpleByIndex(int index)
        {
            for (int candidate = 2; true; candidate++)
            {
                if (!IsValueSimple(candidate)) 
                    continue;
                if (index == 0)
                    return candidate;
                index--;
            }
        }
        // 2. Написать метод проверки числа на простоту. 
        // Использовать этот метод в решении предыдущего задания.
         
        /// <summary>
        /// Проверка числа на принадлежность к множеству простых чисел
        /// </summary>
        /// <param name="value">Проверяемое число</param>
        /// <returns>Является ли простым</returns>
        public static bool IsValueSimple(int value)
        {
            if (value < 2) return false;
            for (int i = 2; i < value; i++)
                if (value%i == 0)
                    return false;
            return true;
        }
        // 3. Написать метод, возвращающий все простые числа. 
        // Я не ошибся. Все. Использовать конструкцию yield return.
        
        /// <summary>
        /// Получение всех простых чисел
        /// </summary>
        /// <returns>Все постые числа, начиная с 2</returns>
        public static IEnumerable<int> AllSimpleNumbers()
        {
            for (int candidate = 2; true; candidate++)
            {
                if (IsValueSimple(candidate))
                    yield return candidate;
            }     
        }
        // 4. Написать метод MergeSum, принимающий на вход 2 
        // последовательности интов и возвращающий одну последовательность 
        // с поэлементной суммой. Использовать yield return.
        
        /// <summary>
        /// Слияние 2-х последовательностей поэлементным суммированием
        /// </summary>
        /// <param name="a">Первая последовательность</param>
        /// <param name="b">Вторая последовательность</param>
        /// <returns>Последовательность с поэлементной суммой</returns>
        public static IEnumerable<int> MergeSum(IEnumerable<int> a, IEnumerable<int> b)
        {
            var en1 = a.GetEnumerator();
            var en2 = b.GetEnumerator();
            while (true)
            {
                bool b1 = en1.MoveNext();
                bool b2 = en2.MoveNext();
                if (!b1 && !b2)
                    break;
                int v1 = b1 ? en1.Current : 0;
                int v2 = b2 ? en2.Current : 0;
                yield return v1 + v2;
            }
        }
        }
}