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

7. Лице на правоъгълник

  1. Допишете програмата по-горе, за да пресмята лицето на правоъгълника и да го проверява.

Каква точно проверка трябва да се направи? Лицето / на едната страна да показва като резултат другата ли?

 

За сега скалъпих това, но не съм сигурен, че точно това се иска в условието. :D

 

Console.WriteLine("Въветете число за страна A:");
            var a = decimal.Parse(Console.ReadLine());
            Console.WriteLine("Въветете число за страна B:");
            var b = decimal.Parse(Console.ReadLine());
            var sum = (a * b);
            Console.WriteLine("Лицето на триъгълника е: " +sum);
            var sum2 = (sum / a);
            Console.WriteLine("Страната B е: " + sum2);

rado84 avatar rado84 1 Точки

Ако решаваш задачата, която си мисля, Judge няма да ти я приеме, защото имаш излишен output, а той очаква твоят output да е 1 към 1 с това, което му е зададено. И затова задачата се решава в 4 реда без излишни деления и изходи:

double a = double.Parse(Console.ReadLine());
double b = double.Parse(Console.ReadLine());
double area = a * b;
Console.WriteLine(area);

 

1
koksibg avatar koksibg 878 Точки

Аз я направих- изчислява само лицето, не съм правил проверка:

using System;

namespace Rectangle_Area
{
    class Rectangle_Area
    {
        static void Main(string[] args)
        {
            var a = decimal.Parse(Console.ReadLine());
            var b = decimal.Parse(Console.ReadLine());
            Console.WriteLine("Area = " + a * b);
        }
    }
}

0
koksibg avatar koksibg 878 Точки

Освен може би да се прави проверка дали е правоъгилник, то тогава се добавя просто една проверка:

using System;

namespace Rectangle_Area
{
    class Rectangle_Area
    {
        static void Main(string[] args)
        {
            var a = decimal.Parse(Console.ReadLine());
            var b = decimal.Parse(Console.ReadLine());
            if (a != b)
            {
                Console.WriteLine("Area = " + a * b);
            }
            else
            {
                Console.WriteLine("This is not a rectangle. It's square");
                Console.WriteLine("And its area = " + a * a);
            }
        }
    }
}

0
ZornitsaSerbezova avatar ZornitsaSerbezova 454 Точки

Това е абсолютно безсмислено. Според мен няма какво да му се проверява на лицето на триъгълника. Може да е грешка в условието. На мен без никакви проверки judge ми дава 100/100

1
StanimirStankov avatar StanimirStankov 18 Точки

Проверка трябва дали:

а и b са числа

 а != b

a > 0 || b >0

0
rado84 avatar rado84 1 Точки

Проверката е безсмислена, защото като си зададеш променливите както трябва (както аз съм ги задал да са double - защото double може да работи с int, но обратното не може), ако тръгнеш да въвеждаш текст, програмата просто ще се счупи. Така че проверката дали а и б са цифри е просто безсмислена.

0
StanimirStankov avatar StanimirStankov 18 Точки

.... да пресмята лицето на правоъгълника и да го проверява.

Аз останах с впечатление, че трябва да се запознаем с грешките (изключенията).

Ако подадем на входа на конзолата символен низ, а не число се получава изключение и програмата гърми.

Проверката може да се направи: -  чрез прихващане на изключение 

                                                   -  чрез условно парсване

Това ми предложиха за проверка:

            decimal resultA = 0;
            decimal resultB = 0;

            //TryParse returns a bool for whether convertion was successful
            var convertA = decimal.TryParse(Console.ReadLine(), out resultA);
            var convertB = decimal.TryParse(Console.ReadLine(), out resultB);

            if (convertA && convertB && resultA != resultB && resultA > 0 && resultB > 0)
                Console.WriteLine(resultA * resultB);

0
rado84 avatar rado84 1 Точки

То няма какво да му се проверява на лицето на правоъгълника. Освен ако не са искали да кажат да се провери дали фигурата е правоъгълник, което се прави лесно:

if (a != b)
{ Console.WriteLine("The figure is a rectangle") }

else
{ Console.WriteLine("The figure is a square") }

0