Программист создает экземпляр класса с помощью операции new, например:
Demo a = new Demo(); // создание экземпляра класса Demob = new Demo(); // создание другого экземпляра класса Demo.
Для каждого объекта при его создании в памяти выделяется отдельная область, в которой хранятся его данные. Кроме того, в классе могут присутствовать статические элементы, которые существуют в единственном экземпляре для всех объектов класса. Часто статические данные называют данными класса, а остальные - данными экземпляра.
Функциональные элементы класса не тиражируются, то есть всегда хранятся в единственном экземпляре. Для работы с данными класса используются методы класса (статические методы), для работы с данными экземпляра - методы экземпляра, или просто методы.
Ниже приведено краткое описание всех элементов класса:
- Константы класса хранят неизменяемые значения, связанные с классом.
- Поля содержат данные класса.
- Методы реализуют вычисления или другие действия, выполняемые классом или экземпляром.
- Свойства определяют характеристики класса в совокупности со способами их задания и получения, то есть методами записи и чтения.
- Конструкторы реализуют действия по инициализации экземпляров или класса в целом.
- Деструкторы определяют действия, которые необходимо выполнить до того, как объект будет уничтожен.
- Индексаторы обеспечивают возможность доступа к элементам класса по их порядковому номеру.
- Операции задают действия с объектами с помощью знаков операций.
- События
определяют уведомления, которые может генерировать класс.
1.4 Структура программного модуля на С#
Программа на C# состоит из классов, внутри которых описывают методы и данные. Переменные, описанные непосредственно внутри класса, называются полями класса. Им автоматически присваивается так называемое «значение по умолчанию» - как правило, это 0 соответствующего типа. Переменные, описанные внутри метода класса, называются локальными переменными. Их инициализация возлагается на программиста.
Так называемая область действия переменной, то есть область программы,
где можно использовать переменную, начинается в точке ее описания и длится до
конца блока, внутри которого она описана. Блок - это код, заключенный в фигурные
скобки. Основное назначение блока - группировка операторов. В C# любая
переменная описана внутри какого-либо блока: класса, метода или блока внутри
метода. Имя переменной должно быть уникальным в области ее действия. Область
действия распространяется на вложенные в метод блоки.
2. ПРАКТИЧЕСКАЯ ЧАСТЬ
2.1 Выполнение задания № 1 курсовой работы
Вариант 23.
Дана
вещественная матрица размером 4x6 (ее элементы нужно ввести с клавиатуры). Упорядочить
ее строки по возрастанию их наибольших элементов. Вывести вектор наибольших
элементов строк, первоначальную и полученную матрицу на экран. Для данной
матрицы получить
, где хi - наибольшее значение i - го столбца данной
матрицы.
Пояснение работы программы сделаем с помощью словесного описания алгоритма.
Алгоритм решения задания
1) Алгоритм реализуется с помощью двух процедур void button1_Click(object sender, EventArgs e) и void button1_Click(object sender, EventArgs e).
2) Определяется массив целых чисел с именем im, состоящий из 4 строк и 6 столбцов - double[,] im = new double [4, 6].
) Далее организуется цикл перебора строк с параметром i, от начального значения 0 до конечного значения 3 с шагом изменения 1 - for (int i = 0; i < 4; j++).
) Затем следует описание двумерного массива, который формируется по закону, обозначенному в задании.
) Внутрь этого цикла вложен цикл перебора столбцов с параметром j, от начального значения 0 до конечного значения 5 с шагом изменения 1 - for (int j = 0; i < 6; j++).
) Внутри этих вложенных циклов перебора реализован оператор Random который произвольными значениями заполняет массив im[i, j] = r.Next(1, 20).
) Далее необходимо вывести заполненную матрицу на экран компьютера.
) Далее организуется цикл перебора строк с параметром i, от начального значения 0 до конечного значения 3 с шагом изменения 1 - for (int i = 0; i < 4; i++).
) Внутрь этого цикла вложен цикл перебора столбцов с параметром j, от начального значения 0 до конечного значения 5 с шагом изменения 1 - for (int j = 0; j < 6; j++).
) Далее следует вывод на экран матрицы размером 4 на 6 внутрь контейнера richTextBox1 .
) Далее организуется цикл перебора строк с параметром i, от начального значения 0 до конечного значения 3 с шагом изменения 1 - for (int i = 0; i < 4; i++).
) Внутрь этого цикла вложен цикл перебора столбцов с параметром ii, от начального значения 0 до конечного значения 6-1 с шагом изменения 1 - for (int ii = 0; ii < 6-1; ii++).
) Внутрь этого цикла вложен цикл перебора столбцов с параметром j, от начального значения 0 до конечного значения 6-1-ii с шагом изменения 1 - for (int j = 0; j < 6-1-ii; j++).
) Внутри этих вложенных циклов перебора реализованы три проверки условия, которые в зависимости if (im[i, j] > im[i, j + 1]) p = im[i, j]; im[i, j] = im[i, j + 1]; im[i, j + 1] = p;
) Таким образом, осуществляется заполнение массива по заданному заданием правилу и вывод на экран матрицы размером внутрь контейнера richTextBox2.
) Далее по заданию выводим на экран вектор наибольших элементов строк for (int i = 0; i < 4; i++) s = s + im[i, 5] + "\t"; richTextBox2.AppendText("\n Вектор наибольших элементов строк " + s);
) нахождение номера строки с наибольшим значением
int imax = 0;max = im[0, 5];(int i = 1; i < 4; i++)
{(im[i, 5] > max)= im[i, 5];= i;.AppendText("\n\nНомер строки с наибольшим значением " + (1 + imax).ToString() + ". Наибольшее значение " + max.ToString());
18) Далее выводим на экран суммы в строке с наибольшим значением по формуле x1x6+x2x5+...+x6x1.
double SP=0;(int j = 0; j < 3; j++)
{= SP + im[imax, j] * im[imax, 5 - j];
}.AppendText("\n\nСумма произведений " + (SP*2).ToString());
Описания используемых переменных были приведены в процессе описания алгоритма.
Контрольный пример выполнения задания представлен на рис. 2.1.
Рис 2.1. контрольный
пример.
2.2 Выполнение задания № 2 курсовой работы
Вариант 23. Найти наименьший номер члена последовательности, для которого
выполняется условие an- an-1 < е. Вывести на экран этот номер и все элементы
ai, где i = 1, 2,..., n.
Контрольный пример нахождения наименьший номер члена последовательности, для которого выполняется условие an- an-1 <е приведен на Рис. 2.2.

Пояснение работы программы сделаем с помощью блок-схемы алгоритма Рис.
2.3.
Рис. 2.3. Блок-схема нахождения наименьший номер члена последовательности, для которого выполняется условие an- an-1 <е.
2.3 Выполнение задания № 3
курсовой работы
Вариант 3. Дана строка. Подсчитать, сколько различных символов встречается в ней. Вывести их на экран.
Контрольный пример решения поставленной задачи приведен на Рис. 2.4.
Рис. 2.4. Контрольный пример решения поставленной задачи.
Алгоритм выполнения задания
Пояснение работы программы сделаем с помощью словесного описания.
) Алгоритм реализуется с помощью одной процедуры void button1_Click(object sender, EventArgs e).
) Инициализируем переменные int kol = 0, bool bulevo = true, int n = 0.
) Создаем массив string[] mas = new String[str.Length]
4) Вводим текст внутрь контейнера richTextBox1.
) Далее организуется цикл перебора строк с параметром i, от начального значения 0 до конечного значения i < str.Length с шагом изменения 1. for (int i = 0; i < str.Length; i++).
) Внутрь этого цикла вложен цикл перебора проверки одинаковых символов с параметром j, от начального значения 0 до конечного значения j < mas.Length с шагом изменения 1 for (int j = 0; j < mas.Length; j++).
) Внутри этих вложенных циклов перебора вложены две проверки условия которые в зависимости от значения подсчитывают количество различных символов в строке if (str[i].ToString() == mas[j]) , if (bulevo).
) Далее организован цикл перебора с параметром j, от начального значения 0 до конечного значения j<n, где n количество различных символов for (int j = 0; j < n; j++).
) Далее следует вывод на экран обработанной информации.
2.4 Выполнение задания № 4 курсовой работы
Вариант 23.
Вычислить значения функции и вывести на экран в виде таблицы её значение
с заданной точностью, используя ряд Маклорена. Значения переменной х выбирать
из интервала от xнач до xкон с шагом dx с точность . Сформированной таблице
сделать соответствующий заголовок. Каждая строка таблицы должна содержать
значение аргумента, значение функции и количество просуммированных членов ряда.
Контрольный пример решения поставленной задачи приведен на Рис. 2.5.
Рис. 2.5. Контрольный пример решения поставленной задачи.
Алгоритм выполнения задания
Пояснение работы программы сделаем с помощью словесного описания.
) Алгоритм реализуется с помощью одной процедуры void button1_Click(object sender, EventArgs e). И метода static string Exp_(double x, double ee).
) Инициализируем переменные double f = 1, int z = -1, double c = x, double zn = 1, double i = 1, double a=z * c / zn.
3) Далее организуется цикл с предусловием, выполняется пока истинно условие Math.Abs(a) > ee.
) В теле цикла вызывается метод static string Exp_(double x, double ee)
5) Далее инициализируем переменные double f = 1, int z = -1, double c = x, double zn = 1, double i = 1, double a=z * c / zn. ;
6) В нутри цикла с предусловиями организуем вложенный цикл с предусловием который выполняется пока истинно значение Math.Abs(a) > ee. ;
) Внутри вложенного цикла организуем математические вычисления и увеличиваем шаг на 1 f = f + a; i++; z = -z; c = c * x; zn = zn * i; a = z * c / zn;
) Далее идет конвертация вещественного типа в строковую и запись в переменную f - return f.ToString() + " n=" + i.ToString();
) Открываем метод исключения try catch.
) В теле метода try catch организуем
очистку контейнера richTextBox1 и с
преобразованием типов присваиваем переменные из textbox.
double xn = Convert.ToDouble(textBox1.Text);xk =
Convert.ToDouble(textBox2.Text);dx = Convert.ToDouble(textBox3.Text);ee =
Convert.ToDouble(textBox4.Text);
) Далее организуется цикл перебора строк с параметром x, от начального значения xn до конечного значения x < xk с шагом изменения x = x + dx- for (double x = xn; x < xk; x = x + dx).
) В теле цикла выводим текст внутрь контейнера richTextBox1.
) Далее следует вывод на экран обработанной информации.
2.5 Выполнение задания № 5 курсовой работы
Вариант № 23.
Будем считать, что предложением считается любая последовательность символов, начинающиеся пробелом и заканчивающиеся точкой, вопросительным или восклицательным знаком. Слова разделяются пробелами, ‘ - ’ - тире, точкой, запятой, вопросительным или восклицательным знаком. Напишите программу, которая определяет количество предложений в данном текстовом файле.
Контрольный пример решения поставленной задачи приведен на Рис. 2.6.
Рис. 2.6. Контрольный пример решения поставленной задачи.
Алгоритм выполнения задания
Пояснение работы программы сделаем с помощью словесного описания.
) Алгоритм реализуется с помощью одной процедуры void button1_Click(object sender, EventArgs e).
) Подсоединяем файл StreamReader str = new StreamReader("file.txt",Encoding.Default);
3) Инициализируем переменную var n = 0;
4) Считывание из файла string txt = str.ReadToEnd
) Далее организуется цикл перебора строк с параметром i, от начального значения 0 до конечного значения i < txt.Length-1с шагом изменения 1. for (int i = 0; i < txt.Length-1; i++)
) В теле цикла выполняется условие (((i == 0) && (txt[i] == ' ')) || (((txt[i] == '.') || (txt[i] == '!') || (txt[i] == '?') || (txt[i] == '-')) && (txt[i + 1] == ' '))) n++;, где подсчитывается количество предложений в данном текстовом файле
) После завершения чтения файла закрываем его str.Close();
) Далее следует вывод на экран обработанной информации.
ЗАКЛЮЧЕНИЕ
При выполнении настоящей курсовой работы были освоены основные принципы разработки алгоритмов и программ, методы отладки и решения задач на ЭВМ в различных режимах. Так же были разобраны основы системного программирования и основы объектно-ориентированного подхода к программированию.
В процессе решения поставленных задач курсовой работы использовались прикладные системы программирования и необходимые методы решения заданий.
Иинструментальной средой разработки программ стала MS Visual Studio 2010.
В первом задании курсовой работы были рассмотрены такие методы решения задач как матрицы. Заданная матрица элементов должна быть заполнена определенным образом и выведена на экран. При выполнении данного задания использовались массивы и соответствующие расчеты.
Условием второго задания курсовой работы было ннайти наименьший номер члена последовательности, для которого выполняется условие an- an-1 <е. При решении поставленной задачи использовался цикл с предусловием.
В третьем задании курсовой работы были рассмотрены строки. При выполнении данного задания были применены необходимые операции со строками, а именно строковый массив, нахождение длины строки и т.д.
Темой четвертого задания курсовой работы стала работа с методами. При выполнении задания была составлена программа вызова метода с помощью которого было решено условие данного задания.
Темой заключительного задания курсовой работы была работа с файлами. При решении задания использовались одномерные массивы.
По окончанию курсовой работы можно сказать, что нами были изучены и закреплены следующие задачи:
ставить задачу и разрабатывать алгоритм её решения;
использовать прикладные системы программирования;
работать с современными системами программирования, включая объектно-ориентированные;
языками процедурного и объектно-ориентированного программирования, навыками разработки и отладки программ не менее, чем на одном из алгоритмических процедурных языков программирования высокого уровня,
методами и средствами разработки и оформления технической документации.
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
1. Павловская Т. А. C#. Программирование на языке высокого уровня: Учебник для вузов. - СПб.: БХВ-Петербург. 2007.
2. Попов И. И., Партыка Т. Л. Языки программирования: Учебное пособие. - М.: ФОРУМ: ИНФРА-М, 2008.
3. Голицина О. Л., Попов И. И. Основы алгоритмизации и программирования: Учебное пособие. - М.: ФОРУМ: ИНФРА-М, 2005.
4. Фаронов В. В., Создание приложений с помощью C#: Руководство программиста. - М.: Эксмо, 2008.
5. Свердлов С. З. Языки программирования и методы трансляции. Учебное пособие. - СПб.: Питер, 2007.
6. Павловская Т. А. С/С++ Программирование на языке высокого уровня. - СПб.: Питер, 2005.
7. Нортроп Тони, Уилдермьюс Шон, Райан Билл. Основы разработки приложений на платформе Microsoft .Net Framework. Учебный курс Microsoft / Пер. с англ. - М.: «Русская редакция», СПб.: «Питер», 2007.