dosr2000 (Варианты экзаменов)
Описание файла
Файл "dosr2000" внутри архива находится в папке "Варианты экзаменов". Документ из архива "Варианты экзаменов", который расположен в категории "". Всё это находится в предмете "языки программирования" из 5 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Онлайн просмотр документа "dosr2000"
Текст из документа "dosr2000"
1 | 2 | 3 | 4 | 5 | 6 | 7 |
Ф.И.О. __________________________________________________ Группа _____
1. Перечислите основные позиции при рассмотрении языков программирования.
2. Напишите спецификацию класса на языке Си++, функционально эквивалентную приведенной ниже спецификации пакета на языке Ада.
GENERIC
TYPE T IS PRIVATE;
WITH FUNCTION "=" (X,Y : T) RETURN BOOLEAN;
WITH FUNCTION IS_NULL (X:T) RETURN BOOLEAN;
WITH FUNCTION "+" (X:T) RETURN T;
WITH FUNCTION "*" (X:T) RETURN T;
WITH FUNCTION MODULO (X,Y:T) RETURN T;
PACKAGE KEY_MANAGER IS
TYPE KEY IS LIMITED PRIVATE;
PROCEDURE NEXTKEY (NEWKEY : OUT KEY K : IN KEY);
PROCEDURE INITKEY(K : OUT KEY);
PRIVATE
TYPE KEY IS NEW T;
END KEY_MANAGER;
3. Есть ли ошибки в приведенном ниже фрагменте программы на языке Си++? Если есть, то объясните, в чем они состоят, если нет, то что будет выдано в стандартный канал вывода cout в результате вызова функции f()?
class X {
public :
virtual void g (int j) { cout << "X::g(" << j << ")\n"; }
void g () { cout << "X::g()" << '\n'; }
};
class Y : public X {
public :
void g (int j) { cout << "Y::g(" << j << ")\n"; }
void g () { cout << "Y::g()" << '\n'; }
};
void d (X * px, Y * py) { px->g (2); px-> g (); py -> g (2); py-> g ();}
void f () {
X x; Y y; X * px; Y * py;
px = &x; py = &y; d (px, py);
px = py; d(px, py);
d(py,py);
}
4. Какие конструкции языка Оберон-2 обеспечивают динамическую идентификацию типа? Объясните их смысл.
5. Дайте определение абстрактного класса в языке Си++ и определение абстрактного типа данных. Может ли абстрактный класс быть абстрактным типом данных? Если да, то приведите пример.
6. В каких языках из нижеперечисленных есть аналоги виртуальных функций языка Си++?
Си, Оберон, Оберон 2, Ада, Ада 95, Ява, Модула 2, С#.
7. Напишите фрагмент программы на языке Си++, эквивалентный приведенному ниже фрагменту программы на языке Ява.
...
int i = 0;
int p() { .... }
void g(Int i) { ......}
void f () throws A_Exception, B_Exception {
try {
i = p(); ......
} finally { g(i); }
}