
ЛР 5
.docxМинистерство науки и высшего образования Российской Федерации Федеральное государственное автономное образовательное учреждение высшего образования
«ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ» (ТУСУР)
Кафедра комплексной информационной безопасности электронно-вычислительных систем (КИБЭВС)
ГЕНЕРИРОВАНИЕ И ОБРАБОТКА ИСКЛЮЧИТЕЛЬНЫХ СИТУАЦИЙ
Отчет по лабораторной работе №5
по дисциплине «Языки программирования»
Студент гр. 723-1
________
__.__.2025
Руководитель
Преподаватель каф. КИБЭВС
_______ А.В. Куртукова
__.__.2025
Введение
Целью данной лабораторной работы является изучение различных видов исключительных ситуаций и методов их обработки.
Задачи:
1. Изучить краткие теоретические сведения.
2. Для выбранного варианта языка программирования изучить механизмы подпрограмм, их описание и вызовы, а также особенности передачи параметров в подпрограммы.
3. Разработать программу, генерирующую исключительную ситуацию, и обрабатывающую вызванное исключение на языке программирования, соответствующему варианту.
4. Доработать написанную программу, применив схему обработки исключительных ситуаций Б. Мейера.
5. Написать отчет и защитить у преподавателя.
ХОД РАБОТЫ
1. Программа, генерирующая и обрабатывающая исключительные ситуации
На рисунке 1.1 представлена простая программа на C#, которая запрашивает у пользователя целое число, а затем пытается вычислить результат деления 100 на это число. На рисунках 1.2-1.4 представлены возможные варианты работы программы.
Рисунок 1.1 – Программа на C#
Рисунок 1.2 – Деление на 0
Рисунок 1.3 – Ввод символа
Рисунок 1.4 – Ввод числа
Листинг программного кода представлен в приложении А.
2 Программа с применением схемы Б. Мейера
На рисунке 2.1 представлена программа, где был описан обработчик исключения при проверке числа. На рисунке 2.2 представлены возможные варианты работы программы.
Рисунок 2.1 – Программа на C#
Рисунок 2.2 – Результат работы программы с применением схемы Б. Мейера
Листинг программного кода представлен в приложении Б.
Заключение
В ходе выполнения лабораторной работы были изучены знания о различных видах исключительных ситуаций и методах их обработки.
Приложение А
using System;
public class Program
{
static int ProcessInput(string input)
{
int num = int.Parse(input);
if (num == 0) throw new DivideByZeroException();
return 100 / num;
}
public static void Main(string[] cmdLineArgs)
{
Console.Write("Введите номер: ");
string inp = Console.ReadLine();
try
{
Console.WriteLine($"Результат: {ProcessInput(inp)}");
}
catch (FormatException)
{
Console.WriteLine("Неверный ввод!");
}
catch (DivideByZeroException)
{
Console.WriteLine("Невозможно разделить на ноль!");
}
catch (Exception e)
{
Console.WriteLine($"Ошибка: {e.Message}");
}
}
}
Приложение Б
using System;
public class Calculator
{
static int Calculate(int x)
{
if (x == 0) throw new ArgumentException("Значение ноль недопустимо.");
return 100 / x;
}
public static void Main(string[] args)
{
bool isValid = false;
while (!isValid)
{
try
{
Console.Write("Введите число: ");
int input = int.Parse(Console.ReadLine());
Console.WriteLine($"Вывод: {Calculate(input)}");
isValid = true;
}
catch (ArgumentException e) { Console.WriteLine("Ошибка: " + e.Message + " Повторите попытку."); }
catch (FormatException) { Console.WriteLine("Неправильный ввод. Повторите попытку."); }
catch (Exception e) { Console.WriteLine("Системная ошибка: " + e.Message + " Повторите попытку."); }
}
Console.WriteLine("Программа завершилась успешно.");
}
}
Томск 2025