Proc13. Описать процедуру SortDec3($$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 Proc13; procedure SortDec3(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 Writeln('Введите первый набор переменных: '); Write('Введите A1: '); Readln(A1); Write('Введите B1: '); Readln(B1); Write('Введите C1: '); Readln(C1); SortDec3(a1,b1,c1); Write(a1); write(';'); Write(b1); write(';'); Writeln(c1); Writeln('Введите второй набор переменных: '); Write('Введите A2: '); Readln(A2); Write('Введите B2: '); Readln(B2); Write('Введите C2: '); Readln(C2); SortDec3(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 Proc13; procedure Swap(var x,y:real); begin x:=x+y; y:=x-y; x:=x-y; end; procedure SortDec3(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); SortDec3(a,b,c); write(a,b,c); end; end. |
Другие задачи из раздела Proc можно посмотреть здесь.
используя Swap из Proc6
[/crayon]
Добавил в шапку, но вынес write(a,b,c); из процедуры.