Информатика и программирование. Вариант №01
|
|
engineerklub | Дата: Четверг, 24.10.2024, 07:40 | Сообщение # 1 |
Генералиссимус
Группа: Администраторы
Сообщений: 28524
Статус: Offline
| Информатика и программирование. Вариант №01
Тип работы: Работа Контрольная Сдано в учебном заведении: ДО СИБГУТИ
Описание: Вариант: 1mod40+1=2
Раздел 1. Алгоритмизация обработки символьных строк. Пользовательские функции
Цель: освоение составления и тестирования алгоритмов и программ обработки символьных строк с использованием регулярных выражений и функций пользователя.
Задание
1. Проанализировать индивидуальное задание из таблицы 4 и определить сигнатуру функции для решения заданной задачи (идентификатор функции, идентификаторы и типы данных аргументов, тип возвращаемых данных). 2. Разработать код тела функции на языке C#, которая реализует заданную задачу по обработке строк, выводит результат обработки на консоль и возвращает требуемые результаты. Решить задачу с использованием и без использования регулярных выражений. Обеспечить контроль исключительных ситуаций. 3. Разработать код метода Main(), который содержит: вывод инструкций для консольного ввода исходных данных для заданной задачи; ввод исходных данных с клавиатуры; вызов разработанной функции, выполняющей решение задачи; вывод результата решения задачи. 4. Протестировать обработку контролируемых исключений. 5. Выполнить ручной просчет.
Таблица 4. Варианты индивидуальных заданий по обработке строк
№ варианта Задание 2 Выделить из строки заданное количество слов, начиная со слова с номером n. В основную программу вернуть количество выделенных слов. Если в строке нет n-го слова (возвращенное значение – 0), то вывести соответствующее сообщение.
Раздел 2. Работа с текстовыми файлами
Цель: изучить и освоить использование текстовых файлов для длительного хранения данных; закрепить навыки составления и тестирование алгоритмов и программ, использующих потоки файлового ввода-вывода.
Задание
1. Создать текстовый документ и ввести в несколько строк (не менее 5), соответствующих решению индивидуальной задачи по обработке строк из раздела 1. Файл сохранить в формате UTF-8 с заданным именем и расширением (см. табл. 5). 2. Модифицировать программу, разработанную при выполнении задания раздела 1 так, чтобы исходные строки для обработки считывались из текстового файла исходных данных, созданного при выполнении п.1 этого задания, а результаты обработки выводились в текстовый файл результатов с заданным именем и расширением (см. табл. 5). При этом должны иметь место следующие особенности: чтение исходных данных из файла выполнять в методе Main(). запись результатов обработки в файл выполнять в пользовательской функции. при выводе в файл следовать инструкции (см. табл. 5). осуществление контроля исключительных ситуаций при работе с файлами. 3. Протестировать обработку контролируемых исключений.
Таблица 5. Варианты индивидуальных заданий к выполнению работы по разделу 2 № вар. Файл исх. данных Файл результатов Инструкция по выводу результатов в файл 2 lab6.dat lab6.res В начале файла в отдельной строке вывести заданный номер слова n. В конец файла результатов с новой строки добавить общее количество выделенных слов.
СКАЧАТЬ
|
|
| |
engineerklub | Дата: Четверг, 24.10.2024, 07:40 | Сообщение # 2 |
Генералиссимус
Группа: Администраторы
Сообщений: 28524
Статус: Offline
| Раздел 3. Использование классов.
Цель: изучение понятия класса, конструктора, деструктора и метода, а также особенностей организации программы с использованием классов.
Задание
1. Изучить понятие классов, объектов и области их эффективного использования; возможности языка программирования С# для работы с классами. 2. На основе индивидуального задания к лабораторной работе №3 (см. табл. 6 методических указаний к выполнению лабораторных работ) разработать одноименный класс, описывающий динамический одномерный массив и операции с ним. 3. Класс должен содержать такие закрытые члены: длина массива; ссылка на массив; а также следующие открытые методы: конструктор без параметров, содержащий инициализатор массива нулевыми элементами; конструктор с параметрами, инициализирующий массив длины, вводимой с клавиатуры, случайных чисел в заданном диапазоне; копирующий конструктор, создающий копию объекта с исходным массивом; деструктор, уничтожающий массив; метод модификации элемента массива, заданного его индексом; метод, реализующий заданную обработку массива; метод вывода элементов массива на консоль. При программировании методов обрабатывать необходимые исключения (обращение к элементам массива, арифметика). Конструкторы и деструктор должны выводить сообщение о своем срабатывании. 4. Составить программу на языке программирования С#, в которой предусмотреть: создание массива ar0 заданной длины с нулевыми элементами; создание массива ar1 с длиной, вводимой с клавиатуры; инициализацию массива ar1 случайными числами в заданном диапазоне; копирование массива ar1 в новый массив arN; модификацию произвольных элементов массива ar1; выполнение обработки массива arN; вывод массивов на всех стадиях вычислений; обработку необходимых исключений (ввод данных, обращение к элементам массива, арифметика). конструкторы и деструктор должны выводить сообщения о своем выполнении.
Таблица 6. Варианты заданий к лабораторной работе №3 № варианта Длина массива для прог. / ручн. Интервал генерации Обработка элементов массива 2 70 / 5 [-5, 10] Найти максимальный положительный элемент и отрицательные элементы увеличить на найденный максимальный положительный элемент
Раздел 4. Базовый механизм наследования. Работа с матрицами.
Цель: изучение концепции наследования в ООП и его применение для организации работы с матрицами, освоить технологию перегрузки операторов
Задание
1. Изучить понятие наследования классов, а также возможности языка программирования С# для работы с наследованием классов. 2. На основе класса Array, реализованного в разделе 3, и согласно индивидуальному заданию (табл. 6) создать производный от него класс Matrix. 3. Дочерний класс должен содержать такие закрытые члены: высота матрицы; ссылка на массив векторов базового класса; а также следующие открытые методы: конструктор без параметров, создающий нулевую матрицу фиксированного размера; размер задается константами; конструктор с параметрами, создающий и инициализирующий матрицу случайных чисел в заданном диапазоне; размер задается с использованием параметров; метод вывода элементов матрицы на консоль; метод, реализующий вычисление заданного показателя P, для которого предусмотреть свойство в классе Matrix; метод, реализующий заданное преобразование матрицы посредством перегрузки заданного оператора; метод, реализующий заданную сортировку матрицы (нечетные варианты – по столбцам, четные варианты – по строкам). Конструкторы должны выводить сообщение о своем срабатывании. При программировании методов выполнять обработку необходимых исключений (ввод данных, работа с элементами массива, арифметика). 4. Составить тестовую программу, демонстрирующую реализацию указанных методов, в том числе обработку исключений.
СКАЧАТЬ
|
|
| |
engineerklub | Дата: Четверг, 24.10.2024, 07:40 | Сообщение # 3 |
Генералиссимус
Группа: Администраторы
Сообщений: 28524
Статус: Offline
| Таблица 6. Варианты заданий к выполнению работы по разделу 4 № вар. Массив и длина Интервал генерации Показатель Р Алгоритм обработки Перегружае-мый оператор Метод сортировки 2 A(8, 8) [-5, 10] Отношение суммы ненулевых элементов к сумме положительных элементов матрицы Элементы столбцов, у которых среднее арифметическое значение отрицательно, умножить на эти средние значения. * Обменом
Раздел 5. Принудительное наследование. Абстрактные классы и абстрактные методы в C# Цель: изучение принципов реализации базового принципа ООП «Наследование» на языке C# с применением абстрактных классов, освоение техники применения абстрактных классов для частичной реализации базовых классов при использовании принудительного наследования
Задание
1. Изучить механизм применения абстрактных классов в языке C#. 2. Создать абстрактный класс Array, содержащий такие члены: N – число элементов в массиве; Arr – указатель на массив; Init() – метод инициализации элементов массива случайными числами в заданном диапазоне; Calc() – абстрактный метод подсчета числового показателя на основе данных массива; PrintArray() – абстрактный метод вывода массива на экран; Processing() – абстрактный метод, выполняющий обработку массива. Данные для реализации методов Init() выбрать из таблицы индивидуальных заданий к выполнению лабораторной работы №3 (см. табл. 6 методических указаний к выполнению лабораторных работ) согласно номеру своего варианта. 3. Создать производный класс Vector, реализующий заданную обработку и вывод на экран одномерного массива. 3.1. Вывод элементов массива должен осуществляться в одну строку через символ табуляции. 3.2. Задание на расчет показателя и обработку массива выбрать из таблицы индивидуальных заданий к выполнению лабораторной работы №3 (см. табл. 6 методических указаний к выполнению лабораторных работ) согласно номеру варианта. 4. Создать производный класс Matrix, реализующий заданную обработку и вывод на экран двумерного массива. 4.1. Вывод элементов матрицы должен осуществляться в прямоугольной форме, элементы строк должны печататься через символ табуляции. 4.2. Задание на расчет показателя и обработку массива выбрать из таблицы индивидуальных заданий к выполнению задания по разделу 5 контрольной работы (см. табл. 6 настоящих методических указаний) согласно номеру своего варианта. 5. При реализации методов Calc() и Processing() реализовать обработку необходимых исключений. 6. Разработать метод Main() для организации работы с одномерными и двумерными массивами. Число элементов N и границы диапазона генерации значений элементов массивов водить с клавиатуры. Реализовать обработку необходимых исключений. 7. Разработать класс Test для модульного тестирования реализаций методов Calc, в том числе возникновения исключений. Для создания тестовых массивов в классах Vector и Matrix реализовать конструктор, инициализирующий массив заданной размерности константными значениями.
Таблица 6. Варианты заданий к лабораторной работе №3 № варианта Длина массива для прог. / ручн. Интервал генерации Обработка элементов массива 2 70 / 5 [-5, 10] Найти максимальный положительный элемент и отрицательные элементы увеличить на найденный максимальный положительный элемент
СКАЧАТЬ
|
|
| |
engineerklub | Дата: Четверг, 24.10.2024, 07:41 | Сообщение # 4 |
Генералиссимус
Группа: Администраторы
Сообщений: 28524
Статус: Offline
| Тип работы: Работа Лабораторная Сдано в учебном заведении: ДО СИБГУТИ
Описание: Вариант: 1mod40+1=2
Лабораторная работа №1
Тема: Программирование алгоритмов с ветвлением, вычисление математических выражений, обработка исключений Цель: изучение основных арифметических и логических операций C#, методов класса Math, а также структурных операторов ветвления и обработки исключительных ситуаций
Задание
1. Создать консольное приложение так, как показано в примере 1. 2. Запустить программу и убедиться в корректности ее выполнения. 3. Дополнить функцию Main кодом, который вычисляет значение математической функции y в соответствии с индивидуальным заданием из табл. 2 и выводит его на консоль. Значения аргументов задать явным присваиванием констант. При невозможности вычисления вывести на консоль сообщение. 4. Переписать код так, чтобы некорректные ситуации обрабатывались посредством оператора try...catch...finally. 5. Протестировать программу, в том числе обработку исключений. 6. Выполнить контрольный просчет и сделать вывод.
Таблица 2. Варианты заданий к лабораторной работе №1 2
Лабораторная работа №2
Тема: Программирование алгоритмов циклической структуры
Цель: изучение возможностей C# для программирования алгоритмов циклической структуры.
Задание
Составить программу на языке C#, реализующую такие операции в соответствии с индивидуальным заданием, выбираемым из таблицы 4: 1. Вычисления в цикле заданного вида значений заданной функции y выполнить для переменной x, изменяющейся в заданном интервале [x1, x2] с заданным шагом x, обрабатывая при этом возможные исключительные ситуации, как в предыдущей лабораторной работе №1. 2. В теле цикла организовать поиск максимального y_max и минимального y_min значений функции y, а также номеров шагов n_max и n_min, на которых достигаются эти значения. 3. Вычисленные значения вывести на консоль в виде таблицы такого формата: | № шага | x | y | y_min | n_min | y_max | n_max | 4. Выполнить ручной просчет для значения аргумента на третьем шаге и сравнить его с результатами выполнения программы.
№ варианта Заданная функция Интервал аргумента и величина шага Вид цикла 2 x[-1; 2], x = 0,15 с постусловием
Лабораторная работа №3
Тема: Алгоритмизация обработки одномерных массивов. Цель: изучение возможностей C# для программирования алгоритмов обработки одномерных массивов и освоение технологий составления и тестирования программ
Задание
1. Самостоятельно изучить возможности языка программирования C# для описания, инициализации и обработки одномерных массивов. 2. Создать консольное приложение, в котором реализовать следующие вычисления: объявление заданного массива фиксированной длины прог (табл. 6); инициализацию элементов массива случайными целыми числами в заданном интервале (в одном цикле for); вывод элементов массива на консоль (в одном цикле foreach); вывод на консоль значения вычисленного параметра; заданную обработку массива и вывод элементов обработанного массива на консоль, обеспечить контроль исключений. 3. В качестве результатов вывести исходный и обработанный массивы, а также (если это предполагает задание на обработку) найденное числовое значение. 4. Отдельно протестировать обработку контролируемых исключений. 5. Выполнить контрольную пошаговую обработку вручную для массива длиной ручн.
Таблица 6. Варианты заданий к лабораторной работе №3 № варианта Длина массива для прог. / ручн. Интервал генерации Обработка элементов массива 2 70 / 5 [-5, 10] Найти максимальный положительный элемент и отрицательные элементы увеличить на найденный максимальный положительный элемент
СКАЧАТЬ
|
|
| |