b=50(после присвоения и до проверки условия);b=35(после проверки условия, первый цикл);b=20(второй цикл);b=5(третий цикл);b=-10(окончание четвёртого цикла);b=-5(т.к. предыдущие значение выдало на условии "ложь", то совершилось второе действие ветвления, и к переменной прибавили 5).
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: Просто [ пример ]] со [[ скобками В строке Просто [ пример ]] со [[ скобками количество [ и ] не одинаково
2. Но, поскольку считается, что школьникам больше заняться нечем, их заставляют писать примерно в таком стиле (и время займет, и ощибок понаделают):
// PascalABC.NET 3.1, сборка 1198 от 11.03.2016 const nn=100; var i,j,n,t:integer; a:array[1..nn] of integer; begin Write('n='); Read(n); Randomize; for i:=1 to n do begin a[i]:=Random(3); Write(a[i],' ') end; Writeln; for i:=1 to n-1 do for j:=1 to n-1 do if a[j]>a[j+1] then begin t:=a[j]; a[j]:=a[j+1]; a[j+1]:=t end; for i:=1 to n do Write(a[i],' '); Writeln; end.
Порядок изменения значений переменной b:
b=50(после присвоения и до проверки условия);b=35(после проверки условия, первый цикл);b=20(второй цикл);b=5(третий цикл);b=-10(окончание четвёртого цикла);b=-5(т.к. предыдущие значение выдало на условии "ложь", то совершилось второе действие ветвления, и к переменной прибавили 5).Итоговая последовательность значений:50,35,20,5,-10,-5.