2004 экзамен (Решённые задачи прошлых лет)
Описание файла
Файл "2004 экзамен" внутри архива находится в папке "Решённые задачи прошлых лет". Документ из архива "Решённые задачи прошлых лет", который расположен в категории "". Всё это находится в предмете "языки программирования" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Онлайн просмотр документа "2004 экзамен"
Текст из документа "2004 экзамен"
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
Ф.И.О. __________________________________________________ Группа _____
1. Перечислите факторы классификации данных.
2. Объясните отличия приватных и ограниченных приватных типов в языке Ада.
3. Напишите спецификацию класса на языке Си++, функционально эквивалентную приведенной ниже спецификации пакета на языке Ада.
GENERIC
TYPE T IS PRIVATE;
SIZE : INTEGER;
WITH FUNCTION "+" (X,Y:T) RETURN T;
WITH FUNCTION "*" (X,Y:T) RETURN T;
WITH FUNCTION "/" (X,Y:T) RETURN T;
PACKAGE G_MATRIX IS
TYPE M IS LIMITED PRIVATE;
FUNCTION "+" (X,Y:M) RETURN M;
FUNCTION "*" (X,Y:M) RETURN M;
FUNCTION "/" (X,Y:M) RETURN M;
PROCEDURE SET(X: IN OUT M; I,J:INTEGER; EL:T);
FUNCTION GET(X: M; I,J:INTEGER) RETURN T;
PRIVATE
TYPE M IS ARRAY(1..SIZE,1..SIZE) OF T;
END G_MATRIX;
4. Есть ли ошибки в приведенном ниже фрагменте программы на языке Си++? Если есть, то объясните, в чем они состоят, если нет, то что будет выдано в стандартный канал вывода 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'; }
};
class Z : public Y {
public:
void g (int j) { cout << "Z::g(" << j << ")\n"; }
void g () { cout << "Z::g()" << '\n'; }
};
void d (X * px, X * py) { px->g (2); px-> g (); py -> g (2); py-> g ();}
void f () {
X x; Y y; Z z; X * px; Y * py;
px = &x; py = &y; d (px, py);
px = py; d(px, py);
px = &z; d(px, py);
}
5. Какие конструкции языка Оберон служат для управления раздельной трансляцией? Объясните их смысл.
6. В каких языках из нижеперечисленных есть понятие наследования?
Си, Си++, Оберон, Ада, Ява, Модула 2, С#.
7. Почему в языке Си++ отсутствует конструкция try ... finally?
8. Объясните семантику констукции throws в языке Ява. Какое свойство программ поддерживает эта конструкция?