Вопрос задан 24.06.2023 в 16:08. Предмет Информатика. Спрашивает Кот Милана.

Исправьте пожалуйста программу, выдаёт ошибки(язык программирования C#) namespace lab1{ class

Program { static void Main(string[] args) { class Point { public int X; int Y; public int getY() { return Y; } // описание метода доступа к Y public void setY(int y) { Y = y; } // описание метода изменения Y }; static void Main() { Point p1 = new Point(); p1.X = 3; p1.Y = 4; // Ошибка! p1.Y недоступен из-за его уровня защиты p1.setY(4); double R = Math.Sqrt(p1.X * p1.X + p1.Y * p1.Y); // Ошибка! p1.Y недоступен из-за // его уровня защиты double R = Math.Sqrt(p1.X * p1.X + p1.getY() * p1.getY()); } }}
0 0
Перейти к ответам

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

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

Если просто убрать ошибки, то:

using System;

namespace lab1

{

   class Point

   {

       public int X;

       public int Y;

       public int getY() { return Y; } // описание метода доступа к Y

       public void setY(int y) { Y = y; } // описание метода изменения Y

   };

   class Program

   {

       static void Main(string[] args)

       {

           Point p1 = new Point();

           p1.X = 3;

           p1.Y = 4;  

           p1.setY(4);

           double R = Math.Sqrt(p1.X * p1.X + p1.Y * p1.Y);  

           R = Math.Sqrt(p1.X * p1.X + p1.getY() * p1.getY());

       }

   }

}

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

Ваш код содержит несколько ошибок. Вот исправленный вариант:

csharp
using System; namespace Lab1 { class Point { public int X; private int Y; public int GetY() { return Y; } public void SetY(int y) { Y = y; } } class Program { static void Main(string[] args) { Point p1 = new Point(); p1.X = 3; // p1.Y = 4; // Ошибка! Поле Y недоступно из-за его уровня защиты p1.SetY(4); double R = Math.Sqrt(p1.X * p1.X + p1.GetY() * p1.GetY()); Console.WriteLine($"R = {R}"); } } }

Изменения, которые я внес:

  1. Вынесение класса Point за пределы метода Main, так как в C# классы не могут вкладываться друг в друга.
  2. Уровень доступа к полю Y изменен на private, чтобы использовать методы доступа (GetY и SetY) для работы с ним.
  3. Удаление дублирующего метода Main (оставлен только один метод Main).
  4. Исправление ошибки в расчете переменной R - удалена дублирующая строка и исправлен вызов метода GetY() для получения значения Y.
0 0

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

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

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

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