В таблице Arr хранятся данные о количестве учеников в различных секциях (Arr [1] – количество учеников в первой секции, Arr [2] – во второй и т. д.). Определите, какое число будет напечатано в результате работы следующей программы. Var k, m: integer; Arr: array[1..10] of integer;
Begin
Arr[1] := 7; Arr[2] := 9; Arr[3] := 10; Arr[4] := 5; Arr[5] := 6; Arr[6] := 7;
Arr[7] := 9; Arr[8] := 8; Arr[9] := 6; Arr[10] := 7;
m := 0;
for k := 1 to 10 do
if Arr[k] < 6 then begin
m := m + 1 end;
writeln(m)
End.
1) Как называется структура, описанная именем Arr?
2) Что означают числа от 1 до 10, указанные в квадратных скобках []?
3) Укажите номера элементов, которые равны 7?
4) Какому значению равен 7 элемент, 10 элемент?
5) Сформулируйте на русском языке конструкцию:
if Arr[k] < 6 then m := m + 1;
6) Сколько элементов массива соответствуют этому условию?
7) Какое значение переменная m будет иметь в конце программы?
Код ниже.
Объяснение:
Для подсчета длины отрезка, нужно знать 4 координаты. А(x;y) и B(x;y).
По формуле L = √(X²+Y²) = √ ((Xb-Xa)²+(Yb-Ya)²) мы можем подсчитать длину любого отрезка по известным координатам.
Код:
import math
a = input('Входные данные: ')
s = a.split(' ')
print("Выходные данные: ",math.sqrt(math.pow(float(s[2]) - float(s[0]),2)+math.pow(float(s[3]) - float(s[1]),2)))
Импортируем модуль math для упрощения жизни и себе и людям. Задаем переменную к которой присваиваем значения введенные с клавиатуры в таком формате (Xa(пробел)Ya(пробел)Xb(пробел)Yb(пробел)) например у нас есть 2 точки А с координатами (1;2) и B(3;4) тогда ввод будет такой: "1 2 3 4"
Дальше преобразуем строку в список с разделителем "пробел"
И дальше идет формула, которую записал выше. Float вместо Int потому что значения могут быть с плавающей точкой.
ответ:Для начала в onCreate() уберите эту строку:
chatContainer.clear()
Нет смысла чистить только созданный пустой список. Дальше я бы вам советовал следующим образом. Для начала при объявлении адаптера не нужно сразу ему передавать список:
lateinit var adapter: RecyclerChatAdapter
Дальше как только ваш список заполнен вы это проверяете в цикле и инициализируете адаптер:
when {
documentSnapshot != null -> {
for (dc in documentSnapshot.documentChanges) {
when (dc.type) {
DocumentChange.Type.ADDED -> {
val chat = dc.document.toObject(Chat::class.java)
chatContainer.add(chat) // Добавление данных в Recycler
if(chatContainer.size == documentSnapshot.documentChanges)
{
adapter = RecyclerChatAdapter(chatContainer)
}
}
}
}
}
}
и дальше сеттинг адаптера как и было у вас в вашем примере. Так же второй вариант как решить вашу проблему, но не уверен что получится, можно в цикле там где вы выводите сообщение в лог обновлять адаптер:
for (i in chatContainer) {
adapter.notifyDataSetChanged()
}