М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
mazurenkoella
mazurenkoella
12.04.2023 04:23 •  Информатика

Для работы небольшого магазинчика вас попросили сделать небольшой набор функций, обеспечивающих работу с чеками. в качестве пробной версии вам нужно реализовать всего два действия: добавление покупки к набору покупаемых товаров, и печать чека. после того как чек напечатан должно быть возможно вводить новый список товаров.
по правилам оформления документов в каждом чеке вы должны напечатать сначала номер чека (нумерация начинается с единицы) и число товаров, затем список товаров с ценами и в конце — итоговую стоимость. из-за того, что вы не знаете число товаров, пока кассир не «пробьет» последний товар, нельзя печатать чек по мере ввода товаров. приходится сначала добавить все необходимые товары и только затем печатать весь чек целиком. в конце чека печатается черта (состоящая из пяти знаков минус), по которой он отрывается от ленты.
организуйте две функции: add_item(itemname, itemcost) и которые реализуют указанный функционал. форматирование сделайте по шаблону в примере.
в случае, когда чек пуст, print_receipt не должна печатать чек. не забудьте, что после того как чек напечатан, набор выбранных товаров должен обнулиться, чтобы можно было вводить товары для нового чека.

пример
ввод вывод
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

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

👇
Ответ:
Кети20060106
Кети20060106
12.04.2023

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

4,6(44 оценок)
Открыть все ответы
Ответ:
litoshikmari
litoshikmari
12.04.2023

#include <iostream>

#include <math.h>

using namespace std;


int main(){

int x1,y2,x2,y2, r1, r2;

cin >> x1 >> y1 >> endl; //вводим координаты первой точки

cin >> x2 >> y2 >> endl; //вводим координаты второй точки

r1 = sqrt(x1*x1 + y1*y1); //находим расстояние от первой

r2 = sqrt(x2*x2+y2*y2) //от второй

if (r1>r2){

cout << "Точка 1 ближе к началу координат";

}

else{

cout << "Точка 2 ближе к началу координат";

}

else if (r1=r2){

cout << "Эти точки равны"

}

return 0;

}

4,5(6 оценок)
Ответ:
В основе лежит формула определения расстояния между двумя точками в прямоугольной системе координат, при этом одна из точек совпадает с началом системы координат. В этом случае искомое расстояние определяется по формуле:
L= \sqrt{a_x^2+a_y^2}
Поскольку в задаче не ставится вопрос определения самого расстояния, достаточно для каждой точки вычислить значение L² и сравнить их.
Окончательно задача сводится к нахождению минимального из значений
a_x^2+a_y^2 по заданным координатам х и у.

var
  ax, ay, bx, by, rx, ry: real;

begin
  writeln('Введите координаты первой точки');
  readln(ax, ay);
  writeln('Введите координаты второй точки');
  readln(bx, by);
  rx := sqr(ax) + sqr(ay);
  ry := sqr(bx) + sqr(by);
  if rx < ry then writeln('Первая точка ближе')
  else
  if rx > ry then writeln('Вторая точка ближе')
  else writeln('Обе точки равноудалены')
end. 
4,4(79 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика

MOGZ ответил

Полный доступ к MOGZ
Живи умнее Безлимитный доступ к MOGZ Оформи подписку
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ