bezzfamilny631
?>

Даны два вещественных вектора а и в. логической переменной с присвоить значение true, если у вектора а количество положительных элементов больше, чем у вектора в, и значение false в противном случае (pascal)

Информатика

Ответы

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

begin
  var a:=ArrRandomReal(ReadInteger('Длина вектора А='),-50,50); a.Println;
  var b:=ArrRandomReal(ReadInteger('Длина вектора B='),-50,50); b.Println;
  var c:=(a.Where(x->x>0).Count)>(b.Where(x->x>0).Count);
  Writeln(c)
end.

Пример
Длина вектора А= 5
11.2705506669686 48.3210324301948 42.773549674439 43.1555606858598 -18.5803525469174
Длина вектора B= 6
15.3481486557741 -19.0451312200376 -19.2453642232555 -11.3293506025008 48.204669308944 32.6231040445264
True
kotikdmytriy11
1. Задача решается с стека (алгоритм Дейкстры для обработки обратной польской записи). Предполагается, что во вводимой строке содержится корректное выражение, удовлетворяющее условиям задания.

// PascalABC.NET 3.3, сборка 1555 от 21.10.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var w:=ReadlnString.ToWords;
  var St:=new Stack <integer>;
  var r:=0;
  foreach var t in w do
    if t[1].IsDigit then St.Push(t.ToInteger)
    else begin
      var a:=St.Pop;
      var b:=St.Pop;
      case t[1] of
      '+':St.Push(a+b);
      '-':St.Push(b-a);
      '*':St.Push(a*b)
      end;
    end;
  Writeln(St.Pop) 
end.

Контрольный пример
8 9 + 1 7 - *
-102

2. Задача крайне просто решается при регулярного выражения с рекурсией. Фактически вводить количество шаров не нужно, поэтому после ввода оно отбрасывается.

// PascalABC.NET 3.3, сборка 1555 от 21.10.2017
// Внимание! Если программа не работает, обновите версию!

begin
  Writeln(ReadlnString.ToWords.Skip(1).JoinIntoString('').
      MatchValue('(.)\1{2,}').Length);
end.

Контрольный пример
5 2 3 3 3 1
3
Barabanov Gerasimenko
1. Задача решается с стека (алгоритм Дейкстры для обработки обратной польской записи). Предполагается, что во вводимой строке содержится корректное выражение, удовлетворяющее условиям задания.

// PascalABC.NET 3.3, сборка 1555 от 21.10.2017
// Внимание! Если программа не работает, обновите версию!

begin
  var w:=ReadlnString.ToWords;
  var St:=new Stack <integer>;
  var r:=0;
  foreach var t in w do
    if t[1].IsDigit then St.Push(t.ToInteger)
    else begin
      var a:=St.Pop;
      var b:=St.Pop;
      case t[1] of
      '+':St.Push(a+b);
      '-':St.Push(b-a);
      '*':St.Push(a*b)
      end;
    end;
  Writeln(St.Pop) 
end.

Контрольный пример
8 9 + 1 7 - *
-102

2. Задача крайне просто решается при регулярного выражения с рекурсией. Фактически вводить количество шаров не нужно, поэтому после ввода оно отбрасывается.

// PascalABC.NET 3.3, сборка 1555 от 21.10.2017
// Внимание! Если программа не работает, обновите версию!

begin
  Writeln(ReadlnString.ToWords.Skip(1).JoinIntoString('').
      MatchValue('(.)\1{2,}').Length);
end.

Контрольный пример
5 2 3 3 3 1
3

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

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

Даны два вещественных вектора а и в. логической переменной с присвоить значение true, если у вектора а количество положительных элементов больше, чем у вектора в, и значение false в противном случае (pascal)
Ваше имя (никнейм)*
Email*
Комментарий*

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

Sergeevna803
silantyevevgeny
mbrilliantova
izumrud153
sergei-komissar8475
Дмитрий_Евлампиев518
Butsan-Bagramyan
ooofishai4064
EVLAMPIN56
Liliya1106
Dom540703174
picassovrn
Yarovitsin
katar050419735
VladimirovnaBugrova