С++ template< typename RandomAccessIterator, typename Compare > void shell_sort( RandomAccessIterator first, RandomAccessIterator last, Compare comp ) { for( typename std::iterator_traits< RandomAccessIterator >::difference_type d = ( last - first ) / 2; d != 0; d /= 2 ) for( RandomAccessIterator i = first + d; i != last; ++i ) for( RandomAccessIterator j = i; j - first >= d && comp( *j, *( j - d ) ); j -= d ) std::swap( *j, *( j - d ) ); }
ostapbender1111
12.05.2023
N - количество чисел в последовательности, i - для организации цикла for, x - очередное число из последовательности В начале задаем значение max = 0, потому что рассматриваем последовательность натуральных чисел ( 1 и больше), то есть первое же натуральное четное будет записано в max В конце выводим ьфч только если он не равен нулю, тоесть в последовательности было натуральное четное число! program z1;var n, i, x, max: integer;beginmax := 0;readln(n);for i := 1 to n dobegin read(x); if (x mod 2 = 0) and (x > max) then max := x;end;if max > 0 then writeln(max) else writeln ('Не таких чисел');end.
Голосова-Лобанов1555
12.05.2023
Var a,b,c,d,x,y,h,minx,miny:real; i:integer; begin writeln('a, b, c, d:'); readln(a,b,c,d); h:=0.2; x:=0; y:=a*x*x*x+b*x*x+c*x+d; writeln(x:2:1,' ',y:5:2); minx:=0; miny:=y; for i:=1 to round((2-0)/h)+1 do begin x:=x+h; y:=a*x*x*x+b*x*x+c*x+d; writeln(x:2:1,' ',y:5:2); if y<miny then begin minx:=x; miny:=y; end; end; writeln('min = y(',minx:2:1,') = ',miny:5:2); end.
template< typename RandomAccessIterator, typename Compare >
void shell_sort( RandomAccessIterator first, RandomAccessIterator last, Compare comp )
{
for( typename std::iterator_traits< RandomAccessIterator >::difference_type d = ( last - first ) / 2; d != 0; d /= 2 )
for( RandomAccessIterator i = first + d; i != last; ++i )
for( RandomAccessIterator j = i; j - first >= d && comp( *j, *( j - d ) ); j -= d )
std::swap( *j, *( j - d ) );
}