|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
16.12.2009, 13:32 | #1 |
Пользователь
Регистрация: 04.06.2009
Сообщений: 11
|
Вопрос по обьектно-ориентированному программированию - pascal
Помогите/ответьте, пожалуйста на следующий вопрос:
Требуется внести в программу необходимые исправления и дополнения, чтобы в результате выполнения команды bs.Move(b,5) в клетке (b,5) появился король. {TChessMan – шахматная фигура; TKing – король; TBishop – слон} Type TColumns=’a’..’h’; TRows=1..8; TChessMan=object Column: TColumns; Row: TRows; procedure Move (C: TColumns; R: TRows); virtual; procedure Clear; virtual; procedure Display; End; TKing=object (TChessMan) procedure Display; End; TBishop=object (TChessMan) procedure Display; End; Procedure TChessMan.Move (C: TColumns; R: TRows); Begin Clear; Column:= C; Row:= R; Display; End; ----------------------------------------------------------------------- procedure ChessMan.Clear; begin {Очистка клетки шахматной доски. В теле метода не используются никакие методы. Для всех классов реализация очистки одинаковая.} end; Procedure TChessMan.Display; begin {рисует символ *} end; Procedure TKing.Display; begin {рисует Короля} end; Procedure TBishop.Display; begin {рисует Слона} end; var bs: TKing; begin … bs.Move(b,5); … end. Указания к ответу на вопрос: Чтобы ответить на поставленный в задаче вопрос надо определить: Выполнится ли в результате работы предложенного фрагмента программы метод TKing.Display или нет? Это уже почти и будет Вашим ответом. Как это определить? Проанализируйте работу программы, начиная с операторов выполняемой части (другими словами, с операторов раздела описания действий). Повторите это дважды: до внесения каких-либо изменений в приведенный фрагмент программы и после (если, конечно, Вы посчитаете необходимым что-либо изменить). Таким образом, проанализировав программу в первоначальном виде, Вам станет понятно: надо ли что-нибудь в ней изменять, дополнять и, если надо, аналогично проанализировав программу еще раз после внесения изменений, Вы проверите – правильно ли она работает, а именно: выполнится ли в результате ее работы метод TKing.Display или нет? Вам необходимо в ответе на данный вопрос изобразить цепочки вызовов методов: до внесения каких-либо изменений в код программы и после (если, конечно, Вы что-то измените). Важно! Не надо доводить приведенный фрагмент до полностью работающей программы. Если написано, что, например, здесь рисуется то-то, то пусть это так и остается – код вместо комментариев дописывать не требуется. Вы вносите изменения (редактируете, добавляете или удаляете) только в тот код, который написан. Итак, ответом на 1-ый вопрос являются: 1) Цепочка вызовов методов до внесения каких-либо изменений в приведенный фрагмент программы; 2) Ответ на вопрос: выполнится ли в результате работы предложенного фрагмента программы метод TKing.Display или нет? если да – Ваш ответ закончен, если нет – переходите к п. 3); 3) Внесенные Вами изменения в код программы. (Не обязательно переписывать весь код программы, напишите только измененные строки, например, так: строка из программы и эта же строка после внесения изменений); 4) Цепочка вызовов методов после внесения Ваших изменений. Огромное спасибо всем, кто помогает. |
18.12.2009, 08:14 | #2 |
Пользователь
Регистрация: 04.06.2009
Сообщений: 11
|
Неужели никто не может помочь? Я в долгу не останусь...
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вопрос по Pascal. | NitriNKa | Помощь студентам | 5 | 03.05.2009 20:50 |
Вопрос по программированию в C++(ООП) | Katya Melody | Помощь студентам | 2 | 24.04.2009 01:08 |
Вопрос по программированию | Mister Been | Свободное общение | 13 | 01.06.2008 20:23 |
Вопрос по программированию | Mister Been | Помощь студентам | 0 | 31.05.2008 13:32 |