|
Программирование >> Структурное программирование
long double double float unsigned long int (синоним unsigned long) long int (синоним long) unsigned int (синоним unsigned) unsigned short int (синоним unsigned short) short int (синоним short) unsigned char char Рис. 3.5. Иерархия преобразований встроенных типов данных 3.7. Заголовочные файлы Каждая стандартная библиотека имеет соответствующий заголовочный файл, содержащий прототипы всех функций библиотеки и объявления различных типов данных и констант, которые используются этими функциям. На рис. 3.6 в алфавитном порядке перечислены заголовочные файлы стандартной библиотеки С ANSI/ISO, которые можно включать в программы на C-I~f-. Термин макрос , который несколько раз использован на рис. 3.6, подробно обсуждается в главе 17 Препроцессор . Различные специальные заголовочные файлы C-f-f- мы обсудим в этой книге позже. Программист может сам создавать требующиеся ему заголовочные файлы. Заголовочные файлы, определяемые программистом, также должны иметь расширение .h. Заголовочные файлы, определяемые программистом, могут быть включены с помощью директивы препроцессора #include. Например, заголовочный файл square.h может быть включен в нашу программу директивой #include square.h В начале программы. В разделе 17.2 представлена дополнительная информация о включении заголовочных файлов. 3.8. Генерация случайных чисел Теперь мы предпримем краткую, но, надеемся, увлекательную экскурсию в популярную область программирования, а именно в моделирование и игры. В этом и следующем разделах мы как следует разберемся в структурированных игровых программах, которые включают сложные функции. Эти программы используют большинство из изученных нами управляющих структур. Типы данных
Рис. 3.6. Заголовочные файлы стандартной библиотеки Есть нечто такое в атмосфере казино с азартными играми, что подвигает людей любого склада проматывать деньги на плюшевых столах красного дерева или у одноруких бандитов. Это - элемент случайности, возможность превратить карманные деньги в истинное богатство. Элемент случайности может быть введен в компьютерные приложения с помощью функции rand из стандартной библиотеки С. Рассмотрим следующий оператор: i = ranci () ; Функция rand генерирует целое число в диапазоне между О и RAND MAX (символическая константа, определенная в заголовочном файле <stdlib.h>). Значение RAND MAX должно быть по меньшей мере равно 32767 - максимальное положительное значение двухбайтового (т.е. 16-би- Сдвинутые, масштабированные целые числа, полученные по закону 1 + rand() % 6 #include <iostream.h> #include <iomanip.h> #include <stdlib.h> main() for (int i = 1; i <= 20; i++) { cout setw (10) 1 + randO % 6; if (i % 5 == 0) cout << endl; return 0; 5 5 3 5 5 2 4 2 5 5 5 3 2 2 1 5 14 6 4 Рис. 3.7. Сдвинутые масштабированные целые числа, полученные по закону 1 -Ь randO % 6 тового) целого числа. Программы, представленные в этом разделе, были проверены на системе с максимальным значением RAND MAX, равным 32767. Если rand действительно вырабатывает случайные целые число, то при каждом вызове rand результирующее число имеет равную вероятность оказаться любым целым, лежащим между О и RAND MAX. Диапазон значений, которые вырабатываются непосредственно функцией rand, отличается от диапазонов, которые требуются в специальных приложениях. Например, программа, моделирующая бросание монеты, требует только двух значений: О для орла и 1 для решки . Программе, моделирующей метание кости с шестью гранями, должны бы потребоваться случайные целые числа в диапазоне от 1 до 6. Программа, которая случайным образом определяет тип следующего космического корабля (из четырех возможных), пересекающего горизонт в видеоигре, должна требовать случайные целые числа в диапазоне от 1 до 4. Чтобы продемонстрировать rand, давайте разработаем программу моделирования 20 бросаний шестигранной игральной кости с печатью результата каждого бросания. Прототип функции rand можно найти в <stdlib.h>. Для того, чтобы выработать целые числа в диапазоне от О до 5, используем операцию вычисления остатка % в сочетании с rand: rand О % 6 Это называется масштабированием. Число 6 называется масштабирующим коэффициентом. Затем мы сдвигаем диапазон чисел, добавляя 1 к полученному результату. Рис. 3.7 подтверждает, что результаты находятся в диапазоне от 1 до 6.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |