Короче. Мне не влом было запихнуть это всё в эклипс. Результат данной работы будет, как не странно(особенно для тебя, Мышшшь) "5, 10", а не "10, 5". Чего и следовало ожидать. Т. к. Переменные a и b мы объявляли внутри метода main, а в методе swap(int a, int b); существуют собственные int a и int b. Поэтому и работает этот метод с <u>ними</u>. Так что... Учите теорию, господа.
procedure p(x:integer; var st:string);
type
name = array[0..9] of String[50];
const
s1 : name = (' ноль ',' один ',' два ',' три ',' четыре ',' пять ',' шесть ',' семь ',' восемь ',' девять ');
s2: name = (' ',' десять ',' двадцать ',' тридцать ',' сорок ',' пятьдесят ',' шестьдесят ',' семьдесят ',' восемьдесят ',' девяносто ');
s3: name = (' ',' сто ',' двести ',' триста ',' четыреста ',' пятьсот ',' шестьсот ',' семьсот ',' восемьсот ',' девятьсот ');
s4 : name = (' ',' одиннадцать ',' двенадцать ',' тринадцать ',' четырнадцать ',' пятнадцать ',' шестнадцать ',' семнадцать ',' восемнадцать ',' девятнадцать ');
var
s,d,e : Integer;
begin
s:= x div 100; x:=x mod 100;
st:=s3[s];
d:= x div 10; e:=x mod 10;
if (d=1) and (e<>0) then st:=st+s4[e]
else st:=st+s2[d]+s1[e];
end;
var x:integer; st:string;
Begin
Write('Введите число [0..999] :');
Readln(x);
p(x,st);
writeln(st);
End.
Пример:
<span>Введите число [0..999] : 714
семьсот четырнадцать</span>
Ответ:
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.
Uses crt;
const n=3;
m=5;
var a:array[1..n,1..m] of integer;
i,j:integer;
begin
randomize;
for i:=1 to n do
for j:=1 to m do
begin
a[i,j]:=random(15);
write(a[i,j]:3);
end;
end.