Начальнику отдела информатизации, поручили каталогизировать имеющееся у него оборудование в серверной комнате. Для этого он по тебя написать две функций, первая функция adddevice() - в новый ярлык должна добавлять следующее по порядку устройство серверной с соответствующей остаточной стоимостью, а вторая printlabel() печатать последний заполненный ярлык со всеми устройствами, их стоимостью и суммой по всему ярлыку. Если последний ярлык итак уже был распечатан, а в новый ничего не добавляли, то функция printlabel() ничего не должна делать.
Sample Input:
adddevice('Процессор', 1500)
print_receipt()
adddevice('Оперативная память', 1700)
print_receipt()
adddevice('Монитор', 15200)
adddevice('Принтер', 7300)
adddevice('Клавиатура', 550)
print_receipt()
print_receipt()
adddevice('Монитор', 7150)
adddevice('Мышь', 215)
# Отмена ярлыка. Данный ярлык не печатается.
Sample Output:
Ярлык 1
Процессор - 1500
Итого устройств: 1
Сумма: 1500
Ярлык 2
Оперативная память - 1700
Итого устройств: 1
Сумма: 1700
Ярлык 3
Монитор - 15200
Принтер - 7300
Клавиатура - 550
Итого устройств: 3
Сумма
PascalABC.NET 3.3.5, сборка 1659 от 09.04.2018
Внимание! Если программа не работает, обновите версию!
begin
var (x,y):=ReadInteger2('Введите через пробел два числа:');
if (x<0) or (y<0) then Writeln('Ввод отрицательных чисел недопустим')
else begin
while y>0 do (x,y):=(y,x mod y);
Writeln('НОД=',x)
end
end.
Примеры
Введите через пробел два числа: 14 -2
Ввод отрицательных чисел недопустим
Введите через пробел два числа: 32 76
НОД=4
2. Традиционный "школьный" код
var
x,y,t:integer;
begin
Write('Введите через пробел два числа: ');
Read(x,y);
if (x<0) or (y<0) then Writeln('Ввод отрицательных чисел недопустим')
else begin
while y>0 do begin
x:=x mod y;
t:=x; x:=y; y:=t
end;
Writeln('НОД=',x)
end
end.
Begin
a:=-1;
b:=-1;
//ввод первого числа
Writeln('Введите первое число');
While a<0 do
begin
readln(a);
if a<0 then writeln('Ввод ошибочен, повторите ввод первого числа');
end;
//ввод второго числа
Writeln('Введите второе число');
While b<0 do
begin
readln(b);
if b<0 then writeln('Ввод ошибочен, повторите ввод второго числа');
end;
//определение минимального числа
if a>b then i:=b else i:=a;
//перебор чисел от минимального до 0 (т.к. НОД не может быть больше минимального числа)
While nod=0 do
begin
i:=i-1;
if (a mod i = 0) and (b mod i = 0) then nod:=i;
end;
//вывод НОД
Writeln('НОД ', a,' и ', b, ' = ', nod);
end.