Уровень c. напишите программу, которая вычисляет выражение, состоящее из трех чисел и двух знаков (допускаются знаки «+», «–», «*» и «/»). выражение вводится как символьная строка, все числа целые. операция «/» выполняется как целочисленное деление (div). пример: введите выражение: 12*3+45 ответ: 81 выполняетски в паскале. тема: преобразование строка-число со спецификацией отмечу как лучшее
184
466
Ответы на вопрос:
// 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
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
учёныйкот326.05.2022 15:04
-
petrovasofia030.11.2020 14:53
-
Губанова123414.05.2022 04:03
-
Урок54115.04.2020 11:06
-
MinecraftTop12.05.2021 15:00
-
zvon00707.08.2022 14:12
-
ДанькоДенис201811.04.2022 06:02
-
ойооы07.10.2020 14:19
-
harushina26.04.2021 18:50
-
2002dima1421.02.2022 18:26
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.