Поскольку m > n, m уменьшается на n и получаем m = 67.
Этот процесс повторятся, пока выполняется условие m > n, т.е. m последовательно принимает значения 63, 59, 55, ... 11, 7 и 3. Фактически, находится остаток целочисленного деления 71 на 4.
Теперь при m=3, n=4 выполняется условие n > m, и n уменьшается на m.
n = 4 -3 = 1.
Снова выполняется условие m > n, и получаем значения m = 2, а затем 1.
program proga_25_1; Var A: text; i,j,n,m : byte; d: string; Sim:char; Begin write('Введите имя текстового файла '); {Например: "test" он создастся там где находится сама программа } read(d); Assign(A,d); rewrite(A); write('Введите количество строк: N= '); readln(n); write('Введите количество символов в строке: M= '); readln(m); for I:=1 to n do begin Sim:=Chr(Ord('1')+I-1); For J:=1 to m do write(A,Sim); writeln(A); end; close(A); end.
Program proga; Var p: text; i, n : byte; s,min,m: string; Begin write('Введите имя файла '); {Например: C:.txt} read(m); Assign(p,m); reset(p); read(p,s); min:=s; n:=100; for i:=1 to n do begin readln(p,s); while not eof(p) do {нахождение минимальной строки} begin readln(p,s); if length(s) <= length(min) then min:=s; end; end; close(p); write('самая короткая строка: ',min); End.
1
Объяснение:
В начале m = 71, n = 71 mod 2 +3 = 1 + 3 = 4.
Далее выполняется цикл.
Пока m <> n
Если n > m то n уменьшить на m
иначе m уменьшить на n
По окончании цикла выводится значение n.
При первом входе в цикл m=71. n=4
Поскольку m > n, m уменьшается на n и получаем m = 67.
Этот процесс повторятся, пока выполняется условие m > n, т.е. m последовательно принимает значения 63, 59, 55, ... 11, 7 и 3. Фактически, находится остаток целочисленного деления 71 на 4.
Теперь при m=3, n=4 выполняется условие n > m, и n уменьшается на m.
n = 4 -3 = 1.
Снова выполняется условие m > n, и получаем значения m = 2, а затем 1.
При m=1 и n =1 цикл завершается.
Будет выведено значение 1.