1. Циклы нужны для сокращения количества строк кода, экономии памяти компьютера и нервов программиста в случае, когда необходимо повторять подобные действия много раз.
2. а) должны быть четко обозначены границы переменной, отвечающие за вход и выход из цикла б) необходимо определить, каким образом эта переменная будет изменяться по ходу цикла.
3. В цикле while условие ставится в начале, а в repeat в конце. То есть repeat 100% пройдет хотябы 1 раз, а while может и ни разу.
4. В заголовке ставится условие. Пока оно выдает true, цикл будет повторяться. На счёт предпочтительности сложнее. Я бы сказала, что практически всегда предпочтительнее while, тк за всю свою практику лично мне хорошо если раз 5 пришлось использовать repeat. В общем предпочтительнее всегда использовать while за исключением некоторых очень редких случаев, когда с его помощью невозможно решить поставленную задачу (т.е. необходимо хотябы одно повторение).
Хотя если сравнивать с циклом for, то for чаще всего используется при наращивании управляющей переменной численного типа. То есть while часто используется, когда управляющая переменная булева типа.
5. Описывается прямо в теле цикла.
6. Тут мне сложно ответить. Я так понимаю, у вас речь про Pascal, а я могу только в C++ и Java. В этом вопросе вроде есть различия.