Тип
|
Размер
в байтах
|
Тип
.NET
|
Описание
|
Базовый
тип
|
object
|
|
Object
|
Может
хранить все что угодно, т.к. является всеобщим предком
|
Логический
тип
|
bool
|
1
|
true
или false
|
Целые
типы
|
sbyte
|
1
|
SByte
|
Целое
со знаком (от -128 до 127)
|
byte
|
1
|
Byte
|
Целое
без знака (от 0 до 255)
|
short
|
2
|
Int16
|
Целое
со знака (от -32768 до 32767)
|
ushort
|
2
|
UInt16
|
Целое
без знака (от 0 до 65535)
|
int
|
4
|
Int32
|
Целое
со знаком (от -2147483648 до 2147483647)
|
uint
|
4
|
UInt
|
Целое
число без знака ( от 0 до 4 294 967 295)
|
long
|
8
|
Int64
|
Целое
со знаком (от -9223372036854775808 до 9223372036854775807)
|
ulong
|
8
|
UInt64
|
Целое
без знака (от 0 до 0fffffffffffffff)
|
Вещественные
типы
|
Float
|
4
|
Single
|
Число
с плавающей точкой двойной точности. Содержит значения приблизительно от
1.5*10-45 до 3.4*1038 c 7 значащими цифрами
|
double
|
8
|
Double
|
Число
с плавающей точкой двойной точности. Содержит значения приблизительно от 5.
0*10-324 до 1.7*10308 c 15-16 значащими цифрами
|
Символьный
тип
|
char
|
2
|
Сhar
|
Символы
Unicode
|
Строковый
тип
|
string
|
|
String
|
Строка
из Unicode-символов
|
Финансовый
тип
|
decimal
|
12
|
Decimal
|
Число
до 28 знаков с фиксированным положением десятичной точки. Обычно используется
в финансовых расчетах. Требует суффикса <<m>> или
<<М>>
|
Операнды, связанные знаками операций, образуют
выражения. Понятие «выражение» в языке программирования соответствует понятию
«словосочетание» в языке человека. Тип выражения определяется типом операндов.
Комментарии предназначены для записи пояснений к
программе и формирования документации. Компилятор комментарии игнорирует.
Внутри комментария можно использовать любые символы. В С# есть два вида
комментариев: однострочные и многострочные. Однострочный комментарий начинается
с двух символов прямой косой черты (//) и заканчивается символом перехода на
новую строку, многострочный заключается между символами-скобками /* и */ и
может занимать часть строки, целую строку или несколько строк. Комментарии не
вкладываются друг в друга: символы // и /* не обладают никаким специальным
значением внутри комментария.
1.2 Операторы языка С#
Операторы управляют процессом выполнения
программы. Набор операторов языка С++ содержит все управляющие конструкции
структурного программирования.
Составной оператор ограничивается фигурными
скобками. Все другие операторы заканчиваются точкой с запятой.
Пустой оператор - ;
Пустой оператор - это оператор, состоящий только
из точки с запятой. Он может появиться в любом месте программы, где по
синтаксису требуется оператор. Выполнение пустого оператора не меняет состояния
программы.
Составной оператор - {...}
Действие составного оператора состоит в
последовательном выполнении содержащихся в нем операторов, за исключением тех
случаев, когда какой-либо оператор явно передает управление в другое место
программы.
Оператор обработки исключений
{ <операторы> }(<объявление
исключения>) { <операторы> }(<объявление исключения>) {
<операторы> }
...(<объявление исключения>) {
<операторы> }
Условный оператор(<выражение>)
<оператор 1> [else <оператор 2>]
{ case <константное выражение 1>:
<операторы 1><константное выражение 2>: <операторы 2>
...<константное выражение N>:
<операторы N>
[default: <операторы>]
}
Оператор-переключатель предназначен для выбора
одного из нескольких альтернативных путей выполнения программы. Вычисление
оператора-переключателя начинается с вычисления выражения, после чего
управление передается оператору, помеченному константным выражением, равным
вычисленному значению выражения. Выход из оператора-переключателя осуществляется
операторомbreak. Если значение выражения не равно ни одному константному
выражению, то управление передается оператору, помеченному ключевым словом
default, если он есть.
Оператор цикла с предусловием(<выражение>)
<оператор>
Оператор цикла с постусловием<оператор>
while <выражение>;
В языке C++ этот оператор отличается от
классической реализации цикла с постусловием тем, что при истинности выражения
происходит продолжение работы цикла, а не выход из цикла.
Оператор пошагового цикла([<начальное
выражение>];
[<условное выражение>];
[<выражение приращения>])
<оператор>
Тело оператора for выполняется до тех пор, пока
условное выражение не станет ложным (равным 0).Начальное выражение и выражение
приращения обычно используются для инициализации и модификации параметров цикла
и других значений. Начальное выражение вычисляется один раз до первой проверки
условного выражения, а выражение приращения вычисляется после каждого
выполненияоператора. Любое из трех выражений заголовка цикла, и даже все три
могут быть опущены (не забывайте только оставлять точки с запятой). Если
опущено условное выражение, то оно считается истинным, и цикл становится
бесконечным.
Оператор пошагового цикла в языке С++ является
гибкой и удобной конструкцией, поэтому оператор цикла с предусловием while
используется в языке С++ крайне редко, т.к. в большинстве случаев удобнее
пользоваться оператором for.
Оператор разрыва;
Оператор разрыва прерывает выполнение операторов
while, do, for и switch. Он может содержаться только в теле этих операторов.
Управление передается оператору программы, следующему за прерванным. Если
оператор разрыва записан внутри вложенных операторов while, do, for, switch, то
он завершает только непосредственно охватывающий его оператор.
Оператор продолжения;
Оператор продолжения передает управление на
следующую итерацию в операторах цикла while, do,for. Он может содержаться
только в теле этих операторов. В операторах do и while следующая итерация
начинается с вычисления условного выражения. В операторе for следующая итерация
начинается с вычисления выражения приращения, а затем происходит вычисление
условного выражения.
Оператор возврата[<выражение>];
Оператора возврата заканчивает выполнение
функции, в которой он содержится, и возвращает управление в вызывающую функцию.
Управление передается в точку вызывающей функции, непосредственно следующую за
оператором вызова. Значение выражения, если она задано, вычисляется, приводится
к типу, объявленному для функции, содержащей оператор возврата, и возвращается
в вызывающую функцию. Если выражение опущено, то возвращаемое функцией значение
не определено.
С формальной точки зрения операторы break,
continue и return не являются операторами структурного программирования. Однако
их использование в ограниченных количествах оправдано, когда они упрощают
понимание программы и позволяют избегать больших вложенных структур. Например,
мы проверяем входные данные на аномалии. Если не использовать эти операторы, то
всю обработку придется вложить в условный блок, что ухудшает читабельность
программы. Вместо этого можно написать небольшой условный блок, который
организует выход из функции при неверных исходных данных.
Ввод/вывод не является частью языка С++, а
осуществляется функциями, входящими в состав стандартной библиотеки
1.3 Понятие классов и объектов
Класс содержит данные, задающие свойства
объектов класса, и функции, определяющие их поведение. В последнее время в
класс часто добавляется третья составляющая - события, на которые может
реагировать объект класса. Все классы имеют одного общего предка - класс object
и организованы в единую иерархическую структуру.
Описание класса содержит ключевое слово class,
за которым следует его имя, а далее в фигурных скобках - тело класса, то есть
список его элементов. Кроме того, для класса можно задать его базовые классы
(предки) и ряд необязательных атрибутов и спецификаторов, определяющих
различные характеристики класса:
[атрибуты] [спецификаторы] class имя_класса [:
предки] тело_класса.
Классом является специальный тип данных,
включающий описание данных и описание функций (методов), которые могут быть
выполнены над представителем класса - объектом.
Поле. Так называется член-переменная, содержащий
некоторое значение. В ООП поля иногда называют данными объекта. К полю можно
применять несколько модификаторов в зависимости от того, как вы собираетесь его
использовать. В число модификаторов входят static, readonly и const.
Метод. Это реальный код, воздействующий на
данные объекта (или поля). Все, используемые модификаторы класса представлены в
таблице 1.2.
язык модификатор программа матрица
Таблица 1.2 - Модификаторы класса
№
|
Спецификатор
|
Описание
|
1
|
new
|
Используется
для вложенных классов. Задает новое описание класса взамен унаследованного от
предка. Применяется в иерархиях объектов
|
2
|
public
|
Доступ
не ограничен
|
3
|
protected
|
Используется
для вложенных классов. Доступ только из элементов данного и производных
классов
|
4
|
internal
|
Доступ
только из данной программы (сборки)
|
5
|
protected
internal
|
Доступ
только из данного и производных классов или из данной программы (сборки)
|
6
|
private
|
Используется
для вложенных классов. Доступ только из элементов класса, внутри которого
описан данный класс
|
7
|
abstract
|
Абстрактный
класс. Применяется в иерархиях объектов
|
8
|
sealed
|
Бесплодный
класс. Применяется в иерархиях объектов
|
9
|
static
|
Статический
класс.
|
К элементам класса относятся:
Константы хранят неизменяемые значения,
связанные с классом;
Поля содержат данные класса;
Методы реализуют действия, выполняемые классом
или экземпляром;
Свойства определяют характеристики класса в совокупности
со способами их задания и получения (методами записи и чтения);
Конструкторы выполняют действия по инициализации
экземпляров или класса в целом;
Деструкторы определяют действия, выполняемые
перед тем как объект будет уничтожен;
Индексаторы обеспечивают возможность доступа к
элементам класса по их порядковому номеру;
Операции задают действия с объектами с помощью
знаков операций;
Типы внутренние по отношению к классу типы
данных.
Объекты класса создаются явным или неявным
образом (программистом или системой). Для явного создания экземпляра
используется операция new. Формат операции: new тип ( [ аргументы ]). Программа
на С# состоит из взаимодействующих между собой классов. Программист создает
экземпляр класса с помощью операции new, например:a = new Demo(); // создание
экземпляра класса Demob = new Demo(); // создание другого экземпляра класса
Demo.
Для каждого объекта при его создании в памяти выделяется
отдельная область, в которой хранятся его данные. Кроме того, в классе могут
присутствовать статические элементы, которые существуют в единственном
экземпляре для всех объектов класса. Часто статические данные называют данными
класса, а остальные - данными экземпляра.
1.4 Структура программного модуля на
С#
Совокупность средств, с помощью которых
программы пишут, корректируют, преобразуют в машинные коды, отлаживают и
запускают, называют средой разработки, или оболочкой.
Среда разработки обычно содержит:
текстовый редактор, предназначенный для ввода и
корректировки текста программы;
компилятор, с помощью которого программа
переводится с языка, на котором она написана, в машинные коды;
средства отладки и запуска программ;
общие библиотеки, содержащие многократно
используемые элементы программ;
справочную систему и другие элементы.
В эпоху стремительного развития Интернета
важнейшими задачами при создании программ становятся:
переносимость и возможность выполнения на
различных типах компьютеров;
безопасность и невозможность несанкционированных
действий;
надежность или способность выполнять необходимые
функции в предопределенных условиях; средний интервал между отказами;
использование готовых компонентов для ускорения
разработки;
межъязыковое взаимодействие и возможность
применять одновременно несколько языков программирования.
Любое приложение на языке C#, разрабатываемое в
среде проектирования VisualStudio.NET, реализуется как отдельный проект.
Приложение на языке С# может состоять из
нескольких модулей. Каждый модуль C# может содержать код нескольких классов .
Сама программа на C# состоит из классов, внутри
которых описывают методы и данные. Описанные переменные непосредственно внутри
класса, называются полями класса. Им автоматически присваивается так называемое
«значение по умолчанию».
Так называемая область действия переменной, то
есть область программы, где можно использовать переменную, начинается в точке
ее описания и длится до конца блока, внутри которого она описана. Блоком
является код, заключенный в фигурные скобки. Основное назначение блока -
группировка операторов.
В C# любая переменная описана внутри какого-либо
блока: класса, метода или блока внутри метода. Имя переменной должно быть
уникальным в области ее действия. Область действия распространяется на
вложенные в метод блоки.
2. ПРАКТИЧЕСКАЯ ЧАСТЬ
.1 Выполнение задания № 1 курсовой
работы
ВАРИАНТ № 11. Заполнить матрицу 10´10
следующим образом:
Вывести заполненную матрицу на экран
компьютера или на принтер. Найти сумму элементов матрицы, кратных 7, найти
сумму квадратных корней чётных элементов матрицы, вывести полученные
результаты.
Пояснение работы программы сделаем с
помощью словесного описания алгоритма.
Алгоритм решения задания
Алгоритм реализуется с помощью одной
процедуры void button1_Click(object sender, EventArgs e).
Инициализируем переменные int k = 0
и int f = 0.
Определяется массив целых чисел с
именем а, состоящий из 10 строк и 10 столбцов - int[,] a = new int[10, 10].
Далее организуется цикл перебора
строк с параметром i, от начального значения 0 до конечного значения 9 с шагом
изменения 1 - for (int i = 0; i < 10; i++).
Затем следует описание двумерного
массива, который формируется по закону, обозначенному в задании.
Внутрь этого цикла вложен цикл
перебора столбцов с параметром j, от начального значения 0 до конечного
значения 9 с шагом изменения 1 - for (int j = 0; j < 10; j++).
Внутри этих вложенных циклов
перебора реализованы три проверки условия, которые в зависимости от местоположения
элемента, присваивают ему соответствующее значение, определённое заданием.
if (i < 5
&& j < 5 ) a[i, j] = k++;(i >= 5 && i < 7 && j
>= 5) a[i, j] = j+6-i;
if (i >= 7 && j >= 5)
a[i, j] = f--;
Таким образом, осуществляется
заполнение массива по заданному заданием правилу.
Далее необходимо вывести заполненную
матрицу на экран компьютера.
Подсчитать сумму квадратов
элементов, кратных 7, найти среди них максимальный элемент, вывести полученные
результаты.
Инициализируем переменные: int sumb7
= 0- сумма квадратов элементов, кратных 7, int kk3 = 0- количество элементов
кратных 7, int amax = 0 - максимальный элемент среди кратных 7.
Далее организуется цикл перебора
строк с параметром i, от начального значения 0 до конечного значения 9 с шагом
изменения 1 - for (int i = 0; i < 10; i++).
Внутрь этого цикла вложен цикл
перебора столбцов с параметром j, от начального значения 0 до конечного
значения 9 с шагом изменения 1 - for (int j = 0; j < 10; j++).
Внутри этих вложенных циклов перебора индексов и
соответственно последовательного доступа к элементам вложены три проверки
условия, которые в зависимости от значения подсчитывают количество элементов
кратных 7 и среди этих элементов находит максимальное значение.
if (a[i, j] > 7)= sumb7 + a[i, j]
* a[i, j];((a[i, j] % 7 == 0) && a[i, j]!=0) kk7++;((a[i, j] > 7)
&& (a[i, j] % 3 == 0) && (amax < a[i,j]))
amax = a[i, j];
Далее следует вывод на экран обработанной
информации.
Описания используемых переменных были приведены
в процессе описания алгоритма.
Рис. 2.1 - Контрольный пример1
Контрольный пример выполнения задания
представлен на рис. 2.1. и рис. 2.2.
Рис. 2.2 - Контрольный пример1
2.2 Выполнение задания № 2 курсовой
работы
Вариант 11. Составить программу нахождения
первого отрицательного члена последовательности: an = (20n - n3)/n!, n=1,2,3,….
Найти сумму всех положительных членов последовательности и определить корень
квадратный из этой суммы. Вывести полученное значение на экран, а также номер
первого отрицательного члена последовательности и его значение.
Задание вариантов № 12-16: Действительное число
Х вводится с клавиатуры. Вычислить приближённое значение бесконечной суммы
согласно заданию варианта. Нужное приближение считается полученным, если
вычислена сумма нескольких первых слагаемых, и очередное слагаемое оказалось по
модулю меньше 0,0001.
Алгоритм выполнения задания.
Пояснение работы программы сделаем с помощью
блок-схемы алгоритма, приведенной на рис. 2.4.
Контрольный пример нахождения первого
отрицательного члена последовательности приведен на рис 2.3.
Рис. 2.3 - Контрольный пример нахождения первого
отрицательного члена последовательности.
Рис. 2.4 - Блок-схема нахождения первого
отрицательного члена последовательности
2.3 Выполнение задания № 4 курсовой
работы
Вариант 11. Составить программу на языке
программирования Паскаль, вызывающую процедуру или функцию, позволяющую решить
следующую задачу: даны две квадратные вещественные матрицы порядка 10х10.
Вывести на экран квадрат той из них, у которой наименьший след (сумма
диагональных элементов), считая, что такая матрица одна.
Алгоритм выполнения задания
Пояснение работы программы сделаем с помощью
словесного описания.
Создаем статический
метод
static double min (double a, double b).
Инициализируем переменную double rez = 0.
Алгоритм реализуется с помощью одной процедуры
void button1_Click(object sender, EventArgs e).
Инициализируем переменные
double a = 0, double b= 0,double v=0, double u = 0, double r = 0.
Затем открываем блок исключения try.
Внутри блока try… catch преобразуем строку а в
вещественный тип данных. Таким же образом преобразуем строку b в вещественный
тип данных. Для подсчета значения переменной u вызываем статический метод min и
выводим результат подсчета на экран.
Затем с помощью метода min вычисляем значение
переменной v и выводим на экран. Таким же образом подсчитываем значение
переменной r и выводим на экран. После подсчета всех значений закрываем блок
catch (Exception ex).
Рис. 2.5 - Контрольный пример решения
поставленной задачи
Контрольный пример решения поставленной задачи
приведен на рис. 2.5.
2.4 Выполнение задания № 5 курсовой
работы
Вариант 11. Даны символьные файлы f и g.
Определить, совпадают ли компоненты файла f с компонентами файла g. Если нет,
то получить номер первой компоненты, в которой файлы f и g отличаются между собой.
В случае, когда один из файлов имеет n компонент (n≥0) и является началом
другого (более длинного) файла, ответом должно быть число n+1.
Алгоритм выполнения задания
Пояснение работы программы сделаем с помощью
блок-схемы алгоритма, в данном случае здесь будет три блок-схемы, т.к
выполнение программы выполняется на три события. (см рис.2.6-2.7).
Рис. 2.6 - Контрольный пример решения
поставленной задачи
Контрольный пример решения поставленной задачи
приведен на рис. 2.5.
Рис. 2.7 - Блок-схема
на
событие
private void button1_Click(object sender, EventArgs e)
Рис. 2.8 - Блок-схема
на
событие
private void button2_Click(object sender, EventArgs e)
Рис. 2.9 - Блок-схема
на
событие
private void button3_Click(object sender, EventArgs e)
ЗАКЛЮЧЕНИЕ
При выполнении настоящей курсовой работы были
освоены основные принципы разработки алгоритмов и программ, методы отладки и
решения задач на ЭВМ в различных режимах. Так же были разобраны основы
системного программирования и основы объектно-ориентированного подхода к
программированию.
В процессе решения поставленных задач курсовой
работы использовались прикладные системы программирования и необходимые методы
решения заданий.
Инструментальной средой разработки программ
стала MS Visual Studio 2010.
В первом задании курсовой работы были
рассмотрены такие методы решения задач как матрицы. Заданная матрица элементов
должна быть заполнена определенным образом и выведена на экран. При выполнении
данного задания использовались массивы и соответствующие расчеты.
Условием второго задания курсовой работы было
нахождение первого отрицательного члена последовательности и нахождение суммы
всех положительных членов последовательности. При решении поставленной задачи
использовался цикл с предусловием.
В третьем задании курсовой работы были
рассмотрены строки. При выполнении данного задания были применены необходимые
операции со строками, а именно строковый массив, нахождение длины строки и т.д.
Темой четвертого задания курсовой работы стала
работа с методами. При выполнении задания была составлена программа вызова
метода с помощью которого было решено условие данного задания.
Темой заключительного задания курсовой работы
была работа с файлами. При решении задания использовались одномерные массивы.
По окончанию курсовой работы можно сказать, что
нами были изучены и закреплены следующие задачи:
ставить задачу и разрабатывать алгоритм её
решения;
использовать прикладные системы
программирования;
разрабатывать основные программные документы;
работать с современными системами
программирования, включая объектно-ориентированные;
языками процедурного и объектно-ориентированного
программирования, навыками разработки и отладки программ не менее, чем на одном
из алгоритмических процедурных языков программирования высокого уровня,
методами и средствами разработки и оформления
технической документации.
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
1. Хейлсберг
А., Торгерсен М., Вилтамут С., Голд П. Язык программирования С#. Классика
Computers Science. - СПБ.: Питер, 2012.
. Хорев
П. Б. Технологии объектно-ориентированного программирования: Учебное пособие
для вузов. - М.: Академия, 2008.
. Орлов
С. А. Технологии разработки программного обеспечения: Учебник для вузов. - 3-е
изд., СПб.: Питер, 2010.
. Мартин
Р., Быстрая разработка программ: принципы, примеры, практика: Пер. с англ., М.:
Издат. дом «Вильямс», 2009.
. Побегайло
А.П. С/С++ для студента. - СПБ.: БХВ-Петербург, 2006.
ПРИЛОЖЕНИЕ
1
using
System;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Windows.Forms;Вариант_11_1
{partial class Form1 : Form
{Form1()
{();
}void button1_Click(object sender,
EventArgs e)
{[,] a = new int[10, 10];(int i = 0;
i < 10; i++)
{(int j = 0; j < 10; j++)
{(i >= j)
{[i, j] = (j + 1) * (j + 1);
}
{[i, j] = Convert.ToInt32((i +
1).ToString() + (i + 1).ToString());
}
}
}sek7 = 0;skkce = 0;s = "i=\\j=
\t";(int j = 0; j < 10; j++) s = s + j.ToString() + "\t";= s
+ "\n";(int i = 0; i < 10; i++)
{= s + "\n" + i.ToString()
+ "\t";(int j = 0; j < 10; j++)
{(a[i, j] % 7 == 0)
{= sek7 + a[i, j];
}( a[i, j] % 2== 0)
{= skkce + Math.Sqrt(a[i, j]);
}= s + a[i, j].ToString() +
"\t";
}= s + "\n";
}.Text = s;.AppendText("\nСумма
квадратных
корней
чётных
эле¬ментов
матрицы
" + skkce.ToString());.AppendText("\nСумма
элементов
матрицы,
кратных
7 равна
" + sek7.ToString());
}
}
using
System;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Windows.Forms;_11_2
{partial class Form1 : Form
{Form1()
{();
}void button1_Click(object sender,
EventArgs e)
{.Clear();n = 1;a = (20 * n - n * n
* n) / n;z = n;sp = 0;(a > 0)
{= sp + a;.AppendText("a"
+ n.ToString() + " = " + a.ToString() + "\n");= n + 1;= z *
n;= (20 * n - n * n * n) / z;
}.AppendText("Индекс
первого
отрицательного
" + n.ToString() + "\n");.AppendText("Значение
первого
отрицательного
" + a.ToString() + "\n");
.AppendText("Корень
квадратный
суммы
" + Math.Sqrt(sp) + "\n");
}
}
}
ПРИЛОЖЕНИЕ
3
using
System;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Windows.Forms;System.Text.RegularExpressions;Вариант_11_4
{partial class Form1 : Form
{Form1()
{();
}[,] a = new int[10, 10];[,] b = new
int[10, 10];n = 0;m = 0;n1 = 0;m1 = 0;int funk(int [,] a,int m,int n,int [,]
b,int m1,int n1)
{sd = 0;(int i = 0; i < n; i++)
{= sd + a[i, i] + a[i, n - i - 1];
}sd2 = 0;(int i = 0; i < n1; i++)
{= sd2 + b[i, i] + b[i, n - i - 1];
}(sd < sd2)1;2;
}void button1_Click(object sender,
EventArgs e)
{.Clear();s = "";[] MS; //
массив
строк
string razdel = @"[\s]+"; //
разделитель любое число пробельных, знаков табуляции, перевода строки, новой
страницыr = new Regex(razdel); // определить разделительi = 0;j = 0;
// чтение из блкнота и запись в массив
for (i = 0; i <
richTextBox1.Lines.Length; i++)
{= richTextBox1.Lines[i];(i != 0
&& richTextBox1.Lines[i - 1].Length == 0) goto стоп;
s = s.Trim();= r.Split(s); // разделить на
подстроки
for (j = 0; j < MS.Length; j++)
{
{[i, j] = Convert.ToInt32(MS[j]);
}(Exception ex)
{
}
}
}
стоп:
//размерность
массива=
i - 1;= r.Split(richTextBox1.Lines[1]).Length;
//********************************=
"";[] MS1; // массив строк
// string razdel = @"[\s]+"; //
разделитель любое число пробельных, знаков табуляции, перевода строки, новой
страницы
// Regex r = new Regex(razdel); // определить
разделитель= 0;= 0;
// чтение из блкнота и запись в массив
for (i = 0; i <
richTextBox2.Lines.Length; i++)
{= richTextBox2.Lines[i];(i != 0
&& richTextBox2.Lines[i - 1].Length == 0) goto стоп1;
s = s.Trim();= r.Split(s); // разделить на
подстроки
for (j = 0; j < MS1.Length; j++)
{
{[i, j] = Convert.ToInt32(MS1[j]);
}(Exception ex)
{
}
}
}
стоп1:
//размерность
массива=
i - 1;= r.Split(richTextBox1.Lines[1]).Length;
richTextBox3.AppendText("\nМатрица с
наименьшим следом");
if (funk(a, m, n, b, m1, n1) == 1)
{(i = 0; i < m; i++)
{= "";(j = 0; j < n;
j++)= s + a[i, j].ToString() + " ";.AppendText("\n" + s);
}[,] aa = new int[10, 10];(i = 0; i
< m; i++)(j = 0; j < n; j++)[i, j] = a[i, j] * a[j, i];
richTextBox3.AppendText("\nКвадрат матрицы
с наименьшим следом");
for (i = 0; i < m; i++)
{= "";(j = 0; j < n;
j++)= s + aa[i, j].ToString() + " ";.AppendText("\n" + s);
}
}
{(i = 0; i < m1; i++)
{= "";(j = 0; j < n1;
j++)= s + b[i, j].ToString() + " ";.AppendText("\n" + s);
}[,] bb = new int[10, 10];(i = 0; i
< m1; i++)(j = 0; j < n1; j++)[i, j] = b[i, j] * b[j, i];
for (i = 0; i < m1; i++)
{= "";(j = 0; j < n1;
j++)= s + bb[i, j].ToString() + " ";.AppendText("\n" + s);
}
}
}
}
}
ПРИЛОЖЕНИЕ
4
using
System;System.Collections.Generic;System.ComponentModel;System.Data;System.Drawing;System.Linq;System.Text;System.Windows.Forms;System.IO;Вариант_11_5
{partial class Form1 : Form
{Form1()
{();
}void button1_Click(object sender,
EventArgs e)
{nom = 0;
button1.Visible = false;.Visible =
true;
char chf;
char chg;.Clear();
{f = new
FileStream("f.char", FileMode.Open);char_Reader_f = new
BinaryReader(f);g = new FileStream("g.char",
FileMode.Open);char_Reader_g = new BinaryReader(g);.AppendText("Длина
f.char =" + f.Length.ToString() + "\n");.AppendText("Длина
g.char =" + g.Length.ToString() + "\n");
{(true)
{= char_Reader_f.ReadChar();=
char_Reader_g.ReadChar();(chf == chg)
{.AppendText(chg.ToString() +
"=" + chf.ToString() + "\n");++;
};
}.AppendText("Число
совпадающих
компонент
="+nom.ToString());
}(Exception ex)
{
}_Reader_f.Close();
f.Close();
char_Reader_g.Close();.Close();
}(Exception ex)
{.AppendText("f.char или
g.char не
существует");
}
}void button2_Click(object sender,
EventArgs e)
{.Visible = false;.Visible = true;
{char_Writer = new BinaryWriter(new
FileStream("f.char", FileMode.Create));s = textBox1.Text;(int i = 0;
i < s.Length; i++)
{_Writer.Write(s[i]);
}_Writer.Close();
}(Exception ex)
{.Text = ex.Message;
}
{char_Writer = new BinaryWriter(new
FileStream("g.char", FileMode.Create));s = textBox2.Text;(int i = 0;
i < s.Length; i++)
{_Writer.Write(s[i]);
}_Writer.Close();
}(Exception ex)
{.Text = ex.Message;
}
}
}
}