Академический Документы
Профессиональный Документы
Культура Документы
Дисциплина: «Программирование»
Специальность: 230100 «Информатика и вычислительная техника»
СОДЕРЖАНИЕ
ВВЕДЕНИЕ
. ТЕОРЕТИЧЕСКОЕ ВВЕДЕНИЕ
.1 Алфавит языка С#
.2 Операторы языка С#
.3 Понятие классов и объектов
.4 Структура программного модуля на С#
. ПРАКТИЧЕСКАЯ ЧАСТЬ
.1 Выполнение задания № 1 курсовой работы
.2 Выполнение задания № 2 курсовой работы
.3 Выполнение задания № 3 курсовой работы
.4 Выполнение задания № 4 курсовой работы
.5 Выполнение задания № 5 курсовой работы
ЗАКЛЮЧЕНИЕ
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
ПРИЛОЖЕНИЕ 1
ПРИЛОЖЕНИЕ 2
ПРИЛОЖЕНИЕ 3
ПРИЛОЖЕНИЕ 4
ПРИЛОЖЕНИЕ 5
ВВЕДЕНИЕ
.1 АЛФАВИТ ЯЗЫКА С#
Таблица 1.1.
Спецификаторы класса
№ Спецификатор Описание
1 new Используется для вложенных классов. Задает новое описание класса взамен
унаследованного от предка. Применяется в иерархиях объектов
2 public Доступ не ограничен
3 protected Используется для вложенных классов. Доступ только из элементов данного и
производных классов
4 internal Доступ только из данной программы (сборки)
5 protected internal Доступ только из данного и производных классов или из данной программы
(сборки)
6 private Используется для вложенных классов. Доступ только из элементов класса,
внутри которого описан данный класс
7 abstract Абстрактный класс. Применяется в иерархиях объектов, рассматривается в
главе 8
8 sealed Бесплодный класс. Применяется в иерархиях объектов, рассматривается в главе
8
9 static Статический класс. Введен в версию языка 2.0. Рассматривается в разделе
«Конструкторы»
Программист создает экземпляр класса с помощью операции new,
например:
Demo a = new Demo(); // создание экземпляра класса Demob = new
Demo(); // создание другого экземпляра класса Demo.
Для каждого объекта при его создании в памяти выделяется отдельная
область, в которой хранятся его данные. Кроме того, в классе могут
присутствовать статические элементы, которые существуют в единственном
экземпляре для всех объектов класса. Часто статические данные называют
данными класса, а остальные - данными экземпляра.
Функциональные элементы класса не тиражируются, то есть всегда
хранятся в единственном экземпляре. Для работы с данными класса
используются методы класса (статические методы), для работы с данными
экземпляра - методы экземпляра, или просто методы.
Ниже приведено краткое описание всех элементов класса:
- Константы класса хранят неизменяемые значения, связанные с
классом.
- Поля содержат данные класса.
- Методы реализуют вычисления или другие действия,
выполняемые классом или экземпляром.
- Свойства определяют характеристики класса в совокупности со
способами их задания и получения, то есть методами записи и чтения.
- Конструкторы реализуют действия по инициализации
экземпляров или класса в целом.
- Деструкторы определяют действия, которые необходимо
выполнить до того, как объект будет уничтожен.
- Индексаторы обеспечивают возможность доступа к элементам
класса по их порядковому номеру.
- Операции задают действия с объектами с помощью знаков
операций.
- События определяют уведомления, которые может генерировать
класс.
Вариант 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. контрольный пример.
Вариант 23.
Вычислить значения функции и вывести на экран в виде таблицы её
значение с заданной точностью, используя ряд Маклорена. Значения
переменной х выбирать из интервала от xнач до xкон с шагом dx с точность .
Сформированной таблице сделать соответствующий заголовок. Каждая
строка таблицы должна содержать значение аргумента, значение функции и
количество просуммированных членов ряда.
(1) n x n x 2 x3 x 4
e x
1 x ... | x |
n 0 n! 2! 3! 4!
Контрольный пример решения поставленной задачи приведен на Рис.
2.5.
Рис. 2.5. Контрольный пример решения поставленной задачи.
double xn = Convert.ToDouble(textBox1.Text);xk =
Convert.ToDouble(textBox2.Text);dx = Convert.ToDouble(textBox3.Text);ee =
Convert.ToDouble(textBox4.Text);
Вариант № 23.
Будем считать, что предложением считается любая последовательность
символов, начинающиеся пробелом и заканчивающиеся точкой,
вопросительным или восклицательным знаком. Слова разделяются
пробелами, ‘ - ’ - тире, точкой, запятой, вопросительным или
восклицательным знаком. Напишите программу, которая определяет
количество предложений в данном текстовом файле.
Контрольный пример решения поставленной задачи приведен на Рис.
2.6.
System;
using
System.Collections.Generic;System.ComponentModel;System.Data;System.Drawi
ng;System.Linq;System.Text;System.Windows.Forms;вариант_23_1
{partial class Form1 : Form
{Form1()
{();
}[,] im = new double[4, 6];// Вводим массивvoid button1_Click(object
sender, EventArgs e)
{r=new Random();(int i = 0; i < 4; i++)(int j = 0; j < 6; j++)[i, j] = r.Next(1,
20); //Заполнение массиваs = "";(int i = 0; i < 4; i++)
{(int j = 0; j < 6; j++)= s + im[i, j].ToString() + "\t";= s + "\n";
}.Text = s;//Вывод массива
}void button2_Click(object sender, EventArgs e)
{p = 0;(int i = 0; i < 4; i++)
{(int ii = 0; ii < 6-1; ii++)(int j = 0; j < 6 - 1 - ii; j++)
{
if (im[i, j] > im[i, j + 1])
{= im[i, j];[i, j] = im[i, j + 1];[i, j + 1] = p;
}
}
System;System.Collections.Generic;System.ComponentModel;System.Data;
System.Drawing;System.Linq;System.Text;System.Windows.Forms;вариант_2
{partial class Form1 : Form
{Form1()
{();
}void label1_Click(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{.Clear();E = 0; //задание точностиan_1 = 0;an = Math.Atan(an_1)+1;n =
2;.AppendText("a1=0\n");
richTextBox1.AppendText("a"+n.ToString()+"="+an.ToString()+"\n");//
Вывод элементов
{= Convert.ToDouble(textBox1.Text);(Math.Abs(an-an_1)>=E)
{_1 = an;= Math.Atan(an_1)+1;
n++;.AppendText("a" + n.ToString() + "=" + an.ToString() + "\n");//цикл
последовательности и поиск наименьшего элемента для которого
выполняется условие
}
}(Exception ex)
{.Text = "Ошибка ввода е";
}
}
}
}
ПРИЛОЖЕНИЕ 3
System;System.Collections.Generic;System.ComponentModel;System.Data;
System.Drawing;System.Linq;System.Text;System.Windows.Forms;задача_3
{partial class Form1 : Form
{Form1()
{();
ПРИЛОЖЕНИЕ 3(продолжение)
}void button1_Click(object sender, EventArgs e)
{.Clear();str = textBox1.Text;kol = 0;[] mas = new
String[str.Length];//создание массиваbulevo = true;n = 0;(int i = 0; i < str.Length;
i++)//Перебор символов в строке
{(int j = 0; j < mas.Length; j++)//Проверка одинаковых символов
{(str[i].ToString() == mas[j])
{= false;; // пропуск одинаковых символов
}
}(bulevo)
{[n] = str[i].ToString();
n++;++;
}= true;//подсчет различных символов
}(int j = 0; j < n; j++)
{.AppendText(mas[j] + " ");
}.AppendText("\n" + kol.ToString());//Вывод количества различных
символов
}
}
}
ПРИЛОЖЕНИЕ 4
System;System.Collections.Generic;System.ComponentModel;
using
System.Data;System.Drawing;System.Linq;System.Text;System.Windows.Forms;
_23_4
{partial class Form1 : Form
{Form1()
{();
}string Exp_(double x, double ee)
{f = 1;z = -1;c = x;zn = 1;i = 1;a=z * c / zn;(Math.Abs(a) > ee)
{= f + a;++;= -z;= c * x;= zn * i;= z * c / zn;
}
return f.ToString() + " n=" + i.ToString();
}void button1_Click(object sender, EventArgs e)
{.Clear();
{xn = Convert.ToDouble(textBox1.Text);xk =
Convert.ToDouble(textBox2.Text);dx = Convert.ToDouble(textBox3.Text);ee =
Convert.ToDouble(textBox4.Text);(double x = xn; x < xk; x = x + dx)
{.AppendText("x=" + x.ToString() + " y=" + Exp_(x, ee) + "\n");
}
}(Exception ex)
{.Text = "Ошибка ввода";
}
}
}
}
ПРИЛОЖЕНИЕ 5
System;System.Collections.Generic;System.ComponentModel;System.Data;
System.Drawing;System.Linq;System.Text;System.Windows.Forms;System.IO;ва
риант_5
{partial class Form1 : Form
{
public Form1()
{();
}void button1_Click(object sender, EventArgs e)
{
StreamReader str = new
StreamReader("file.txt",Encoding.Default);//Подсоединяем файлn = 0;txt =
str.ReadToEnd();//Считывание из файла(int i = 0; i < txt.Length-1; i++)
{(((i == 0) && (txt[i] == ' ')) || (((txt[i] == '.') || (txt[i] == '!') || (txt[i] == '?') ||
(txt[i] == '-')) && (txt[i + 1] == ' '))) n++;
}//Определение количества предложений в тексте.Text =
n.ToString();.Text =txt;.Close();// Закрытие файла
}
}
}