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 экз.
Себестоимость экземпляра руб.
Типография