Цитата(ФедосеевПавел @ 5.2.2010, 16:44 ) | | Второй, компилируется только в TP, а FPC сильно не согласен с таким подходом |
Во-первых, его можно попросить согласиться ({$mode TP}, хотя делать этого действительно не стОит, тут FPC полностью прав, а Борланд не выполняет того ,что написано в его же документации:
| Цитата | | В качестве управляющей переменной должен использоваться идентификатор переменой (без какого-либо квалификатора), который обозначает переменную, объявленную локальной в блоке, в котором содержится оператор for. |
, http://zeus.sai.msu.ru:7000/programming/bp70_lr/lr7.shtml#14)
А во-вторых, вот это:
| Код | var k, curr, value: longint; sums: array[1 .. 7] of integer; i1, i2, i3, i4, i5, i6, i7: integer;
begin k := 0; for i1 := 9 downto 1 do begin sums[1] := i1; for i2 := 9 downto 0 do begin sums[2] := sums[1] + i2; for i3 := 9 downto 0 do begin sums[3] := sums[2] + i3; for i4 := 9 downto 0 do begin sums[4] := sums[3] + i4; for i5 := 9 downto 0 do begin sums[5] := sums[4] + i5; for i6 := 9 downto 0 do begin sums[6] := sums[5] + i6; for i7 := 9 downto 0 do begin sums[7] := sums[6] + i7; if sums[7] = 60 then begin inc(k); write(i1, i2, i3, i4, i5, i6, i7, ' '); end; end end end end end end end; writeln(k); end. |
у меня работает в среднем в 3 раза быстрее, чем твой код (FPC 2.4)
|