
ОП_отчет.odt_1
.pdfА13)Ввод элемента массива. Возвращаем А11. А14)Вывод пустой строки.
А15)Вывод "Введите число для бинарного поиска:" А16)Ввод числа для бинарного поиска. А17)Сортируем массив.
А18)Вызов функции BinarySearch. А19)int result = BinarySearch(array, Find);
А20)Если result не равен -1, то А21, иначе А22.
А21)Вывод найденного числа на позиции {result}. Далее А23. А22)Вывод "Искомое число не найдено в массиве". А23)Конец.
Б0)BinarySearch Б1)int left = 0;
Б2)int right = длинна массива -1; Б3)Пока left <= right, то Б4, иначе Б9. Б4)int mid = ((left + right) / 2);
Б5)Если искомое число равно элементу на позиции mid, то возвращаем mid, иначе Б6.
Б6)Если искомое число меньше элемента на позиции mid, то Б7, Иначе
Б8.
Б7)left = mid + 1; Б8)right = mid - 1; Б9)Вовращараем -1. Б10)BinarySearch
Графический способ задания данного алгоритма в виде блок-схемы представлен на рисунке 1.11
21
Р Рисунок 1.11 — Блок-схема алгоритма 3.2
22
Ниже представлен исходный код данной программы на языке программирования С 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);
23

Console.WriteLine($"Площадь треугольника из отрезков a, b, d: {area4}");
}
else
{
Console.WriteLine("Из данных отрезков невозможно построить треугольник.");
}
Результат работы программы представлен на рисунке 1.12
Рисунок 1.12 — Результат работы программы 3.2
1.4 Лабораторная работа №4. Обработка текста
Задание 4.1: Составить программу, которая проверяет правописание «ча
– ща» (т. е. если в заданном тексте после «ч» или «щ» встретится «я», то программа должна выдавать сообщение об ошибке).
Графический способ задания данного алгоритма в виде блок-схемы представлен на рисунке 1.13
24

Рисунок 1.13 — Блок-схема алгоритма 4.1 Ниже представлен исходный код данной программы на языке
программирования С sharp.
static bool Check(char[] array)
{
for (int i = 0; i < array.Length; i++)
{
if (array[i] == 'c' && array[i + 1] == 'h' && array[i + 2] == 'a')
{
return true;
}
25
if (array[i] == 's' && array[i + 1] == 'h' && array[i + 2] == 'a')
{
return true;
}
if (array[i] == 'c' && array[i + 1] == 'h' && array[i + 2] == 'y' && array[i + 3] == 'a')
{
return false;
}
if (array[i] == 's' && array[i + 1] == 'h' && array[i + 2] == 'y' && array[i + 3] == 'a')
{
return false;
}
}
return false;
}
Console.WriteLine("Введите размерность массива:"); int size = int.Parse(Console.ReadLine());
char[] array = new char[size]; Console.WriteLine("Введите элементы массива:"); for (int i = 0; i < size; i++)
{
Console.WriteLine($"Введмте {i + 1} элемент массива:"); array[i] = char.Parse(Console.ReadLine());
}
bool incorrectSpelling = Check(array); if (incorrectSpelling == false)
{
26

Console.WriteLine("'cha' или 'sha' написаны с ошибкой");
}
else
{
Console.WriteLine("'cha' или 'sha' написаны без ошибки");
}
Результат работы программы представлен на рисунке 1.14.
Рисунок 1.14 — Результат работы программы 4.1
Задание 4.2: Допускается парное выполнение этого задания. Разработать программу – клавиатурный тренажер. В ходе работы программы должны генерироваться символы, которые необходимо вводить пользователю, количество правильно введенных символов должно подсчитываться, при вводе неверного символа, счетчик правильно введенных символов должен обнуляться, по завершению работы тренажера результат верно введенных символов должен выводиться на экран. Выход из режима тренажера должен осуществляться по нажатию клавиши «Esc». При вводе неверного символа необходимо выдавать звуковое сопровождение (системный звук). При запуске приложения должен предоставляться выбор набор символов какого языка необходимо тренировать: русский или английский.
27

Графический способ задания данного алгоритма в виде блок-схемы представлен на рисунке 1.15
Рисунок 1.15 — Блок-схема алгоритма 4.2
28
Ниже представлен исходный код данной программы на языке программирования С sharp.
static char RandomChar()
{
Random random = new Random(); const string chars =
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456 789";
return chars[random.Next(chars.Length)];
}
int correctCount = 0; while (true)
{
char randomChar = RandomChar(); Console.WriteLine($"Введите {randomChar}"); ConsoleKeyInfo keyInfo = Console.ReadKey(true); if (keyInfo.Key == ConsoleKey.Escape)
{
Console.WriteLine($"Всего введено правильно: {correctCount}"); break;
}
else if (keyInfo.KeyChar == randomChar)
{
correctCount++;
}
else
{
Console.WriteLine($"Всего введено правильно: {correctCount}"); correctCount = 0;
29

Console.Beep(); Console.WriteLine("Неверно");
}
}
Результат работы программы представлен на рисунке 1.16
Рисунок 1.16 — Результат работы программы 4.2
1.5 Лабораторная работа №5. Структуры
Задание 5.1:Багаж пассажира характеризуется количеством вещей (целый тип) и общим весом вещей (вещественный тип). Дан список из сведений о багаже 10 пассажиров. Число пассажиров, количество вещей которых превосходит среднее число вещей по всему списку.
Ниже представлен исходный код данной программы на языке программирования С sharp.
static double CalculateAverage(int[] numbers)
{
int sum = 0;
foreach (int num in numbers)
{
sum += num;
}
return (double)sum / numbers.Length;
}
30