Proc12. Описать процедуру SortInc3($$A$$, $$B$$, $$C$$), меняющую содержимое переменных $$A$$, $$B$$, $$C$$ таким образом, чтобы их значения оказались упорядоченными по возрастанию ($$A$$, $$B$$, $$C$$ — вещественные параметры, являющиеся одновременно входными и выходными). С помощью этой процедуры упорядочить по возрастанию два данных набора из трех чисел: ($$A_1$$, $$B_1$$, $$C_1$$) и ($$A_2$$, $$B_2$$, $$C_2$$).
Решение:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
program Proc12; procedure SortInc3(var A,B,C:Real); var temp:Real; begin if A>B then begin temp:=A; A:=B; B:=temp; end; if A>C then begin temp:=A; A:=C; C:=temp; end; if B>C then begin temp:=B; B:=C; C:=temp; end; end; var A1, B1, C1, A2, B2, C2:Real; begin { TODO -oUser -cConsole Main : Insert code here } Writeln('Введите первый набор переменных: '); Write('Введите A1: '); Readln(A1); Write('Введите B1: '); Readln(B1); Write('Введите C1: '); Readln(C1); SortInc3(a1,b1,c1); Write(a1); write(';'); Write(b1); write(';'); Writeln(c1); Writeln('Введите второй набор переменных: '); Write('Введите A2: '); Readln(A2); Write('Введите B2: '); Readln(B2); Write('Введите C2: '); Readln(C2); SortInc3(a2,b2,c2); Write(a2); write(';'); Write(b2); write(';'); Writeln(c2); end. |
Решение от olegst1975:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
program Proc12; procedure Swap(var x,y:real); begin x:=x+y; y:=x-y; x:=x-y; end; procedure SortInc3(var a,b,c:real); begin if a>b then Swap(a,b); if b>c then Swap(b,c); if a>b then Swap(a,b); end; var a,b,c:real; i:integer; begin for i:=1 to 2 do begin read(a,b,c); SortInc3(a,b,c); write(a,b,c); end; end. |
Другие задачи из раздела Proc можно посмотреть здесь.
тоже используя предыдущую процедуру
[/crayon]
Добавил в шапку, только вынес write(a,b,c); из процедуры.