Форум программистов, компьютерный форум, киберфорум
Наши страницы
C# для начинающих
Войти
Регистрация
Восстановить пароль
 
AndreyVoronin52
0 / 0 / 0
Регистрация: 29.10.2016
Сообщений: 39
1

Параметры круга

06.02.2017, 14:46. Просмотров 462. Ответов 4
Метки нет (Все метки)

Дан радиус круга. Надо вывести диаметр, площадь и длину круга. Написал вот так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
struct CircleParameters
        {
            public double Radius;
            public double Diameter;
            public double Square;
            public double CircleLength;
 
            public CircleParameters(double radius)
            {
                Radius = radius;
                Diameter = 2 * Radius;
                Square = Math.PI * Math.Pow(Radius, 2);
                CircleLength = Math.PI * Diameter;
            }
 
        }
 
        static void Main(string[] args)
        {
            double radius = double.Parse(Console.ReadLine());
            CircleParameters parameters = new CircleParameters(radius);
            Console.WriteLine(parameters.Diameter);
            Console.WriteLine(parameters.Square);
            Console.WriteLine(parameters.CircleLength);
        }
Препод написал мне:"это уже ближе, но если у твоей структуры поменять радиус, скажем на 5, то диаметр не изменится, верно?". Я не понимаю, что он имеет в виду.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.02.2017, 14:46
Ответы с готовыми решениями:

Параметры круга. get{} и set{}
Дан радиус круга. Надо вывести диаметр, площадь и длину круга. Написал вот так:...

Определить радиус, площадь круга и длину круга
Программа для работы с действительными числами... 1)Дано (x0, y0) – координаты...

Вычислить площадь круга
Пусть элементами круга является радиус(первый элемент), диаметр(второй элемент)...

Вычисление площади круга
Пусть элементами круга является радиус(первый элемент), диаметр(второй элемент)...

Вычисление площади круга
Как модифицировать код, чтобы метод посчитал площадь круга???:help: ...

4
Pikemaster
300 / 300 / 215
Регистрация: 24.09.2013
Сообщений: 769
Завершенные тесты: 4
06.02.2017, 14:58 2
AndreyVoronin52, он имел в виду, что при следующей записи:
C#
1
parameters.Radius = 5;
все остальные параметры круга останутся без изменений.

Добавлено через 53 секунды
Как вариант - сделать все параметры приватными и устанавливать новое значение радиуса только через метод. Например:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
struct CircleParameters
{
    double Radius;
    double Diameter;
    double Square;
    double CircleLength;
 
    public CircleParameters(double radius)
    {
        Radius = radius;
        Diameter = 2 * Radius;
        Square = Math.PI * Math.Pow(Radius, 2);
        CircleLength = Math.PI * Diameter;
    }
 
    public void SetRadius(double newRadius)
    {
        Radius = newRadius;
        Diameter = 2 * Radius;
        Square = Math.PI * Math.Pow(Radius, 2);
        CircleLength = Math.PI * Diameter;
    }
}
 
// parameters.SetRadius(5);
Добавлено через 5 минут
Ну, и тогда можно конструктор сократить:
C#
1
2
3
4
public CircleParameters(double radius)
{
    SetRadius(radius);
}
0
AndreyVoronin52
0 / 0 / 0
Регистрация: 29.10.2016
Сообщений: 39
06.02.2017, 15:30  [ТС] 3
А как мне выводить диаметр, площадь и длину круга?
0
Pikemaster
300 / 300 / 215
Регистрация: 24.09.2013
Сообщений: 769
Завершенные тесты: 4
06.02.2017, 15:45 4
AndreyVoronin52, тогда так
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
struct CircleParameters
{
    double Radius;
    public double Diameter { get; private set; }
    public double Square { get; private set; }
    public double CircleLength { get; private set; }
 
    public CircleParameters(double radius)
    {
        Radius = radius;
        SetRadius(radius);
    }
 
    public void SetRadius(double newRadius)
    {
        Radius = newRadius;
        Diameter = 2 * Radius;
        Square = Math.PI * Math.Pow(Radius, 2);
        CircleLength = Math.PI * Diameter;
    }
}
Выводить также как и раньше:
C#
1
Console.WriteLine(Diameter.ToString());
0
ata
270 / 242 / 186
Регистрация: 28.10.2015
Сообщений: 709
06.02.2017, 16:30 5
Гораздо более правильно задавать радиус только через конструктор, а для изменения круга создавать новый объект.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
using System;
 
class Circle
{
    private double radius;
    private double? diameter;
    private double? area;
    private double? length;
 
    public Circle(double radius)
    {
        this.radius = radius;
    }
 
    public double Diameter
    {
        get { return (diameter = diameter ?? radius + radius).Value; }
    }
 
    public double Area
    {
        get { return (area = area ?? Math.PI * radius * radius).Value; }
    }
 
    public double Length
    {
        get { return (length = length ?? Math.PI * Diameter).Value; }
    }
}
 
public class Kata
{
    public static void Main()
    {
        Circle circle = new Circle(5);
        Console.WriteLine(circle.Diameter);
        Console.WriteLine(circle.Area);
        Console.WriteLine(circle.Length);
        circle = new Circle(10);
        Console.WriteLine(circle.Diameter);
        Console.WriteLine(circle.Area);
        Console.WriteLine(circle.Length);
    }
}
0
06.02.2017, 16:30
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.02.2017, 16:30

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

Вычисление площади круга по номеру
Hi. Прошу помочь,самый легкий и рабочий вариант. Написать программу...

Два круга, найти площади
Begin. Даны два круга с общим центром и радиусами R1 и R2 (R1>R2). Найти...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru