class Receipt:
def __init__(self):
self.number = 1
self.amount = 0
self.cost = 0
self.lines = []
def add_item(self, item, cost):
self.amount += 1
self.lines.append("%s - %s" % (item, str(cost)))
self.cost += cost
def new(self):
self.number += 1
def print(self):
if self.amount != 0:
print("Чек %s. Всего предметов: %s" % (self.number, self.amount))
for line in self.lines:
print(line)
print("Итого: %s" % self.cost)
print("")
self.new()
r = Receipt()
def add_item(item, cost, receipt = r):
receipt.add_item(item, cost)
def print_receipt(receipt = r):
r.print()
add_item('Блокнот', 100)
print_receipt()
add_item('Ручка', 70)
add_item('Булочка', 15)
add_item('Чай', 5)
# (Отменить чек) - этот чек не печатаем
Этот код печатает следующее:
Чек 1. Всего предметов: 1
Блокнот - 100
Итого: 100
Чек 2. Всего предметов: 1
Ручка - 70
Итого: 70
Чек 3. Всего предметов: 3
Булочка - 15
Чай - 5
Итого: 35
// Программы на писаны на PascalABC.NET
// 7.6:
var
number: integer;
Begin
For number := 1000 to 9999 do
if ((number mod 133 = 125) and (number mod 134 = 111)) then
WriteLn(number);
End.
// Нашлось одно единственное число: 1987
___________________________
// 7.7
Sum, a, b, c, count: integer;
count := 0;
// Число 500 не проверяется, т.к. очевидно, что 5 + 0 + 0 != 15
For a := 1 to 4 do
For b := 0 to 9 do
For c := 0 to 9 do
begin
Sum := a + b + c;
if (15 = Sum) then
count := count + 1;
end;
WriteLn('Кол-во искомых чисел: ', count);
// Кол-во искомых чисел: 26
class Receipt:
def __init__(self):
self.number = 1
self.amount = 0
self.cost = 0
self.lines = []
def add_item(self, item, cost):
self.amount += 1
self.lines.append("%s - %s" % (item, str(cost)))
self.cost += cost
def new(self):
self.number += 1
self.amount = 0
self.cost = 0
self.lines = []
def print(self):
if self.amount != 0:
print("Чек %s. Всего предметов: %s" % (self.number, self.amount))
for line in self.lines:
print(line)
print("Итого: %s" % self.cost)
print("")
self.new()
r = Receipt()
def add_item(item, cost, receipt = r):
receipt.add_item(item, cost)
def print_receipt(receipt = r):
r.print()
add_item('Блокнот', 100)
print_receipt()
add_item('Ручка', 70)
print_receipt()
print_receipt()
add_item('Булочка', 15)
add_item('Булочка', 15)
add_item('Чай', 5)
print_receipt()
add_item('Булочка', 15)
add_item('Булочка', 15)
# (Отменить чек) - этот чек не печатаем
Этот код печатает следующее:
Чек 1. Всего предметов: 1
Блокнот - 100
Итого: 100
Чек 2. Всего предметов: 1
Ручка - 70
Итого: 70
Чек 3. Всего предметов: 3
Булочка - 15
Булочка - 15
Чай - 5
Итого: 35
// Программы на писаны на PascalABC.NET
// 7.6:
var
number: integer;
Begin
For number := 1000 to 9999 do
if ((number mod 133 = 125) and (number mod 134 = 111)) then
WriteLn(number);
End.
// Нашлось одно единственное число: 1987
___________________________
// 7.7
var
Sum, a, b, c, count: integer;
Begin
count := 0;
// Число 500 не проверяется, т.к. очевидно, что 5 + 0 + 0 != 15
For a := 1 to 4 do
For b := 0 to 9 do
For c := 0 to 9 do
begin
Sum := a + b + c;
if (15 = Sum) then
count := count + 1;
end;
WriteLn('Кол-во искомых чисел: ', count);
End.
// Кол-во искомых чисел: 26