Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

Подписываем
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Предоплата всего
Подписываем
Практическая работа №10. Шахматная задача
1. Цель работы
Целью практической работы является получение навыков в работе с арифметическими выражениями, циклическими инструкциями.
Цикл с параметром. Формат оператора цикла с параметром:
for (выражение_1; выражение_2; выражение_3) оператор;
Выражение 1 выполняется только один раз в начале цикла. Обычно оно определяет начальное значение параметра цикла (инициализирует параметр цикла). Выражение 2 — это условие выполнения цикла. Выражение 3 обычно определяет изменение параметра цикла, оператор — тело цикла, которое может быть простым или составным. В последнем случае используются фигурные скобки.
Алгоритм выполнения цикла for представлен на блок-схеме:
Обратите внимание на то, что после вычисления выражения 3 происходит возврат к вычислению выражения 2 — проверке условия повторения цикла.
С помощью цикла for нахождение N! можно организовать следующим образом:
F=l;
for(i=l; i<=N; i++) F=F*i;
Используя операцию «запятая», можно в выражение 1 внести инициализацию значений сразу нескольких переменных:
for(F=l, i=l; i<=N; i++) F=F*i;
Некоторых элементов в операторе for может не быть, однако разделяющие их точки с запятой обязательно должны присутствовать. В следующем примере инициализирующая часть вынесена из оператора for:
F=l;
i=l;
for(; i<=N; i++) F=F*i;
Ниже показан еще один вариант вычисления N!. В нем на месте тела цикла находится пустой оператор, а вычислительная часть внесена в выражение 3.
for(F=l, i=l; i<=N; F=F*i, i++);
Этот же оператор можно записать в следующей форме:
for(F=l, i=l; i<=N; F*=i++);
Известна знаменитая легенда об изобретателе шахматной игры. Царь Шерам, которому была преподнесена в подарок эта игра, захотел наградить изобретателя Сете и разрешил ему выбрать награду самому. «Дай мне, - сказал мудрец, - только несколько пшеничных зерен. Причем ровно столько, сколько поместится на шахматной доске, если ты на первую клетку положишь одно зернышко, то на вторую – два зернышка и так далее: на каждую клетку вдвое больше, чем на предыдущую». Царь был рассержен из-за этой слишком скромной просьбы мудреца. Но как же он был удивлен, когда ему не хватило запасов пшеницы всей Индии, чтобы ее выполнить.
Математики царя Шерама подсчитали, что количество зерен на последней клетке выражается не поддающимся воображению гигантским числом. Зерно занимало бы два амбара длиной от Земли до Солнца.
Составьте блок-схему алгоритма, который бы определил, сколько нужно пшеницы. Тонна пшеницы состоит из 4000000 зерен.
Составьте программу.
PAGE 2