Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

ОП_отчет.odt_1

.pdf
Скачиваний:
0
Добавлен:
27.06.2025
Размер:
986.72 Кб
Скачать

Рисунок 1.5 – Блок-схема алгоритма 2.1 Ниже представлен исходный код данной программы на языке

программирования С sharp.

double[] array = { 19, 0, 23, 4, 0, 6, 7 }; double maxElement = array[0];

int maxIndex = 0;

for (int i = 1; i < array.Length; i++)

11

{

if (array[i] > maxElement)

{

maxElement = array[i]; maxIndex = i;

}

}

Console.WriteLine($"Номер максимального элемента массива: {maxIndex}");

int firstIndex = -1; int secondIndex = -1;

for (int i = 0; i < array.Length; i++)

{

if (array[i] == 0)

{

if (firstIndex == -1) firstIndex = i;

else

{

secondIndex = i; break;

}

}

}

double product = 1;

if (firstIndex != -1 && secondIndex != -1)

{

for (int i = firstIndex + 1; i < secondIndex; i++)

12

{

product *= array[i];

}

Console.WriteLine($"Произведение элементов между первым и вторым нулевыми элементами: {product}");

}

else

if (product == 1)

{

Console.WriteLine("Второго нуля в массиве нет");

}

double[] rearrangedArray = new double[array.Length]; int oddIndex = 0;

int evenIndex = 1;

foreach (var element in array)

{

if (oddIndex < array.Length)

{

rearrangedArray[oddIndex] = element; oddIndex += 2;

}

else

{

rearrangedArray[evenIndex] = element; evenIndex += 2;

}

}

13

Console.WriteLine("Преобразованный массив:"); foreach (var element in rearrangedArray)

{

Console.Write($"{element} ");

}

Результат работы программы представлен на рисунке 1.6.

Рисунок 1.6 — Результат работы программы 2.1

Задание 2.2:Дана матрица 5Х5. Вывести ее в верхнем треугольном виде (т.е. напечатать только элементы верхнего треугольника и именно в виде треугольника).

Словесное описание: А0)Начало

А1)matrix = { {1, 2, 3, 4, 5}, {6, 7, 8, 9, 1}, {1, 1, 1, 1, 1}, {6, 1, 1, 1, 2}, {2, 2, 2, 2, 2} };

А2)Для i от 0 до matrix.GetLength(0) с шагом 1, выполнить А3, иначе

А8.

А3)Для j от 0 до matrix.GetLength(1) с шагом 1, выполнить А4. Далее

А2.

А4)Если i <= j, то А5, иначе А6.

А5)Вывод элемента с индексами i,j + табуляция. А6)Вывод табуляция.

А7)Переход на новую строку. Возвращаемся к А3. А8)Конец.

Графический способ задания данного алгоритма в виде блок-схемы представлен на рисунке 1.7.

14

Рисунок 1.7 — Блок-схема алгоритма 2.2 Ниже представлен исходный код данной программы на языке

программирования С sharp. int[,] matrix = {

{1, 2, 3, 4, 5}, {6, 7, 8, 9, 1},

15

{1, 1, 1, 1, 1}, {6, 1, 1, 1, 2}, {2, 2, 2, 2, 2}

};

for (int i = 0; i < matrix.GetLength(0); i++) //строки

{

for (int j = 0; j < matrix.GetLength(1); j++) //столбцы

{

if (i <= j)

{

Console.Write(matrix[i, j] + "\t");

}

else

{

Console.Write("\t");

}

}

Console.WriteLine();

Результат работы программы представлен на рисунке 1.8

Рисунок 1.8 — Результат работы программы 2.2

1.3 Лабораторная работа №3. Функции

Задание 3.1: Даны четыре натуральных числа. Найти наибольший общий делитель (НОД) для этих четырех чисел.

Словесное описание:

16

А0)Начало.

А1)Вывод "Введите числа a, b, c, d через пробел:" А2)Ввод чисел через пробел.

А3)Если a + b > c или a + c > b или b + c > a, то А4, иначе А13. А4)Вызов функции TriangleArea. Далее А5.

А5)area1 = TriangleArea(a, b, c);

А6)Вывод площади триугольника из отрезков a,b,c. А7)area2 = TriangleArea(a, c, d);

А8)Вывод площади триугольника из отрезков a,c,d. А9)area3 = TriangleArea(b, c, d);

А10)Вывод площади триугольника из отрезков b,c,d. А11)area4 = TriangleArea(a, b, d);

А12)Вывод площади триугольника из отрезков a,b,d. Далее А14. А13)Вывод "Из данных отрезков невозможно построить треугольник.". А14)Конец.

Б0)TriangleArea Б1)p = (a + b + c) / 2;

Б2)return Math.Sqrt(p * (p - a) * (p - b) * (p - c)); Б3)TriangleArea

Графический способ задания данного алгоритма в виде блок-схемы представлен на рисунке 1.9

17

Рисунок 1.9 — Блок-схема алгоритма 3.1

18

Ниже представлен исходный код данной программы на языке программирования С sharp.

static double TriangleArea(int a, int b, int c)

{

double p = (a + b + c) / 2;

return Math.Sqrt(p * (p - a) * (p - b) * (p - c));

}

Console.WriteLine("Введите числа a, b, c, d через пробел:"); string[] input = Console.ReadLine().Split();

int a = int.Parse(input[0]); int b = int.Parse(input[1]); int c = int.Parse(input[2]); int d = int.Parse(input[3]);

if (a + b > c && a + c > b && b + c > a)

{

double area1 = TriangleArea(a, b, c);

Console.WriteLine($"Площадь треугольника из отрезков a, b, c:

{area1}");

double area2 = TriangleArea(a, c, d);

Console.WriteLine($"Площадь треугольника из отрезков a, c, d:

{area2}");

double area3 = TriangleArea(b, c, d);

Console.WriteLine($"Площадь треугольника из отрезков b, c, d:

{area3}");

double area4 = TriangleArea(a, b, d);

19

Console.WriteLine($"Площадь треугольника из отрезков a, b, d:

{area4}");

}

else

{

Console.WriteLine("Из данных отрезков невозможно построить треугольник.");

}

Результат работы программы представлен на рисунке 1.10

Рисунок 1.10 — Результат работы программы 3.1

Задание 3.2: Организовать бинарный поиск заданного числа в массиве (массив предварительно нужно отсортировать).

Словесное описание: А0)Начало

А1)Вывод "Введите размер массива:" А2)Вводим размер массива.

А3)Вывод "Введите {size} чисел для массива:"

А4)Для i от 0 до size с шагом 1, выполнить А5. Далее А7 А5)Вывод "Введите {i + 1} элемент массива:"

А6)Ввод элемента массива. Возвращаем А4. А7)Вывод "Введите число для бинарного поиска:" А8)Ввод числа для бинарного поиска. А9)Сортируем массив по возрастанию. А10)Вывод "Получившийся массив:"

А11)Для i от 0 до длинны массива с шагом 1, выполнить А12. А12)Вывод "Введите {i + 1} элемент массива:"

20

Соседние файлы в предмете Основы программирования