| Общая информация » Каталог студенческих работ » ТЕХНИЧЕСКИЕ ДИСЦИПЛИНЫ » Информатика, программирование, базы данных |
| 30.01.2026, 13:56 | |
Лабораторная работа 1 СТРУКТУРНОЕ ПРОГРАММИРОВАНИЕ И ОФОРМЛЕНИЕ ПРОГРАММ Ц е л ь р а б о т ы: получение первоначальных навыков структурного программирования, правильного оформления и тестирования программ; повторение основных элементов языка С. Задание к работе Разработать набор функций для работы с числами в n-ичной системе (n = (номер варианта %15) + 10): 1) напишите функцию печати цифры, включите проверку корректности входных данных (цифра входит в нужный диапазон); напишите функцию печати числа, сделайте ее так, чтобы ей передавался указатель на массив; 2) напишите функции копирования, сложения и вычитания чисел. Учтите, что при сложении может возникнуть перенос в следующий разряд, при вычитании – заем; 3) напишите функции инициализации числа из целой переменной и сохранения числа в целую переменную; 4) напишите программу, печатающую в файл таблицу, строки которой соответствуют десятичным числам от 1 до 25, а в столбцах эти числа выводятся в десятичной, двоичной, шестнадцатеричной и n-ичной системах. Столбцы выровнять по правому краю. Особое внимание следует уделить не просто написанию программы, а следованию принципам структурного программирования, изложенным в теоретической части. Структура программы данной лабораторной работы дается в задании. Для каждой функции из этой структуры должны быть разработаны тесты, проверяющие ее работу, при необходимости должны быть включены отладочные сообщения. При выполнении работы должны строго выполняться требования по оформлению и комментариям к программе. Число представляется в виде массива int[10] (число может содержать не более 10 n-ичных цифр). Цифры больше девяти записываются буквами латинского алфавита (A – 10, B – 11 и т. д.). Содержание отчета Отчет должен содержать листинг программы, в которой реализованы задание и функции тестирования, представлены результаты работы программы. Контрольные вопросы 1) Как в общем виде записывается функция на языке С? 2) Перечислите базовые конструкции структурного программирования. 3) Какая конструкция выбора используется в языке С? 4) Что такое отладка программы? 5) Что такое тестирование программы? 6) Какая директива определяет символ для компилятора?
Лабораторная работа 2 ЦИКЛЫ Ц е л ь р а б о т ы: овладение навыками построения простых и вложенных циклов, повторение основных форм записи циклов на языке С. Задание к работе На выполнение заданий вместе с защитой отводится три пары. 1) Посчитать сумму ряда, ограничивая число элементов ряда первым элементом, меньшим заданной величины eps. Определить реальную точность ряда. 2) Реализовать функцию, ограничивая число элементов ряда первым элементом, меньшим заданной величины eps. Рассчитать 10 значений из области сходимости. Номер варианта в предыдущих двух заданиях определяется как остаток от деления номера по журналу на 15. Наряду с типовыми заданиями предлагаются задания повышенной сложности. 3) Решить задачу с помощью цикла. Номер задания определяется остатком от деления варианта на восемь. 0. Найти в массиве символов наиболее длинную последовательность подряд идущих символов. 1. Найти в массиве целых чисел наиболее длинную возрастающую последовательность. 2. Найти в массиве символов количество последовательностей, содержащих три подряд одинаковых символа. 3. Найти в массиве символов среднюю длину последовательностей из двух и более символов. 4. Найти в массиве символов последовательность из n подряд одинаковых символов. 5. Найти в массиве чисел количество локальных максимумов (чисел, которые больше соседних элементов). 6. Найти в массиве чисел количество локальных минимумов (чисел, которые меньше соседних элементов). 7. Найти в массиве чисел количество чисел, больших предыдущих элементов массива. Значение величины eps – 0,01. Содержание отчета Отчет должен содержать листинг программы, в которой реализованы задание и функции тестирования, представлены результаты работы программы. Контрольные вопросы 1) Запишите в общем виде цикл в форме for. 2) Запишите в общем виде цикл в форме while. 3) Запишите цикл, подсчитывающий сумму элементов массива целых чисел во всех формах записи циклов на языке С. 4) Запишите цикл, находящий максимальный элемент массива целых чисел во всех формах записи циклов на языке С. 5) Что такое инвариант, предусловие и постусловие цикла? 6) Как правильно построить тело цикла? 7) Как связаны между собой постусловие, условие окончания и условие выполнения цикла? Таблица 2.1 Варианты к первому заданию
Таблица 2.2 Варианты ко второму заданию
Таблица 2.3 Задачи повышенной сложности ко второму заданию
Лабораторная работа 3 АЛГОРИТМЫ СОРТИРОВКИ Ц е л ь р а б о т ы: отработка навыков построения вложенных циклов, изучение алгоритмов сортировки, освоение методов структурной разработки программ и тестирования. Задание к работе Дан массив строк. Вывести на экран все слова, являющиеся анаграммами. Анаграммами называются слова, состоящие из одинаковых букв, отличающихся лишь порядком их следования. Например: автор – товар – отвар – тавро – …; апельсин – спаниель. Для поиска анаграмм нужно произвести следующие действия: отсортировать буквы всех слов по алфавиту; реализовать функцию сравнения строк; отсортировать слова с сортированными буквами по алфавиту. Для этого нужно создать массив индексов и при сортировке переставлять элементы в массиве индексов, не изменяя массив слов; просмотреть массив строк в порядке, указанном в массиве индексов, повторяющиеся слова напечатать в первоначальном виде. Слова-анаграммы печатаются в строчку (таких слов может быть два и более). Закодируем варианты сортировки следующим образом: по убыванию (код 0х) – по возрастанию (код 1х); с начала (во внутреннем цикле данные просматриваются с начала, используются операции типа i++, код х0) – с конца (во внутреннем цикле данные просматриваются с конца, используются операции типа i--, код х1). Номер варианта задания равен остатку от деления номера студента по журналу на 16. Этот остаток кодируется четырьмя битами. Старшие два бита означают тип сортировки букв в слове, два младших означают тип сортировки индексов. Например, вариант 0110 (6) означает, что буквы нужно сортировать по убыванию, начиная с конца, а массив индексов нужно сортировать по возрастанию, начиная с начала. В простейшем варианте можно реализовать сортировку пузырьком (поэлементную). Студенты, претендующие на повышенную оценку автоматом, должны реализовать быструю сортировку. Содержание отчета Отчет должен содержать листинг программы, в которой реализованы задание и функции тестирования, представлены результаты работы программы. Контрольные вопросы 1) Опишите простой алгоритм сортировки. 2) Опишите алгоритм быстрой сортировки. 3) Как изменятся условия для простого алгоритма сортировки, если элементы массива нужно расположить в порядке убывания? 4) Как изменятся условия для простого алгоритма сортировки, если элементы в массиве начать располагать начиная с наибольшего? 5) Объясните назначение функции print_mas из примера в теоретической части. 6) Какое количество операций сравнения потребуется для простого алгоритма сортировки при количестве элементов, равном шести? 7) Как связаны между собой значения, обозначенные одинаковыми буквами со штрихом и без штриха? | |



