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.
Do'stlaringiz bilan baham: |