
- •1.Цель работы
- •2. Теоретические сведения
- •2.1 Сборка программ из нескольких файлов с исходным кодом
- •2.2 Использование заголовочных файлов
- •2.3 Классы памяти
- •2.3.1. Классы памяти функций
- •2.3.2. Классы памяти переменных
- •2.3.2.1. Класс памяти auto: локальные переменные
- •2.3.2.2. Локальные переменные с модификатором static
- •2.3.2.3. Глобальные переменные
- •2.3.2.4. Глобальные переменные с модификатором static
- •2.3.2.5. Регистровые переменные
- •3. Порядок выполнения лабораторной работы
- •4. Варианты заданий
- •4.1. Задание для общего выполнения
- •4.2. Индивидуальные задания
2.3.2.5. Регистровые переменные
Указав для локальной переменной модификатор register (например, registerinta;), мы советуем компилятору разместить её в регистре процессора (а не в оперативной памяти), что ускорит обращение к ней. Регистров ограниченное число, и компилятор вправе как прислушаться к нашему совету, так и проигнорировать его. Современные компиляторы обычно принимают решение о размещении переменной в регистре самостоятельно. Тем не менее, независимо от того, размещена ли реально переменная в регистре или нет, к переменной registerнельзя применять оператор взятия адреса &, потому что она может храниться в регистре процессора, который обычно не имеет адреса.Ощутимый эффект от спецификатора register может быть получен только для переменных целого (int) и символьного (char) типа.
3. Порядок выполнения лабораторной работы
1. Изучить теоретический материал.
2. Выполнить задание из пункта 4.1.
3. Выполнить индивидуальные задания из пункта 4.2.
4. Оформить отчет по лабораторной работе.
4. Варианты заданий
4.1. Задание для общего выполнения
Согласно варианту задания из первой лабораторной работы «Функции» объявить все собственные функции в заголовочном файле «task.h». Определение (листинг) этих функций вынести в отдельный файл «f1.cpp». Создать заголовочный файл «iomassiv.h», в нем объявить функции ввода и вывода для одномерных и двумерных массивов. Определение (листинг) этих функций вынести в отдельный файл «f2.cpp». При этом все массивы должны быть динамическими. Файл, содержащий функцию main, не должен содержать объявления и определения других функций. Ввод и вывод массивов осуществить с помощью функций из «iomassiv.h».
4.2. Индивидуальные задания
Согласно варианту индивидуального задания необходимо организовать список, при этом необходимо написать программу таким образом, чтобы из функции main доступ к списку был возможен только с помощью функций добавления элемента в список, удаления элемента из списка и просмотра содержимого списка. Таким образом, необходимо все функции работы со списком вынести в отдельный файл, и для всех переменных и функции использовать необходимые модификаторы классов памяти.
Вариант 1
Реализовать алгоритм работы с динамической структурой данных – однонаправленный список: элементы добавляются в начало списка, а просматриваются и удаляются с конца списка. Элементы списка – символы.
Вариант 2
Реализовать алгоритм работы с динамической структурой данных – однонаправленный список: элементы добавляются, просматриваются и удаляются с начала списка. Элементы списка – вещественные числа.
Вариант 3
Реализовать алгоритм работы с динамической структурой данных – однонаправленный список: элементы добавляются, просматриваются и удаляются с конца списка. Элементы списка – целые числа.
Вариант 4
Реализовать алгоритм работы с динамической структурой данных – однонаправленный список: элементы добавляются и просматриваются с конца списка, а удаляются с начала списка. Элементы списка – целые числа.
Вариант 5
Реализовать алгоритм работы с динамической структурой данных – однонаправленный список: элементы добавляются и просматриваются с начала списка, а удаляются с конца списка. Элементы списка – символы.
Вариант 6
Реализовать алгоритм работы с динамической структурой данных – однонаправленный список: элементы добавляются и удаляются с начала, просматриваются с конца списка. Элементы списка – вещественные числа.
Вариант 7
Реализовать алгоритм работы с динамической структурой данных – однонаправленный список: элементы добавляются, просматриваются и удаляются с конца списка. Элементы списка – целые числа.
Вариант 8
Реализовать алгоритм работы с динамической структурой данных – однонаправленный список: элементы добавляются и просматриваются с конца списка, а удаляются с начала списка. Элементы списка – натуральные числа.
Вариант 9
Реализовать алгоритм работы с динамической структурой данных – однонаправленный список: элементы добавляются и просматриваются с начала списка, а удаляются с конца списка. Элементы списка – символы.
Вариант 10
Реализовать алгоритм работы с динамической структурой данных – однонаправленный список: элементы добавляются и удаляются с начала, просматриваются с конца списка. Элементы списка – вещественные числа.
Вариант 11
Реализовать алгоритм работы с динамической структурой данных – однонаправленный список: элементы добавляются, просматриваются и удаляются с конца списка. Элементы списка – целые числа.