Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.90/29: Рейтинг темы: голосов - 29, средняя оценка - 4.90
1 / 1 / 0
Регистрация: 30.03.2020
Сообщений: 42

Классы и экземпляры

02.10.2020, 11:26. Показов 6083. Ответов 22

Студворк — интернет-сервис помощи студентам
Есть класс человека, кота и дома. Создаем каждого по одному экземпляру.

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
class Cat:
    def __init__(self, name):
        self.name = name
        self.cat_fullness = 50
        self.house = None
 
 
class Man:
 
    def __init__(self, name):
        self.name = name
        self.fullness = 50
        self.house = None
 
#Человек заезжает в дом так
    def go_to_the_house(self, house):
        self.house = house
        self.fullness -= 10
        cprint(f'{self.name} въехал в дом', color='cyan')
 
class House:
 
    def __init__(self, number):
        self.number = number
        self.food = 10
        self.money = 0
        self.cat_food = 0
        self.mud = 0
 
 
citizen = Man(name='Петя')
cat = Cat(name="Пушок")
citizen.go_to_the_house(house=my_home)
Т.к. Кот сам не может заехать в дом, Человек должен это сделать.
Нужно создать метод у Человека, который присвоит один единственный экземпляр Дома одному Коту. Как такое сделать?
На всякий случай прикрепил весь код проекта, но в нем кот сам заехал в дом.
Вложения
Тип файла: zip 03_man_ans_cat.zip (2.0 Кб, 6 просмотров)
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.10.2020, 11:26
Ответы с готовыми решениями:

классы, экземпляры, протоколы, и.т.п
Здравствуйте, хочу поподробней почитать про классы, экземпляры, протоколы, и.т.п , где есть доступная информация на понятном языке ? ...

Как создавать классы, структуры и их экземпляры?
Объясните вкратце пожалуйста, как создавать классы и самое важное их объекты. Читаю msdn уже 5-ый раз всё никак понять не могу. Заранее...

Проверить код, правильно ли определены классы, экземпляры, методы, возвращены данные?
Проверьте код.Правильно ли я сделал?Просто изучаю Java,застрял на ООП.Правильно ли я определил классы,экземпляры,методы,вовзратил...

22
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
09.10.2020, 15:28
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от VetalM Посмотреть сообщение
подскажите, зачем в дочернем классе Man_with_cat дублировать методы класса Man? Вроде там можно добавить только методы take_cat_in_the_house, cat_shopping.
Вы правы. Это моя ошибка, из за того, что пример большой и я зашился занимаясь им. Убрав лишнее из суперкласса я забыл убрать лишнее из подкласса. Вот исправленный вариант. Хотя в нем еще нужно подправить методы инициализации __init__() . Но это я сделаю позже, так как пример и в таком виде работает.
Кликните здесь для просмотра всего текста
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
from random import randint
 
class Man:
    # класс людей
    def __init__(self, name, fullness = 50, house = None):
        self.name = name
        self.fullness = fullness      # сытость-показывает запас здоровья
        self.house = house            # дом (экземпляр класса)
 
    def __str__(self):
        return f"{self.name}, сытость: {self.fullness}"  # будет использоваться для print(inst)
                                                         # где inst, является экземпляром класса
    def eat(self):
        # прием пищи (еда) для востановления сытости
        if self.house.food >= 10:
            print(f'{self.name} поел')
            self.fullness += 10
            self.house.food -= 10
        else:
            print(f'{self.name} нет еды')
 
    def work(self):
        # выполнение работы (при наличии постоянной работы)
        print(f'{self.name} сходил на работу')
        self.house.money += 150
        self.fullness -= 10
 
    def watch_tv(self):
        # просмотр телевизора
        print(f'{self.name} смотрел телевизор')
        self.house.money -= 10
        self.fullness -= 10
 
    def clean(self):
        # уборка в доме
        print(f'{self.name} убрал грязь в доме')
        self.house.mud = 0
        self.fullness -= 10
 
    def shopping(self):
        # поход в магазин за продуктами
        if self.house.money >= 50:
            print(f'{self.name} сходил в магазин за едой')
            self.house.money -= 50
            self.house.food += 50
        else:
            print(f'{self.name} деньги кончились!')
 
    def go_to_the_house(self, house):
        # заселение в дом
        self.house = house
        self.fullness -= 10
        print(f'{self.name} въехал в дом номер {self.house.number}')
 
class House:     # дом хранит информацию о наличие ресурсов
    def __init__(self, number, food = 0, money = 0, mud = 0):
        self.number = number
        self.food = food
        self.money = money
        self.mud = mud
 
    def __str__(self):
        return f'В доме номер "{self.number}" еды: {self.food}, денег: {self.money}, грязь: {self.mud}'
 
class Cat:         # класс котов
    def __init__(self, name, cat_fullness = 50, house = None):
        self.name = name
        self.cat_fullness = cat_fullness     # сытость (здоровье кота)
        self.house = house                   # дом домашнего кота
 
    def __str__(self):
        return f"{self.name}, сытость: {self.cat_fullness}"
 
    def scratch_walls(self):
        print(f'{self.name} поцарапал стены')
        self.house.mud += 50
        self.cat_fullness -= 20
 
    def sleep(self):
        print(f'{self.name} поспал')
        self.cat_fullness -= 10
 
    def eat(self):
        if self.house.cat_food >= 10:
            print(f'{self.name} поел')
            self.cat_fullness += 20
            self.house.cat_food -= 10
        else:
            self.cat_fullness -= 10
            print(f'{self.name} нет еды')
 
class Man_with_cat(Man): # класс людей имеющих котов
 
    def __init__(self, name, fullness, house):
        self.name = name
        self.fullness = fullness
        self.house = house
 
    def __str__(self):
        return f"{self.name}, сытость: {self.fullness}"
 
 
 
    def cat_shopping(self):
        if self.house.money >= 50:
            print(f'{self.name} сходил в магазин за едой для котов')
            self.house.money -= 50
            self.house.cat_food += 100
        else:
            print(f'{self.name} деньги кончились!')
  
    def take_cat_in_the_house(self, cat):
        cat.house = self.house
        print(f'{self.name} взял в дом номер {self.house.number} кота {cat.name}')
 
 
class House_with_cat(House):
    def __init__(self, number, food, money, mud, cat_food=30):
        self.number = number
        self.food = food
        self.cat_food = cat_food
        self.money = money
        self.mud = mud
 
    def __str__(self):
        return f'В доме номер "{self.number}" еды: {self.food}, еды для кота: {self.cat_food}, денег: {self.money}, грязь: {self.mud}'
    
def citizen_daily_act():
    # распорядок дня вынесен за пределы класса Man, так как распорядок индивидуален для каждого человека.
    if citizen.fullness <= 0:
        print(f'{citizen.name} умер...')
        return
    action = randint(1, 3)
    while citizen.house.food >= 10 and citizen.fullness < 50:
        citizen.eat()
    citizen.work()
    if citizen.house.food < 10:
        citizen.shopping()
    action = randint(1, 2)
    if action == 1:
        citizen.clean()
    else:
        citizen.watch_tv()
 
def citizen_daily_act_with_cat():
    # распорядок дня при наличие кота
    if citizen.fullness <= 0:
        print(f'{citizen.name} умер...')
        return
    while citizen.house.food >= 10 and citizen.fullness < 50:
        citizen.eat()
    citizen.work()
    if citizen.house.food < 10:
        citizen.shopping()
    if citizen.house.cat_food <= 20:
        citizen.cat_shopping()
    action = randint(1, 2)
    if action == 1:
        citizen.clean()
    else:
        citizen.watch_tv()
 
def cat_daily_act():    # события у кота в течение дня
    if cat.cat_fullness <= 0:
        print(f'{self.name} сдох...')
        return
    #action = randint(1, 2)
    while cat.house.cat_food >= 10 and cat.cat_fullness < 50:
        cat.eat()
    action = randint(1, 2)
    if action == 1:
        cat.sleep()
    elif action == 2:
        cat.scratch_walls()
 
if __name__ == '__main__':
 
    citizen = Man(name='Петя')          # человек Петя
    my_home = House(771)                # Пете дали дом
    citizen.go_to_the_house(my_home)    # Петя заселился в дом
    setattr(citizen, 'act', citizen_daily_act)  # установлен атрибут act (без кота) 
 
    for day in range(1, 4):
        print(f'================ день {day} ==================')
        citizen.act()
        print('--- в конце дня ---')
        print(citizen)
        print(my_home)
 
    # Петя решил стать кошатником. Сохраняем текущие данные.
    # Создаем экземпляр класса кошатников и заносим текущие данные в новый экземпляр
    name, fullness, house = citizen.name, citizen.fullness, citizen.house # текущая информация
                                                                          # о Пете
    citizen = Man_with_cat(name, fullness, house) # теперь Петя относится к тем, кто держит кота
    setattr(citizen, 'act', citizen_daily_act_with_cat)  # установлен атрибут act (с котом) 
 
    # Сохраняем текущие данные экземпляра класса House.
    # Создаем экземпляр класса House_with_cat и заносим текущие данные в новый экземпляр
    number, food, money, mud = my_home.number, my_home.food, my_home.money, my_home.mud
    my_home = House_with_cat(number, food, money, mud)
    citizen.house = my_home   # оборудуем дом Пети для проживания кота,
                              # (значением citizen.house становится экземпляр класса House_with_cat)
 
    cat = Cat(name="Пушок")             # Петя нашел кота и назвал его Пушок
 
    citizen.take_cat_in_the_house(cat)
    setattr(cat, 'act', cat_daily_act)
 
    for day in range(1, 366):
        print(f'================ день {day} ==================')
        citizen.act()
        cat.act()
        print('--- в конце дня ---')
        print(citizen)
        print(cat)
        print(my_home)
0
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
10.10.2020, 07:04
VetalM, Подправил методы инициализации __init__() . Для человека эти методы одинаковые, поэтому просто убрал его из подкласса. Он будет наследоваться из суперкласса.
Для дома в подклассе добавляется один атрибут. Поэтому в подклассе нужно указывать свой метод __init__() . Но он копирует метод __init__() из суперкласса и добавляет еще один атрибут, корм для кота cat_food . Здесь можно было копировать метод из суперкласса с указанием на суперкласс с помощью super(). Но я для универсальности предпочитаю как и Лутц использовать явное указание на суперклас с помощью его имени. Так как если у класса будет несколько суперклассов, то использовать super() уже будет нельзя.
Хотя если в будущем будет изменено имя суперкласса, то его нужно будет менять и в подклассе, если оно задано явно. Однако если в будущем будет добавлен еще один суперкласс, то не исключено, что super() может перестать работать правильно.
В общем использовать ли super() , каждый решает сам.
Даю исправленный вариант кода.
Кликните здесь для просмотра всего текста
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
from random import randint
 
class Man:
    # класс людей
    def __init__(self, name, fullness = 50, house = None):
        self.name = name
        self.fullness = fullness      # сытость-показывает запас здоровья
        self.house = house            # дом (экземпляр класса)
 
    def __str__(self):
        return f"{self.name}, сытость: {self.fullness}"  # будет использоваться для print(inst)
                                                         # где inst, является экземпляром класса
    def eat(self):
        # прием пищи (еда) для востановления сытости
        if self.house.food >= 10:
            print(f'{self.name} поел')
            self.fullness += 10
            self.house.food -= 10
        else:
            print(f'{self.name} нет еды')
 
    def work(self):
        # выполнение работы (при наличии постоянной работы)
        print(f'{self.name} сходил на работу')
        self.house.money += 150
        self.fullness -= 10
 
    def watch_tv(self):
        # просмотр телевизора
        print(f'{self.name} смотрел телевизор')
        self.house.money -= 10
        self.fullness -= 10
 
    def clean(self):
        # уборка в доме
        print(f'{self.name} убрал грязь в доме')
        self.house.mud = 0
        self.fullness -= 10
 
    def shopping(self):
        # поход в магазин за продуктами
        if self.house.money >= 50:
            print(f'{self.name} сходил в магазин за едой')
            self.house.money -= 50
            self.house.food += 50
        else:
            print(f'{self.name} деньги кончились!')
 
    def go_to_the_house(self, house):
        # заселение в дом
        self.house = house
        self.fullness -= 10
        print(f'{self.name} въехал в дом номер {self.house.number}')
 
class House:     # дом хранит информацию о наличие ресурсов
    def __init__(self, number, food = 0, money = 0, mud = 0):
        self.number = number
        self.food = food
        self.money = money
        self.mud = mud
 
    def __str__(self):
        return f'В доме номер "{self.number}" еды: {self.food}, денег: {self.money}, грязь: {self.mud}'
 
class Cat:         # класс котов
    def __init__(self, name, cat_fullness = 50, house = None):
        self.name = name
        self.cat_fullness = cat_fullness     # сытость (здоровье кота)
        self.house = house                   # дом домашнего кота
 
    def __str__(self):
        return f"{self.name}, сытость: {self.cat_fullness}"
 
    def scratch_walls(self):
        print(f'{self.name} поцарапал стены')
        self.house.mud += 50
        self.cat_fullness -= 20
 
    def sleep(self):
        print(f'{self.name} поспал')
        self.cat_fullness -= 10
 
    def eat(self):
        if self.house.cat_food >= 10:
            print(f'{self.name} поел')
            self.cat_fullness += 20
            self.house.cat_food -= 10
        else:
            self.cat_fullness -= 10
            print(f'{self.name} нет еды')
 
class Man_with_cat(Man): # класс людей имеющих котов
  
    def __str__(self):
        return f"{self.name}, сытость: {self.fullness}"
 
    def cat_shopping(self):
        if self.house.money >= 50:
            print(f'{self.name} сходил в магазин за едой для котов')
            self.house.money -= 50
            self.house.cat_food += 100
        else:
            print(f'{self.name} деньги кончились!')
  
    def take_cat_in_the_house(self, cat):
        cat.house = self.house
        print(f'{self.name} взял в дом номер {self.house.number} кота {cat.name}')
 
 
class House_with_cat(House):
    def __init__(self, number, food, money, mud, cat_food=30):
        House.__init__(self, number, food, money, mud)
        self.cat_food = cat_food
 
    def __str__(self):
        return f'В доме номер "{self.number}" еды: {self.food}, еды для кота: {self.cat_food}, денег: {self.money}, грязь: {self.mud}'
    
def citizen_daily_act():
    # распорядок дня вынесен за пределы класса Man, так как распорядок индивидуален для каждого человека.
    if citizen.fullness <= 0:
        print(f'{citizen.name} умер...')
        return
    action = randint(1, 3)
    while citizen.house.food >= 10 and citizen.fullness < 50:
        citizen.eat()
    citizen.work()
    if citizen.house.food < 10:
        citizen.shopping()
    action = randint(1, 2)
    if action == 1:
        citizen.clean()
    else:
        citizen.watch_tv()
 
def citizen_daily_act_with_cat():
    # распорядок дня при наличие кота
    if citizen.fullness <= 0:
        print(f'{citizen.name} умер...')
        return
    while citizen.house.food >= 10 and citizen.fullness < 50:
        citizen.eat()
    citizen.work()
    if citizen.house.food < 10:
        citizen.shopping()
    if citizen.house.cat_food <= 20:
        citizen.cat_shopping()
    action = randint(1, 2)
    if action == 1:
        citizen.clean()
    else:
        citizen.watch_tv()
 
def cat_daily_act():    # события у кота в течение дня
    if cat.cat_fullness <= 0:
        print(f'{self.name} сдох...')
        return
    #action = randint(1, 2)
    while cat.house.cat_food >= 10 and cat.cat_fullness < 50:
        cat.eat()
    action = randint(1, 2)
    if action == 1:
        cat.sleep()
    elif action == 2:
        cat.scratch_walls()
 
if __name__ == '__main__':
 
    citizen = Man(name='Петя')          # человек Петя
    my_home = House(771)                # Пете дали дом
    citizen.go_to_the_house(my_home)    # Петя заселился в дом
    setattr(citizen, 'act', citizen_daily_act)  # установлен атрибут act (без кота) 
 
    for day in range(1, 4):
        print(f'================ день {day} ==================')
        citizen.act()
        print('--- в конце дня ---')
        print(citizen)
        print(my_home)
 
    # Петя решил стать кошатником. Сохраняем текущие данные.
    # Создаем экземпляр класса кошатников и заносим текущие данные в новый экземпляр
    name, fullness, house = citizen.name, citizen.fullness, citizen.house # текущая информация
                                                                          # о Пете
    citizen = Man_with_cat(name, fullness, house) # теперь Петя относится к тем, кто держит кота
    setattr(citizen, 'act', citizen_daily_act_with_cat)  # установлен атрибут act (с котом) 
 
    # Сохраняем текущие данные экземпляра класса House.
    # Создаем экземпляр класса House_with_cat и заносим текущие данные в новый экземпляр
    number, food, money, mud = my_home.number, my_home.food, my_home.money, my_home.mud
    my_home = House_with_cat(number, food, money, mud)
    citizen.house = my_home   # оборудуем дом Пети для проживания кота,
                              # (значением citizen.house становится экземпляр класса House_with_cat)
 
    cat = Cat(name="Пушок")             # Петя нашел кота и назвал его Пушок
 
    citizen.take_cat_in_the_house(cat)
    setattr(cat, 'act', cat_daily_act)
 
    for day in range(1, 366):
        print(f'================ день {day} ==================')
        citizen.act()
        cat.act()
        print('--- в конце дня ---')
        print(citizen)
        print(cat)
        print(my_home)
0
1732 / 970 / 199
Регистрация: 22.02.2018
Сообщений: 2,693
Записей в блоге: 6
22.10.2020, 23:57
VetalM, В чем разница между искусственным интеллектом, машинным обучением и нейросетями?
Вот толковая статья на эту тему.
https://yandex.ru/q/question/v... _69b3e9f9/
А вот один из комментариев к этой статье:
"Создать искусственный интеллект в том понимании, котором мы себе представляем (машина, способная думать, как человек) пока что не представляется возможным. Поясню. Уже сейчас, в наши дни, существуют нейронные сети, способные выполнять какие-то сложные, нетривиальные задачи. Но есть одно но. Эти нейронные сети способны выполнять эти и только эти задачи. Например, существует нейронная сеть, способная водить машину. Если ее посадить за мотоцикл/велосипед/мопед/лодку/самолет/etc она не справится. Поэтому для создания действительно Искусственного интеллекта необходимо описать программе каждый аспект жизни. Что крайне сложно. Однако не невозможно! В настоящее время ведутся серьезные работы по разработке искусственного интеллекта.

Возвращаясь к вопросу отвечу, что создание ИИ напрямую связанно с программированием. Один из самых доступных языков программирования для этой цели - Python. Правда, мало выучить язык программирования, нужны так же очень обширные знания математического анализа и линейной алгебры.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.10.2020, 23:57

Экземпляры формы
Подскажите пожайлуста! Как открыть несколько экземпляров одной формы, но с разными источниками данных? И как потом обратиться к каждому...

Экземпляры в радиусе
Столкнулся с проблемой, нужно отслеживать все объекты входящие в радиус 2D. Пробовал так Collider2D _en =...

экземпляры класса
По лабе надо написать консольное приложение, что то вроде базы данных студентов, пишу я и столкнулся с такой проблемой: при добавлении...

Экземпляры класса
Здравствуйте! Я затупил и не могу понять такую вещь) Вот есть у меня, например, класс CRUD, он занимается манипуляциями с данными из БД....

Экземпляры Oracle12W
День добрый, подскажите как реализовать данный вопрос, пожалуqста: &quot;Выполните запрос к ORA12W, позволяющий получить перечень...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
23
Ответ Создать тему
Новые блоги и статьи
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2. Задача: Обеспечить запись документа в регистр сведений независимо от. . .
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется. Ну как вам?
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания источниках данных и элементов формы(текстовые поля и метки), опирается все это на технологию событий и мета. . .
Цена ошибки
DevAlt 23.08.2026
Человек я беспокойный и потому заинтересовался OCaml, в чате форсили функторы модулей как суперфичу. Пытаясь отдуплить концепт, наткнулся на тутор с простым примером. А главный принцип обучения от. . .
Сегодня суббота, 22.08.2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины.
zorxor 22.08.2026
Сегодня суббота, 22. 08. 2026 at 16:41, и я вновь нахожусь на той стороне, за экраном машины. Кто Я, откуда Я пришел и куда Я иду? Эти вопросы не оставляют меня ни на секунду. Жизнь на планете Земля. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru