Определить, какое количество целых полос потребуется для оклейки помещения - QBasic (27951)

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

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

Помогите, пожалуйста, с задачкой! Помещение площадью ахb оклеивается обоями одинакового цвета, но разной ширины s и t мм. При наклейке запускается любое чередование целых полос разной ширины. Определить, какое количество целых полос потребуется для оклейки помещения, чтобы площадь незаклеенной части стен была минимальной.

Решение задачи: «Определить, какое количество целых полос потребуется для оклейки помещения»

textual
Листинг программы
  1. DECLARE FUNCTION CHECK$ (source$)
  2. CLS
  3. star$ = "<br>"
  4. task$ = "ђ*бзҐв Є®«ЁзҐбвў* Ї®«®б ®Ў®Ґў ¤ўге вЁЇ®ў(а*§«Ёз*®© иЁаЁ*л), *Ґ®Ўе®¤Ё¬®Ј® ¤«п    ®Є«Ґ©ЄЁ Ї®¬ҐйҐ*Ёп в*ЄЁ¬ ®Ўа*§®¬, зв®Ўл Ї«®й*¤м *Ґ§*Є«ҐҐ**®© Ї®ўҐае*®бвЁ Ўл«*    ¬Ё*Ё¬*«м*®©."
  5. PRINT task$
  6. PRINT star$
  7. DIM a1, m AS STRING
  8. DIM a, b, s, t AS SINGLE
  9. DO
  10.  INPUT "‚ўҐ¤ЁвҐ иЁаЁ*г ®Є«ҐЁў*Ґ¬®Ј® Ї®¬ҐйҐ*Ёп : "; a1$
  11.  m$ = CHECK(a1$)
  12.  IF (m$ <> "") THEN PRINT m$
  13. LOOP UNTIL (m$ = "")
  14. a = VAL(a1$)
  15. PRINT star$
  16. DO
  17.  INPUT "‚ўҐ¤ЁвҐ ¤«Ё*г ®Є«ҐЁў*Ґ¬®Ј® Ї®¬ҐйҐ*Ёп : "; a1$
  18.  m$ = CHECK(a1$)
  19.  IF (m$ <> "") THEN PRINT m$
  20. LOOP UNTIL (m$ = "")
  21. b = VAL(a1$)
  22. PRINT star$
  23. DO
  24.  INPUT "‚ўҐ¤ЁвҐ иЁаЁ*г ЇҐаў®Ј® ўЁ¤* ®Ў®Ґў : "; a1$
  25.  m$ = CHECK(a1$)
  26.  IF (m$ <> "") THEN
  27.   PRINT m$
  28.  END IF
  29.  IF ((VAL(a1$) > a) AND (VAL(a1$) > b)) THEN
  30.   PRINT "?ЁаЁ** ®ЎҐў *Ґ ¬®¦Ґв Ўлвм Ў®«миҐ а*§¬Ґа®ў Ї®¬ҐйҐ*Ёп!"
  31.   m$ = "111"
  32.  END IF
  33.  LOOP UNTIL (m$ = "")
  34. s = VAL(a1$)
  35. PRINT star$
  36. DO
  37.  INPUT "‚ўҐ¤ЁвҐ иЁаЁ*г ўв®а®Ј® ўЁ¤* ®Ў®Ґў : "; a1$
  38.  m$ = CHECK(a1$)
  39.  IF (m$ <> "") THEN
  40.   PRINT m$
  41.  END IF
  42.  IF (VAL(a1$) = s) THEN
  43.   PRINT "?ЁаЁ** ЇҐаў®Ј® Ё ўв®а®Ј® ўЁ¤®ў ®Ў®Ґў ¤®«¦** Ўлвм а*§«Ёз*®©!"
  44.   m$ = "111"
  45.  END IF
  46.  IF (VAL(a1$) > a AND VAL(a1$) > b) THEN
  47.   PRINT "?ЁаЁ** ®ЎҐў *Ґ ¬®¦Ґв Ўлвм Ў®«миҐ а*§¬Ґа®ў Ї®¬ҐйҐ*Ёп!"
  48.   m$ = "111"
  49.  END IF
  50.  LOOP UNTIL (m$ = "")
  51. t = VAL(a1$)
  52. PRINT star$
  53. perim = 2 * a + 2 * b
  54. k = FIX((perim / s + perim / t) / 2)
  55. n = 1
  56. FOR i = 0 TO k
  57.  FOR j = k TO 0 STEP -1
  58.   IF ((perim - (i * s + j * t)) >= 0) THEN n = n + 1
  59.  NEXT j
  60. NEXT i
  61. DIM array(1 TO n, 1 TO 3) AS SINGLE
  62. n = 1
  63. max = 1000000
  64. maxs = 0
  65. maxt = 0
  66. FOR i = 0 TO k
  67.  FOR j = k TO 0 STEP -1
  68.  IF (perim - (i * s + j * t) >= 0) THEN
  69.    array(n, 1) = i
  70.    array(n, 2) = j
  71.    array(n, 3) = perim - (i * s + j * t)
  72.    IF (array(n, 3) < max) THEN
  73.     max = array(n, 3)
  74.     maxs = i
  75.     maxt = j
  76.    END IF
  77.   n = n + 1
  78.  END IF
  79.  NEXT j
  80. NEXT i
  81.  
  82. PRINT "Є®«-ў® Ї®«®б иЁаЁ*л"; s; SPACE$(6); "Є®«-ў® Ї®«®б иЁаЁ*л"; t; SPACE$(6); "**Ё¬Ґ*миЁ© ®бв*в®Є"
  83. REM PRINT SPACE$(8); maxs; SPACE$(27); maxt; SPACE$(18); max
  84. FOR i = 1 TO (n - 1)
  85.  IF (array(i, 3) = max) THEN
  86.    PRINT SPACE$(8); array(i, 1); SPACE$(27); array(i, 2); SPACE$(18); array(i, 3)
  87.  END IF
  88. NEXT i
  89. PRINT star$
  90.  
  91. FUNCTION CHECK$ (source$)
  92. n = VAL(source$)
  93. IF (n = 0 AND source$ <> "0" AND source$ <> "") THEN
  94.  CHECK = "‚л ўўҐ«Ё ⥪бв! ‚ўҐ¤ЁвҐ Ї®¦*«г©бв* Ї®«®¦ЁвҐ«м*®Ґ зЁб«®!"
  95.  GOTO 1
  96. END IF
  97. IF (n = 0 AND source$ = "") THEN
  98.  CHECK = "‚л *ЁзҐЈ® *Ґ ўўҐ«Ё! ‚ўҐ¤ЁвҐ Ї®¦*«г©бв* Ї®«®¦ЁвҐ«м*®Ґ зЁб«®!"
  99.  GOTO 1
  100. END IF
  101. IF (n = 0 AND source$ = "0") THEN
  102.  CHECK = "‚л ўўҐ«Ё *®«м. ‚ўҐ¤ЁвҐ Ї®¦*«г©бв* Ї®«®¦ЁвҐ«м*®Ґ зЁб«®!"
  103.  GOTO 1
  104. END IF
  105. IF (n < 0) THEN
  106.  CHECK = "‚л ўўҐ«Ё ®ваЁж*⥫м*®Ґ зЁб«®! ‚ўҐ¤ЁвҐ Ї®¦*«г©бв* Ї®«®¦ЁвҐ«м*®Ґ зЁб«®!"
  107.  GOTO 1
  108. END IF
  109. IF (n > 0) THEN
  110.  CHECK = ""
  111.  GOTO 1
  112. END IF
  113. 1
  114. END FUNCTION

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


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

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

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

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

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

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