Лаболаторна робота №1

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2011
Тип роботи:
Лабораторна робота
Предмет:
Операційні системи телекомунікаційних мереж

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ "ЛЬВІВСЬКА ПОЛІТЕХНІКА"  Звіт до лабораторної роботи №1 Реалізація простих консольних програм мовою C# з курсу: "ОПЕРАЦІЙНІ СИСТЕМИ" Мета роботи: навчитися реалізувати прості консольні програми мовою С# у середовищі Visual Studio Завдання: Ввід значень кубічної матриці організувати з клавіатури у порядку зростання індексів: А 0,0,0; А 0,0,1; А 0,0,2; … А 0,1,0; … Кубічна матриця має бути представлена типом масиву С# зі структурою, вказаною у варіанті завдання. Сортування елементів матриці здійснюється у площинах, зазначених у варіанті завдання, за аналогією гри «15». Метод сортування також зазначений у варіанті завдання. Для окремо зазначених площин кубічної матриці необхідно знайти значення додаткового вектора . Сортування та пошук додаткового вектора організувати в окремих функціях. Вивести на друк посортовані площини кубічної матриці та значення додаткового вектора. A 4×3×5 → С# [ ][ , ] ; горизонтальна площина – метод вибору – за зростанням; вектор добутків синусів елементів фронтальних площин. Список ідентифікаторів, констант, змінних, методів, використаних у програмі та їх пояснення: RandNum – змінна для генератора псевдовипадкових чисел; float [][,] ip – вхідний параметр функції; float [] op – параметр, який функція повертає; i,j,k,z – лічильники; SinMultiple () - Функція обчислення вектора добутків синусів елементів фронтальних площин; FillByRandom () - Функція ініціалізації елементів масиву псевдовипадковими значеннями; Out () - Функція виводу горизонтальних площин тривимірного масиву на консоль; MatrixToString () Функція перетворення тривимірного масиву у стрічку; Sort () - Функція сортування; StringToMatrix () - Функція перетворення стрічкового масиву у тривимірний; Main() – головна функція; (float) () – перетворення типу числа в тип з плаваючою комою; Console.WriteLine("Початковий масив") – виведення в консоль; RandNum.Next( , ) – генерування псевдовипадкового цілого значення із вказаного діапазону; Текст програми: using System; using System.Collections.Generic; using System.Text; namespace Array { class Program { static System.Random RandNum = new System.Random(); //Виділення пам’яті для генератора псевдовипадкових чисел //Функція обчислення вектора добутків синусів елементів фронтальних площин static float [] SinMultiple (float [][,] ip) { float[] op = new float[4] {1,1,1,1}; for (int k = 0; k < 4; k++) for (int i = 0; i < 3; i++) for (int j = 0; j < 5; j++) op[k] = (float) (op[k] * Math.Sin(ip[k][i,j])); return (op); } //Функція ініціалізації елементів масиву псевдовипадковими значеннями static void FillByRandom(float [][,] ip) { for (int k = 0; k < 4; k++) for (int i = 0; i < 3; i++) for (int j = 0; j < 5; j++) ip[k][i, j] = (float)(RandNum.Next(100, 999)) / 10; } //Функція виводу горизонтальних площин тривимірного масиву на консоль static void Out(float [][,] ip) { for (int i = 0; i < 3; i++) { for (int k = 0; k < 4; k++) { for (int j = 0; j < 5; j++) Console.Write(ip[k][i, j] + "\t"); Console.WriteLine(); } Console.WriteLine(); } } //Функція перетворення тривимірного масиву у стрічку static float [][] MatrixToString(float[][,] ip) { int z; float [][] op = new float [3][]; op [0] = new float [20]; op [1] = new float [20]; op [2] = new float [20]; for (int i = 0; i < 3; i++) { z=0; for (int k = 0; k < 4; k++) for (int j = 0; j < 5; j++) { op[i][z] = ip[k][i, j]; z++; } } return (op); } //Функція сортування static float [] Sort(float [] ip) { int k; float x; for (int i = 0; i < 19; i++) { k = i; x = ip[i]; for (int j = i + 1; j < 20; j++) { if (ip[j] < x) { k = j; x = ip[j]; } } ip[k] = ip[i]; ip[i] = x; } return (ip); } //Функція перетворення стрічкового масиву у тривимірний static float [][,] StringToMatrix(float [][] ip) { int z; float[][,] op = new float[4][,]; op [0] = new float[3,5]; op [1] = new float[3,5]; op [2] = new float[3,5]; op [3] = new float[3,5]; for (int i = 0; i < 3; i++) { z = 0; for (int k = 0; k < 4; k++) for (int j = 0; j < 5; j++) { op[k][i, j] = ip[i][z]; z++; } } return (op); } static void Main() { float[][,] a = new float[4][,]; for (int i = 0; i < 4; i++) a[i] = new float[3, 5]; float[][] tmp = new float[3][]; for (int i = 0; i < 3; i++) tmp[i] = new float[20]; float[] sin = new float[4]; FillByRandom(a); Console.WriteLine("Початковий масив"); Out(a); tmp = MatrixToString(a); for (int i=0; i<3; i++) tmp[i] = Sort(tmp[i]); a = StringToMatrix(tmp); sin = SinMultiple(a); Console.Write("Вектор добуткiв елементiв фронтальних площин"); Console.WriteLine(); for (int i = 0; i < 4; i++) { Console.Write("{0 :N8}",sin[i]); Console.Write("\t"); } Console.WriteLine(); Console.WriteLine(); Console.WriteLine("Вiдсортований масив"); Out(a); Console.ReadKey(true); } } } Результат роботи програми: Початковий масив 50,3 78,9 31,2 71,6 33,4 43,7 65 69,7 77,8 67,6 91,2 18,5 84,9 19,8 34 19,6 10,5 19,1 20,4 11,1 92,9 51,8 91,9 13,4 20,9 56,6 15,8 42 24,6 27,6 54,4 43,1 91,5 44 94,5 92,1 54,9 17 14,9 70,5 63,2 66,6 88,9 27,9 70,5 79,2 38,4 10,7 68,3 67,9 23,7 91,8 87,7 14,5 23,5 44,4 46,8 16,5 54 54 Вектор добутків синусів елементiв фронтальних площин -0,00133710 -0,00000571 0,00001483 0,00000473 Вiдсортований масив 10,5 11,1 18,5 19,1 19,6 19,8 20,4 31,2 33,4 34 43,7 50,3 65 67,6 69,7 71,6 77,8 78,9 84,9 91,2 13,4 14,9 15,8 17 20,9 24,6 27,6 42 43,1 44 51,8 54,4 54,9 56,6 70,5 91,5 91,9 92,1 92,9 94,5 10,7 14,5 16,5 23,5 23,7 27,9 38,4 44,4 46,8 54 54 63,2 66,6 67,9 68,3 70,5 79,2 87,7 88,9 91,8
Антиботан аватар за замовчуванням

21.12.2013 18:12-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!