Дано 7 чисел, найти их максимальную сумму при условии - QBasic
Формулировка задачи:
Дано 7 чисел. 1*7; 2*6; 3*5; 4*4; 5*3; 6*2; 7*1
Между этими числами надо расставить три знака
сложения и три знака вычитания так, чтобы
полученная сумма была максимальной. (проверено)
Листинг программы
- REM
- REM OTBET: 22
- REM
- CLS
- DIM a(1 TO 7) AS INTEGER
- FOR i = 1 TO 7
- a(i) = i * (8 - i)
- NEXT
- FOR i1 = -1 TO 1 STEP 2
- FOR i2 = -1 TO 1 STEP 2
- FOR i3 = -1 TO 1 STEP 2
- FOR i4 = -1 TO 1 STEP 2
- IF ABS(i1 + i2 + i3 + i4) < 3 THEN
- FOR i5 = -1 TO 1 STEP 2
- IF ABS(i1 + i2 + i3 + i4 + i5) < 2 THEN
- FOR i6 = -1 TO 1 STEP 2
- s = 7
- IF i1 + i2 + i3 + i4 + i5 + i6 = 0 THEN
- IF i1 = 1 THEN s = s + a(2) ELSE s = s - a(2)
- IF i2 = 1 THEN s = s + a(3) ELSE s = s - a(3)
- IF i3 = 1 THEN s = s + a(4) ELSE s = s - a(4)
- IF i4 = 1 THEN s = s + a(5) ELSE s = s - a(5)
- IF i5 = 1 THEN s = s + a(6) ELSE s = s - a(6)
- IF i6 = 1 THEN s = s + a(7) ELSE s = s - a(7)
- END IF
- IF max < s THEN max = s
- NEXT i6
- END IF
- NEXT i5
- END IF
- NEXT i4, i3, i2, i1
- PRINT max
- END
Решение задачи: «Дано 7 чисел, найти их максимальную сумму при условии»
textual
Листинг программы
- DIM a(1 TO 7) AS LONG
- DIM i AS LONG, j AS LONG
- FOR i = 1 TO 7
- a(i) = i * (8 - i)
- FOR j = 2 TO i - 1
- IF a(i) > a(j) THEN SWAP a(i), a(j)
- NEXT j, i
- PRINT a(1) + a(2) + a(3) + a(4) - a(5) - a(6) - a(7)
Объяснение кода листинга программы
В этом коде на языке QBasic:
- Создаются две переменные:
—
a(1 TO 7) AS LONG
— массив из семи элементов типа LONG (целые числа со знаком). —i AS LONG
— счётчик, используемый в циклах. —j AS LONG
— второй счётчик, также используется в циклах. - В каждой итерации внешнего цикла
FOR i = 1 TO 7
элементa(i)
присваивается значениеi * (8 - i)
. - В каждой итерации внутреннего цикла
FOR j = 2 TO i — 1
проверяется, не больше ли значение элементаa(i)
значения элементаa(j)
. Если это так, то с помощью командыSWAP a(i), a(j)
значения элементов меняются местами. - После завершения внутреннего цикла счётчики
i
иj
обновляются. - После завершения внешнего цикла выводится сумма элементов
a(1)
,a(2)
,a(3)
,a(4)
,-a(5)
,-a(6)
,-a(7)
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д