Примеры использования ваших знаний в жизни Время от времени мы будем приостанавливать изучение теории для того, чтобы решать несложные задачи с использованием изученного материала. Это необходимо, ибо у программистов, как и у пианистов память находится на кончиках пальцев. Чем больше программ вы будете писать, тем быстрее и основательнее научитесь работать. Начнем с простейших примеров. Пример №1 Однажды к Александру Македонскому пришел один из его полководцев и потребовал увеличить его личную долю в трофеях, добытых в последней кампании. Зная жадность этого человека, Александр предложил ему следующую "финансовую пирамиду": в первый день полководец получит слиток золота весом всего 10г, во второй день - 20г, в третий - 40г и т.д. Все это золото полководец будет забирать себе до тех пор, пока будет в силах унести очередной слиток. Оцените вес золота, который в конечном итоге окажется у жадного полководца. Предварительные рассуждения. Во-первых легко увидеть, что процедура накопления золота является циклической, т.е. определенный набор действий (увеличить в два раза вес слитка, проверить может ли полководец поднять его, добавить слиток к уже существующей куче) повторяется несколько раз. Цикличекскую структуру можно реализовать одним из трех способов: циклом for, циклом while и циклом do/while. Какой из них выбрать? Для использования цикла for необходимо знать количество повторений. Если вы знакомы с термином "геометрическая прогрессия", то наверняка сможете подсчитать это количество. Если же вам лень заниматься нудными математическими вычислениями, то я рекомедовал бы использовать цикл while или цикл do/while. Критерий выхода из цикла - превышение веса слитка определенного предела. Величина этого предела задается программистом исходя из каких-то своих представлений. Для меня, например вес 80кг является предельным и именно его я и буду использовать в программе. Ниже приведен текст программы со всеми необходимыми пояснениями: // незадачливый полководец #include using namespace std; void main() { const int MAX_WEIGHT=80; // максимальный вес float a=0.01; // вес слитка float sum=0; // суммарный вес золота while(a<=MAX_WEIGHT) { sum+=a; // к куче добавить данный слиток a*=2; // увеличить в два раза вес слитка } cout<<"I have "< #include using namespace std; void main() { const int MAX=10; int i, x, y, solution, resalt=0; srand( (unsigned)time( NULL ) ); for (i=0;i<10;i++) { x=rand()%10+1; y=rand()%10+1; cout<<" next tip: "<>solution; if (solution==x*y) {resalt++; cout<<"correct\n";} } cout<<"Yuor rate is "<