C# Программирование на языке высокого уровня. Среда разработки Microsoft Visual Studio.NET
Объектно-ориентированная технология создания программ. Среда разработки Visual Studio.NET. Особенности среды Microsoft Visual Studio 2010. Приложения C# для расчетов по формулам, консольный ввод-вывод. Форматирование значений данных. Программы с циклами.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | методичка |
Язык | русский |
Дата добавления | 11.09.2014 |
Размер файла | 2,1 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Для заданных условия составить процедуру и придумать несколько наборов тестовых данных для отладки. Возможно использование как статических массивов, так и динамических Ввод исходных данных осуществить из файла или с клавиатуры.
1. Написать процедуру вычисления суммы всех элементов для заданного двумерного массива А состоящего из 5-ти строк и 6-ти столбцов.
2. Написать процедуру вычисления для заданного массива А(5,6) среднего арифметического элементов значения его положительных элементов. Известно, что хотя бы один элемент массива имеет положительное значение
3. Для заданного массива А(4,6) вычислить среднее арифметическое значение положительных элементов каждой строки. Результаты поместить в одномерный массив В (4). Известно, что в каждой строке массива хотя бы один элемент имеет положительное значение.
4. Вычислить для заданного массива В(20, 30) наибольший элемент каждого столбца. Результаты поместить в одномерный массив ВМ(30).
5. Написать процедуру поиска для заданного массива А(4, 5), строки с наибольшим средним арифметическим значением положительных элементов. Результат поместить в одномерный массив D(5). Считаем, что хотя бы один положительный элемент в каждой строке имеется.
6. Написать процедуру. Для двумерного массива А(6, 4), переставить местами 2-ю и 4-ю строки.
7. Написать процедуру. Для заданного массива В (4, 5), переставить местами столбец с наибольшим количеством нулевых элементов и столбец последний по порядку следования в массиве В.
8. Написать процедуру для подсчета в заданном массиве А (5,5) количества элементов превышающих заданное число В и лежащих на главной диагонали и выше нее.
9. Написать процедуру для вывода на печать отрицательных элементов, лежащих на главной диагонали заданного массива А(4, 4).
10. Написать процедуру перестановки элементов заданного масс- сива В(4,4), лежащих на главной и побочной главной диагонали.
11. Написать процедуру пересылки двумерного массива А (5, 6) в одномерный массив В (30) того же размера, по строкам с сохранением порядка следования элементов.
12. Написать процедуру по транспонированию заданной квадратной матрицы А максимальная размерность которой 100.
13. Написать процедуру перемножения матрицы А на вектор В.
14. Написать процедуру перемножения матрицы А(5, 10) на матрицу В(10, 4).
15. Задан массив размером МхМ. Разделить элементы каждого столбца на элемент главной диагонали расположенный в соответствующем столбце.
16. Задан двумерный массив размером МхМ. Сформировать из его диагональных элементов одномерный массив.
17. Задан массив размером МхМ. Определить максимальный и минимальный элементы главной диагонали и переставить местами столбцы в которых лежат эти элементы.
18. Просуммировать элементы заданного двумерного массива размером МхМ, расположенные в его верхней части, ограниченной главной и побочной диагоналями, включая элементы, расположенные на этих диагоналях.
19. Для заданного двумерного массива размером МхМ просуммировать элементы, расположенные на диагоналях, параллельных главной. Результаты поместить в одномерный массив.
20. В заданном двумерном массиве размером МхМ поменять местами элементы первого и второго столбца, третьего и четвертого и т. д.
21. Задан массив размером 16. Сформировать из него массив размером 4х4 по строкам.
22. В заданном двумерном массиве размером МхМ переместить нулевые элементы каждого столбца в конец столбца.
23. Задан двумерный массив размером МхМ. Максимальный элемент каждой строки поменять местами с диагональным элементом соответствующей строки.
24. Поместить в одномерный массив элементы, расположенные по периметру заданного двумерного массива размером МхМ Использовать один цикл.
25. Заданный двумерный массив размером МхМ повернуть вправо на 90°, без использования вспомогательных массивов.
26. В заданном двумерном массиве размером МхМ поменять местами элементы, расположенные в верхней и нижней частях массива, между главной и побочной диагоналями за исключением элементов, расположенных на этих диагоналях.
27. Двумерный массив размером МхМ задан в виде одномерного массива по столбцам. Вывести на печать верхний треугольник массива по строкам, включая элементы главной диагонали.
28. Написать процедуру, задающую треугольную матрицу произвольного размера. Число, определяющее размер матрицы вводится с клавиатуры во время выполнения процедуры
29. Сформировать двумерный массив, у которого элементы равны произведению своих индексов
30. Найти сумму элементов главной и произведение элементов побочной диагоналей квадратной матрицы.
ЛАБОРАТОРНАЯ РАБОТА № 7
Классы и методы
1. Краткие теоретические сведения
Класс является обобщенным понятием, определяющим характеристики и поведение некоторого множества конкретных объектов этого класса, называемых экземплярами, или объектами, класса.
В целях ускорения работы программиста и упрощения применяемых алгоритмов применяют классы. Применение классов позволяет разбить сложную задачу на ряд простых, взаимосвязанных задач. Проделав эту операцию неоднократно применительно к вновь полученным классам, можно получить алгоритм решения задачи в виде набора простых, понятных, легко осуществимых классов, взаимодействующих друг с другом.
«Классический» класс содержит данные, задающие свойства объектов класса, и функции, определяющие их поведение. В последнее время в класс часто добавляется третья составляющая - события, на которые может реагировать объект класса. Это оправдано для классов, использующихся в программах, построенных на основе событийно-управляемой модели, например, при программировании для Windows.
Процедура объявления и создания экземпляров пользовательского типа не отличается от таковой для предопределенных типов за исключением необходимости использования Спецификатора New (new) для создания экземпляров пользовательских типов значений и ссылочных типов.
Спецификаторы классов:
1. new - используется для вложенных классов. Задает новое описание класса взамен унаследованного от предка. Применяется в иерархиях объектов.
2. public - доступ не ограничен
3. protected - используется для вложенных классов. Доступ только из элементов данного и производных классов
4. internal - доступ только из данной программы (сборки)
5. protected internal - доступ только из данного и производных классов или из данной программы (сборки)
6. private - используется для вложенных классов. Доступ только из элементов класса, внутри которого описан данный класс
7. abstract - абстрактный класс. Применяется в иерархиях объектов.
8. sealed - бесплодный класс. Применяется в иерархиях объектов.
9. static - статический класс. Введен в версию языка 2.0.
Спецификаторы 2 - 6 называются спецификаторами доступа. Они определяют, откуда можно непосредственно обращаться к данному классу. Спецификаторы доступа могут присутствовать в описании только в вариантах, приведенных в таблице, а также могут комбинироваться с остальными спецификаторами.
Методы
Методы делают всю работу, для исполнения которой предназначены классы и структуры: вычисляют значения, изменяют данные, получают вводимую информацию - в общем, выполняют все действия, составляющие поведение объекта
Объявление методов
Один из видов членов, которые добавляются к классам, - это методы, определяющие действия, которые должен выполнять класс. Есть две разновидности методов: те, что возвращают значения, и те, которые никаких значений не возвращают. Следующий пример иллюстрирует обе разновидности методов:
Рис. 7.1. Класс
// Этот метод возвращает целые (int) значения
public int Add (int first, int second)
{
int Result;
Result = first + second;
Return result;
}
public void myVoidMethod ()
// void - не возвращает значений
{
MessageBox.Show ("Этот метод не возвращает значения ");
}
Метод является самостоятельной частью кода, которая имеет имя и может содержать аргументы, выполнять последовательность инструкций (операторов) и изменять значения своих аргументов.
Вызов методов.
Метод не выполняется, пока его не вызовут. Чтобы вызвать метод, следует указать его имя и задать необходимые ему параметры.
// Так вызывают метод Rotate с двумя параметрами Rotate (45, "Degrees");
Метод Main - особый, он вызывается сразу после начала исполнения программы. К особым методам также относятся деструкторы, которые вызывают во время выполнения непосредственно перед уничтожением объекта. Третий вид особых методов - конструкторы; они исполняются во время инициализации объектов.
Метод может иметь один или несколько параметров. Параметр - это аргумент, передаваемый методу вызывающим его методом. При объявлении метода список параметров указывают после его имени в круглых скобках, при этом для каждого параметра необходимо указать его тип.
public void DisplayName (string name, byte age)
{
Console.WriteLine ("Hello " + name + ". You are " +
age.ToString () +"years old.");
}
Внимание. У этого метода два параметра: один типа String, с локальным именем name, а второй, age, - типа Byte. Их область видимости ограничена методом, вне которого переменные не доступны.
Составим фрагмент программы вычисления следующих функций:
Метод fnc типа double
public double fnc(a as double, x as double, z double)
{
return (a*exp(x) + z * sin(x));
}
Использование метода
…
c = fnc ( a, x*x, 0. ) / fnc ( 1., x, 8.5 )
b = -1.
d = 1/( fnc (8., x^4, b) + x^3)
…
Метод с именем fnc и формальными параметрами а, х, z используется при вычислении си d.
Пример 1. Задан вектор D(5). Создать класс vect осуществляющий ввод данных с клавиатуры, вывод элементов вектора на консоль, и перестановку первого по порядку элемента со k-тым отрицательным элементом вектора. Ограничение доступа в класс (снаружи можно вызывать только public части класса)
using System;
namespace ConsoleApplication1
{
class Program
{
class vect // класс векторов vect
{
double[ ] a; // объявление массива int n;
int n; // размер массива
public vect(int n)
// конструктор создаёт вектор
{
this.a = new double[n];
this.n = n;
}
public int vv()
// заполнение вектора целиком,
// клавиатурный ввод
{
for (int i = 0; i < n; i++)
{
string buf;
// строка символов
buf = Console.ReadLine();
// заполнение строки
a[i] = Convert.ToDouble(buf);
// преобразование строки в число
}
return (0);
}
public int vyv()
// вывод на консоль
// элементов вектора
{
for (int i = 0; i < n; i++)
Console.WriteLine("a[" + i + "] = " + a[i]);
return (0);
}
public int perest(int k)
// переставить 1 и k-ое отрицательное число
{
// ключ: 0 - если порядок
// - 1 - если нет
int k1=0;
// k больше размера вектора
if (k >= n) k1= -1;
else
{
// счетчик отрицательных чисел
int cnt = 0;
// указатель на позицию в массиве
int pos = -1;
// подсчёт отрицательных чисел
while (cnt < k)
{
pos++;
if (a[pos] < 0) cnt++;
} // подсчёт
tmp = a[pos] ; //перестановка
a[pos] = a[0];
a[0] = tmp;
k1=0;
}
return k1;
}
//главная программа
static void Main()
{
// создали
vect d = new vect (5);
d.vv (); // заполнили
d.vyv (); // вывели на консоль
d.perest (); // переставили
d.vyv (); // вывели на консоль
}
}
}
}
Пример 2. Задана матрица D(3;3) . Написать метод транспонирования матрицы и метод перемножения квадратных матриц. Получить результат перемножения транспонированной матрицы на соответствующую ей исходную. Отдельный класс для матриц не создаем. Работаем в классе myprog. Поэтому все содержимое класса доступно.
using System;
// моё пространство имён
namespace ConsoleApplication3
{
class myprog
{
static void Main()
{
// объявление матриц
double[,] d = new double[3,3];
double[,] dt = new double[3, 3];
double[,] ddt = new double[3, 3];
// заполнение d c клавиатуры
int i; int j; // строки, колонки
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
d[i, j] = Convert.ToDouble(Console.ReadLine());
}
// траспонирование матрицы
transp(d, 3, dt);
// умножение транпонированной
// матрицы dt на исходную d
mt_q_mult(dt, d,ddt,3);
}
// транпонирование
static void transp(double[,] mtr, int p, double[,] mtrt)
// double[,] mtr - так определяют матрицу в формальных параметрах
{
int i; int j;
for (i = 0; i < p; i++)
{
for (j = 0; j < p; j++)
mtrt[j, i] = mtr[i, j];
}
}
// умножение квадратных матриц
static void mt_q_mult(double[,] m_a, double[,] m_b, double[,] m_r, int p)
// m_r=m_a * m_b , int p размер матриц
{
int i; int j; int k; double mel;
for (i = 0; i < p; i++) // строки m_a
{
// столбцы m_b
for (j = 0; j < p; j++)
{
mel=0;
// столбцы m_a и строки m_b
for (k = 0; k < p; k++)
mel=mel+m_a[i,k]*m_b[k,j];
m_r[i,j]=mel;
}
}
}
2. Практическая часть
Задание к лабораторной работе
Написать программу, осуществляющую заданные вычисления с использованием процедур. Вид используемых классов и методов определить самостоятельно.
1. Заданы две матрицы А (4, 4) и В (4, 4). Написать программу суммирования двух векторов X и Y, где X - вектор, в котором размещены элементы столбца матрицы А с минимальным средним арифметическим значением, Y - то же для матрицы В.
2. Заданы две матрицы А (4, 4) и В (4, 4). Написать программу вычисления вектора Z = X + Y, где X - строка матрицы А, включающая минимальный элемент ее главной диагонали, Y - то же для матрицы В.
3. Заданы две матрицы А(4, 4) и В(3, 3) и два вектора С(4) и D(3). Написать программу вычисления произведений матриц на соответствующие им вектора. Определить минимальное среднее арифметическое значение для полученных векторов.
4. Заданы две матрицы В(4,4) и D(3,3). Написать программу транспонирования каждой из заданных матриц с последующим перемножением транспортированной матрицы на соответствующую ей исходную.
5. Заданы две матрицы А(3, 3) и В(3, 3). Написать программу проверки - является ли произведение этих матриц перестановочным, т.е. проверить равенство AB = ВА.
6. Заданы две матрицы С (4, 4) и D(3, 3). Написать программу определения количества симметричных матриц. Матрица называется симметричной, если транспонированная матрица равна исходной. Для каждой симметричной матрицы вычислить сумму элементов, лежащих вне главной диагонали.
7. Заданы два массива С(6) и D(10). Для каждого из них осуществить перестановку первого по порядку элемента со вторым отрицательным элементом массива.
8. Заданы три квадратных уравнения АХ + BX + С = 0; DX2 + FX + E = 0 и ZX2 + YX + S = 0. Написать программу нахождения максимального значения корня среди действительных корней этих уравнений.
9. Заданы два вектора А(0.052; 0.9; 0.15; 0.84; 0.67) и В(0.948; 0.1; 0.33; 0.16; 0.85). Написать программу, позволяющую расположить элементы одного вектора по возрастанию, а другого - по убыванию. Вычислить сумму полученных векторов.
10. Заданы два двумерных массива A(4, 4) и B(3, 3). Для каждого из них переставить столбцы с максимальным и минимальными элементами.
11. Заданы координаты четырёх точек A, B, C, D на плоскости. Определить наибольший из периметров треугольников ABC, ABD, ACD.
12. Три треугольника заданы координатами своих вершин. Написать программу вычисления площадей треугольников и определения минимальной площади.
13. Заданы два двумерных массива А (4, 4) и В(3, 3). Для каждого из них переставить последнюю строку со строкой с максимальным средним арифметическим значением.
14. Заданы две матрицы А(4, 4) и В(4, 4). Написать программу вычисления вектора Z = X - Y, где X - столбец матрицы А, включающий минимальный элемент матрицы; Y - то же для матрицы В.
15. Заданы три вектора X, Y, Z. Написать программу вычисления соответственно равны С = X + У; D = X - Z
16. Заданы матрицы С(4, 4) и D(3, 3). Определить индексы максимального элемента каждой из матриц среди элементов, расположенных выше главной диагонали.
17. Заданы вектора А(5), В(10), D(15). Дли каждого из них определить максимальный и минимальный элементы и их индексы.
18. Заданы координаты вершин трех треугольников. Определить сколько треугольников лежит внутри окружности радиуса R с центром в начале координат.
19. Заданы координаты десяти точек плоскости и координаты точки-полюса. Найти точку, максимально удалённую от полюса, среди первых четырёх заданных точек и такую же точку - среди последних шести. Определить также расстояние между найденными точками.
20. Заданы массивы Y (4, 4) и Z(8, 8). Для каждого из них вычислить среднее арифметическое значение положительных элементов, расположенных выше главной диагонали.
21. Заданы координаты вершин трех треугольников. Определить треугольник с максимальным периметром.
22. Заданы три матрицы размерами 2x2, 3x3, 4x4. Для каждой из матриц определить среднее арифметическое значение положительных элементов главной диагонали.
23. Заданы три одномерных массива разной размерности. Для каждого из массивов определить повторяющиеся элементы.
24. Заданы координаты четырех точек на плоскости. Определить номера точек, расстояние между которыми минимальное.
25. Заданы две окружности (х - а)2 + (у - b)2 = r2 и (х - с)2 + (у -d)2 = R2 и координаты четырех точек. Определить количество точек, лежащих внутри каждой окружности.
26. Заданы три одномерных массива А(5), В(10), С(15). Написать программу решения уравнения рх2 + dx + r = 0, где р - минимальный элемент матрицы А, d - минимальный элемент матрицы В, r - минимальный элемент матрицы С.
27. Заданы одномерные массивы Х(5) и Y(7). Для каждого из них определить количество и сумму элементов, которые без остатка делятся на заданное число В.
28. Составить программу заполнения массивов А(5) и В(10) факториалами значений индексов их элементов. Вычисление факториала выполнить в подпрограмме.
29. Заданы матрицы А(4,4), В(6,6). Для каждой матрицы определить среднее арифметическое значение положительных элементов, расположенных не выше главной диагонали.
30. Матрицами Р(2,2) и Е(2,2) в декартовой системе координат заданы две окружности положением своего центра и точки на дуге. Вычислить параметры окружностей.
31.
ЛИТЕРАТУРА
1. Архипов В. Н., Калядин В. И., Любин А. Н., Макаров А. И. Программирование на Фортране: методические указания к лабораторным работам. - М.; МГТУ «МАМИ», 2007, - 144 с.
2. Калядин В. И., Макаров А. И. Основы работы на персональном компьютере: сборник лабораторных работ. - М.; МГТУ «МАМИ», 2010, - 85 с.
3. Лобанов А. С., Туманова М. Б. Решение задач на языке Visual Basic for Application: учебное пособие. - М.; МГТУ «МАМИ», 2009, - 90 с.
4. Павловская Т. A. C# Программирование на языке высокого уровня. ПИТЕР, 2007, - 432 с.
5. Герберт Шмидт. Полное руководство C# 3.0. М.; Изд. дом «Вильяме», 2010, - 992.
Размещено на Allbest.ru
Подобные документы
Средства интегрированной среды Microsoft Visual Studio, предоставляемые программисту для реализации программ на языке С++. Особенности стиля написания программ. Типовые приемы и методы создания и отладки программ. Листинги программ и их тестирование.
лабораторная работа [814,3 K], добавлен 26.05.2013Разработка игры "Угадай персонажа", ее суть и содержание. Запоминание новых персонажей и вопросов, коррекция базы данных. Использование языка программирования С++ и среды разработки Microsoft Visual Studio 2010. Алгоритмы и методы, структура программы.
курсовая работа [571,9 K], добавлен 14.07.2012Создание программы с использованием принципов объектно-ориентированного программирования на языке высокого уровня С# средствами Microsoft Visual Studio 2010. Построение алгоритма реализации. Определение математического аппарата, применение его в задаче.
курсовая работа [500,4 K], добавлен 13.01.2015Microsoft Visual C++ и среда программирования Microsoft Developer Studio 6.0. Решение интеллектуальной задачи на компьютере. Построение алгоритма кодирования на Visual C++. Алгоритм решения задачи. Описание программы "Sort". Инструкции пользователя.
курсовая работа [46,0 K], добавлен 27.11.2007Введение в Microsoft Visual Studio. Диалоговое окно "Восстановленные файлы" интегрированной среды разработки. Веб-обозреватель интегрированной среды разработки. Диалоговое окно "Проверка подлинности прокси-сервера". Сохранение и восстановление файлов.
реферат [22,0 K], добавлен 29.05.2013Требования к MS Office 2007. Набор средств разработки Visual Studio Tools for Office как альтернатива VBA. Разработка СУБД на базе MS Access. Разработка надстройки "Электронные компоненты" для PowerPoint на языке C# в среде MS Visual Studio 2010.
дипломная работа [5,2 M], добавлен 03.05.2013Изучение особенностей проектирования прикладных программ с помощь средств Visual Studio 2010 на языке C#. Расчет конического соединения, конусного градиента, усилия для разрыва соединения и требуемой силы сжатия. Реализация и тестирование программы.
курсовая работа [1,7 M], добавлен 19.02.2013Разработка программы с использованием принципов объектно-ориентированного программирования на языке высокого уровня С средствами Microsoft Visual Studio 2010. Построение алгоритма реализации. Класс программы, инструкция по использованию программы.
курсовая работа [1,0 M], добавлен 26.12.2013Общие сведения о работе программы в среде программирования Microsoft Visual Studio 2008, на языке программирования C++. Ее функциональное назначение. Инсталляция и выполнение программы. Разработанные меню и интерфейсы. Алгоритм программного обеспечения.
курсовая работа [585,5 K], добавлен 24.03.2009Создание программы, реализующей игру "Линии". Среда разработки программы, описание ее общего вида. Основные алгоритмы программы. Реализация программы в среде разработки Microsoft Visual Studio 2008 на языке объектно-ориентированного программирования С++.
курсовая работа [639,0 K], добавлен 16.03.2012