В
Все
М
Математика
О
ОБЖ
У
Українська мова
Х
Химия
Д
Другие предметы
Н
Немецкий язык
Б
Беларуская мова
М
Музыка
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
У
Українська література
Р
Русский язык
Ф
Французский язык
П
Психология
О
Обществознание
А
Алгебра
М
МХК
Г
География
И
Информатика
П
Право
А
Английский язык
Г
Геометрия
Қ
Қазақ тiлi
Л
Литература
И
История
Aaaaaarrrrr55
Aaaaaarrrrr55
09.10.2022 19:52 •  Информатика

Уартёма оригинальные друзья, каждый из которых любит есть конфеты немного по-своему.

например, аркадий любит вынуть из коробки все конфеты, вид которых — четное число, а затем съесть из них каждую вторую, а оставшиеся — положить на свободные места слева направо.
внутри класса в массиве эта операция выглядит так:
(7, 1, 2, 5, 8, 10, 4, 3, 17) → (7, 1, 0, 5, 0, 0, 0, 3, 17) → (7, 1, 2, 5, 10, 0, 0, 3, 17).

алиса, в отличие от аркадия, любит съесть сначала первую половину конфет (округленную в меньшую сторону), а затем, раскаиваясь о содеянном, расставить оставшиеся конфеты в том же порядке так, чтобы между ними было хотя бы одно свободное место. при этом первая оставшаяся конфета должна оказаться на первом месте в коробке.
внутри класса в массиве эта операция выглядит так:
(7, 1, 2, 5, 8, 10, 4, 3, 17) → (0, 0, 0, 0, 8, 10, 4, 3, 17) → (8, 0, 10, 0, 4, 0, 3, 0, 17).
ещё один пример:
(7, 1, 2, 5, 8, 10, 4, 3) → (0, 0, 0, 0, 8, 10, 4, 3) → (8, 0, 10, 0, 4, 0, 3, 0).

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

для решения этой вы должны проделать шаги, указанные ниже.

добавить в класс candybox публичный метод int который будет возвращать размер коробки конфет.

добавить в класс candybox публичный метод int& at(int index), который будет возвращать конфету, которая находится на i-ой позиции. обратите внимание, что за счёт того, что метод возвращает ссылку, вы можете менять содержимое коробки. например, вот так:
candybox b;
b.read();
b.at(3) = 7;
добавить в класс candybox конструктор копирования.

добавить вне класса функцию candybox arcady_process(candybox b), которая эмулирует поведение аркадия, если ему подарить коробку конфет b, и возвращает новый объект — коробку, из которой поел конфет аркадий.

добавить вне класса функцию candybox alice_process(candybox b), которая эмулирует поведение алисы, если ей подарить коробку конфет b, и возвращает новый объект — коробку, из которой поела конфет алиса.

формат входных данных
в первой строке вводится целое положительное число m — количество конфет.

в следующей строке вводятся m неотрицательных чисел, не превышающих 109 — виды конфет.

формат выходных данных
требуется вывести две строки с числами — состояние коробок после аркадия и алисы.

входные данные
9
7 1 2 5 8 10 4 3 17
выходные данные
7 1 2 5 10 0 0 3 17
8 0 10 0 4 0 3 0 17
входные данные
7
8 4 6 4 8 8 1
выходные данные
8 6 8 0 0 0 1
4 0 8 0 8 0 1

Показать ответ
Ответ:
banana1106
banana1106
03.03.2022 09:21
1. В приведенном коде ошибка. Не хватает ";" в третьей строке снизу.
2. Немного изменим ваш код и получим искомое значение x
Искомое число х = 16293

var
  x, y, a, b, k: integer;

begin
  k:=10000;
  repeat
    x:=k;
    a := 0; b := 0; y := 1;
    while x > 0 do
    begin
      if (x mod 10) mod 2 = 0
        then
        a := a * 10 + x mod 10
      else begin
        y := y * 10;
        b := b * 10 + x mod 10
      end;
      x := x div 10
    end;
    a := a * y + b;
    k := k + 1;
    until a = 26391;
    writeln(a:8, k-1:8); 
end.

 
0,0(0 оценок)
Ответ:
superminikotik
superminikotik
23.11.2021 01:23
Цикл for

program raf105;

var n,a,x,i:integer;

begin

write('Введите количество учеников: ');

readln(n);

writeln('Вводите кол во правильно решённых вопросов учеников по очереди: ');

for i:=1 to n do

begin

 readln(a);

 if a<5

   then x:= x+1;

end;

writeln('Учениками было получено ',x,' неудовлетворительных оценок');

end.

Цикл while

program raf105;

var n,a,x,i:integer;

begin

write('Введите количество учеников: ');

readln(n);

writeln('Вводите кол во правильно решённых вопросов учеников по очереди: ');

while i<>n do

begin

 i:= i+1;

 readln(a);

 if a<5

   then x:= x+1;

end;

writeln('Учениками было получено ',x,' неудовлетворительных оценок');

end.

Цикл repeat

program raf105;

var n,a,x,i:integer;

begin

write('Введите количество учеников: ');

readln(n);

writeln('Вводите кол во правильно решённых вопросов учеников по очереди: ');

repeat

 i:= i+1;

 readln(a);

 if a<5

   then x:= x+1;

until i=n;

writeln('Учениками было получено ',x,' неудовлетворительных оценок');

end.

Язык PascalABC
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота