nv6634
?>

Суретші баннер жасағысы келеді. Бұл баннердің фонында қайталанатын гүлдердің суреті болады. Баннердің өлшемі - 2х3 м. Гүлдер салынған суреттің өлшемі – 20х30 см, ал көлемі – 620 K6. Егер гүлдер салынған суреттер бүкіл баннерді қамтып, олар бір-біріне жақын орналасса, кескіннің көлемі қанша болатынын есепте. Жауабын мегабайт түрінде жаз және екі ондыққа дейін дөңгелекте. 60, 55 M6 420 M6 800 М6 42 000 М6

Информатика

Ответы

elyashatdinova
// PascalABC.NET 3.2, сборка 1417 от 28.03.2017
// Внимание! Если программа не работает, обновите версию!

function Res(a:integer;op:char;b:integer):integer;
begin
  case op of
  '+':Result:=a+b;
  '-':Result:=a-b;
  '*':Result:=a*b;
  '/':Result:=a div b
  end
end;

begin
  var s:=ReadlnString('Вводите:');
  var p:=s.Matches('(((\-)?\d+)|[\+\-\*\/])').ToArray;
  if p.Count<>5 then Writeln('Ошибка!')
  else begin
    var op1:=p[1].Value[1];
    var op2:=p[3].Value[1];
    var a:=p[0].Value.ToInteger;
    var b:=p[2].Value.ToInteger;
    var c:=p[4].Value.ToInteger;
    if (op1 in ['+','-']) and (op2 in ['*','/']) then
      Writeln('='+Res(Res(b,op2,c),op1,a))
    else Writeln('='+Res(Res(a,op1,b),op2,c))
    end
end.

Примеры
Вводите: -4--3--2
=1
Вводите: 12*3+45
=81
Вводите: 45+12*3
=81
Вводите: -26/13--5
=3
Никита_Тузов

var

 s, s1, s2, s3, s4, tmp1, tmp2: string;

 i, a, b, c, d, e, f: integer;

begin

 Writeln('Введите строку: ');

 Readln(s);

 //

 for var k := 1 to length(s) do  

 begin

   if (s[k] = '(') then

   begin

     var j := k + 1;

     while (s[j].IsDigit) do

     begin

       tmp1 := tmp1 + s[j];

       j := j + 1;

     end;

     var ch := s[j];

     j := j + 1;

     while (s[j].IsDigit) do

     begin

       tmp2 := tmp2 + s[j];

       j := j + 1;

     end;

     case ch of

       '+': begin s := s.Remove(k - 1, j - k + 1); s := s.Insert(k - 1, inttostr(tmp1.ToInteger + tmp2.ToInteger)); end;

       '-': begin s := s.Remove(k - 1, j - k + 1); s := s.Insert(k - 1, inttostr(tmp1.ToInteger - tmp2.ToInteger)); end;

       '*': begin s := s.Remove(k - 1, j - k + 1); s := s.Insert(k - 1, inttostr(tmp1.ToInteger * tmp2.ToInteger)); end;

       '/': begin s := s.Remove(k - 1, j - k + 1); s := s.Insert(k - 1, inttostr(tmp1.ToInteger div tmp2.ToInteger)); end;

     end;

     break;

   end;

 end;

 //

 for i := 1 to length(s) do

 begin

   if (s[i] = '+') or (s[i] = '-') or (s[i] = '*') or (s[i] = '/') then

   begin

     s1 := copy(s, 1, i - 1);

     s2 := copy(s, i + 1, length(s));

     c := i;

   end;

 end;

 for i := 1 to length(s1) do

 begin

   if (s1[i] = '+') or (s1[i] = '-') or (s1[i] = '*') or (s1[i] = '/') then

   begin

     s3 := copy(s1, 1, i - 1);

     s4 := copy(s1, i + 1, length(s1));

     e := i;

   end;

 end;

 Val(s3, a, d);

 Val(s4, b, d);

 Val(s2, f, d);

 if (s[e] = '/') and (s[c] = '/') then Writeln((a div b) div f);

 if (s[e] = '/') and (s[c] = '*') then Writeln((a div b) * f);

 if (s[e] = '+') and (s[c] = '*') then Writeln(a + (b * f));

 if (s[e] = '*') and (s[c] = '*') then Writeln(a * b * f);

 if (s[e] = '+') and (s[c] = '/') then Writeln(a + (b div f));

 if (s[e] = '*') and (s[c] = '+') then Writeln((a * b) + f);

 if (s[e] = '/') and (s[c] = '+') then Writeln((a div b) + f);

 if (s[e] = '*') and (s[c] = '/') then Writeln((a * b) div f);

 if (s[e] = '+') and (s[c] = '+') then Writeln(a + b + f);

 if (s[e] = '-') and (s[c] = '-') then Writeln(a - b - f);

 if (s[e] = '+') and (s[c] = '-') then Writeln(a + b - f);

 if (s[e] = '-') and (s[c] = '+') then Writeln(a - b + f);

 if (s[e] = '*') and (s[c] = '-') then Writeln((a * b) - f);

 if (s[e] = '/') and (s[c] = '-') then Writeln((a div b) - f);

 if (s[e] = '-') and (s[c] = '*') then Writeln(a - (b * f));

 if (s[e] = '-') and (s[c] = '/') then Writeln(a - (b div f));

end.

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Суретші баннер жасағысы келеді. Бұл баннердің фонында қайталанатын гүлдердің суреті болады. Баннердің өлшемі - 2х3 м. Гүлдер салынған суреттің өлшемі – 20х30 см, ал көлемі – 620 K6. Егер гүлдер салынған суреттер бүкіл баннерді қамтып, олар бір-біріне жақын орналасса, кескіннің көлемі қанша болатынын есепте. Жауабын мегабайт түрінде жаз және екі ондыққа дейін дөңгелекте. 60, 55 M6 420 M6 800 М6 42 000 М6
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

dilovarnazarov1986
officem695
uzunanna19922488
Суханова1532
magichands68
gulyaizmailova
iivanovar-da
Shikhova-Vitalii1290
MislitskiiSergei1403
thebest59
rendikalogistic
Vitalevich1187
fakyou170
araqsyabadalyan1988
Stepan Rastorgueva850