Создание файла с результатами препроцессорной обработки из командной строки

 

1. Откройте окно Командная строка Visual Studio. Для этого нажмите кнопку Пуск, последовательно выберите пункты: Все программы, Microsoft Visual Studio, Visual Studio Tools (Средства Visual Studio), а затем выберите пункт Visual Studio Command Prompt (Командная строка Visual Studio).

2. Перейдите в папку, в которой находится файл с текстом программы. Пусть файл pr1.cpp с текстом программы находится в папке C:\Cprograms. Для того, чтобы сделать эту папку текущей, в командной строке введите cd \Cprograms, а затем просмотрите содержимое папки, введя команду dir:

 

 

3. Для запуска компилятора в командной строке введите:

Cl /EP /P /C pr1.cpp

После выполнения команды в папке C:\Cprograms создаётся файл pr1.i с результатами препроцессорной обработки программы:

 

 

В этом файле сохраняются комментарии и не добавляются директивы #line. Просмотреть содержимое данного файла можно с помощью текстового редактора.

 

Препроцессорная обработка в GNU C++

 

Опция -E указывает драйверу g++ пропустить исходный код через препроцессор CPP и не производить никаких дальнейших действий. По следующей команде будет выполнена последова­тельная предобработка исходного кода из файла prim.cpp и выда­ча результата предобработки на стандартное устройство вывода:

$ g++ -E prim.cpp

Расширение имени файла, принятый в GCC для результатов предобработки – .ii. Такой файл может быть выработан при использовании опции -o, например, так:

$ g++ -E prim.cpp -o prim.ii

ПРИЛОЖЕНИЕ 3. Использование генератора случайных чисел

 

Для генерации случайных чисел можно использовать сред­ства стандартной библиотеки, описанные в заголовке stdlib.h: функцию rand() и константу RAND_MAX.

 

Функция rand() при каждом обращении возвращает псевдо­случайное значение типа int из диапазона от 0 до RAND_MAX.

 

RAND_MAX – препроцессорная константа, определяющая предельное значение псевдослучайных целых чисел, формируе­мых функцией rand(). Конкретное значение RAND_MAX зависит от реализации (конкретного компилятора), но не может быть менее 32767 (требование Стандарта языка С).

 

Пусть надо получить целое случайное число из диапазона от a до b (a < b). Тогда его можно вычислить по формуле:

 

rand()*(b - a)/RAND_MAX + a

 

Например, надо получить целое случайное число из диапазона от -1000 до +1000. Его можно вычислить по формуле:

 

rand()*(1000 + 1000)/RAND_MAX - 1000

 

Например, надо получить целое случайное число из диапазона от 0 до 200. Тогда его можно вычислить по формуле:

 

rand()*200/RAND_MAX

 

Например, надо получить целое случайное число из диапазона от 5 до 200. Тогда его можно вычислить по формуле:

 

5 + rand()*195/RAND_MAX

 

Вещественное случайное число из диапазона от -1000 до +1000 можно вычислить по формуле:

 

(1000 + 1000)*(double)rand()/RAND_MAX - 1000

Функция rand генерирует псевдослучайные числа. Повтор­ный вызов rand производит последовательность чисел, которые кажутся случайными. Но одна и та же последовательность чисел повторяется при каждом новом запуске программы. Для того, чтобы при каждом выполнении программы вырабатывались разные последовательности случайных чисел, необходимо предварительно выполнить рандомизацию, которая реализуется с помощью стандартной библиотечной функции srand.

 

Функция srand () получает целый аргумент типа unsigned и при каждом выполнении программы задаёт начальное число, которое функция rand() использует для генерации последова­тельности случайных чисел. Например,

 

...

int n;

cin >> n; // Ввод числа с клавиатуры

srand(n);

...

 

Если необходимо рандомизировать, не вводя каждый раз начальное число с клавиатуры, можно использовать такой вызов функции:

 

srand(time(NULL));

 

При этом для автоматического получения начального числа компьютер считывает показания системных часов. Функция time(NULL) (для её использования необходимо подключить заголовочный файл time.h или ctime) возвращает текущее «календарное время» в секундах, которое преобразуется в беззнаковое целое число и используется как начальное значение в генераторе случайных чисел. Поскольку системное время при различных запусках программы будет разное, функция rand() будет генерировать различные последовательности случайных чисел.

 

 

РЕКОМЕНДУЕМАЯ ЛИТЕРАТУРА

1. Березин Б.И., Березин С.Б. Начальный курс С и С++. – М.: Диалог-МИФИ, 2012. – 288 с.

2. Гриффитс А. GCC. Настольная книга пользователей, программистов и системных администраторов. –К.: ООО «ТИД ДС», 2004. – 624 с.

3. Дейтел Х.М., Дейтел П.Дж. Как программировать на С++. –М.: Бином-Пресс, 2011. – 1456 с.

4. Клюшин Д.А. Полный курс C++. Профессиональная работа. – М.: Издательский дом «Вильямс», 2004. – 672 с.

5. Павловская Т.А. С/С++. Программирование на языке высокого уровня. Учебник. – СПб.: Питер, 2013. – 464 с.

6. Павловская Т.А., Щупак Ю.А. С/С++. Структурное и объектно-ориентированное программирование. Практикум. – СПб.: Питер, 2011. – 352 с.

7. Подбельский В. В., Фомин С. С. Курс программирования на языке Си. – М.: ДМК Пресс, 2012. – 384 с.

8. Подбельский В.В. Практикум по программированию на языке Си. Учебное пособие.– М.: Финансы и статистика, 2004. – 576 с.

9. Подбельский В.В. Стандартный Си++. Учебное пособие. – М.: Финансы и статистика, 2008. – 688 с.

10. Прата С. Язык программирования С++. Лекции и упражне­ния. – М.: Издательский дом «Вильямс», 2012. – 1244 с.

11. Страуструп Б. Программирование: принципы и практика использования С++. – М.: Издательский дом «Вильямс», 2011. – 1238 с.

12. Хортон А. Visual C++ 2010. Полный курс. – М.: Издательский дом «Вильямс», 2011. – 1206 с.

13. Шилдт Г. C++: базовый курс. – М.: Издательский дом «Вильямс», 2012. – 624 с.

14. Шилдт Г. Полный справочник по C++. – М.: Диалектика, Вильямс, 2012. – 795 с.

СОДЕРЖАНИЕ

 

Практическое занятие 1. Работа в среде Microsoft Visual Studio. 3

Практическое занятие 2. Работа с компилятором GCC(g++) и редактром Emacs. 29

Практическое занятие 3. Операции и выражения. Линейные программы. 45

Практическое занятие 4. Разветвляющиеся алгоритмы. 58

Практическое занятие 5. Организация циклов. 73

Практическое занятие 6. Указатели. Одномерные массивы в языке С++. 84

Практическое занятие 7. Двумерные массивы. Организация работы с динамической памятью 96

Практическое занятие 8. Структуры. Форматный ввод/вывод данных. 113

Практическое занятие 9. Функция. Способы передачи параметров в функцию. 132

Практическое занятие 10. Перегрузка функций. Шаблоны функций. 150

Практическое занятие 11. Препроцессорные средства языков С и С++. 167

Практическое занятие 12. Поразрядные операции. 182

Практическое занятие 13. Пространства имен. 207

ПРИЛОЖЕНИЕ 1. Простые алгоритмы сортировки одномерных массивов. 215

ПРИЛОЖЕНИЕ 2. Создание файла с результатами препроцессорной обработки в среде Visual Studio 219

ПРИЛОЖЕНИЕ 3. Использование генератора случайных чисел. 222

РЕКОМЕНДУЕМАЯ ЛИТЕРАТУРА.. 224

 

Всего пронумеровано 228 стр.

Подписано к печати

Авт.л. Усл.печ.л.

Заказ № Тираж 45 экз.

Себестоимость экземпляра руб.

 

 

Типография


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: