Задание 3
Ученики 8 класса решили пройти квест в музее. Для поиска решения им необходимо решить 6 заданий, которые размещены на 6 различных экспонатах музея. Схема размещения экспонатов представлена на рисунке.
картинка 1.
Направления движения указаны стрелками. Необходимо осуществить движение от экспоната Э1 к экспонату Э5.
Сколько существует различных вариантов маршрута?
Укажите, существует ли маршрут, который позволит посетить все 6 экспонато
Вопрос скорее будет звучать "как много могли съесть толстяки?".
#include <iostream>
using namespace std;
int main() {
int multiplier = 1;
float weightCake = 0;
float t1(0), t2(0), t3(0);
float t1Cakes(0), t2Cakes(0), t3Cakes(0);
cout << "Weight of cake, fat people 1-3: ";
cin >> weightCake; cin >> t1; cin >> t2; cin >> t3;
while(1) {
t1Cakes = multiplier * weightCake * 1;
if(t1Cakes > t1/2) {
cout << multiplier - 1;
break;
}
t2Cakes = multiplier * weightCake * 2;
if(t2Cakes > t2/2) {
cout << multiplier - 1;
break;
}
t3Cakes = multiplier * weightCake * 4;
if(t3Cakes > t3/2) {
cout << multiplier - 1;
break;
}
++multiplier;
}
}
Типовая задача на разбор случаев. Разбирать случаи будем не простым последовательным перечислением, а более сложной конструкцией из вложенных условных операторов.
Решение задачи.
Var a1, b1, c1, {коэффициенты уравнения первой прямой}
a2,b2,c2, {коэффициенты уравнения второй прямой}
x, y : Real; {координаты точки пересечения }
BEGIN
ReadLn( a1, b1, c1);
ReadLn( a2, b2, c2);
If ( (a1=0) and (b1=0) ) or ( (a2=0) and (b2=0) )
then WriteLn( 'это не прямая (прямые). ' )
else
if (a1*b2=a2*b1) and (a1*c2=a2*c1) {условие совпадения}
then WriteLn( 'прямые совпадают.' )
else
if a1*b2 = a2*b1 {условие параллельности}
then WriteLn('прямые параллельны.')
else begin x:=(c1*b2-c2*b1)/(b1*a2-b2*a1);
y:=(c2*a1-c1*a2)/(b1*a2-b2*a1);
WriteLn('координаты точки пересечения :',
' x = ', x : 5 : 2 , ', y = ', y : 5 : 2);
end;
END.