Типовая задача на разбор случаев. Разбирать случаи будем не простым последовательным перечислением, а более сложной конструкцией из вложенных условных операторов.
Решение задачи.
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.
Поделитесь своими знаниями, ответьте на вопрос:
Старая стенаВдоль границы двух государств когда-то была построена новая стена. Она была собрана из одинаковых кубических блоков и ее высота по всей длине была одинаковой и равнялась 5 блокам. Много лет этого было достаточно, чтобы удержать соседние королевства от нападения друг на друга. Однако инспекция, посланная одним из королей к стене, обнаружила, что во многих вертикальных рядах один или несколько верхних блоков разрушились или упали.Инспекция составила отчет, в котором для каждого вертикального ряда блоков указана его нынешняя высота. Военное министерство сразу же заинтересовалось во где находится самый уязвимый участок стены? Участок стены является уязвимым, если он целиком состоит из подряд идущих рядов, высота которых меньше 5, и ограничен с обеих сторон либо границами стены, либо рядами блоков максимальной высоты.принимаю
a = int(input())
A = list(map(int, input().split()))
m = [[0, 0, 0]]
for i in range(a):
if A[i] != 5:
n = []
n.append(i + 1)
x = 0
while A[i] != 5:
x += 5 - A[i]
i += 1
if i == a:
break
n.append(i)
n.append(x)
if n[2] > m[0][2]:
m = [[0, 0, 0]]
m[0] = n
elif n[2] == m[0][2]:
m.append(n)
for row in m:
print(*row)
Объяснение:
a = int(input())
A = list(map(int, input().split()))
m = [[0, 0, 0]]
for i in range(a):
if A[i] != 5:
n = []
n.append(i + 1)
x = 0
while A[i] != 5:
x += 5 - A[i]
i += 1
if i == a:
break
n.append(i)
n.append(x)
if n[2] > m[0][2]:
m = [[0, 0, 0]]
m[0] = n
elif n[2] == m[0][2]:
m.append(n)
for row in m:
print(*row)