1999 досрок (Решённые задачи прошлых лет)
Описание файла
Файл "1999 досрок" внутри архива находится в папке "Решённые задачи прошлых лет". Документ из архива "Решённые задачи прошлых лет", который расположен в категории "". Всё это находится в предмете "языки программирования" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Онлайн просмотр документа "1999 досрок"
Текст из документа "1999 досрок"
Ф.И.О._________________________________________________ Группа________________
1. В чем состоит разница между финализатором языка Ява и деструктором языка Си++?
2. Дайте определение и пример скрытого типа данных на языке Модула-2. Есть ли аналоги такой конструкции на языке Ява?
3. Напишите на языке Ада спецификацию пакета, эквивалентную приведенному ниже описанию класса на языке Си++.
template <class T, int size>
class STACK {
public :
STACK();
~STACK();
int Push(const T&);
int Pop (T&);
int Empty();
int Full();
protected :
T body[size];
int top;
};
4. Напишите (и объясните ответ), что будет выдано в стандартный канал вывода при выполнении вызова функции Q в следующем фрагменте программы :
int i = 0;
class STRING {
char * cp;
public :
STRING (const char * s){
cp = new char [strlen (s) + 1];
strcpy (cp, s);
}
STRING (const STRING& s){
cp = new char [strlen (s.cp) + 1];
strcpy (cp, s.cp);
}
STRING (const STRING& s1,const STRING& s2){
cp = new char [
strlen(s1.cp)+strlen (s2.cp) + 1
];
strcat (strcpy (cp, s1.cp), s2.cp);
}
~STRING () {
i++; delete [] cp;
}
operator char * () { return cp; };
void out () { cout << cp << '\n'; }
};
void f(const STRING& s) { s.out();}
void q()
{ char * p = "string1";
STRING s("string2", "string3");
f (p); f (s);
}
void Q(){ q(); cout << i; }
5. Напишите спецификацию типа RATIONAL (рациональные числа) на языке Си++.
6. Что будет выдано в стандартный канал вывода (процедурой PUT) в результате вызова процедуры P? Объясните ответ.
E1, E2 : EXCEPTION;
PROCEDURE P1 (i : in INTEGER) IS
BEGIN
IF i = 1 THEN RAISE E1; END IF;
IF i = 2 THEN RAISE E2; END IF;
PUT ("P1-Finish");
EXCEPTION
WHEN E2 => PUT ("Catch1"); RAISE;
WHEN E1 => PUT ("Catch2");
END P1;
PROCEDURE P2 IS
BEGIN
P1 (2); PUT ("P2-Finish");
EXCEPTION
WHEN E1 => PUT ("Catch3");
WHEN E2 => PUT ("Catch4");
END P2;
PROCEDURE P IS
E1, E2 : EXCEPTION;
PROCEDURE P2 IS
BEGIN
P1 (2); PUT ("Finish-P2");
EXCEPTION
WHEN E1 => PUT ("Catch5");
WHEN E2 => PUT ("Catch6");
END P2;
BEGIN
P1 (1); P2; P1 (2); PUT ("Finish");
EXCEPTION
WHEN E1 => PUT ("Catch7");
WHEN E2 => PUT ("Catch8");
WHEN OTHERS => PUT ("Catch9");
END P;
7. Напишите на языке Ада-95 объявления, эквивалентные приведенным ниже описаниям на языке Оберон-2.
TYPE T* = RECORD
I*, J : INTEGER;
END;
TYPE T1* = RECORD (T)
K : INTEGER;
END;
PROCEDURE (X : T) P* (L : INTEGER);
PROCEDURE (X : T1) P* (L : INTEGER);