kefir9
11.03.2022 18:13

A. Створіть клас з ім’ям Shop(). Метод __init__() класу Shop() повинен містити два атрибути: shop_name і store_type. Створіть метод describe_shop(), який виводить два атрибути, і метод open_shop(), який виводить повідомлення про те, що онлайн-магазин відкритий. Створіть на основі класу екземпляр з ім’ям store. Виведіть два атрибути окремо, потім викличте обидва методи.
b. Створіть три різних екземпляри класу, викличте для кожного екземпляру метод describe_shop().
c. Додайте атрибут number_of_units зі значенням за замовчуванням 0; він представляє кількість видів товару у магазині. Створіть екземпляр з ім’ям store. Виведіть значення number_of_units, а потім змініть number_of_units і виведіть знову.
d. Додайте метод з ім’ям set_number_of_units(), що дозволяє задати кількість видів товару. Викличте метод з новим числом, знову виведіть значення. Додайте метод з ім’ям increment_number_of_units(), який збільшує кількість видів товару на задану величину. Викличте цей метод.
e. Напишіть клас Discount(), що успадковує від класу Shop(). Додайте атрибут з ім’ям discount_products для зберігання списку товарів, на які встановлена знижка. Напишіть метод get_discounts_ptoducts, який виводить цей список. Створіть екземпляр store_discount і викличте цей метод.
f. Збережіть код класу Shop() у модулі. Створіть окремий файл, що імпортує клас Shop(). Створіть екземпляр all_store і викличте один з методів Shop(), щоб перевірити, що команда import працює правильно.
*
a. Створіть клас з ім’ям User. Створіть два атрибути first_name і last_name, а потім ще кілька атрибутів, які зазвичай зберігаються у профілі користувача. Напишіть метод describe_user який виводить повне ім’я користувача. Створіть ще один метод greeting_user() для виведення персонального вітання для користувача. Створіть кілька примірників, які представляють різних користувачів. Викличте обидва методи для кожного користувача.
b. Додайте атрибут login_attempts у клас User. Напишіть метод increment_login_attempts(), що збільшує значення login_attempts на 1. Напишіть інший метод з ім’ям reset_login_attempts(), обнуляє значення login_attempts. Створіть екземпляр класу User і викличте increment_login_attempts() кілька разів. Виведіть значення login_attempts, щоб переконатися у тому, що значення було змінено правильно, а потім викличте reset_login_attempts(). Знову виведіть login_attempts і переконайтеся у тому, що значення обнулилося.
c. Адміністратор - користувач з повними адміністративними привілеями. Напишіть клас з ім’ям Admin, що успадковує від класу User. Додайте атрибут privileges для зберігання списку рядків виду «Allowed to add message», «Allowed to delete users», «Allowed to ban users» і т. д. Напишіть метод show_privileges() для виведення набору привілеїв адміністратора. Створіть екземпляр Admin і викличте метод.
d.Напишіть клас Privileges. Клас повинен містити всього один атрибут privileges зі списком, який треба забрати із класу Admin. Водночас, необхідно перемістити метод show_privileges() у клас Privileges із класу Admin. Створіть екземпляр priv як атрибут класу Admin. Створіть новий екземпляр admin і використайте метод для виведення списку привілеїв.
e. Збережіть клас User в одному модулі, а класи Privileges і Admin у іншому модулі. В окремому файлі створіть екземпляр admin і викличте метод show_privileges(), щоб перевірити, що все працює правильно.

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
lavelas2008
25.05.2022 07:53

вопрос № 1

1) следование

2) цикл

4) ветвление

вопрос № 2

4) все, кроме вещественных

вопрос № 3

1) для данных целого типа

Объяснение:

вопрос № 1 любой алгоритм строится из трех элементов следование, цикл, ветвление. что такое вс не знаю

вопрос № 2 порядковые типы: целые, булевы (логические) и символьные. Вопрос не корректный, так как существуют такие типы данных как строки, массивы, файлы, указатели и т.д. и это всё не порядковые типы. Наиболее правильным было бы выбрать ответ: "ничего из перечисленного не подходит". Если требуется выбрать что-то из перечисленного, то более других подходит ответ 4.

вопрос № 3 тут целый тип, однозначно

0,0(0 оценок)
Ответ:
polina2006200
30.11.2020 16:01

Код:

1.program HappyTicket;

2.var

3.n, a: longint;

4.left, right, digits, i: byte;

5.begin

6.readln(n);

7.a := n;

8.digits := 0;

9.while a <> 0 do begin

10.a := a div 10;

11.inc(digits)

12.end;

13.left := 0;

14.right := 0;

15.for i := 1 to digits div 2 do begin

16.right := right + n mod 10;

17.n := n div 10

18.end;

19.if odd(digits) then n := n div 10;

20.for i := 1 to digits div 2 do begin

21.left:= left + n mod 10;

22.n := n div 10

23.end;

24.writeln(left = right)

25.end.

Представим, как должен работать алгоритм при вводе числа 14350:

1)      Считаем длину числа, она равна 5 (строки 11-14);

2)      В цикле из 5 div 2 = 2 повторений прибавляем к right крайние справа цифры 0 и 5, после чего отбрасываем их и имеем в n 143 (строки 17-20);

3)      Так как odd(digits) = odd(5) = true, отбрасываем 3, после чего имеем в n 14 (строка 21);

4)      В цикле из 5 div 2 = 2 повторений прибавляем к left оставшиеся цифры 1 и 4, после чего n становится равно 0, что, впрочем, нас уже не интересует (строки 22-25);

5)      Выводим на экран значение выражения left = right – ответ положительный (строка 26)

Объяснение:

Для ее решения необходимо знать длину числа (то есть его разрядность), вследствие чего нам необходимо скопировать переменную n в некоторую другую (например, a), чтобы на основе a посчитать количество десятичных разрядов n и сохранить его в некоторой переменной digits. Сделать это можно так:

a := n;

digits := 0;

while a <> 0 do begin

a := a div 10;

inc(digits)

end;

0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота