|
Программирование >> Структурное программирование
напечатайте его, но только в том случае, если оно не дублирует ранее прочитанные числа. Предусмотрите наихудший случай , когда все 20 чисел различны. Используйте наименьший возможный массив для решения этой задачи. 4.16. Укажите, в каком порядке будут обнуляться элементы двумерного массива sales размером 3 на 5 следуюш;им фрагментом программы: for (row = 0; row < 3; row++) for (column = 0; column < 5; column++) sales[row] [column] = 0; 4.17. Напишите программу, моделирующую бросание двух костей. Программа должна использовать rand для бросания первой кости и затем снова rand для метания второй кости. Затем должна по дочитываться сумма двух значений. Замечание: поскольку каждая кость может показать целое значение от 1 до 6, то сумма двух чисел может варьироваться от 2 до 12 с наиболее частым значением суммы 7 и наименее частыми значениями 2 и 12. Рис. 4.24 показывает 36 возможных комбинаций двух костей. Ваша программа должна выбрасывать две кости 36000 раз. Используйте одномерный массив, чтобы подсчитывать, сколько раз выпадает каждая возможная сумма. Напечатайте результат в табулированном формате. Определите приемлемость полученных результатов: поскольку существует шесть возможных способов выпадения 7, приблизительно в одной шестой части всех случаев бросания должно выпадать 7. Рис. 4.24. 36 возможных исходов бросания двух костей 4.18. Что делает следующая программа? iinclude <iostream.h> int whatlsThis(int [ ], int) ; main () const int arraySize = 10; int a[arraySize] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10] int result = whatlsThis(a, arraySize); cout << Результат равен result << endl; return 0; int whatlsThis(int b[ ], int size) { if (size == 1) return b[0]; else return b[size - 1] + whatlsThis(b, size - 1); 4.19. Напишите программу, которая выполняет 1000 игр в крепе и отвечает на следуюш;ие вопросы: a) Сколько игр выиграно при первом бросании, при втором бросании, ... , при двадцатом бросании, после двадцатого бросания? b) Сколько игр проиграно при первом бросании, при втором бросании, ... , при двадцатом бросании, после двадцатого бросания? c) Каковы шансы на выигрыш в крепе? (Замечание: вы должны учесть, что крепе - одна из наиболее популярных игр в казино. Как вы думаете, что бы это значило?) d) Какова средняя продолжительность игры в крепе? e) Растут ли шансы выигрыша с увеличением продолжительности игры? 4.20. (Система резервирования билетов авиакомпании) Небольшая авиакомпания купила компьютеры для своей новой автоматизированной системы резервирования. Вас попросили запрограммировать новую систему. Вы должны написать программу выделения мест на каждый полет единственного самолета (вместимость: 10 мест). Ваша программа должна отображать следующее меню альтернатив: Введите, пожалуйста, 1 для курящих Введите, пожалуйста, 2 для некурящих Если клиент ввел 1, ваша программа должна выделять место в салоне для курящих (места 1-5). Если клиент ввел 2 , ваша программа должна выделять место в салоне для некурящих (места 6-10). Ваша программа должна также напечатать посадочный талон, указывающий номер места клиента и тип салона в самолете - для курящих или некурящих. Используйте одномерный массив для представления схемы расположения мест в самолете. Присвойте всем элементам массива нулевые начальные значения, чтобы показать, что все места свободны. Как только место выделено пассажиру, устанавливайте соответствующие элементы массива в состояние 1, чтобы показать, что место уже занято. Ваша программа, конечно, никогда не должна выделять уже занятые места. Если салон для курящих заполнен, ваша программа должна спросить у клиента, приемлем ли для него салон для некурящих. Если да, то сделайте выделение соответствующего места. Если нет, то напечатайте сообщение Следующий полет состоится через три часа . 4.21. Что делает следующая программа? iinclude <iostream.h> void someFunction(int [ ], int); main () const int arraySize = 10; int a[arraySize] = {32, 27, 64, 18, 95, 14, 90, 70, 60, 37}; cout << Значения массива: << endl; someFunction(a, arraySize); cout << endl; return 0; void someFunction(int b[], int size) { if (size > 0) { someFunction(sb[1] , size - 1); cout<< b[0] << ; 4.22. Используйте двумерный массив для решения следующей задачи. Компания имеет четырех продавцов (их номера с 1 по 4), которые продают 5 разных продуктов (их номера с 1 по 5). Раз в день каждый продавец заносит в регистрационную карточку (отдельную для каждого типа проданных продуктов) следующие сведения: 1. Номер продавца. 2. Номер продукта. 3. Общую выручку в долларах за проданный в этот день продукт. Таким образом, каждый продавец заполняет от О до 5 карточек продажи в день. Допустим, что в наличии имеется информация обо всех регистрационных карточках за последний месяц. Напишите программу, которая считывает всю эту информацию о продажах за последний месяц и суммирует общую продажу по продуктам и по продавцам. Все итоги должны храниться в двумерном массиве sales. После обработки всей информации за последний месяц, напечатайте результат в табулированном формате, представляя в каждом столбце отдельного продавца и в каждой строке отдельный продукт. Общий итог каждой строки должен давать сумму продаж каждого продукта за последний месяц; общий итог каждого столбца должен давать сумму продаж каждого продавца за последний месяц. Ваши табулированные выходные данные должны включать эти итоги справа от суммируемых строк и внизу суммируемых столбцов. 4.23. {Траектории черепахи) Язык Лого, особенно популярный среди пользователей персональных компьютеров, сделал известной идею траекторий черепахи. Представьте себе механическую черепаху, которая ползает по комнате под управлением программы на С++. Черепаха песет пишущее перо, которое может находиться в одной из двух позиций - нижней или верхней. Если перо в нижней позиции.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки. |