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

Записали выражение: 104−(103)+102−(101)+…+2−(1) (знаки плюс и минус чередуются). можно поменять местами любые два числа (не трогая знаки), а затем вычислить значение получившегося выражения. какое максимальное число можно получить таким образом (можно сделать только один обмен)? в качестве ответа укажите одно целое число. комментарий. если поменять 2 и 1, получится такое выражение: 104−(103)+102−(101)+…+1−(2)

👇
Ответ:
104−(103)+102−(101)+…+2−(1) = 52
Максимальное число получится при перестановке максимального значения после знака "-" и минимального значения после знака "+":
104−(2)+102−(101)+…+103−(1)  = 52+2*103-2*2 = 254
4,4(33 оценок)
Открыть все ответы
Ответ:
vitek0000
vitek0000
12.10.2020
Const
  n=50;
var
  f:Text;
  s:string;
  ss:array of string;
  a:array[1..n] of string;
  i,j:integer;
begin
  Assign(f,'input.txt'); Reset(f);
  j:=0;
  while not Eof(f) do begin
    Readln(f,s);
    ss:=s.Split(' ');
    for i:=0 to Length(ss)-1 do
      if Length(ss[i])>1 then
        if RightStr(ss[i],2)='of' then
        begin Inc(j); a[j]:=ss[i] end;
  end;
  Close(f);
  for i:=1 to j do Write(a[i],' ');
  Writeln
end.

Тестовое решение:
123of asdfdsof dasof

Есть решение и покороче, но совсем не уровня начинающих:
uses
  System.Text.RegularExpressions;
const
  n=50;
var
  f:Text;
  s:string;
  a:array[1..n] of string;
  i,j:integer;
begin
  Assign(f,'input.txt'); Reset(f);
  j:=0;
  while not Eof(f) do begin
    Readln(f,s);
    foreach var m:Match in Regex.Matches(s,'\b\S+of\b') do
    begin Inc(j); a[j]:=m.Value end;
  end;
  Close(f);
  for i:=1 to j do Write(a[i],' ');
  Writeln
end.
4,4(86 оценок)
Ответ:
Const
n=5;m=10;
var
b:array[1..n,1..m]of integer;
i,j,k,buf,l:integer;
begin
    for i:=1 to n do
         begin
           writeln;
              for j:=1 to m do
                 begin
                    b[i,j]:=random(50);
                    write(b[i,j]:4);
                  end;
           end;
writeln;
for j:=1 to m do
   begin
      k:=0;
       for i:=1 to n-1 do
            if b[i,j]<b[i+1,j]then
                k:=k+1;
            if k=n-1 then
               buf:=buf+1;
    end;
k:=0;
for l:=2 to m do
   if l mod 2=0 then
     for i:=1 to n-1 do
       for j:=i+1 to n do
           if b[i,l]>b[j,l]then
               begin
                   k:=b[i,l];
                   b[i,l]:=b[j,l];
                   b[j,l]:=k;
                end;
writeln('увеличилось  ',m div 2-buf);
for i:=1 to n do
   begin
      writeln;
          for j:=1 to m do
             write(b[i,j]:4);
    end;
end.
       
                  
4,6(60 оценок)
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ