Var s:string; n,k,i:integer; begin for n:=1 to 2 do begin writeln('Введите строку ',n,':'); readln(s); k:=0; for i:=1 to length(s) do begin case s[i] of '[': k:=k+1; ']': k:=k-1; end; end; if k=0 then writeln('В строке ',s,' количество [ и ] одинаково') else writeln('В строке ',s,' количество [ и ] не одинаково'); end; end.
Пример: Введите строку 1: c:=a[imax,j]; a[imax,j]:=a[imin,j]; a[imin,j]:=c В строке c:=a[imax,j]; a[imax,j]:=a[imin,j]; a[imin,j]:=c количество [ и ] одинаково Введите строку 2: Просто [ пример ]] со [[ скобками В строке Просто [ пример ]] со [[ скобками количество [ и ] не одинаково
// PascalABC.NET 3.1, сборка 1219 от 16.04.2016 type Matrix=array[,] of integer;
procedure MatPrint(a:Matrix); begin var m:=Length(a,1)-1; for var i:=0 to Length(a,0)-1 do begin for var j:=0 to m do Write(a[i,j]:4); Writeln end end;
function IsEqual(a:Matrix; col:integer):boolean; begin var s:=sign(a[0,col]); for var i:=1 to Length(a,0)-1 do s+=sign(a[i,col]); if (s=0) then Result:=(a[0,col]<>0) else Result:=false end;
procedure DeleteCol(var a:Matrix; col:integer); begin var n:=Length(a,0)-1; var m:=Length(a,1)-1; for var j:=col+1 to Length(a,1)-1 do for var i:=0 to n do a[i,j-1]:=a[i,j]; SetLength(a,n+1,m) end;
begin var n:=ReadInteger('Строк:'); var m:=ReadInteger('Столбцов:'); var a:=MatrixRandom(n,m,-99,99); Writeln('Исходная матрица'); MatPrint(a); for var j:=Length(a,1)-1 downto 0 do if IsEqual(a,j) then DeleteCol(a,j); Writeln('Результирующая матрица'); MatPrint(a); end.