Вопрос задан 27.07.2023 в 19:27. Предмет Информатика. Спрашивает Шарапова Лена.

C# Описать класс, реализующий счетчик, который может увеличивать или уменьшать свое значение на

единицу. Предусмотрите инициализацию счетчика значениями по умолчанию (создать конструктор без параметров) и произвольными значениями. Счетчик имеет два метода: увеличения и уменьшения, - и свойство, позволяющее получить его текущее состояние. По мимо этого у счетчика есть диапазон, в котором он может увеличивать или уменьшать значения. Например, если диапазон от 0 до 10, то «стрелка счетчика» или нынешнее состояние счетчика будет от 0 до 10 (например, 5). Если стрелка счетчика будет на значении 10, а мы вызовем метод увеличения на 1, то ничего не произойдет. Стрелка так же останется на значении 10. Напишите программу, демонстрирующую все разработанные элементы класса.
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Исаева Алёна.

using System;

internal class Program {

   private static void Main() {

       Console.WriteLine("Введите минимум для счетчика");

       var min = int.Parse(Console.ReadLine() ?? throw new InvalidOperationException());

       Console.WriteLine("Введите максимум для счетчика");

       var max = int.Parse(Console.ReadLine() ?? throw new InvalidOperationException());

       Console.WriteLine("Введите значение для счетчика");

       var v = int.Parse(Console.ReadLine() ?? throw new InvalidOperationException());

       var counter = new Counter(max, min, v);

       Console.WriteLine("Введите + для увеличение и - для уменьшения, иное для выхода");

       do {

           var c = Console.ReadKey();

           if (c.KeyChar == '+') counter.Increase();

           else if (c.KeyChar == '-') counter.Decrease();

           else break;

           Console.WriteLine($" => {counter.Value}");

       } while (true);

       Console.ReadKey();

   }

}

public class Counter {

   public readonly int Maximum;

   public readonly int Minimum;

   public int Value { private set; get; }

   public Counter(int maximum, int minimum, int counter) {

       this.Maximum = maximum;

       this.Minimum = minimum;

       counter = Math.Min(this.Maximum, counter);

       counter = Math.Max(this.Minimum, counter);

       this.Value = counter;

   }

   private Counter() {

       this.Maximum = 10;

       this.Minimum = 0;

       this.Value = 5;

   }

   public void Increase() {

       var value = this.Value + 1;

       if (value > this.Maximum || value < this.Minimum)

           return;

       this.Value++;

   }

   public void Decrease() {

       var value = this.Value - 1;

       if (value > this.Maximum || value < this.Minimum)

           return;

       this.Value--;

   }

}



0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для реализации описанного счетчика в C#, создадим класс Counter, который будет содержать поля для текущего значения, минимального и максимального значений. В классе опишем конструкторы для инициализации значениями по умолчанию и произвольными значениями, методы для увеличения и уменьшения значения с проверкой находится ли значение в допустимом диапазоне, и свойство для получения текущего состояния счетчика.

csharp
using System; class Counter { private int minValue; private int maxValue; private int currentValue; // Конструктор без параметров (значения по умолчанию: от 0 до 10) public Counter() { minValue = 0; maxValue = 10; currentValue = minValue; } // Конструктор с произвольными значениями диапазона public Counter(int min, int max) { minValue = min; maxValue = max; currentValue = minValue; } // Метод для увеличения значения счетчика на единицу public void Increment() { if (currentValue < maxValue) { currentValue++; } } // Метод для уменьшения значения счетчика на единицу public void Decrement() { if (currentValue > minValue) { currentValue--; } } // Свойство для получения текущего состояния счетчика public int Value { get { return currentValue; } } } class Program { static void Main() { // Создаем счетчик со значениями по умолчанию Counter defaultCounter = new Counter(); Console.WriteLine("Счетчик со значениями по умолчанию:"); Console.WriteLine("Текущее значение: " + defaultCounter.Value); // Увеличиваем значение на 2 раза defaultCounter.Increment(); defaultCounter.Increment(); Console.WriteLine("Текущее значение после увеличения на 2: " + defaultCounter.Value); // Уменьшаем значение на 1 defaultCounter.Decrement(); Console.WriteLine("Текущее значение после уменьшения на 1: " + defaultCounter.Value); // Создаем счетчик с произвольными значениями диапазона (от -5 до 5) Counter customCounter = new Counter(-5, 5); Console.WriteLine("\nСчетчик с произвольными значениями диапазона:"); Console.WriteLine("Текущее значение: " + customCounter.Value); // Пытаемся увеличить значение за пределы диапазона for (int i = 0; i < 10; i++) { customCounter.Increment(); Console.WriteLine("Текущее значение после увеличения: " + customCounter.Value); } // Пытаемся уменьшить значение за пределы диапазона for (int i = 0; i < 10; i++) { customCounter.Decrement(); Console.WriteLine("Текущее значение после уменьшения: " + customCounter.Value); } } }

В приведенной программе создаются два экземпляра счетчика: один с диапазоном от 0 до 10 (значения по умолчанию), и второй с произвольными значениями диапазона от -5 до 5. Затем, производятся операции увеличения и уменьшения значения счетчиков, с учетом ограничений диапазона, и выводятся результаты в консоль.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос