Форум » Массивы, сортировка, работа с файлами » На сайте нет разбора подобного задания №19 » Ответить

На сайте нет разбора подобного задания №19

Попыванова: Помогите, пожалуйста, разобраться с решением задания "Ниже представлен фрагмент программы, обрабатывающей одномерный целочисленный массив с индексами от 0 до 10. Известно, что в начале выполнения этого фрагмента в массиве находилась возрастающая последовательность чисел, то есть A[0] < A[1] < … < A[10]. Какое наибольшее значение может иметь переменная s после выполнения данной программы? [pre2] s := 27; n := 10; for k:=0 to n-1 do begin s:=s+A[k]-A[k+1]+2 end;[/pre2]

Ответов - 4

Поляков: Попыванова пишет: s:=s+A[k]-A[k+1]+2 Попробуйте выписать выражение для суммы, например, для массива из 4 или 5 элементов. Вы увидите, что там все элементы, кроме двух, сократятся.

Попыванова: Это все понятно, но не известен ни один элемент. Как вычислить результат?

Попыванова: в итоге у меня получилось S:=4S+a[0]-a[4]+8 (для 4-х элементов). Или я делаю что-то не так?


Поляков: Попыванова пишет: в итоге у меня получилось S:=4S+a[0]-a[4]+8 (для 4-х элементов). Или я делаю что-то не так? Для 4-х элементов:[pre2]S = 27 + A[0] - A[4] + 8 [/pre2]для n элементов [pre2]S = 27 + A[0] - A[n] + 2*n [/pre2] Наибольшее значение S получится тогда, когда разница A[0]-A[n] максимальная. Последовательность строго возрастающая, поэтому в лучшем для нас случае A[n]=A[0]+n, тогда разность A[0]-A[n]=-n, в нашем случае "-10". "Дальше - сами". :-)



полная версия страницы