Дано 7 чисел, найти их максимальную сумму при условии - QBasic

Узнай цену своей работы

Формулировка задачи:

Дано 7 чисел. 1*7; 2*6; 3*5; 4*4; 5*3; 6*2; 7*1 Между этими числами надо расставить три знака сложения и три знака вычитания так, чтобы полученная сумма была максимальной. (проверено)
Листинг программы
  1. REM
  2. REM OTBET: 22
  3. REM
  4. CLS
  5. DIM a(1 TO 7) AS INTEGER
  6. FOR i = 1 TO 7
  7. a(i) = i * (8 - i)
  8. NEXT
  9. FOR i1 = -1 TO 1 STEP 2
  10. FOR i2 = -1 TO 1 STEP 2
  11. FOR i3 = -1 TO 1 STEP 2
  12. FOR i4 = -1 TO 1 STEP 2
  13. IF ABS(i1 + i2 + i3 + i4) < 3 THEN
  14. FOR i5 = -1 TO 1 STEP 2
  15. IF ABS(i1 + i2 + i3 + i4 + i5) < 2 THEN
  16. FOR i6 = -1 TO 1 STEP 2
  17. s = 7
  18. IF i1 + i2 + i3 + i4 + i5 + i6 = 0 THEN
  19. IF i1 = 1 THEN s = s + a(2) ELSE s = s - a(2)
  20. IF i2 = 1 THEN s = s + a(3) ELSE s = s - a(3)
  21. IF i3 = 1 THEN s = s + a(4) ELSE s = s - a(4)
  22. IF i4 = 1 THEN s = s + a(5) ELSE s = s - a(5)
  23. IF i5 = 1 THEN s = s + a(6) ELSE s = s - a(6)
  24. IF i6 = 1 THEN s = s + a(7) ELSE s = s - a(7)
  25. END IF
  26. IF max < s THEN max = s
  27. NEXT i6
  28. END IF
  29. NEXT i5
  30. END IF
  31. NEXT i4, i3, i2, i1
  32. PRINT max
  33. END

Решение задачи: «Дано 7 чисел, найти их максимальную сумму при условии»

textual
Листинг программы
  1. DIM a(1 TO 7) AS LONG
  2. DIM i AS LONG, j AS LONG
  3. FOR i = 1 TO 7
  4.     a(i) = i * (8 - i)
  5.     FOR j = 2 TO i - 1
  6.         IF a(i) > a(j) THEN SWAP a(i), a(j)
  7.     NEXT j, i
  8. PRINT a(1) + a(2) + a(3) + a(4) - a(5) - a(6) - a(7)

Объяснение кода листинга программы

В этом коде на языке QBasic:

  1. Создаются две переменные: — a(1 TO 7) AS LONG — массив из семи элементов типа LONG (целые числа со знаком). — i AS LONG — счётчик, используемый в циклах. — j AS LONG — второй счётчик, также используется в циклах.
  2. В каждой итерации внешнего цикла FOR i = 1 TO 7 элемент a(i) присваивается значение i * (8 - i).
  3. В каждой итерации внутреннего цикла FOR j = 2 TO i — 1 проверяется, не больше ли значение элемента a(i) значения элемента a(j). Если это так, то с помощью команды SWAP a(i), a(j) значения элементов меняются местами.
  4. После завершения внутреннего цикла счётчики i и j обновляются.
  5. После завершения внешнего цикла выводится сумма элементов a(1), a(2), a(3), a(4), -a(5), -a(6), -a(7).

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы