Цель работы
Цель данной лабораторной работы состоит в закреплении теоретических основ первой темы курса «Математическое и программное обеспечение робототехнических систем» и в приобретении практических навыков работы со средой Microsoft Visual Studio.
Задание №1
Вычислить значение функций при произвольных значениях параметров.
![]()
![]()
Задание №2.
Разработать программу для ввода – вывода элементов массива. Тип элементов массива приведён в таблице 1. Элементы массива должны быть выведены в виде таблицы.
№ | Идентификаторы типа элементов массивов | ||
Тип | Размерность | ||
int | float | ||
12 | - | + | 7*2 |
Задание №3. Алгоритмы обработки данных.
Для заданного массива a[L], (L<=60) вещественных чисел и чисел p и t найти произведение и число элементов последовательности a[i], которые удовлетворяют неравенству p < a[i] < t, а для оставшихся элементов определить, сколько среди них положительных и отрицательных элементов.
Задание №4. Работа с динамической памятью.
При выполнении данной работы необходимо, чтобы массивы, используемые в программе, были динамическими.
Заданы матрицы A, B и C с размерами NЧM, MЧL и LЧK соответственно. Вычислить и напечатать значения их максимальных элементов amax, bmax, cmax} и переменной в=min{|amax|, |bmax|, |cmax|}. Вычисление минимального элемента матрицы оформить в виде функции.
Задание №5. Строки и операции над ними.
Упорядочить слова текста по алфавиту относительно символов, заключенных между 3 и 6 позициями каждого слова. Вывести на консоль полученный текст и колонку из соответствующих словам пар символов – для облегчения проверки правильности сортировки.
Листинг.
using System;
using System. Collections. Generic;
using System. Linq;
using System. Text;
namespace LABNum1
{
class Program
{
static void Main(string[] args)
{
char q;
int number;
q = 'y';
while (q == 'y')
{
Console. Clear();
number = 0;
Console. Write("Номер задания: ");
number = Convert. ToInt32(Console. ReadLine());
if (number == 1)
{
Num1();
}
if (number == 2)
{
Num2();
}
if (number == 3)
{
Num3();
}
if (number == 4)
{
Num4();
}
if (number == 5)
{
Num5();
}
if (number < 0 && number > 5)
{
Console. Write("ERROR!!!\n");
}
Console. Write("\nВы хотите выбрать другую задачу? y-Да\nЛюбая другая клавиша нет");
q = Convert. ToChar(Console. ReadLine());
}
}
static void Num1()
{
double a;
double x;
double Y;
double Z;
const double e = 2.7;
Console. Write("\nInput a: ");
a = Convert. ToDouble(Console. ReadLine());
Console. Write("\nInput x: ");
x = Convert. ToDouble(Console. ReadLine());
Y = 2 * Math. Pow(e, 4 * x) + Math. Acos(x / a);
Z = Math. Cos(Math. Pow(x, 3)) + Math. Sin(Math. Pow(a, 2));
Console. WriteLine("Y={0}\nZ={1}", Y, Z);
Console. ReadKey();
}
static void Num2()
{
float[,] Arr = new float[7, 2];
int i, j;
for (i = 0; i < 7; i++)
{
for (j = 0; j < 2; j++)
{
Console. Write("Input a[{0}][{1}] ", i, j);
Arr[i, j] = Convert. ToSingle(System. Console. ReadLine());//преобразовываем во float
}
}
Console. WriteLine("\n\nYour Array:");
for (i = 0; i < 7; i++)
{
for (j = 0; j < 2; j++)
{
Console. Write("| {0} |", Arr[i, j]);
}
Console. Write("\n");
}
Console. ReadKey();
}
static void Num3()
{
double p;
double t;
int L;
double temp = 1;
int i;
int m = 0;
int plas = 0;
int min = 0;
Console. Write(" Input size of arr: ");
L = Convert. ToInt32(Console. ReadLine());
while (m > -1)
{
if (L > 60)
{
Console. Write("\nError! L should be between 0 and 60\a\n");
L = Convert. ToInt32(Console. ReadLine());
}
if (L <= 60)
{
break;
}
}
double[] Arr = new double[L];
Console. Write("Input p = ");
p = Convert. ToDouble(Console. ReadLine());
Console. Write("Input t = ");
t = Convert. ToDouble(Console. ReadLine());
for (i = 0; i < L; i++)
{
Console. Write("Input Arr[{0}]: ", i);
Arr[i] = Convert. ToDouble(Console. ReadLine());
}
for (i = 0; i < L; i++)
{
if ((p < Arr[i]) && (t > Arr[i]))
{
temp *= Arr[i];
m++;
}
else
{
if (Arr[i] > 0)
plas++;
else
min++;
}
}
Console. Write("\nПроизведение: {0},Кол-во элеметов:{1}", temp, m);
Console. Write("\nБольше 0: {0},Меньше 0:{1}", plas, min);
Console. ReadKey();
}
static void Num4()
{
int N, M, L, K;
int i, j;
double min;
double q = 0;
double w = 0;
double e = 0;
Console. Write("Input size of array:\nInput N: ");
N = Convert. ToInt32(Console. ReadLine());
Console. Write("Input M: ");
M = Convert. ToInt32(Console. ReadLine());
Console. Write("Input L: ");
L = Convert. ToInt32(Console. ReadLine());
Console. Write("Input K: ");
K = Convert. ToInt32(Console. ReadLine());
double[,] A = new double[N, M];
double[,] B = new double[M, L];
double[,] C = new double[L, K];
for (i = 0; i < N; i++)
{
for (j = 0; j < M; j++)
{
Console. Write("Input A[{0}][{1}]", i, j);
A[i, j] = Convert. ToDouble(Console. ReadLine());
}
}
for (i = 0; i < M; i++)
{
for (j = 0; j < L; j++)
{
Console. Write("Input B[{0}][{1}]", i, j);
B[i, j] = Convert. ToDouble(Console. ReadLine());
}
}
for (i = 0; i < L; i++)
{
for (j = 0; j < K; j++)
{
Console. Write("Input C[{0}][{1}]", i, j);
C[i, j] = Convert. ToDouble(Console. ReadLine());
}
}
q = A[0, 0];
for (i = 0; i < N; i++)
{
for (j = 0; j < M; j++)
{
if (q < A[i, j])
{
q = A[i, j];
}
}
}
w = B[0, 0];
for (i = 0; i < N; i++)
{
for (j = 0; j < M; j++)
{
if (w < B[i, j])
{
w = B[i, j];
}
}
}
e = C[0, 0];
for (i = 0; i < N; i++)
{
for (j = 0; j < M; j++)
{
if (e < C[i, j])
{
e = C[i, j];
}
}
}
/*F(q, N, M, A);
F(w, M,L, B);
F(e, L,K, C);*/
Console. Write("Наибольшее а:{0}\nНаибольшее b:{1}\nНаибольшее c:{2}\n", q, w, e);
min = q;
if (min > w)
min = w;
if (min > e)
min = e;
Console. Write("Наименьшее:{0}", min);
Console. ReadKey();
}
static void Num5()
{
int i;
Console. WriteLine("Программа меняет местами по алфафиту буквы в слове начиная с 3-ей и до 6-ой");
Console. WriteLine("Вводить только английские или русские буквы(нижнего регистра)");
Console. WriteLine("Введите текст:");
string strStr = Console. ReadLine();
char[] p = strStr. ToCharArray();
char[] l = new char[strStr. Length+1];
l[0] = ' ';
for (i = 0; i < strStr. Length; i++)
{
l[i+1] = p[i];
}
char[] rez = new char[strStr. Length+1];
char a;
char b;
char c;
char d;
char n;
n= ' ';
int flag = 1;
for (i = 0; i < strStr. Length; i++)
{
if ((l[i] == ' '))
{
rez[i + 1] = l[i + 1];
rez[i + 2] = l[i + 2];
i += 3;
a = l[i];
b = l[i + 1];
c = l[i + 2];
Console. Write("\n{0}{1}{2}", a, b, c);
if (a > c)
{
d = a;
a = c;
c = d;
}
if (b > c)
{
d = b;
b = c;
c = d;
}
if (a > b)
{
d = a;
a = b;
b = d;
}
rez[i] = a;
rez[i + 1] = b;
rez[i + 2] = c;
i += 3;
}
rez[i] = l[i];
}
string result = "";
for ( i = 0; i < rez. Length; i++)
result += rez[i];
Console. WriteLine("\nString: {0} ", result);
Console. ReadKey();
}
}
}
Результат работы программ
1)

2)

3)

4)

5)

Вывод
Проделав данную лабораторную работу я ознакомился с принципами работы в середе Microsoft Visual Studio при программировании на языке C#, реализовал на данном языке программу, которая выполняет 5 выше поставленных задач, научился работать с выражениями, массивами, функциями и строками в рамках C#.


