ПРАКТИЧЕСКАЯ ЧАСТЬ. Пример 1. Рассмотрим пример создания проекта в Microsoft Visual Studio 2010, состоящего из одного заголовочного файла (например
Пример 1. Рассмотрим пример создания проекта в Microsoft Visual Studio 2010, состоящего из одного заголовочного файла (например, hfile.h) и двух подключаемых функций, созданных программистом (например, degree(), print()). В файле myfile3.c поместим функцию degree(), а функцию print() отправим в myfile2.c. Файл с главной функцией создаваемого проекта озаглавим как main.c. При этом файлы hfile.h, myfile3.c и myfile2.c разместим на другом диске, например D:. В качестве примера запрограммируем решение следующей задачи. Сформировать матрицу, состоящую из строк. Число столбцов равно k. Cтолбцы матрицы заполняются +1 или –1 по степеням двойки. То есть первый столбец заполняется +1, –1, +1, –1, +1, –1 и т. д., второй – +1, +1, –1, –1, +1, +1, –1, –1 и т. д., третий – +1, +1, +1, +1, –1, –1, –1, –1 и т. д. Эту матрицу называют матрицей планирования эксперимента типа . Ее расчет должен выполняться в одном файле, а печать результата – в другом, при этом результат можно записать в текстовый файл. В файле main.c происходит обращение к созданным функциям. Чтобы получить число +1 или –1, следует использовать возведение в степень числа –1. Для нечетной степени получим –1, а для четной – +1. Разработаем специальную функцию возведения целого числа в целую степень. Для вывода результата на консоль или в файл создадим свою функцию. Программный код решения примера
Подключение файлов сделано в двух местах: в главной функции main() и в заголовочном файле hfile.h. При этом прототипы функций не прописаны. Заголовочный файл hfile.h «выгружает» содержимое файлов myfile3.c и myfile2.c перед главной функцией main(), поэтому в теле функции можно обращаться к функциям degree() и print(). Первая предназначена для возведения целого числа в степень, она формирует матрицу планирования (с помощью указателя *PTR) и вывода значений матрицы на консоль и (или) в текстовый файл. Важное значение имеет очередность подключения файлов myfile3.c и myfile2.c. Следует обратить внимание на синтаксис: заключение в двойные ковычки имени текстового файла data.txt. Функция ceil() возвращает наименьшее целое (представленное в виде значения с плавающей точкой), которое больше своего аргумента или равно ему [2]. Она включена на тот случай, если пользователь введет нецелое число. Возможный результат выполнения программы при выводе искомой матрицы на консоль показан на рис. 17.4. Задание 1 1. Проверьте работу программ при записи результата в файл. В качестве имени текстового файла примите compX.txt, где Х – номер компьютера, на котором выполняется лабораторная работа. 2. В файле hfile.h поменяйте местами подключаемые файлы. Добавьте необходимые изменения, чтобы программа работала корректно (без предупреждений). 3. Вместо разработанной функции degree() примените стандартную функцию pow(). Сравните полученные результаты. 4. В программу добавьте изменения для вывода матрицы планирования при зеркальном отображении столбцов. 5. Дополните программу запросом знак единицы в первом столбце матрицы планирования. 6. В матрицу планирования добавьте в качестве первого столбца массив положительных единиц, т. е. +1. Пример 2. Написать программу вывода на консоль содержимого текстового файла, расположенного в заданном каталоге, оформить вывод в виде отдельного файла. Предположим, что программный проект расположен на диске Е:\Project_C, текстовый файл находится на диске D:\data16.txt. Пусть содержимое текстового файла будет следующим: 1, 2, 3, 4, 5
|