| 
					| engineerklub | Дата: Среда, 13.11.2024, 11:35 | Сообщение # 1 |  |  Генералиссимус Группа: Администраторы Сообщений: 35030 Статус: Offline | Объектно-ориентированное программирование. Билет №6 
 Тип работы: Билеты
 Форматы файлов: Microsoft Word
 Сдано в учебном заведении: ДО СИБГУТИ
 
 Описание:
 1. Требуется: 1) оставить метод Move только в классе TGivotnoe;
 2) Изменить программу так, чтобы после выполнения п.1 результат ее работы не изменился.
 { TGivotnoe – животное; TKat – кошка; TDog – собака }
 
 TGivotnoe:=object
 X, Y: integer;
 procedure Move (x1, y1: integer);
 procedure Clear;
 procedure Display;
 End;
 TKat=object (TGivotnoe)
 procedure Move (x1, y1: integer);
 procedure Clear;
 procedure Display;
 End;
 TDog=object (TGivotnoe)
 procedure Move (x1, y1: integer);
 procedure Clear;
 procedure Display;
 End;
 Procedure TGivotnoe.Move (x1, y1: integer);
 Begin
 Clear;
 x:= x1;
 y:= y1;
 Display;
 {реализация методов Move классов TKat и TDog аналогична}
 End; procedure TGivotnoe.Clear;
 begin
 { рисует символ * цветом фона}
 end;
 Procedure TGivotnoe.Display;
 Begin
 { рисует символ * заданным цветом }
 end;
 Procedure TKat.Display;
 begin
 {рисует кошку}
 end;
 Procedure TDog.Display;
 begin
 {рисует собаку}
 end;
 {Методы Clear аналогичны методам Display, но рисуют цветом фона }
 var k: TDog;
 begin
 …
 k.Move(120,150);
 …
 end.
 
 Указания к ответу на 1-ый вопрос билета:
 Чтобы ответить на поставленный в задаче вопрос надо определить: Выполнится ли в результате работы предложенного фрагмента программы метод TDog.Display или нет? Это уже почти и будет Вашим ответом.
 Как это определить? Проанализируйте работу программы, начиная с операторов выполняемой части (другими словами, с операторов раздела описания действий). Повторите это дважды:
 до внесения каких-либо изменений в приведенный фрагмент программы и после (если, конечно, Вы посчитаете необходимым что-либо изменить). Таким образом, проанализировав программу в первоначальном виде, Вам станет понятно: надо ли что-нибудь в ней изменять, дополнять и, если надо, аналогично проанализировав программу еще раз после внесения изменений, Вы проверите – правильно ли она работает, а именно: выполнится ли в результате ее работы метод TDog.Display или нет?
 Как проанализировать работу программы? Точно так же, как в лекциях анализируется работа программ из примеров 2.5 и 2.6. Так же, как там, Вам необходимо в ответе на данный вопрос билета изобразить цепочки вызовов методов: до внесения каких-либо изменений в код программы и после (если, конечно, Вы что-то измените).
 Важно! Не надо доводить приведенный фрагмент до полностью работающей программы. Если написано, что, например, здесь рисуется то-то, то пусть это так и остается – код вместо комментариев дописывать не требуется. Вы вносите изменения (редактируете, добавляете или удаляете) только в тот код, который написан.
 
 Итак, ответом на 1-ый вопрос билета являются:
 1) Цепочка вызовов методов до внесения каких-либо изменений в приведенный фрагмент программы;
 2) Ответ на вопрос: выполнится ли в результате работы предложенного фрагмента программы метод TDog.Display или нет?
 если да – Ваш ответ закончен, если нет – переходите к п. 3);
 3) Внесенные Вами изменения в код программы.
 (Не обязательно переписывать весь код программы, напишите только измененные строки, например, так: строка из программы и эта же строка после внесения изменений);
 4) Цепочка вызовов методов после внесения Ваших изменений.
 
 2. Могут ли иметь место совпадения имен методов в описаниях класса-предка и класса-наследника?
 а) да;
 б) нет;
 в) да, но с ограничениями;
 
 3. Конструктор является:
 а) статическим методом;
 б) внутренним методом объекта;
 в) виртуальным методом;
 г) обычным методом объекта
 
 СКАЧАТЬ
 |  |  |  |  |