- •Лекция 1. Платформа Microsoft .Net Framework 2.0
- •Понятия приложения, проекта, решения
- •Среда разработки Visual Studio .Net
- •Создание первого проекта
- •Компиляция и выполнение программы в среде clr
- •1.2. Рекомендации по выполнению практикума
- •1.3. Рекомендации по самостоятельной работе
- •Лекция 2. Технология объектно-ориентированного программирования
- •Состав языка
- •Типы данных
- •Переменные и константы
- •Организация ввода-вывода данных. Форматирование
- •Вывод данных
- •Ввод данных
- •Практикум
- •Самостоятельная работа
- •Лекция 3. Операции
- •Выражения и преобразование типов
- •Практикум
- •Самостоятельная работа
- •Лекция 4. Операторы языка c#
- •Операторы следования
- •Операторы ветвления
- •Условный оператор if
- •Оператор выбора switch
- •Операторы цикла
- •Цикл с предусловием while
- •Цикл с постусловием do while
- •Цикл с параметром for
- •Вложенные циклы
- •Операторы безусловного перехода
- •Оператор безусловного перехода goto
- •Оператор выхода break
- •Оператор перехода к следующей итерации цикла continue
- •Практикум
- •Самостоятельная работа
- •Лекция 5. Методы: основные понятия
- •Методы: основные понятия. Перегрузка методов. Методы: основные понятия
- •Перегрузка методов
- •Практикум
- •Самостоятельная работа Теоретический материал
- •Практическое задание
- •Лекция 6. Рекурсивные методы
- •Практикум
- •Самостоятельная работа
- •Лекция 7. Обработка исключений
- •Оператор try
- •Операторы checked и unchecked
- •Генерация собственных исключений
- •Полезные совет
- •Практикум
- •Самостоятельная работа Теоретический материал Вычисление конечных сумм и произведений
- •Вычисление бесконечных сумм
- •Практическое задание
- •Лекция 8. Массивы
- •Одномерные массивы
- •Массивы и исключения
- •Массив как параметр
- •Массив как объект
- •Многомерные массивы
- •Ступенчатые массивы
- •Оператор foreach и его использование при работе с массивами
- •Практикум
- •Самостоятельная работа Теоретический материал Вставка и удаление элементов в массивах
- •Практические задания
- •Лекция 9. Символы и строки
- •Символы char
- •Неизменяемые строки string
- •Изменяемые строки
- •Практикум
- •Самостоятельная работа
- •Запуск программы из командной строки
- •Передача параметров в метод Main из командной строки
- •Практические задачи
- •Лекция 10. Регулярные выражения
- •Метасимволы в регулярных выражениях
- •Поиск в тексте по шаблону
- •Редактирование текста
- •Практикум
- •Самостоятельная работа Теоретический материал
- •Практическое задание
- •Лекция 11. Организация с#-системы ввода-вывода
- •Байтовый поток
- •Символьный поток
- •Двоичные потоки
- •Перенаправление стандартных потоков
- •Практикум
- •Самостоятельная работа
- •Лекция 12. Работа с файловой системой
- •12.1.Работа с файловой системой: классы Directory и Filе и классы DirectoryInfo и FileInfo Работа с файловой системой
- •Работа с каталогами Абстрактный класс FileSystemInfo
- •Класс DirectoryInfo
- •Класс Directory
- •Работа с файлами Класс Filelnfo
- •Класс File
- •12.2. Практикум
- •12.3. Самостоятельная работа
- •Данные: поля и константы
- •Конструкторы
- •Конструкторы экземпляра
- •Конструкторы класса
- •Свойства
- •"Один класс - один файл",
- •13.2. Практикум
- •13.3. Самостоятельная работа
- •13.4. Классы: деструкторы, индексаторы, операции класса, операции преобразования типов Деструкторы
- •Индексаторы
- •Операции класса
- •Унарные операции
- •Бинарные операции
- •Операции преобразования типов
- •13.5. Практикум (продолжение практикума 13)
- •13.6. Самостоятельная работа
- •Лекция 14. Иерархия классов
- •14.1 Иерархия
- •Наследование
- •Использование защищенного доступа
- •Наследование конструкторов
- •Многоуровневая иерархия
- •Переменные базового класса и производного класса
- •Виртуальные методы
- •Абстрактные методы и классы
- •Запрет наследования
- •14.2. Практикум
- •14.3. Самостоятельная работа
- •Лекция 15. Интерфейсы и структуры
- •15.1. Пользовательские и стандартные интерфейсы. Структуры Интерфейсы
- •Стандартные интерфейсы .Net
- •Структуры
- •15.2. Практикум
- •15.3. Самостоятельная работа Теоретический материал
- •Задание
- •Лекция 16. Коллекции
- •16.1. Классификация коллекций. Коллекции общего назначения: стек. Очередь, динамический массив, хеш-таблица Коллекции
- •Коллекции общего назначения
- •Класс Stack
- •Класс Queue
- •Класс ArrayList
- •Класс Hashtable
- •16.2. Практикум
- •16.3. Самостоятельная работа
- •Дополнения Дополнение. Операции с#
- •Дополнение. Математические функции языка с#
- •Литература
Вычисление бесконечных сумм
Будем теперь рассматривать бесконечную сумму вида . Это выражение называется функциональным рядом. При различных значенияхиз функционального ряда получаются различные числовые ряды. Числовой ряд может быть сходящимся или расходящимся. Совокупность значений, при которой функциональный ряд сходится, называется его областью сходимости.
Числовой ряд называется сходящимся, если сумма n первых его членов приимеет предел, в противном случае, ряд называется расходящимся. Ряд может сходиться лишь при условии, что общий член рядапри неограниченном увеличении его номера стремится к нулю:. Это необходимый признак сходимости для всякого ряда.
В случае бесконечной суммы будем вычислять ее с заданной точностью Cчитается, что требуемая точность достигается, если вычислена сумма нескольких первых слагаемых и очередное слагаемое оказалось по модулю меньше чеме, то есть это слагаемое на результат практически не влияет. Тогда его и все последующие слагаемые можно не учитывать.
Пример. Написать программу для подсчета суммы с заданной точностью().
Указание по решению задачи. Рассмотрим, что представляет из себя заданный ряд: . Как видим, общий член ряда с увеличением значения i стремится к нулю. Поэтому данную сумму можно вычислить, но только с определенной точностью. Заметим также, что последовательность слагаемых можно выразить с помощью рекуррентного соотношения,, а всю сумму - с помощью рекуррентного соотношения. (Данные рекуррентные соотношения выведите самостоятельно.)
using System;
namespace Hello
{
class Program
{
static void Main()
{
Console.Write("Задайте точность вычислений е: ");
double e=double.Parse(Console.ReadLine());
double a=-1, s=0;
for (int i=2; Math.Abs(a)>=e; ++i)
{
s+=a;
a/=-i;
}
Console.WriteLine("s={0:f2}",s);
}
}
}
Практическое задание
Замечание. При решении задач производить обработку следующих исключительных ситуаций: ввода пользователем недопустимых значений и переполнения при вычислении математических выражений.
Для заданного натурального и действительногоподсчитать следующие суммы:
;
;
;
Для заданного натурального и действительногоподсчитать следующие выражения:
Вычислить бесконечную сумму ряда с заданной точностью е (e>0).
Вычислить и вывести на экран значение функции на отрезкеc шагомс точностьюРезультат работы программы представить в виде следующей таблицы:
№ |
Значение x |
Значение функции F(x) |
Количество просуммированных слагаемых n |
1 |
|
|
|
2 |
|
|
|
… |
|
|
|
Замечание. При решении задачи использовать вспомогательную функцию.
Лекция 8. Массивы
Данная лекция рассматривает одномерные и многомерные массивы. Приведено большое количество практических примеров и заданий.
Массив - набор элементов одного и того же типа, объединенных общим именем. Массивы в С# можно использовать по аналогии с тем, как они используются в других языках программирования. Однако С#-массивы имеют существенные отличия: они относятся к ссылочным типам данных, более того - реализованы как объекты. Фактически имя массива является ссылкой на область кучи (динамической памяти), в которой последовательно размещается набор элементов определенного типа. Выделение памяти под элементы происходит на этапе инициализации массива. А за освобождением памяти следит система сборки мусора - неиспользуемые массивы автоматически утилизируются данной системой.
Рассмотрим различные типы массивов.