О лабораторной работе

Информация о целях, задачах и методических материалах

📘 Общая информация

Номер работы: Лабораторная работа №3
Тема: Составление программ разветвляющейся структуры
Дисциплина: Основы алгоритмизации и программирования
Язык программирования: C# (.NET Framework)
Среда разработки: Visual Studio 2022
Уровень сложности: ⭐⭐⭐ Средний
Время выполнения: 4 академических часа

🎯 Цели работы

Основная цель

Формирование навыков разработки алгоритмов и программ с разветвляющейся структурой, освоение принципов условной логики и управления потоком выполнения программы.

📚

Теоретическая

Изучение концепций условных операторов, логических выражений и булевой алгебры

⚙️

Практическая

Получение опыта написания программ с условными конструкциями

🧠

Аналитическая

Развитие логического мышления и навыков декомпозиции задач

🔍

Методическая

Освоение методов тестирования и отладки условных конструкций

📋 Задачи работы

  1. Теоретическая подготовка
    • Изучение синтаксиса условных операторов в C#
    • Понимание логических операций и их приоритетов
    • Освоение принципов построения блок-схем для разветвляющихся алгоритмов
  2. Практическая реализация
    • Написание программ с простыми условиями
    • Реализация множественных ветвлений
    • Использование вложенных условий
    • Применение оператора switch-case
  3. Анализ и оптимизация
    • Оптимизация условных конструкций
    • Устранение избыточных проверок
    • Правильный порядок условий
  4. Тестирование и отладка
    • Проверка всех ветвей алгоритма
    • Тестирование граничных условий
    • Обработка некорректного ввода

🔧 Используемые технологии

C#

C#

Основной язык программирования

Visual Studio

Visual Studio

Интегрированная среда разработки

.NET

.NET Framework

Платформа разработки

Git

Git

Система контроля версий

📊 Компетенции и навыки

🎓 Получаемые знания

  • Понимание разветвляющихся алгоритмов
  • Синтаксис условных операторов
  • Логические операции и выражения
  • Принципы булевой алгебры
  • Методы оптимизации условий

💪 Формируемые умения

  • Проектирование условной логики
  • Написание читаемого кода с условиями
  • Отладка разветвляющихся программ
  • Тестирование всех ветвей выполнения
  • Обработка исключительных ситуаций

🚀 Развиваемые навыки

  • Логическое мышление
  • Анализ требований
  • Декомпозиция задач
  • Систематический подход к решению
  • Документирование кода

📝 Структура отчета

1. Титульный лист

  • Название учебного заведения
  • Кафедра/факультет
  • Название работы
  • ФИО студента и преподавателя
  • Дата выполнения

2. Теоретическая часть

  • Цель и задачи работы
  • Описание разветвляющихся алгоритмов
  • Обзор условных операторов
  • Логические операции

3. Практическая часть

  • Постановка задач
  • Блок-схемы алгоритмов
  • Листинги программ
  • Скриншоты выполнения
  • Тестовые данные и результаты

4. Заключение

  • Анализ результатов
  • Полученные навыки
  • Выводы по работе
  • Предложения по улучшению

✅ Критерии оценивания

Критерий Баллы Описание
Корректность алгоритмов 30 Правильная логика условий, отсутствие ошибок
Полнота реализации 25 Выполнение всех заданий, обработка всех случаев
Качество кода 15 Читаемость, комментарии, стиль кодирования
Тестирование 15 Проверка граничных условий, обработка ошибок
Оформление отчета 10 Структура, полнота, блок-схемы
Защита работы 5 Ответы на вопросы, понимание материала
Итого 100 Максимальный балл

Шкала оценок:

  • 90-100 баллов — Отлично (5)
  • 75-89 баллов — Хорошо (4)
  • 60-74 балла — Удовлетворительно (3)
  • Менее 60 баллов — Неудовлетворительно (2)

📚 Рекомендуемая литература

Основная литература:

  1. Троелсен Э., Джепикс Ф. "Язык программирования C# 9 и платформа .NET 5" - 2021
  2. Шилдт Г. "C# 4.0: полное руководство" - М.: Вильямс, 2019
  3. Албахари Дж., Албахари Б. "C# 9.0. Справочник. Полное описание языка" - 2021
  4. Рихтер Дж. "CLR via C#. Программирование на платформе Microsoft .NET Framework" - 2020

Дополнительная литература:

  1. Макки А. "Введение в .NET 5 и C# 9. Современная кроссплатформенная разработка" - 2021
  2. Прайс М. "C# 9 и .NET 5. Разработка и оптимизация" - 2021
  3. Скиена С. "Алгоритмы. Руководство по разработке" - СПб.: БХВ-Петербург, 2020
  4. Кормен Т. и др. "Алгоритмы: построение и анализ" - М.: Вильямс, 2019

Интернет-ресурсы:

❓ Контрольные вопросы

Теоретические вопросы:

  1. Что такое разветвляющийся алгоритм?
  2. Какие виды ветвлений существуют?
  3. В чем разница между полным и неполным ветвлением?
  4. Какие операторы сравнения используются в условиях?
  5. Что такое логические операторы и как они работают?
  6. Каков приоритет логических операций?
  7. Когда использовать if-else, а когда switch-case?
  8. Что такое тернарный оператор?

Практические вопросы:

  1. Как проверить, является ли число четным?
  2. Как определить максимум из трех чисел?
  3. Как реализовать множественный выбор?
  4. Как работать с вложенными условиями?
  5. Как оптимизировать цепочку условий?
  6. Как обработать некорректный ввод пользователя?
  7. Как протестировать все ветви алгоритма?
  8. Как избежать дублирования кода в условиях?

⚠️ Типичные ошибки

🐛 Использование = вместо ==

❌ Неправильно:

if (x = 5) { ... }

✅ Правильно:

if (x == 5) { ... }

🐛 Забытый break в switch

❌ Неправильно:

case 1: Console.WriteLine("Один");
case 2: Console.WriteLine("Два");

✅ Правильно:

case 1: Console.WriteLine("Один"); break;
case 2: Console.WriteLine("Два"); break;

🐛 Неправильный порядок условий

❌ Неправильно:

if (x > 0) { ... }
else if (x > 10) { ... } // Недостижимо

✅ Правильно:

if (x > 10) { ... }
else if (x > 0) { ... }

🐛 Сравнение вещественных чисел

❌ Неправильно:

if (double1 == double2) { ... }

✅ Правильно:

if (Math.Abs(double1 - double2) < 0.0001) { ... }

💼 Применение в реальных проектах

🛒 E-commerce

Расчет скидок, проверка доступности товара, валидация платежей

🎮 Игровая разработка

Логика игровых механик, проверка условий победы, AI противников

🏦 Банковские системы

Проверка кредитоспособности, расчет процентов, валидация транзакций

🏥 Медицинские системы

Диагностические алгоритмы, проверка совместимости лекарств

🚗 Автомобильные системы

Системы безопасности, контроль скорости, парковочные ассистенты

📱 Мобильные приложения

Настройки пользователя, фильтры контента, push-уведомления

🎓 Дополнительные задания

Для углубленного изучения:

  1. Калькулятор квадратного уравнения

    Реализуйте программу для решения квадратного уравнения ax² + bx + c = 0 с проверкой всех возможных случаев (дискриминант > 0, = 0, < 0, a = 0)

  2. Конвертер единиц измерения

    Создайте универсальный конвертер с выбором типа единиц (длина, вес, температура) и направления конвертации

  3. Система оценки кредитного рейтинга

    Разработайте систему оценки кредитоспособности на основе множественных критериев (доход, возраст, кредитная история, залог)

  4. Игра "Угадай число"

    Реализуйте игру с подсказками "больше/меньше" и ограничением попыток

  5. Календарь с праздниками

    Программа определения дня недели по дате и проверки на праздничный день