- •Нижний Новгород 2005 Составитель ф.В. Жаринов
- •Научный редактор в.В. Крылов
- •Предисловие
- •Лабораторная работа 3 Классы памяти
- •Задание 1.
- •Задание 2.
- •Лабораторная работа 4 Кодирование информации с помощью битовых масок. Побитовые операции
- •Вариант 1,2
- •Вариант 3,4.
- •Контрольная сумма
- •Лабораторная работа № 5 Работа с файлами и строковыми данными
- •Вариант №1
- •Вариант №2
- •Вариант №3
- •Вариант №4
- •Лабораторная работа № 6 Алгоритмы сортировки
- •Лабораторная работа № 7 Картотека. Вариант №1
- •Вариант №2
- •Требования к программе
- •Методические указания
- •01 | Андрей | Смирнов | 26 | Прогр. || TimeWarp | Athlon 2.4 | 512 |
- •02 | Алексей | Гагарин | 26 | Менеджмент || TimeWarp | Evil, Inc. | 3 |
- •03 | Андрей | Комягин | 26 | Доставка || Москва, 3 | Evil, Inc. | 24 | Авто
Лабораторная работа 3 Классы памяти
Данная работа состоит из 2 частей (распределяемых по вариантам), которые должны быть выполнены в виде отдельных функций и модулей, и основной функции main, размещаемой в одном из модулей. Функция main должна демонстрировать работу заданных функций путём печати результатов их выполнения на экран. Режим демонстрации разрабатывается самостоятельно, основным условием является демонстрация всех ключевых моментов, указанных в задании.
Таблица соответствия вариантов и заданий:
|
Вариант |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
|
Задание 1 |
1 |
2 |
3 |
1 |
2 |
3 |
1 |
2 |
3 |
|
Задание 2 |
1 |
1 |
1 |
2 |
2 |
2 |
3 |
3 |
3 |
далее – циклически.
Программа должна состоять из 2 или более программных модулей. В одном и них должна размещаться функция main(), а также функции из первого задания. Во втором модуле размещаются некоторые функции из задания 2.
Создание нескольких модулей подразумевает самостоятельное освоение работы с проектными файлами (добавление, удаление модулей).
Задание 1.
Используя только статические и локальные переменные, создать модули, которые содержат:
-
Функция-счётчик. Возвращает целое значение, увеличивающееся на 1 при каждом вызове. Начальное значение равно 0.
-
Функция-счётчик. Возвращает целое значение, уменьшающееся на 1 при каждом вызове. Начальное значение равно 10. При достижении значения, равного нулю, счётчик должен автоматически сбрасываться, и в следующий раз, при вызове этой функции, она должна вернуть 10.
-
Функция-защёлка. Позволяет определить, первый ли это вызов функции за всю работу программы. Возвращает 1, если это первый вызов, и 0, если не первый.
Задание 2.
Используя глобальные переменные, обеспечить передачу информации между функциями первого (main) и второго модулей. Второй модуль должен содержать 2 функции: add и sub, вычисляющих соответственно сумму и разность 2 входных данных: x и y. Точные определения функций (в зависимости от варианта) приведены ниже:
-
void Add(int x, int y);
int Sub();
-
int Add(int x);
void Sub(int y);
-
int Add(int x, int y);
void Sub();
Указания: Входные данные и результат вычислений передаются различным образом в зависимости от варианта. Если возможна передача данных как обычных аргументов функции или возможно получить результат вычислений в виде возвращаемого функцией значения, нужно использовать этот метод. В противном случае, необходимо создать дополнительные глобальные переменные и пользоваться ими как временным хранилищем для передачи информации.
Например, в функцию int Func(int x, int y); данные можно передать в виде аргументов, а результат считать непосредственно как результат выполнения функции:
Result = Func(var1, var2);
Напротив, в случае функции void Func2(int x), мы можем передать в неё только один из аргументов, и не можем непосредственно считать результат (так как функция имеет тип void). В этом случае можно создать глобальные переменные, например Y и Res, и воспользоваться тем фактом, что, при правильном объявлении, область действия обеих этих переменных распространяется на функции обоих модулей, таким образом, в одной из функций мы можем записать значение в переменную, а в другой – считать.
Программа, демонстрирующая работу второго задания, должна обеспечивать ввод 2 значений с клавиатуры и выводить результат вычислений, полученный с помощью функций второго модуля.
Литература: материалы лекций «Литералы. Типы данных. Переменные. Выделение памяти.»(3), «Операторы»(5), «Функции ввода-вывода»(10). Справочный материал MSDN.
