1 - מערכים
כתבו פעולה Special המקבלת מערך arr של מספרים שלמים באורך אי-זוגי (לפחות 3 איברים). כל האיברים במערך שווים זה לזה, למעט איבר יחיד ששונה מהשאר. הפעולה מחזירה את המספר השונה.
ניתן להניח שהקלט תמיד תקין בהתאם לתיאור.
דוגמאות
[1, 1, 2] => 2
[17, 17, 3, 17, 17, 17, 17] => 3
2 - מערכים
כתבו פעולה בשם Uniques המקבלת מערך של מספרים שלמים arr
ומחזירה מערך חדש של מספרים שלמים, כך ש:
- נשמר הסדר המקורי של האיברים.
- אין שני איברים זהים שמופיעים ברצף.
- אם מופיעים מספרים זהים אחד אחרי השני, משאירים רק אחד מהם.
דוגמאות
[1, 1, 1, 2, 2, 3] => {1, 2, 3}
[5, 5, 7, 7, 7, 5, 5] => {5, 7, 5}
[4, 4, 4, 4] => {4}
[1, 2, 3, 3, 2, 2, 1] => {1, 2, 3, 2, 1}
3 - מחלקות ומערך עצמים
למחלקה Product שתי תכונות:
nameמטיפוסstringpriceמטיפוסint
כתבו פעולה חיצונית בשם Interesting המקבלת מערך arr של עצמים מטיפוס Product,
ומחזירה מחרוזת המכילה את שם המוצר שמחירו הנמוך ביותר מבין כל המוצרים שמחירם לפחות 10 שקלים.
ניתן להניח כי:
- המערך מלא באיברים (אין בו ערכי
null). - קיים לפחות מוצר אחד שמחירו 10 שקלים או יותר.
4 — написание класса
Перед вами часть интерфейса класса Phone, содержащего следующие четыре свойства:
- цвет телефона:
colorтипаstring - производитель:
makerтипаstring - цена телефона:
priceтипаint - вес телефона в граммах:
weightтипаint
| Описание операции | Заголовок метода на C# |
|---|---|
Конструктор, создающий телефон цвета "red", производителя maker, ценой 2000 шекелей и весом 548 граммов |
public Phone(string maker) |
| Конструктор копирования, получающий телефон и создающий новый телефон с теми же свойствами | public Phone(Phone other) |
Метод, обновляющий цену телефона на значение price |
public void SetPrice(int price) |
Метод, возвращающий true, если цена телефона other равна цене текущего телефона, иначе возвращает false |
public bool IsSamePrice(Phone other) |
Метод, возвращающий свойства объекта в виде строки: Color: Black, Maker: Samsung, Price: 3800, Weight: 520 |
public override string ToString() |
Требования
- Реализовать в классе
PhoneконструкторPhone(string maker). - Реализовать в классе
PhoneметодSetPrice. - Реализовать в классе
PhoneметодIsSamePrice.
5 — трассировка
Перед вами фрагмент главного метода в классе Program, использующий класс Phone из предыдущего вопроса. Выполните трассировку этого фрагмента с помощью таблицы и запишите полученный вывод.
В таблице трассировки укажите объекты и значения их свойств.
Фрагмент кода для трассировки
1
2
3
4
5
6
7
8
9
10
11
12
13
Phone p1 = new Phone("Apple");
Phone p2 = new Phone(p1);
Phone p3 = p1;
p2.SetPrice(2400);
p3.SetPrice(380);
if (p2.IsSamePrice(p3))
Console.WriteLine(p2);
else
Console.WriteLine(p3);
Console.WriteLine(p1);
4 - כתיבת מחלקות
לפניכם חלק מממשק המחלקה טלפון Phone המכילה את ארבעת התכונות הבאות:
- צבע הטלפון:
colorמטיפוס מחרוזת - שם היצרן:
makerמטיפוס מחרוזת - מחיר טלפון:
priceמטיפוס שלם - משקל הטלפון בגרמים:
weightמטיפוס שלם.
| תיאור הפעולה | כותרת הפעולה ב־C# |
|---|---|
פעולה הבונה טלפון בצבע "red", של יצרן maker, במחיר 2000 שקלים ובמשקל 548 גרם |
public Phone(string maker) |
| פעולה בונה מעתיקה המקבלת טלפון ומייצרת טלפון חדש עם אותן תכונות | public Phone(Phone other) |
הפעולה המעדכנת את מחיר הטלפון להיות price |
public void SetPrice(int price) |
פעולה המחזירה true אם מחיר הטלפון other זהה למחיר הטלפון הנוכחי, אחרת מחזירה false |
public bool IsSamePrice(Phone other) |
פעולה המחזירה את תכונות העצם כמחרוזת באופן הבא: Color: Black, Maker: Samsung, Price: 3800, Weight: 520 |
public override string ToString() |
דרישות
- יש לממש במחלקה
Phoneאת הפעולה הבונהPhone(string maker). - יש לממש במחלקה
Phoneאת הפעולהSetPrice. - יש לממש במחלקה
Phoneאת הפעולהIsSamePrice.
5 מעקב
לפניך קטע מפעולה ראשית במחלקה Program המשתמשת במחלקה Phone מהשאלה הקודמת. יש לעקוב בעזרת טבלת מעקב אחר ביצוע קטע הפעולה ולרשום את הפלט שיתקבל.
במעקב יש להציג את העצמים ואת ערכי תכונותיהם.
קטע קוד למעקב
1
2
3
4
5
6
7
8
9
10
11
12
13
Phone p1 = new Phone("Apple");
Phone p2 = new Phone(p1);
Phone p3 = p1;
p2.SetPrice(2400);
p3.SetPrice(380);
if (p2.IsSamePrice(p3))
Console.WriteLine(p2);
else
Console.WriteLine(p3);
Console.WriteLine(p1);
Русский
1 - массивы
Напишите метод Special, который получает массив arr целых чисел нечётной длины (не менее 3 элементов).
Все элементы массива одинаковы, за исключением одного элемента, который отличается от остальных.
Метод возвращает это отличающееся число.
Можно считать, что входные данные всегда корректны согласно описанию.
Примеры
[1, 1, 2] => 2
[17, 17, 3, 17, 17, 17, 17] => 3
2 - массивы
Напишите метод Uniques, который получает массив целых чисел arr
и возвращает новый массив целых чисел, в котором:
- сохраняется исходный порядок элементов.
- одинаковые элементы, стоящие подряд, оставляются только один раз.
Примеры
[1, 1, 1, 2, 2, 3] => {1, 2, 3}
[5, 5, 7, 7, 7, 5, 5] => {5, 7, 5}
[4, 4, 4, 4] => {4}
[1, 2, 3, 3, 2, 2, 1] => {1, 2, 3, 2, 1}
3 - классы и массив объектов
У класса Product есть два свойства:
nameтипаstringpriceтипаint
Напишите внешний метод Interesting, который получает массив arr объектов типа Product
и возвращает строку с названием товара с минимальной ценой среди всех товаров, цена которых не меньше 10 шекелей.
Можно считать, что:
- массив полностью заполнен (не содержит значений
null). - существует хотя бы один товар с ценой 10 шекелей или выше.
.