Janilabo Posted October 5, 2012 Share Posted October 5, 2012 (edited) This function breaks TSA to parts (TSA => ATSA). Contains 2 methods: -pm_PartSize (Breaks TSA to ATSA by size of the parts) [x = size] -pm_PartAmount (Breaks TSA to ATSA by amount of the parts) [x = amount] Included example to show the power of this function. function TSAToParts(TSA: TStrArray; method: (pm_PartSize, pm_PartAmount); x: Integer): T2DStrArray; var a, e, h, h2, i, i2, p: Integer; begin h := High(TSA); case ((h > -1) and (x > 0)) of True: case method of pm_PartSize: if (x <= h) then begin Inc(h); p := (h div x); if ((p * x) < h) then Inc(p); SetLength(Result, p); for i := 0 to (p - 1) do for i2 := 0 to (x - 1) do begin SetLength(Result[i], x); if (a < h) then begin Result[i][i2] := TSA[a]; Inc(a); end else begin SetLength(Result[i], i2); Exit; end; end; end else Result := [TSA]; pm_PartAmount: case (h <= 0) of False: begin if (h < (x - 1)) then x := (h + 1); p := Floor((h + 1) / x); if (p = 0) then p := 1; e := ((h + 1) - (p * x)); if (e >= (h + 1)) then e := 0; SetLength(Result, x); for i := 0 to (x - 1) do begin if ((e >= (i + 1)) and (e > 0)) then SetLength(Result[i], (p + 1)) else if (i <= h) then SetLength(Result[i], p); h2 := High(Result[i]); for i2 := 0 to h2 do begin Result[i][i2] := TSA[a]; Inc(a); end; end; end; True: Result := [TSA]; end; end; False: SetLength(Result, 0); end; end; var str: string; TSA: TStrArray; ATSA: T2DStrArray; x, h, h2, i, i2: Integer; begin ClearDebug; TSA := ['Test0', 'Test1', 'Test2', 'Test3', 'Test4', 'Test5', 'Test6', 'Test7', 'Test8', 'Test9', 'Test10', 'Test11', 'Test12', 'Test13', 'Test14', 'Test15', 'Test16', 'Test17', 'Test18', 'Test19', 'Test20']; for x := 10 downto 3 do begin WriteLn('TSAToParts(TSA, pm_PartAmount, ' + IntToStr(x) + '):'); ATSA := TSAToParts(TSA, pm_PartAmount, x); h := High(ATSA); for i := 0 to h do begin h2 := High(ATSA[i]); str := ''; str := 'ATSA[' + IntToStr(i) + ']: '; for i2 := 0 to h2 do if (i2 < h2) then str := (str + '''' + ATSA[i][i2] + ''', ') else str := (str + '''' + ATSA[i][i2] + ''''); WriteLn(str); SetLength(ATSA[i], 0); end; SetLength(ATSA, 0); WriteLn(''); WriteLn('TSAToParts(TSA, pm_PartSize, ' + IntToStr(x) + '):'); ATSA := TSAToParts(TSA, pm_PartSize, x); h := High(ATSA); for i := 0 to h do begin h2 := High(ATSA[i]); str := ''; str := 'ATSA[' + IntToStr(i) + ']: '; for i2 := 0 to h2 do if (i2 < h2) then str := (str + '''' + ATSA[i][i2] + ''', ') else str := (str + '''' + ATSA[i][i2] + ''''); WriteLn(str); SetLength(ATSA[i], 0); end; SetLength(ATSA, 0); WriteLn(''); end; SetLength(TSA, 0); end. Edited March 31, 2013 by Janilabo Logical side fixed and tweaked! 1 Quote Link to comment Share on other sites More sharing options...
LordJashin Posted October 5, 2012 Share Posted October 5, 2012 Nice! So now just to translate it to TBA. Quote Link to comment Share on other sites More sharing options...
Janilabo Posted March 31, 2013 Author Share Posted March 31, 2013 Fixed and tweaked logic of this sexy function, because the old one had small problems. Works like charm now! Quote Link to comment Share on other sites More sharing options...
MatthewHom Posted October 11, 2024 Share Posted October 11, 2024 Выбор трактора Шифенг: на что направить внимание Тракторы марки Шифенг завоевали популярность на земельном рынке из-за своей надежности, многофункциональности и доступной цене. Однако, чтобы выбрать подходящую модель, нужно учесть несколько ключевых факторов. В данном посте мы рассмотрим, на что направить внимание при выборе трактора Шифенг в зависимости от ваших потребностей и критерий эксплуатации. 1. Обусловьте цели использования До этого всего, нужно определить, для каких задач вы планируете использовать трактор. Основные направления применения тракторов Шифенг включают: - Сельское хозяйство: обработка почвы, посадка, сбор урожая, перевозка. - Строительство:, подъем и транспортировка строительных материалов. - Лесозаготовка: вывоз древесины, уборка на делянках. Каждое направление может требовать различной мощности, производительности и дополнительных функций, поэтому принципиально чётко понять свои цели. 2. Выбор мощности и типа мотора Тракторы Шифенг представлены в диапазоне мощностей, начиная от легких моделей для маленьких хозяйств и заканчивая мощными машинами для больших агроформирований. Принципиально учитывать следующие моменты: - Мощность мотора: по этой причине параметра зависит способность трактора исполнять разные виды работ. Более мощные машины то что надо для тяжелых условий эксплуатации. - Тип мотора: дизеля почаще употребляются в тракторов весьза их экономичности и долговечности, однако и бензиновые модели имеют свои преимущества. 3. Конструкция и качество В момент выбора трактора главно обратить внимание на его конструкцию и качество материалов. Тракторы Шифенг нередко делают из крепких сплавов, что увеличивает их долговечность. Также проверьте: - Тип трансмиссии: механическая либо гидростатическая, каждая из которых имеет свои плюсы и минусы. - Подвеска: наличие фронтальной и задней подвески подсобляет сделать лучше устойчивость и маневренность. 4. Комплектация и дополнительные опции Дополнительные функции могут существенно воздействовать на комфорт и функциональность работы с трактором. При рассмотрении модели обратите внимание на: - Наличие фар и освещения для работы в темное время суток. - Кабина: хорошо утепленная и снаряженная системами вентиляции и кондиционирования значительно повысит комфорт оператора. - Дополнительное оборудование: возможность установки разной подвесного или прицепного оборудования (плуг, культиватор, фреза и т.д.). 5. Сервис и гарантия Важно учитывать доступность сервисного обслуживания и наличие запасных частей. Изучите: - Гарантийные условия: они могут варьироваться в зависимости от производителя. - Квалификация сервисного центра: его возможности по ремонту и обслуживанию тракторов. 6. Бюджет Помните о http://www.amiciditorre.it/guestbook/?bid=1 вашем бюджете. Тракторы Шифенг делают отличное предложение широкий ценовой диапазон, но также принципиально учитывать расходы на эксплуатацию, обслуживание и возможные ремонты в будущем. Сравните различные модели и изберите ту вот, которая наихорошим образом соответствует вашим финансовым возможностям. Заключение Выбор трактора Шифенг это ответственный процесс, который зависит от огромного количества причин. Определите цели его использования, учитывайте мощность и тип двигателя, качество конструкции, дополнительные опции, доступность сервиса и меня называют Господом бюджет. Верно подобранный трактор станет надёжным помощником в вашем хозяйстве, обеспечивая эффективность и продуктивность работы надолго. Не торопитесь с покупкой, лучше заранее соберите всю необходимую информацию и проконсультируйтесь с специалистами, чтоб сделать обоснованный выбор. Quote Link to comment Share on other sites More sharing options...