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

На складе хранятся коробки с различной техникой, каждая коробка имеет четырехзначный уникальный серийный номер. Разновидности техники:

T – телевизоры

V - видеомагнитофоны

R – радио

F – вентиляторы.

Склад позволяет хранить до N рядов коробок высотой не более M коробок.

Пример склада из 6-ти рядов высотой не более 4 коробок:

[0008,T]

[0007,T]

[0002,T] [0006,T] [0011,T] [0014,T]

[0001,T] [0005,T] [0010,T] [0013,T]

Поступление и расход техники подчиняется следующим правилам:

операции выполняются только над одной коробкой;

взять можно только верхнюю коробку из ряда;

поставить коробку можно на любой незанятый ряд, либо на верхнюю коробку непустого ряда (дополнительные ограничения смотрите в индивидуальных заданиях).

Запрещается создавать коробки, не принадлежащие складу и хранить их вне склада. Массивы коробок и массивы указателей на коробки не создавать. память под коробки должна выделяться динамически.

Режим заполнения склада - startFillingWarehouse(0);

Создать первоначальное состояние склада на основе исходных данных. Исходные данные соответствуют складу, в котором коробки хранятся в беспорядке, т.е. в одном ряду могут находиться коробки с различной техникой (ставить в один ряд коробки с разной техникой разрешается).

После заполнения склада напечатать его «изображение» - showWarehouse();

Режим переноса коробок - startBoxTransferring (0, 0, 0, 0, aTV | aVCR | aRadio | aFan, 0);

Перевернуть коробки в каждом ряду, т.е. поменять местами нижнюю коробку с верхней и т.д. Коробки, не должны храниться вне склада, их можно только переставлять по одной внутри склада.

Если невозможно переставить коробки, напечатать сообщение «no solution»; иначе напечатать изображение склада - showWarehouse();

Режим очистки склада - startEmptyingWarehouse();

Изъять из склада все коробки и уничтожить их.

После очистки склада напечатать его «изображение» - showWarehouse();

Формат входных данных:

[N] [M]

[крайний левый вертикальный ряд]

[промежуточный вертикальный ряд]

[крайний правый вертикальный ряд]

N – кол-во рядов, целое число [1, 10]

M – кол-во коробок в ряду, целое число [1, 10]

Дан код, нужно его переделать и совместить с файлом lib, или же Вы можете написать свой код, как Вам будет удобнее)

👇
Открыть все ответы
Ответ:
AsiMy
AsiMy
19.03.2021

var

   a, n: longint;

   text: textfile;

function myMod(num, power, divider: longint): longint;

var

   rest, i: longint;

begin

   rest:=1;

   divider := abs(divider);

   for i := 1 to power do

   begin

       rest := rest * num;

       rest := rest mod divider;

   end;

   

   myMod := rest;

end;

begin

   assign(text, 'input.txt');

   

   {rewrite(text);

   writeln(text, 1);

   close(text);}

   

   reset(text);

   read(text, a);

   writeln('a=', a);

   close(text);

   

   n := 0;

   repeat

       n := n + 1;

   until MyMod(n, n, a) = 0;

   

   writeln('n=', n);

   assign(text, 'output.txt');

   rewrite(text);

   writeln(text, n);

   close(text);

   

   {reset(text);

   read(text, n);

   writeln('n=', n);

   close(text);}

end.

4,7(12 оценок)
Ответ:
Лия0211
Лия0211
19.03.2021

program ;

var

  i, a: longint;

  x,

  u, j,  

  n, m : longint;

function fdiv (a, left : longint) : longint;

var

d,  

i : longint;

begin

d : = 1;  

for i : = left to trunc (sqrt (a)) do

if (a mod i = 0)

then

begin

d : = i;  

break;  

end;

if (d < > 1)

then

fdiv : = d

else  

fdiv : = a;

end;

function g (n, u : longint) : longint;

var

i : longint;  

begin

i : = 0;  

while (n mod u = 0)

do

begin

inc (i);

n : = n div u;

end;

g : = i;

end;

begin

assign (input, 'input.txt');

assign (output, 'output.txt');

reset (input);

read (a);

close (input);

m : = 0;

n : = 1;  

i : = fdiv (a, 2);

u : = 2;  

while (a > 1)

do

begin

n : = n * i;  

j : = 0;  

  while (a mod i = 0)

  do

begin

inc (j);

a : = a div i;

end;

if (j > m)

then

begin

m : = j;  

u : = i;  

end;

i : = fdiv (a, i + 2);

end;

x : = 1;

while (g (n * x, u) * n * x < m)

do

inc (x);

n : = n * x;  

rewrite (output);

write (n);

close (output);

end.

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