
Вопрос задан 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()); } }}

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

Отвечает Ломага Андрій.
Если просто убрать ошибки, то:
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());
}
}
}



Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.
Ваш код содержит несколько ошибок. Вот исправленный вариант:
csharpusing 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}");
}
}
}
Изменения, которые я внес:
- Вынесение класса
Point
за пределы методаMain
, так как в C# классы не могут вкладываться друг в друга. - Уровень доступа к полю
Y
изменен наprivate
, чтобы использовать методы доступа (GetY
иSetY
) для работы с ним. - Удаление дублирующего метода
Main
(оставлен только один методMain
). - Исправление ошибки в расчете переменной
R
- удалена дублирующая строка и исправлен вызов методаGetY()
для получения значенияY
.


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

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

Информатика 557

Информатика 33

Информатика 74

Информатика 12

Информатика 10

Информатика 33

Информатика 27
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili