Софтуерно Инженерство
Loading...
chrisBG69 avatar chrisBG69 30 Точки

Задача 13.Area of Figures от Simple Conditions

Затруднявам се с тази задача, не мога да определя как на входа на две фигури да печатам две цифри, а на останалите фигури по едно число (readline), иначе формулите за area са ясни. Моля за някакво решение...

Тагове:
0
Programming Basics with PHP
Thedi avatar Thedi 200 Точки
Best Answer

Здравей,

Идеята е да прочетеш един ред. Който е какъв тип е фигурата.
Примери №1 : Дават триъгълник. 
Проверяваш коя фигура е това и след като видиш, че фигурата която ще ти дават е триъгълник знаеш, че за тази фигура ти трябват две страни. Така, че четеш две страни и изкарваш резултата който трябва.

Пример №2 : Дават ти квадрат.

Проверяваш коя фигура е това и след като видиш, че фигурата която ще ти дават е квадрат знаеш, че за тази фигура ти трябват една страна. В този случай прочиташ само една страна и принтираш което е нужно.

Обобщено първо виж каква е фигурата и според това каква е, чети различен брой входове. Не е нужно в задачати да прочетеш всичко още на първия ред. Възможно е да трябва някаква логила и според нея да четеш различни неща.

Надявам се да си разбрал. Ако имаш въпроси питай.

0
25/01/2018 13:36:22
chrisBG69 avatar chrisBG69 30 Точки

Това го разбрах, обаче ми куца синтаксиса (все пак съм новобранец), примерно за първия ред, от който ще се чете го правя така - $figure = "square"."rectangle"."circle"."triangle".readline(); после за всеки if ако дадена фигура е една от тези добре, но как да се добави да чете за една 1 число, а за друга 2, и може ли във if-а да влезе readline (), това не ми е ясно как да го изпиша, беден речник брат (синтаксис) :) 

0
Thedi avatar Thedi 200 Точки

Абсолютно всичко може да влиза в if. Единственото нещо което прави иф-а е да каже, че този код ще се изпълнява само и единствено ако условието в иф-а е изпълнено и то не влия на това какво може да пишеш в него.

Идеята е, че ти дават фигура:

$figure = readline();

После правиш проверка:
 

if($figure == "square") {

Само когато фигурата ти е квадрат ще влезнеш в тази проверка. Съответно ти знаеш че за квадрат ти трябва само една страна за това си прочиташ само една.

if ($figure == "square") {
 $sideA = readline();
 //Смяташ лицето тук и го принтираш.
}

Ако обаче фигурата ти е триъгълник:
 

if ($figure == "square") {
    $sideA = readline();
   
} elseif ($figure =="triangle"){
    //Тук вече знаеш, че фигурата ти е тригълник.
    //За това четем две страни.
    $sideA = readline();
    $sideB = readline();
} 


Понеже всички проверки са залепени с if-elseif, то тази $figure ще бъде валидна само за една от фигурите. Така, че ще се изпълни само кодът в съответната проверка и ще се прочете или само 1 вход или 2 зависи какво е написано в проверката.

0
chrisBG69 avatar chrisBG69 30 Точки

Благодаря, така е друго нещо, аз от снощи се мъча с тази задача. Благодаря на всички за насоките!

https://pastebin.com/4vTdMyyZ

0
25/01/2018 15:34:18