У Ани меньше, чем у Бори, значит: Боря-Аня
У Васи меньше, чем у Ани, значит: Боря-Аня-Вася
У Васи больше, чем у Гали, значит: Боря-Аня-Вася-Галя
У Даши больше, чем у Бори, значит: Даша-Боря-Аня-Вася-Галя
У Даши меньше, чем у Ивана, значит: Иван-Даша-Боря-Аня-Вася-Галя
Иван-32, Даша-16, Боря-8, Аня-4, Вася-2, Галя-1
Самый простой и лбовой вариант, если надо могу написать повеселее
язык Python
import sys
A = [1,2,3,4,5,6,7]
for i in range(len(A)):
for j in range(len(A)):
if i==j: continue
for k in range(len(A)):
if i==k or j ==k: continue
if A[i]+A[j]+A[k]==0:
print "Такие числа есть"
sys.exit()
print "Таких чисел нет"
1. Запись НЕ ВЕРНА.
В операторе цикла <span>for i:= 1 to sqrt(k) do значение, возвращаемое функцией sqrt имеет тип real, а в этом операторе все значения должны приводиться к целочисленному типу. Автоматическое приведение типа real к integer в языке Паскаль невозможно, его нужно осуществлять явно при помощи функции Trunc() или Round().
2. НИ РАЗУ И НИЧЕГО НЕ БУДЕТ НАПЕЧАТАНО. Программа не откомпилируется из-за ошибок, которых в операторе </span><span>if k
write(k); сразу две.
Первая - после k пропущено ключевое слово then.
Вторая состоит в том, что после if должно следовать логическое выражение, а k имеет тип char, но не boolean.
3. ОДИН РАЗ, БУДЕТ ВЫВЕДЕНО True.
В цикле должны быть значения порядкового типа и тип boolean этому требованию удовлетворяет. При входе в цикл f=false, цикл выполняется, затем f=true и цикл завершается. При однократном проходе по циклу выполнится оператор </span><span>g:= not f и g получит значение true. Это значение и будет выведено.</span>