2011-gre-cs-practice-book.pdf/Q52 — различия между версиями

Материал из DISCOPAL
Перейти к: навигация, поиск
(Объяснение)
 
(не показано 11 промежуточных версий 1 участника)
Строка 3: Строка 3:
 
Принцип подстановки подтипов описывает, когда один тип может быть заменён другим. Какое из следующих утверждений является верным?
 
Принцип подстановки подтипов описывает, когда один тип может быть заменён другим. Какое из следующих утверждений является верным?
  
* (A) Экземпляр подтипа может быть использован в любом выражении, где может быть использован экземпляр супертипа, потому что подтип должен поддерживать расширенное множество операций, поддерживаемых супертимом.
+
=== Ответы ===
  
* (B) Экземпляр подтипа может быть использован в любом выражении, где может быть использован экземпляр супертипа, потому что подтип должен поддерживать подмножество операций, поддерживаемых супертимом.
+
* Правильный вариант: Экземпляр подтипа может использоваться в любом выражении, где можно использовать экземпляр супертипа, потому что подтип должен поддерживать супернабор операций, которые поддерживает супертип.
 
+
* Экземпляр подтипа может использоваться в любом выражении, где можно использовать экземпляр супертипа, потому что подтип должен поддерживать поднабор операций, которые поддерживает супертип.
* (C) Экземпляр супертипа может быть использован в любом выражении, где может быть использован экземпляр подтипа, потому что подтип должен поддерживать расширенное множество операций, поддерживаемых супертимом.
+
* Экземпляр супертипа может использоваться в любом выражении, где можно использовать экземпляр подтипа, потому что подтип должен поддерживать супернабор операций, которые поддерживает супертип.
 
+
* Экземпляр супертипа может использоваться в любом выражении, где можно использовать экземпляр подтипа, потому что подтип должен поддерживать поднабор операций, которые поддерживает супертип.
* (D) Экземпляр супертипа может быть использован в любом выражении, где может быть использован экземпляр подтипа, потому что подтип должен поддерживать подмножество операций, поддерживаемых супертимом.
+
* Экземпляры подтипов и супертипов могут использоваться взаимозаменяемо.
* (E) Экземпляры подтипов и супертимов могут использоваться взаимозаменяемо.
+
 
+
=== Ответы ===
+
* (A) <m>\(\Theta(k)\)</m>
+
* Правильный ответ: (B) <m>\(\Theta(kn)\)</m>
+
* (C) <m>\(\Theta(k^2n)\)</m>
+
* (D) <m>\(\Theta(n \log_k n)\)</m>
+
* (E) <m>\(\Theta(n^2)\)</m>
+
  
 
=== Объяснение ===
 
=== Объяснение ===
 
{{cstest-source|2011-gre-cs-practice-book.pdf|39|52}}
 
{{cstest-source|2011-gre-cs-practice-book.pdf|39|52}}
  
В вопросе идёт речь о приниципе подстановки Лисков [https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%B8%D0%BD%D1%86%D0%B8%D0%BF_%D0%BF%D0%BE%D0%B4%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8_%D0%9B%D0%B8%D1%81%D0%BA%D0%BE%D0%B2].
+
Фактически вопрос касается приниципа подстановки Лисков [https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%B8%D0%BD%D1%86%D0%B8%D0%BF_%D0%BF%D0%BE%D0%B4%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B8_%D0%9B%D0%B8%D1%81%D0%BA%D0%BE%D0%B2].
 +
Подтип как минимум должен поддерживать все операции супертипа, чтобы его можно было безопасно подставлять на место супертипа, поэтому правильный вариант — «Экземпляр подтипа может использоваться в любом выражении, где можно использовать экземпляр супертипа, потому что подтип должен поддерживать супернабор операций, которые поддерживает супертип».
  
 +
{{question-ok|[[Участник:StasFomin|StasFomin]] 10:57, 9 января 2025 (UTC)}}
  
{{question-ok|}}
+
[[Категория:OOP]]
{{reserve-task|[[Участник:Nikitashapovalov|Nikitashapovalov]] 20:36, 8 января 2025 (UTC)}}
+

Текущая версия на 10:57, 9 января 2025

Вопрос: Q52-08c765

Принцип подстановки подтипов описывает, когда один тип может быть заменён другим. Какое из следующих утверждений является верным?

Ответы

  • Правильный вариант: Экземпляр подтипа может использоваться в любом выражении, где можно использовать экземпляр супертипа, потому что подтип должен поддерживать супернабор операций, которые поддерживает супертип.
  • Экземпляр подтипа может использоваться в любом выражении, где можно использовать экземпляр супертипа, потому что подтип должен поддерживать поднабор операций, которые поддерживает супертип.
  • Экземпляр супертипа может использоваться в любом выражении, где можно использовать экземпляр подтипа, потому что подтип должен поддерживать супернабор операций, которые поддерживает супертип.
  • Экземпляр супертипа может использоваться в любом выражении, где можно использовать экземпляр подтипа, потому что подтип должен поддерживать поднабор операций, которые поддерживает супертип.
  • Экземпляры подтипов и супертипов могут использоваться взаимозаменяемо.

Объяснение

Исходники — вопрос 52 на 39 странице книги «2011-gre-cs-practice-book.pdf»

Фактически вопрос касается приниципа подстановки Лисков [1]. Подтип как минимум должен поддерживать все операции супертипа, чтобы его можно было безопасно подставлять на место супертипа, поэтому правильный вариант — «Экземпляр подтипа может использоваться в любом выражении, где можно использовать экземпляр супертипа, потому что подтип должен поддерживать супернабор операций, которые поддерживает супертип».