Loading...
jivako000 avatar jivako000 296 Точки

Задача - Лица на фигури (15 задача от лекцията Логически проверки)

Здравейте, може би ще ви се стори глупав въпроса, но трябва да Ви попитам. Условието на задачата е следното:

Да се напише програма, която въвежда размерите на геометрична фигура и пресмята лицето й. Фигурите са четири вида: квадрат (square), правоъгълник (rectangle), кръг (circle) и триъгълник (triangle). На първия ред на входа се чете вида на фигурата (square, rectangle, circle или triangle). Ако фигурата е квадрат, на следващия ред се чете едно число – дължина на страната му. Ако фигурата е правоъгълник, на следващите два реда четат две числа – дължините на страните му. Ако фигурата е кръг, на следващия ред чете едно число – радиусът на кръга. Ако фигурата е триъгълник, на следващите два реда четат две числа – дължината на страната му и дължината на височината към нея. Резултатът да се закръгли до 3 цифри след десетичната точка


Въпросът ми е мога ли да инициализирам променлива вътре в if конструкцията, така че след като например прочетем square от конзолата, да се изпълни това което е във "къдравите" скоби? Аз пробвах, но не се получава и не мога да разбера защо. Ето част от задачата ми:

 

using System;

class Program
{
    static void Main()
    {
        string figure = Console.ReadLine();
        string square = null;
        if (figure == square)
        {
            var a = double.Parse(Console.ReadLine());
            Console.WriteLine(a * a);
        }
    }
}

 

Благодаря предварително за помощта!

0
Programming Basics 27/05/2016 17:30:35
Wark0z avatar Wark0z 1 Точки

using System;
class Figures
{
    static void Main()
    {
        var figure = string.Format(Console.ReadLine());

        if(figure == "square")
        {
            var a = double.Parse(Console.ReadLine());
            Console.WriteLine(Math.Round(a*a,3));
        }
        if(figure == "restangle")
        {
            var a = double.Parse(Console.ReadLine());
            var b = double.Parse(Console.ReadLine());

            Console.WriteLine(Math.Round(a * b, 3));
        }
        if(figure == "circle")
        {
            var r = double.Parse(Console.ReadLine());
            Console.WriteLine(Math.Round(Math.PI * r * r, 3));
        }
        if (figure == "triangle")
        {
            var h = double.Parse(Console.ReadLine());
            var a = double.Parse(Console.ReadLine());
            Console.WriteLine(Math.Round((h * a) / 2, 3));
        }
    }
}

 

Някой може ли да ми каже защо кода не ми работи?

0
j0nze avatar j0nze 39 Точки

Имаш правописна грешка при rectangle.

0
Ataegina avatar Ataegina 1 Точки

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

if (figure == "square")
            {
                var a = double.Parse(Console.ReadLine());
                var area = Math.Round(a * a, 3);
                Console.WriteLine(area);
            }

Дано помага.

0
MarinParov avatar MarinParov 5 Точки

За първи път виждам вариант да се направи калкулация в CWL,
Три действия в един ред. 
Console.WriteLine(Math.Round((h * a) / 2, 3)); . - Елегантно. 

Целия блок за да има смисъл:

 {
            var h = double.Parse(Console.ReadLine());
            var a = double.Parse(Console.ReadLine());
            Console.WriteLine(Math.Round((h * a) / 2, 3));
        }

Декларираме променливите и после се калкулират и форматират на изхода на конзолата.

0
17/02/2019 01:43:08
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.