Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Аккредитация_Программирование_Ответы.doc
Скачиваний:
1
Добавлен:
22.11.2019
Размер:
401.41 Кб
Скачать
  1. Запишите логическое выражение, определяющее принадлежность точки с координатами (X,y) области, изображенной на рисунке.

3. Переведите число из восьмеричной системы счисления в шестнадцатеричную: 74038.

4. Представленный ниже фрагмент программного кода при компиляции приведет к ошибке. Объясните почему. Исправьте реализацию класса так, чтобы код компилировался.

class Employee: IComparable

{

private string name;

private int salary;

public Employee(string name, int salary)

{

this.name = name; this.salary = salary;

}

}

Вопрос 1.

i=1;

j=2;

Вопрос 2.

Точка с координатами (x,y) принадлежит области:

(y1 <= x1 && y1>=0 && x1 >=0 && x1 <= 70)

Вопрос 3.

74038 = 111 100 000 0112 = 1111 0000 00112 = F0316

Вопрос 4.

Ошибка компиляции вызвана тем, что в классе Employee не реализован метод CompareTo. Так как класс Employee реализует интерфейс IComparable, то он должен предоставить реализацию метода CompareTo.

class Employee : IComparable

{

private string name;

private int salary;

public Employee(string name, int salary)

{

this.name = name; this.salary = salary;

}

public int CompareTo(object obj)

{

if (salary > (obj as Employee).salary) return 1;

else

if (salary < (obj as Employee).salary) return -1;

else return 0;

}

}

Вопрос №12

  1. Представленный ниже метод должен определять позицию максимального элемента в двумерном массиве. Найдите ошибки в реализации метода. Запишите правильную реализацию метода.

static void Search(double[,] array, out int pos1, out int pos2)

{

for (int i = 0; i < array.GetLength(0); i++)

for (int j = 0; j < array.GetLength(1); j++)

if (array[i, j] > array[pos1, pos2])

pos1 = i;

pos2 = j;

}

2. Запишите логическое выражение, определяющее принадлежность точки с координатами (X,y) области, изображенной на рисунке.

3. Переведите число из восьмеричной системы счисления в шестнадцатеричную: 15158;

4. Рассмотрите фрагмент программного кода. Запишите, что будет выведено на экран в результате его выполнения, объясните почему. Перепишите реализацию этого фрагмента программы так, чобы элементы массива a выводились в прямом порядке (используйте коллекцию Queue).

Stack s = new Stack();

int[] a = { 1, 2, 3, 4, 5, 6 };

foreach (int x in a) s.Push(x);

while (s.Count != 0)

Console.WriteLine(s.Pop());

Вопрос 1.

1. В методе отсутствует инициализация переменных pos1, pos2 начальным значением (до выполнения тела цикла)

2. Отсутствуют фигурные скобки в условном операторе if

3. Исправленная реализация метода:

static void Search(double[,] array, out int pos1, out int pos2)

{

pos1=0; pos2=0;

for (int i = 0; i < array.GetLength(0); i++)

for (int j = 0; j < array.GetLength(1); j++)

if (array[i, j] > array[pos1, pos2])

{

pos1 = i;

pos2 = j;

}

}