~~~~~~~~~~~~~~~
Программа:
program change;
var
a, b, c, d, changeabcd: integer;
begin
changeabcd := 0;
read(a, b, c, d);
changeabcd := d - (a + b + c);
write(changeabcd);
end.
~~~~~~~~~~~~~~~
Алгоритм:
Шаг 1. Присвоить переменной changeabcd значение 0;
Шаг 2. Ввести a, b, c, d;
Шаг 3. Вычислить changeabcd = d - (a + b + c);
Шаг 4. Вывести changeabcd.
~~~~~~~~~~~~~~~
Блок-схема в прикрепленном скриншоте.
Объяснение:
program change; // Название программы
var
a, b, c, d, changeabcd: integer; // Создание целочисленных переменных:
a, b, c, d - стоимость перчаток, портфеля, галстука и сумма, выделенная на покупку;changeabcd - сдача.begin // Начало программы
changeabcd := 0; // Переменной, хранящую сдачу, присваиваем 0
read(a, b, c, d); // Считываем значения переменных с клавиатуры
changeabcd := d - (a + b + c); // Высчитываем сдачу
write(changeabcd); // Выводим значение переменной changeabcd, хранящей сдачу
end. // Конец программы
Отследить выход человека из беседы можно, проверяя сообщение на наличие ключа action с типом chat_kick_user.
Пример (Python 3.8+):
from vk_api import VkApi
from vk_api.bot_longpoll import VkBotLongPoll, VkBotEventType
ACCESS_TOKEN = '' # Подставьте свой!
GROUP_ID = # Подставьте свой!
vk_session = VkApi(token=ACCESS_TOKEN)
vk = vk_session.get_api()
longpoll = VkBotLongPoll(vk_session, GROUP_ID)
def main():
for event in longpoll.listen():
if event.type == VkBotEventType.MESSAGE_NEW and (action := event.obj['message'].get('action')):
if action['type'] == 'chat_kick_user':
vk.messages.removeChatUser(
chat_id=event.chat_id,
user_id=action['member_id'],
)
if __name__ == '__main__':
main()
Не забудьте, что боту необходимо выдать права администратора беседы