Лабораторная работа асд. Лабораторные работы_по_АСД. Дисциплина Алгоритмы и структуры данных Отчёт по лабораторной работе
Скачать 3.09 Mb.
|
Блок схема алгоритма решения задачи представлена на рисунке 13: Рисунок 12 - Блок схема алгоритма решения задачи 3 Программа на C#: Программа на C#: using System; namespace ConsoleApp8 { class Program { static void Main(string[] args) { Console.WriteLine("Введите год: "); var g = int.Parse(Console.ReadLine()); Console.WriteLine("Введите месяц: "); var m = int.Parse(Console.ReadLine()); var startDay = new DateTime(g, m, 1); var endDay = startDay.AddMonths(1); int i = 0; for (var date = startDay; date != endDay; date = date.AddDays(1)) { i++; } Console.WriteLine("Количество дней в месяце: {0}", i); Console.ReadKey(); } } } Скриншот результата работы программы представлен на рисунке 14. Рисунок 13 - Скриншот результата работы программы задачи 3. Задача 4. Составить блок-схему алгоритма решения задачи своего варианта, используя цикл с предусловием вычисления суммы элементов ряда S = a1+ a2+ a3 + …+an , пока очередной элемент an не станет меньше некоторого значения , вводимого с клавиатуры ( например, 10-4 ). Используя цикл с постусловием: найти номер элемента an при вычислении суммы ряда S = a1+ a2+ a3 + …+an , после которого сумма будет больше некоторого значения V, задаваемого с клавиатуры. Все используемые идентификаторы представлены в таблице 8 Таблица 8 – Идентификаторы
Блок схема алгоритма решения задачи представлена на рисунке 15: Рисунок 14 - Блок схема алгоритма решения задачи 4 Программа на C#: using System; namespace ConsoleApp8 { class Program { static void Main(string[] args) { double S = 0; double n = 0; Console.WriteLine("Введите x: "); double x = Convert.ToDouble(Console.ReadLine()); Console.WriteLine("Введите e: "); double e = Convert.ToDouble(Console.ReadLine()); do { n += 1; S = S + (n * x) / Math.Pow(2, (n + 1)); Console.WriteLine("S = {0}", S); } while (S < e); Console.WriteLine("Номер ряда = {0}", n); Console.ReadKey(); } } } Скриншот результата работы программы представлен на рисунке 16. Рисунок 15 - Скриншот результата работы программы задачи 4. Лабораторная работа №4. Одномерные и двумерные массивы Вариант 15 Номер зачётной книжки Задание 1. Составить блок-схемы алгоритмов решения шести задач своего варианта (вариант такой же как ЛР2). 2. Выполнить просчет работы алгоритма при задании трех различных вариантов исходных данных. Решение Задача 1. Найти наибольший среди отрицательных элементов массива C(15). Все используемые идентификаторы представлены в таблице 9 Таблица 9 – Идентификаторы
Блок схема алгоритма решения задачи представлена на рисунке 17: Рисунок 16 - Блок схема алгоритма решения задачи 1 Программа на C#: using System; namespace ConsoleApp8 { class Program { static void Main(string[] args) { Console.WriteLine("введите размерность массива"); int n = int.Parse(Console.ReadLine()); int[] a = new int[n]; Random rand = new Random(); for (int i = 0; i < n; i++) { a[i] = rand.Next(-10, 0); Console.Write(" " + a[i]); } Console.WriteLine(""); int max = a[0]; for (int i = 1; i < n; i++) { if (a[i] < 0 && a[i] > max) max = a[i]; } Console.WriteLine("Максимальное среди отрицательных: " + max); Console.ReadKey(); } } } Скриншот результата работы программы представлен на рисунке 18. Рисунок 17 - Скриншот результата работы программы задачи 1. Задача 2. Записать 0 вместо элементов массива X(11), удовлетворяющих условию -0.5 Все используемые идентификаторы представлены в таблице 10 Таблица 10 – Идентификаторы
Блок схема алгоритма решения задачи представлена на рисунке 19: Рисунок 18- Блок схема алгоритма решения задачи 2 Программа на C#: using System; namespace ConsoleApp8 { class Program { static void Main(string[] args) { Console.WriteLine("введите размерность массива"); int n = int.Parse(Console.ReadLine()); int[] a = new int[n]; Random rand = new Random(); for (int i = 0; i < n; i++) { a[i] = rand.Next(0, 20); Console.Write(" " + a[i]); } Console.WriteLine(""); for (int i = 0; i < n; i++) { if (a[i] > 0 && a[i] < 10) a[i] = 0; Console.Write(" " + a[i]); } Console.ReadKey(); } } } Скриншот результата работы программы представлен на рисунке 20. Рисунок 19 - Скриншот результата работы программы задачи 2. Задача 3. Дан массив Q(23). Получить сумму тех элементов массива, которые нечетны и отрицательны. Все используемые идентификаторы представлены в таблице 11 Таблица 11 – Идентификаторы
Блок схема алгоритма решения задачи представлена на рисунке 21: Рисунок 20 - Блок схема алгоритма решения задачи 3 Программа на C#: using System; namespace ConsoleApp8 { class Program { static void Main(string[] args) { Console.WriteLine("введите размерность массива"); int n = int.Parse(Console.ReadLine()); int[] a = new int[n]; Random rand = new Random(); int x = 0; for (int i = 0; i < n; i++) { a[i] = rand.Next(-10, 10); Console.Write(" " + a[i]); } Console.WriteLine(""); for (int i = 0; i < n; i++) { if ((a[i] < 0) && (a[i] % 2 != 0)) x = x - a[i]; } Console.Write("Cумма нечетнх и отрицательных элементов " + x); Console.ReadKey(); } } } Скриншот результата работы программы представлен на рисунке 22. Рисунок 21 - Скриншот результата работы программы задачи 3. Задача 4. Первые три столбца матрицы Q(3,7) заменить на значение 2. Все используемые идентификаторы представлены в таблице 12 Таблица 12 – Идентификаторы
Блок схема алгоритма решения задачи представлена на рисунке 23: Рисунок 22- Блок схема алгоритма решения задачи 4 Программа на C#: using System; namespace ConsoleApp1 { class Program { static void Main(string[] args) { Console.WriteLine("введите размерность массива"); int n = int.Parse(Console.ReadLine()); int m = int.Parse(Console.ReadLine()); int[,] a = new int[n,m]; Random rand = new Random(); for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { a[i,j] = rand.Next(-10, 10); Console.Write(" " + a[i,j]); } Console.WriteLine(" "); } Console.WriteLine(""); for (int i = 0; i < n; i++) { for (int j = 0; j < m; j++) { if ((i < 3) && (j < 3)) { a[i, j] = 2; } Console.Write(" " + a[i, j]); } Console.WriteLine(" "); } Console.ReadKey(); } } } Скриншот результата работы программы представлен на рисунке 24. Рисунок 23 - Скриншот результата работы программы задачи 4. Задача 5. Среди элементов, расположенных выше побочной диагонали матрицы N(6,6), найти элементы, удовлетворяющие условию Nij<=K и Nij>i+j, и сформировать из них одномерный массив Y. Все используемые идентификаторы представлены в таблице 13 Таблица 13 – Идентификаторы
|