Цель работы

Цель данной лабораторной работы состоит в закреплении теоретических основ первой темы курса «Математическое и программное обеспечение робототехнических систем» и в приобретении практических навыков работы со средой 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#.