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() Не забудьте, что боту необходимо выдать права администратора беседы
Const nmax=20;var a:array[1..nmax,1..nmax] of integer; m,n,i,j,k,l,p:byte;begin randomize;repeatwrite('Количество строк до ',nmax,' n=');readln(n);until n in [1..nmax];repeatwrite('Количество столбцов до ',nmax,' m=');readln(m);until m in [1..nmax];writeln('Исходная матрица:');for i:=1 to n do begin for j:=1 to m do begin a[i,j]:=random(100); write(a[i,j]:4); end; writeln; end;writeln;k:=0;{наличие нужного столбца}j:=1;while(j<=m) and(k=0) do{идем по столбцам} begin p:=0;{наличие совпадений} for i:=1 to n-1 do{идем вниз по столбцу} for l:=i+1 to n do{смотрим впереди} if a[i,j]=a[l,j] then p:=1;{если одинаковые, фиксируем} if p=1 then k:=1{есть столбец} else j:=j+1;{нет, смотрим следующий} end;if k=1 then write('Столбец с одинаковыми элементами есть')else write('Столбца с одинаковыми элементами нет');readlnend.
Отследить выход человека из беседы можно, проверяя сообщение на наличие ключа 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()
Не забудьте, что боту необходимо выдать права администратора беседы
randomize;repeatwrite('Количество строк до ',nmax,' n=');readln(n);until n in [1..nmax];repeatwrite('Количество столбцов до ',nmax,' m=');readln(m);until m in [1..nmax];writeln('Исходная матрица:');for i:=1 to n do begin for j:=1 to m do begin a[i,j]:=random(100); write(a[i,j]:4); end; writeln; end;writeln;k:=0;{наличие нужного столбца}j:=1;while(j<=m) and(k=0) do{идем по столбцам} begin p:=0;{наличие совпадений} for i:=1 to n-1 do{идем вниз по столбцу} for l:=i+1 to n do{смотрим впереди} if a[i,j]=a[l,j] then p:=1;{если одинаковые, фиксируем} if p=1 then k:=1{есть столбец} else j:=j+1;{нет, смотрим следующий} end;if k=1 then write('Столбец с одинаковыми элементами есть')else write('Столбца с одинаковыми элементами нет');readlnend.