В языке запросов поискового сервера для обозначения логической операции «ИЛИ» используется символ «|», а для логической операции «И» — символ «&». В таблице приведены запросы и количество найденных по ним страниц некоторого сегмента сети Интернет.
Var arr: array[1..27] of integer; summ: integer; begin Randomize; for var i := 1 to 27 do begin arr[i] := random(-5, 5); summ := summ + arr[i]; end; writeln('Массив: ',arr); writeln('Сумма всех элементов массива = ',summ); for var i := 1 to 27 do if arr[i] = 0 then arr[i] := summ; writeln('Массив: ',arr); end.
пример работы: Массив: [5,-1,1,5,4,-2,-3,0,3,5,-3,-4,3,0,-1,-4,5,-2,1,-4,5,2,-4,5,4,-5,-1] Сумма всех элементов массива = 14 Массив: [5,-1,1,5,4,-2,-3,14,3,5,-3,-4,3,14,-1,-4,5,-2,1,-4,5,2,-4,5,4,-5,-1]
var arr: array of integer; n,k,m: integer; begin write('Введи n: '); readln(n); Randomize; arr:= new integer[n]; for var i := 0 to n-1 do arr[i] := random(-5, 5); writeln('Массив: ',arr); for var i := 0 to n-1 do begin if arr[i]<0 then inc(k); if (i>=1) and (i<=6) then inc(m); if (i>=6) and (arr[i]>=0) then arr[i]:=1; end; writeln('Количество отрицательных элементов массива = ',k); writeln('Количество элементов массива в интервале [2..7] = ',m); writeln('Массив: ',arr); end.
Пример работы: Введи n: 5 Массив: [0,1,-4,1,3] Количество отрицательных элементов массива = 1 Количество элементов массива в интервале [2..7] = 4 Массив: [0,1,-4,1,3]
Введи n: 15 Массив: [0,1,4,3,-3,5,-4,-1,1,-2,3,1,-4,1,3] Количество отрицательных элементов массива = 5 Количество элементов массива в интервале [2..7] = 6 Массив: [0,1,4,3,-3,5,-4,-1,1,-2,1,1,-4,1,1]
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
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota
Оформи подписку