Запиши верный ответ, если дан алгоритм: al := 2/(19x) a2 := al Ix а3:= a2/x a4:= a3 /x al + a4 От ответ (для переменной используй латинскую раскладку):
Цикл с предусловием это такой цикл, в котором условие проверяется перед выполнением тела цикла. А цикл с постусловием - на оборот, он сначала выполнит, а потом проверит условие и если условие true, то цикл завершится.
Цикл с постусловием, можно использовать в таких ситуациях, когда надо что-то сделать и если чего-то не хватает, то сделать еще раз. Напрмер отправить письмо на email, а если не отправилось, то повторить еще 3 раза. Сначала выполнится тело цикла, в котором находятся функции отправки письма и если отправка удачная, то сообщаем until() true. Иначе тело выполнится еще и еще и еще кучу раз, если мы не задали счетчик в теле цикла, как вариант...
Цикл с предусловием можно использовать, если надо проверять какое-то значение ПЕРЕД выполнением тела цикла и тебе не важно, должно ли оно хоть раз выполниться. Например запросить пароль у пользователя. Но если пользователь уже ввёл пароль, то зачем его запрашивать? Тут можно было бы использовать while
// PascalABC.NET 3.1, сборка 1230 от 27.04.2016 unit MatInt;
interface
type Matrix=array[,] of integer;
function MatCreate(m,n:integer):Matrix; procedure MatPrint(a:Matrix;w:integer); procedure MatMax(a:Matrix;var x,imax,jmax:integer);
implementation
function MatCreate(m,n:integer):Matrix; // создает матрицу и инициализирует её нулями begin SetLength(Result,m,n); end;
procedure MatPrint(a:Matrix;w:integer); // выводит матрицу, отводя w позиций под элемент begin var n:=Length(a,1)-1; for var i:=0 to Length(a,0)-1 do begin for var j:=0 to n do Write(a[i,j]:w); Writeln end end;
procedure MatMax(a:Matrix;var x,imax,jmax:integer); // возвращает значение максимального элемента и его координаты begin imax:=0; jmax:=0; var n:=Length(a,1)-1; for var i:=0 to Length(a,0)-1 do for var j:=0 to n do if a[i,j]>a[imax,jmax] then (imax,jmax):=(i,j); Inc(imax); Inc(jmax); x:=a[imax-1,jmax-1] end;
// PascalABC.NET 3.1, сборка 1230 от 27.04.2016 uses MatInt; begin var a:=MatCreate(5,8); var n:=Length(a,1)-1; for var i:=0 to Length(a,0)-1 do for var j:=0 to n do a[i,j]:=Random(-50,50); MatPrint(a,4); var irow,jcol,max:integer; MatMax(a,max,irow,jcol); Writeln('Максимальный А[',irow,',',jcol,']=',max) end.