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

Телефонна компанія «Phone» для заохочення абонентів ввела наступні правила щодо оплати послуг зв’язку: за розмови до A хвилин за місяць необхідно сплачувати за підвищеним тарифом T грн/хв, який є більшим за встановлений тариф на 10 відсотків. Якщо абонент розмовляв за місяць менше ніж В хвилин (B > A), то він сплачує послугу за встановленим тарифом. Абоненти, які витратили на розмови більше ніж B хвилин, за хвилини, що перевищили В, сплачують за пільговим тарифом, який на 10 відсотків менший за встановлений. Необхідно написати програму, яка обчислює платню за користування телефоном абонента компанії «Phone» для розмов обсягом N хвилин за місяць.

Input format
Програма отримує на вхід три цілих числа N, A, B (N ≥ 0, A ≥ 0) та одне дійсне число T, (T > 0), які записані в один рядок. Розділювачем слугує пробіл.

Output format
Програма має вивести значення платні в гривнях за користування телефоном абонента компанії «Phone» як дійсне число з точністю до двох десяткових знаків.

Examples
Input
1 5 10 15
Output
15.00
Input
6 3 9 10
Output
54.55
Input
9 2 5 3
Output
23.45

👇
Ответ:
medinehuseynzade
medinehuseynzade
24.04.2021

Без проверок код был бы намного меньше, но сделал с проверками на всякий случай. Если нужно проще - пишите. По сути достаточно функции calculate_cost. И я ещё другую функцию сделал calculate_cost_old, она не используется, но в ней дифференцированный подход вычислений используется, то есть до нижней границы вычисляется по ставке 1,1, дальше вычисляется по тарифу, а больше верхней границы по тарифу 0,9. Мне кажется, так логичнее:

def calculate_cost(N:int,A:int,B:int,T:float):

   s = 0

   if N <= A: s = 1.1*N

   elif A < N <= B: s = N

   else: s = 0.9*N

   return round(T*s,2)

def calculate_cost_old(N:int,A:int,B:int,T:float):

   """Данная функция вычисляет стоимость услуг и возвращает значение"""

   s1 = 0

   s2 = 0

   s3 = 0

   # вычислим стоимость до нижней границы включительно

   if N <= A: s1 = 1.1*N

   else: s1 = 1.1*A

   # вычислим стоимость между нижней (исключительно) и верхней (включительно) границами

   if A < N <= B: s2 = N-A

   elif N > B: s2 = B-A

   # вычислим стоимость от верхней границы (исключительно)

   if N > B: s3 = 0.9*(N-B)

   

   return round(T*(s1+s2+s3),2)

def calculator():

   """основная функция"""

   names = ['Количество минут', 'Нижняя граница тарифа', 'Верхняя граница тарифа', 'Стоимость тарифа']

   while True:

       chk = True

       a = list(map(str, input('Начните ввод: ').split()))

       if len(a) != 4:

           print('Ошибка ввода: введите четыре параметра через пробел')

           continue

       for i in range(len(a)):

           if i != 3:

               try:

                   a[i] = int(a[i])

                   if a[i] < 0: raise ValueError

                   if i == 2 and a[i-1] > a[i]: raise ValueError

               except ValueError:

                   print(f'Ошибка ввода: значение "{names[i]}" ({i+1}-й параметр) должно быть целым не отрицательным числом', '> нижней границы' if i == 2 else '')

                   chk = False

           else:

               try:

                   a[i] = float(a[i])

                   if a[i] <= 0: raise ValueError

               except ValueError:

                   print(f'Ошибка ввода: значение "{names[i]}" ({i+1}-й параметр) должно быть целым положительным числом')

                   chk = False

       if chk: break

   print()

   print('--- Рассчёт окончен ---')

   print('Стоимость учлуг составляет: {:.2f}'.format(calculate_cost(a[0],a[1],a[2],a[3])))

   print()

print('--- Рассчёт стоимости услуг связи ---')

print()

print('Введите через пробел: \n  - количество потраченных за месяц минут (целое число >= 0)\n  - нижнюю границу тарифа (целое число >= 0)\n  - верхнюю границу тарифа (целое число >= нижней границы)\n  - стоимость (вещественное число > 0)')

print()

while True:

   calculator()

   if input('Повторить вычисления? (y/n): ') == 'n': break

4,7(16 оценок)
Открыть все ответы
Ответ:
natnet1
natnet1
24.04.2021

Мультипроцессоры

Параллельный компьютер, в котором все процессоры совместно используют общую физическую память, называется мультипроцессором, или системой с общей памятью (рис. 8.15, а). Все процессы, работающие в мультипроцессоре совместно, могут иметь единое виртуальное адресное пространство, отображенное на общую память. Любой процесс с команд LOAD и STORE может считать слово из памяти или записать слово в память. Больше ничего не требуется. Два процесса имеют возможность легко обмениваться информацией - для этого один из них просто записывает данные в общую память, а другой их считывает.

Мультикомпьютеры

Во втором варианте параллельной архитектуры каждый процессор имеет собственную память, доступную только этому процессору. Такая схема называется мультикомпьютером, или системой с распределенной памятью (рис. 8.16, а). Ключевое отличие мультикомпьютера от мультипроцессора состоит в том, что каждый процессор в мультикомпьютере имеет собственную локальную память, к которой этот процессор может обращаться, выполняя команды LOAD и STORE, но никакой другой процессор с этих команд не может получить доступ к локальной памяти данного процессора. Таким образом, мультипроцессоры имеют одно физическое адресное пространство, разделяемое всеми процессорами, а мультикомпьютеры содержат отдельные физические адресные пространства для каждого процессора. 

4,5(38 оценок)
Ответ:
Яра3838367373
Яра3838367373
24.04.2021

Задача А

program Boom;

uses crt;

var

 a, b: integer;

begin

 Read(a, b);

 if a > b then Writeln('Наибольшее число ', a) else Writeln('Наибольшее число ', b);

end.

Тестовое решение

12

52

Наибольшее число 52

Задача Б

program Boom;

uses crt;

 

var

     a:array[1..4] of Integer;

     max:integer;

     i:byte;

Begin

for i:= 1 to 4 do

Begin

Write('Введите число:');

Read(a[i]);

End;

max := a[1];

for i:= 2 to 4 do

if a[i] > max then

max := a[i];

Write('Наибольшее число:');

WriteLn(max);

End.

Тестовое решение:

Введите число:12

Введите число:53

Введите число:34

Введите число:63

Наибольшее число:63

4,4(14 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ