Const N = 10;Const M = 10;Var A:Array [1..N, 1..M] Of Integer; i, j, imax, jmax, imin, jmin, temp:Integer; Begin randomize; For i := 1 to N do Begin For j := 1 to M do Begin A[i, j] := random(1000); End; End; imin := 1; imax := 1; jmin := 1; jmax := 1; For i := 1 to N do Begin For j := 1 to M do Begin If A[i, j] > A[imax, jmax] then Begin imax := i; jmax := j; End; If A[i, j] < A[imin, jmin] then Begin imin := i; jmin := j; End; End; End; writeln('first elem: ', A[imax, jmax], ', second elem: ', A[imin, jmin]); temp := A[imin, jmin]; A[imin, jmin] := A[imax, jmax]; A[imax, jmax] := temp; writeln('first elem: ', A[imax, jmax], ', second elem: ', A[imin, jmin]);End.
Возможны 3 варианта решения задачи, разные по степени творческого подхода. Решение №1 (элементарное) При оформлении этого решения количество ламп в сигнале фиксировано и равно количеству всех цветных ламп. Решение №2 (стандартное) При оформлении решения последовательно учитывается то что сигнал может состоять из 1 лампы, из двух ламп, из трех и т.д. ламп. В этом подходе решение, описанное ранее, является частным случаем. Решение №3 (комплексное)При оформлении этого решения учитывается то что лампа может гореть, а может не гореть и тогда важен не только порядок и количество ламп в сигнале, но и положение лампы в общем ряду. Замечание: Основная нагрузка в решении сводится к наиболее полному описанию возможных вариантов сигналов и вычислению их количества.
// PascalABC.NET 3.2, сборка 1362 от 14.12.2016 // Внимание! Если программа не работает, обновите версию!
begin var s:=ReadlnString('>'); var p:=s.Select((x,i)->(x,i+1)).Where(x->x[1].IsOdd and (x[0]=' ')); Writeln('Число пробелов на начетных местах равно ',p.Count); foreach var t in p do s[t[1]]:='*'; Writeln(s) end.
Пример > А роза упала на лапу Азора Число пробелов на начетных местах равно 3 А роза*упала*на лапу*Азора
// PascalABC.NET 3.2, сборка 1362 от 14.12.2016 // Внимание! Если программа не работает, обновите версию!
begin var s:=ReadlnString('>'); var n:=s.Length; if n mod 4<>0 then Writeln('Кол-во символов не кратно 4') else begin var i:=1; repeat Swap(s[i],s[i+3]); Swap(s[i+1],s[i+2]); i+=4 until i>n; Writeln(s) end end.