
- •Часть 1
- •Общие сведения Сведения об эумк
- •Методические рекомендации по изучению дисциплины
- •Рабочая учебная программа
- •Часть 2 184
- •Пояснительная записка
- •Содержание дисциплины
- •Индивидуальные практические работы, их характеристика
- •Контрольные работы, их характеристика
- •Литература
- •Основная
- •Дополнительная
- •Перечень компьютерных программ, наглядных и других пособий, методических указаний и материалов и технических средств обучения
- •Учебно-методические пособия
- •Алфавит языка
- •Лексемы
- •Идентификаторы
- •Ключевые слова
- •Знаки операций
- •Константы
- •Комментарии
- •Тема 2. Типы данных Концепция типа данных.
- •Простые типы данных
- •Целый тип int
- •Символьный тип char
- •Типы с плавающей точкой: float, double, long double
- •Тема 3. Выражения
- •Переменные
- •Именованные константы
- •Операции
- •Операции присваивания
- •Инкремент и декремент
- •Унарный плюс и унарный минус (строка 2)
- •Явное преобразование типа
- •Операция определения размера sizeof
- •Деление и остаток от деления
- •Логические операции не, и, или (!, &&, ||)
- •Условная операция (?:)
- •Операция запятая (,)
- •Операции взятия адреса и разадресации
- •Тема 4. Операторы
- •Структура программы
- •Тема 5. Базовые конструкции структурного программирования
- •Операторы ветвления
- •1. Условный оператор if
- •2. Оператор switch
- •Операторы цикла
- •1. Цикл с предусловием while
- •2. Цикл с постусловием do-while
- •3. Цикл с параметром for
- •Тема 6. Массивы
- •Тема 7. Указатели и массивы
- •Тема 8. Строки символов
- •Тема 9. Структуры
- •Массивы структур
- •Битовые поля
- •Объединения
- •Перечисления
- •Тема 10. Функции
- •Глобальные, локальные и статические переменные
- •Параметры функции
- •Передача массивов в качестве параметров функции
- •Функция main, ее параметры
- •Функции стандартной библиотеки
- •Функции форматного вывода и ввода printf и scanf
- •Тема 11. Файлы
- •Тема 12. Работа с динамической памятью
- •Тема 13. Динамические структуры данных
- •Очереди
- •Линейные списки
- •Бинарные деревья
- •Практический раздел Общие указания Указания по выбору варианта
- •Порядок оформление итогового отчета
- •Индивидуальные практические работы Индивидуальная практическая работа 1 Методические указания
- •Варианты заданий.
- •Индивидуальная практическая работа 2 Методические указания
- •Варианты заданий
- •Контрольные работы Контрольная работа 1 Методические указания
- •Варианты заданий
- •Контрольная работа 2 Методические указания
- •Варианты заданий
Контрольная работа 2 Методические указания
КР 2 предназначена для приобретения практических навыков работы с материалом, относящимся к теме 13: «Динамические структуры данных». В качестве динамической структуры данных служит очередь или стек. При этом элементы очереди (стека) можно создавать по мере необходимости в динамической памяти или же сразу реализовать очередь (стек) на основе массива и больше память не распределять.
Варианты заданий
Создайте очередь для целых (положительных и отрицательных) чисел. Создайте функции push и pop для ввода и вывода элементов очереди. Введите в очередь 10 чисел. Выведите на экран 2 первых отрицательных числа очереди.
Создайте стек для целых чисел. Создайте функции push и pop для ввода и вывода элементов стека. Вводите числа с клавиатуры. При этом должна выполняться проверка, блокирующая попадание в стек отрицательных чисел. После добавления в стек числа 0 выведите на экран содержимое стека.
Создайте очередь для целых чисел. Создайте функции push, pop и size для ввода и вывода элементов очереди и определения ее размера. Вводите в очередь числа. После ввода числа 0 выведите на экран сумму всех положительных чисел очереди и ее размер.
Создайте стек для целых (положительных и отрицательных) чисел. Создайте функции push, pop и size для ввода и вывода элементов стека и определения его текущего размера. Вводите в стек числа. После ввода числа 0 выведите на экран все положительные числа, содержащиеся в стеке, затем – все отрицательные, а также размер стека.
Создайте очередь для целых (положительных и отрицательных) чисел. Создайте функции push, pop и size для ввода и вывода элементов очереди и определения ее текущего размера. Вводите в очередь элементы до тех пор, пока не встретится число 0. Выведите на экран положительные элементы очереди (до первого отрицательного включительно), длину очереди и число элементов очереди, не выведенных на экран.
Создайте очередь для символов. Создайте функции push, pop и size для ввода и вывода элементов очереди и определения ее текущего размера. Вводите в очередь символы с клавиатуры. В случае совпадения вводимого символа с последним элементом очереди (т.е. предыдущим введенным символом) выведите на экран размер очереди и ее содержимое.
Создайте очередь для символов. Создайте функции push и pop для ввода и вывода элементов очереди. Вводите в очередь символы с клавиатуры, причем при совпадении вводимого символа с последним элементом очереди (т.е. предыдущим введенным символом) блокируйте ввод такого символа. В случае совпадения вводимого символа с эталонным символом (например #) выведите на экран содержимое очереди.
Создайте очередь для символов. Создайте функции push и pop для ввода и вывода элементов очереди. В случае совпадения вводимого символа с последним элементом очереди (т.е. предыдущим введенным символом) удалите из очереди 2 первых элемента и выведите содержимое очереди на экран.
Создайте два стека для символов. Вводите символы с клавиатуры, причем прописные символы должны попадать в первый стек, а строчные – во второй. После ввода с клавиатуры эталонного символа (например #) выведите на экран содержимое обоих стеков.
Создайте очередь для целых чисел. Создайте функции push и pop для ввода и вывода элементов очереди. Введите в очередь 10 элементов. После этого перейдите в режим, при котором при вводе очередного элемента из очереди удаляется первый элемент. После ввода с клавиатуры числа 0 выведите на экран содержимое очереди.
Создайте стек для символов и стек для целых чисел. Вводите в первый стек символы с клавиатуры. Одновременно во второй стек должны заноситься ASCI-коды (числовые значения) символов, вводимых в первый стек. В случае совпадения вводимого символа с символом вершины стека (т.е. предыдущим введенным символом) выведите на экран содержимое второго стека и его размер.
Создайте два стека для символов. Вводите символы с клавиатуры. При этом прописные латинские буквы должны попадать в первый стек, а строчные латинские буквы – во второй. Символы, не являющиеся латинскими буквами, пропускаются. После ввода эталонного символа (например #) выведите на экран содержимое обоих стеков.
Создайте стек для целых чисел. Создайте функции push и pop для ввода и вывода элементов стека. Вводите символы с клавиатуры. При этом в стек должны заноситься ASCI-коды (числовые значения) введенных символов. После ввода эталонного символа (например #) выведите на экран содержимое стека и его размер.
Создайте два стека для символов. Вводите символы с клавиатуры. При этом латинские буквы должны попадать в первый стек, цифры – во второй, любые другие символы пропускаются. После ввода с клавиатуры эталонного символа (например #) выведите на экран содержимое обоих стеков.
Создайте очередь для символов. Создайте функции push и pop для ввода и вывода элементов очереди. Вводите символы с клавиатуры. При этом в очередь должны попадать только символы, представляющие собой прописные латинские буквы. После ввода с клавиатуры эталонного символа (например #) выведите на экран содержимое очереди и ее длину.
Создайте три очереди для символов. Заполните данными каждую из очередей. Выведите на экран содержимое самой длинной очереди и ее размер.
Создайте две очереди для символов. Заполните данными сначала первую, затем вторую очередь (до ввода с клавиатуры эталонного символа). Проверьте, является ли вторая очередь частью первой очереди, и выведите на экран соответствующее сообщение. Выведите также содержимое каждой из очередей.
Создайте три очереди для символов. Введите в первую, вторую и третью очередь соответственно фамилию, имя и отчество человека. Добавьте в первую очередь (через пробел) данные из второй очереди, затем из третьей. Выведите на экран содержимое первой очереди.
Создайте два стека для символов. Вводите символы с клавиатуры в первый стек. В случае совпадения вводимого символа с символом вершины стека (т.е. с предыдущим введенным символом), введите этот символ и во второй стек. После ввода эталонного символа (например #) выведите на экран содержимое обоих стеков.
Создайте стек для символов. Создайте функции push, pop и size для ввода и вывода элементов стека и определения его размера. Вводите символы с клавиатуры в стек. В случае совпадения вводимого символа с символом вершины стека (т.е. с предыдущим введенным символом), прекратите ввод и выведите на экран содержимое стека и его размер.