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

Пусть A — массив, состоящий из N элементов. Обозначим его максимальное и минимальное значение как max и min соответственно. Вычислим сумму элементов S, S=A0+A1+…+AN-1. Заменим каждый элемент массива на разницу S и этого элемента: Ai:=S-Ai,. Такое преобразование массива A назовем операцией Confuse. Напишите программу, которая по массиву B, полученному в результате K–кратного применения операции Confuse к некоторому массиву A, вычислит разность max-min.

Формат входных данных
Первая строка входного файла содержит целые числа N и K, где N — количество элементов массива B (2 ≤ N ≤ 10000), а K — количество применений операции Confuse к начальному массиву A, 1 ≤ K ≤ 100.

Вторая строка файла содержит N элементов массива B. Элементы массива B — целые числа, по модулю не превосходящие 2×109.

Формат выходных данных
Единственная строка выходного файла должна содержать целое число - разность max и min.

входные данные
4 2
45 52 47 46

2002 1
-2638 -11902 -18492 7172 -15757 15640 -742 18059 -16512 9305 -17274 -1772 19283 -11129 15626 7485 -533 -10941 18999 -12963 7347 19167 7364 -13877 -3170 12602 15076 17923 -310 115 -8340 8509 13693 434 -15090 2620 312 -17933 -9557 9952 836 -9948 -13504 15760 -447 -8656 12725 19510 -17191 12657 11703 -14682 -17312 4452 11944 7953 -5979 4868 11124 18105 -6468 -2693 18316 10735 -10172 -4546 13930 207 13013 -10541 6168 5960 12637 7048 -17307 -7515 12782 3302 16295 -12647 12990 -7142 3260 -18974 -16201 18292 13284 -7771 5663 8396 9559 -17388 19937 169 -2120 4460 765 18192 3474 -14806 16556 5185 14314 12440 -10182 17509 9673 3360 -15886 -698 12653 -17937 -13135 -10929 5458 8800 16766 -7570 6142 -15312 4555 14779 -14397 15778 -4076 7638 3551 104 5238 -17581 2208 1599 -11103 5366 -3490 -5502 -12941 7399 19530 -17918 -17550 2658 1870 -6565 5058 9451 -16170 2026 -8587 -12630 -976 -10188 7253 4356 -11768 671 -17731 -12605 2269 6839 5741 -9329 12544 -7819 11752 14877 -11859 -4005 -17213 -8563
выходные данные
7

39947

Показать ответ
Ответ:
Назар233
Назар233
04.04.2022 12:31
Var
  i, j, n, kolPol, kolOtr, sum, p, ch, k :integer;
  a :array of integer;

begin

  readln(n);
  SetLength(a,n+1);
  randomize;
  for i:= 1 to n do
    a[i]:= random(100)-50;
 
  sum:= 0; p:= 1;
  for i:= 1 to n do
  begin
    if a[i] > 0 then
    begin
      inc(kolPol);
      sum:= sum + a[i];
    end;
    if a[i] > 0 then
    begin
      inc(kolOtr);
      p:= p * a[i];
    end;
  end;
 
  writeln('Количество положительных элементов: ',kolPol);
  writeln('Сумма положительных элементов: ',sum);
  writeln('Количество отрицательных элементов: ',kolOtr);
  writeln('Произведение отрицательных элементов: ',p);
 
  i:= 1; p:= 1; ch:= 0;
  while (a[i] >= 0) and (i <> n+1) do
  begin
    p:= p * a[i];
    inc(ch);
    inc(i);
  end;
 
  if ch <> 0 then 
    writeln('Произведение до первого отрицательного элемента: ',p)
  else
    writeln('Первый элемент массива отрицательный!');
   
  for i:= 1 to n-1 do
    for j:= 1 to n-i do
      if a[j] > a[j+1] then
      begin
        k:= a[j];
        a[j]:= a[j+1];
        a[j+1]:= k;
      end;
  writeln('Массив отсортирован по возрастанию:');
  for i:= 1 to n do
    write(a[i],'  ');

end.
0,0(0 оценок)
Ответ:
ArthurMyChemov
ArthurMyChemov
04.10.2022 06:38
Case понимает только integer, т.е можно написать:
case A of
  1 : bla
  2 : bla-bla
end;
такое выражение выдаст ошибку:
case A of
  'sin' : bla
  'cos' : bla-bla
end;
т.к в данном случае используется string вместо integer;
если делается калькулятор в одно действие (число - знак - число, пример: 2 + 3), то можно сделать так:
if znak = 'sin' then 
  result := sin(number)
else
if znak = 'cos' then
  result := cos(number)
... (другие условия)
Если же создаётся калькулятор с неограниченным числом параметров (2 + 5 * 4 / 5), то имеет смысл найти парсинга математических выражений
Вроде всё

var
  num : integer;
begin
  readln(num);
  case num of
    1 : bla (понедельник)
    2 : bla-bla (вторник)
    ...
    6 : bla-bla-bla (суббота)
  end;
end.
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота