Зинина-Олесия
?>

Решить в среде pascal: 1) написать простенький калькулятор через ввод строки, который на входе получает строку вида "число1 знак операции число2" (например, "2 + 5" или "3 / 42"), а выводит значение этого выражения. числа - любые целые неотрицательные, знаки - +. -. *, / 2) написать программу, которая на входе получает строку под кодовым названием "загрязненное число" (вида "4km-549_ffb)5)6") состоящую из символов, а на выходе выводит удвоенное число из изначальной строки (а именно, 454956*2 = 909912)

Информатика

Ответы

Nikolaevna382
// PascalABC.NET 3.0, сборка 1128
uses
  System.Text.RegularExpressions;
 
begin
  var s:='     - 32    / - 21  ';
  s:=RegEx.Replace(s,'\s','');
  var a:=RegEx.Matches(s,'(-{0,1}\d+)|[\+\-\*/]');
  var n:=a.Count;
  var x,y:integer;
  var c:char;
  case n of
  3:begin
    x:=StrToInt(a[0].ToString); y:=StrToInt(a[2].ToString);
    c:=a[1].ToString[1]
    end;
  2:begin
    x:=StrToInt(a[0].ToString); var s1:=a[1].ToString;
    c:=s1[1]; s1[1]:='0'; y:=StrToInt(s1)
    end;
  else
    begin Writeln('Недопустимое выражение'); exit end
  end;
  WriteFormat('{0} {1} {2} = ',x,c,y);
  case c of
  '+':Writeln(x+y);
  '-':Writeln(x-y);
  '*':Writeln(x*y);
  '/':Writeln(x/y)
  end
end.

Тестовое решение:
-32 / -21 = 1.52380952380952

// PascalABC.NET 3.0, сборка 1128
begin
  var s:='4km-549_ffb)5)6';
  var t:=s.Where(x->x in ['0'..'9']).JoinIntoString('');
  var n:int64;
  if TryStrToInt64(t,n) then Writeln(2*n)
  else Writeln('Не удалось выделить число')
end.

Тестовое решение:
909912
rechkai64
PascalABC.NET Версия 3.0. сборка 1041
kol-nat26

Компьютерная графика -область деятельности, в которой компьютеры наряду со специальным программным обеспечением используются в качестве инструмента как для создания (синтеза) и редактирования изображений, так и для оцифровки визуальной информации, полученной из реального мира, с целью дальнейшей её обработки и хранения.

Графический редактор-программа, позволяющая создавать, просматривать, обрабатывать и редактировать цифровые изображения на компьютере.

Рабочая область- это ресурс верхнего уровня для Машинного обучения Azure, который обеспечивает централизованное расположение для работы со всеми артефактами, созданными в Машинном обучении Azure.

baranova302

#include <iostream>

#include <vector>

#include <algorithm>

using namespace std;

void solve(){

   int n, sum = 0;

   bool ok = false;

   cin >> n;

   vector<int> a(n);

   for(auto &i: a) { cin >> i; sum += i;}

   sort(a.begin(), a.end());

   for(int i = 0; i < n; i++){

       int l = i + 1, r = n - 1;

       while(l <= r && !ok){

           int m = (l + r) / 2;

           if(a[m] < sum - a[i])

               l = m + 1;

           else if(a[m] > sum - a[i])

               r = m - 1;

           else

               ok = true;

       }

   }

   cout << (ok ? "YES" : "NO");

}

int main(){

   solve();

}

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

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

Решить в среде pascal: 1) написать простенький калькулятор через ввод строки, который на входе получает строку вида "число1 знак операции число2" (например, "2 + 5" или "3 / 42"), а выводит значение этого выражения. числа - любые целые неотрицательные, знаки - +. -. *, / 2) написать программу, которая на входе получает строку под кодовым названием "загрязненное число" (вида "4km-549_ffb)5)6") состоящую из символов, а на выходе выводит удвоенное число из изначальной строки (а именно, 454956*2 = 909912)
Ваше имя (никнейм)*
Email*
Комментарий*

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

vladimir152
Gainalii1912
Sazhina1356
supply1590
Prostofil200790
lelikrom2202
SERGEI124
webotryvclub21
vetviptime
krylova-natali
zoosalon-hollywood5
zaseche99
evrotrastop64
zhmulyov-denis8
artemka56rus