7. Лице на правоъгълник
- Допишете програмата по-горе, за да пресмята лицето на правоъгълника и да го проверява.
Каква точно проверка трябва да се направи? Лицето / на едната страна да показва като резултат другата ли?
За сега скалъпих това, но не съм сигурен, че точно това се иска в условието. :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);
Аз я направих- изчислява само лицето, не съм правил проверка:
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);
}
}
}
Освен може би да се прави проверка дали е правоъгилник, то тогава се добавя просто една проверка:
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);
}
}
}
}
Това е абсолютно безсмислено. Според мен няма какво да му се проверява на лицето на триъгълника. Може да е грешка в условието. На мен без никакви проверки judge ми дава 100/100
Проверка трябва дали:
а и b са числа
а != b
a > 0 || b >0
Проверката е безсмислена, защото като си зададеш променливите както трябва (както аз съм ги задал да са double - защото double може да работи с int, но обратното не може), ако тръгнеш да въвеждаш текст, програмата просто ще се счупи. Така че проверката дали а и б са цифри е просто безсмислена.
.... да пресмята лицето на правоъгълника и да го проверява.
Аз останах с впечатление, че трябва да се запознаем с грешките (изключенията).
Ако подадем на входа на конзолата символен низ, а не число се получава изключение и програмата гърми.
Проверката може да се направи: - чрез прихващане на изключение
- чрез условно парсване
Това ми предложиха за проверка:
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);
То няма какво да му се проверява на лицето на правоъгълника. Освен ако не са искали да кажат да се провери дали фигурата е правоъгълник, което се прави лесно:
if (a != b)
{ Console.WriteLine("The figure is a rectangle") }
else
{ Console.WriteLine("The figure is a square") }