Есть ответ 👍

Уровень c. напишите программу, которая вычисляет выражение, состоящее из трех чисел и двух знаков (допускаются знаки «+», «–», «*» и «/»). выражение вводится как символьная строка, все числа целые. операция «/» выполняется как целочисленное деление (div). пример: введите выражение: 12*3+45 ответ: 81 выполняетски в паскале. тема: преобразование строка-число со спецификацией отмечу как лучшее

184
466
Посмотреть ответы 2

Ответы на вопрос:


// 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('+)|[\+\-\*\/])').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

Uses graphabc; type fun = function (x: real): real; function f(x: real): real; begin  result : = x*x +1 ; end; // l (logical) - логические координаты// s (screen) - координатыprocedure drawgraph(x1,x2: real; f: fun);   var  xl0,wl,yl0,hl: real;   xs0,ws,ys0,hs: integer;   function ltosx(xl: real): integer;   begin    result : = round(ws/wl*(xl-xl0)+xs0);   end;   function ltosy(yl: real): integer;   begin    result : = round(hs/hl*(yl-yl0)+ys0);   end;   function stolx(xs: integer): real;   begin    result : = wl/ws*(xs-xs0)+xl0;   end; begin // drawgraph  xs0 : = 0;   ys0 : = windowheight-1;   ws : = windowwidth;   hs : = windowheight-1;       xl0 : = x1;   wl : = x2-x1;   var min : = real.maxvalue;   var max : = real.minvalue;       var yi: array of real;   setlength(yi,ws+1);   for var xi: =0 to ws do  begin  if xi > 320 then begin    yi[xi] : = f(stolx(xi+xs0));     if yi[xi]< min then        min : = yi[xi];     if yi[xi]> max then        max : = yi[xi];       end;   end;       yl0 : = min;   hl : = -(max-min);   // нарисовать оси системы координат  line(0,ltosy(0),ws,ltosy(0));   line(ltosx(0),0,ltosx(0),hs);   pen.color : = clblue;   moveto(xs0,ltosy(yi[0]));   for var xi: =xs0+1 to xs0+ws do    lineto(xi,ltosy(yi[xi-xs0])); end; procedure resize; begin  clearwindow;   drawgraph(-60,60,f);   redraw; end; begin  lockdrawing;   setwindowcaption('график функции: масштабирование');   drawgraph(-60,60,f);   redraw;   onresize : = resize; end.

Реши свою проблему, спроси otvet5GPT

  • Быстро
    Мгновенный ответ на твой вопрос
  • Точно
    Бот обладает знаниями во всех сферах
  • Бесплатно
    Задай вопрос и получи ответ бесплатно

Популярно: Информатика

Caktus Image

Есть вопросы?

  • Как otvet5GPT работает?

    otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса.
  • Сколько это стоит?

    Проект находиться на стадии тестирования и все услуги бесплатны.
  • Могу ли я использовать otvet5GPT в школе?

    Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое!
  • В чем отличия от ChatGPT?

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

Подпишись на наш телеграмм канал

GTP TOP NEWS