2002 досрок людской треш (Решённые задачи прошлых лет)

2019-09-19СтудИзба

Описание файла

Файл "2002 досрок + людской треш" внутри архива находится в папке "Решённые задачи прошлых лет". Текстовый-файл из архива "Решённые задачи прошлых лет", который расположен в категории "". Всё это находится в предмете "языки программирования" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Просмотр текстового-файла онлайн

Возможно не удалось распознать кодировку файла

<html>insomnio

21.01.2003 16:43 Вариант экзамена по ЯП, предварительный экзамен, 2002 г.

1)Что будет напечатано в результате работы следующей программы на Си++?

#include <iostream.h>

class x {

public:

virtual void f() {cout<< ”x::fn”; g();}

void g() { cout<< ”x::gn”;}

};

class y: public x {

public:

void f() {cout<< ”y::fn”;}

void g() { cout<< ”y::gn”; f();}

};

class z: public y {

public:

void f() {cout<< ”z::fn”;}

void g() { cout<< ”z::gn”; f();}

};

void p(x*px,y*py){

px->f(); px->g();

py->f(); py->g();

delete px; delete py;

}

void main(){

p(new x,new y)

cout<<”--------------n”;

p(new y, new z);

}

2)В каких из перечисленных ниже языков есть понятие динамического связывания подпрограмм (методов класса)?

Ада 83, Ада 95, Си++, Оберон, Оберон-2, Модула-2, java, delphi, c#.

3)Ниже приведена спецификация шаблонной функции перемножения матриц

(двухмерных массивов) на языке Си++. Напишите пример конкретизации этой функции, а также соответствующее описание родовой функции на языке Ада.

template <class t> matrix<t>& matmult (matrix<t>& a, matrix<t>&b);

4)В каких из перечисленных языков есть конструкция try-finally? Объясните ее смысл для какого-нибудь языка:

Ада, Си++, Оберон, Модула-2, java, delphi, c#.

5)Сколько конструкторов имеет класс s, описанный на языке c++? Ответ обоснуйте.

struct s { explicit s(int); double i,j;};

6)Объясните смысл конструкции package в языке java.

insomnio

21.01.2003 16:47 а сколько заданий будет на основном экзамене?

fury

21.01.2003 17:01 2insomino:

Я уже ситаксиса Ады не помню :)), но фишка в том, что если в С++ ты просто используешь шаблонный тип (допустим Т), то в Аде тебе нужно будет написать, кажется, так type t is private with то ли function "+" то ли operation "+", короче, нужно указать, что над Т можно выполнять те операции, которые тебе понадобятся (для перемножения матриц это, ясное дело, "+" и "*"). Тебе нужно будет создать новый тип (матрица объектов Т), а уж затем, собственно, описать функцию. Кстати, не забудь указывать в параметрах, какие из них входные, а какие выходные (in и out). Сишный & ,вроде, в Аде как inout.

Если кто-нить кинет линк на лекции, то смогу конкретно написать, а не пусто разглагольствовать :о)

Конкретизация=пример использования (подразумевался пример на С++, как я понимаю).

insomnio

21.01.2003 17:49 Так у нас в Аде у функций все параметры in... или меня глючит? или нам надо процедуру писать?

А какого размера эта матрица? Это тоже параметр? Или она динамическая, без размера? В общем, как плохо быть тупой :( Я уже второй день только и пытаюсь переписать родовой сегмент на си++, а шаблон на Аде...

insomnio

21.01.2003 17:53 А как переписать вот это на си++

generic

type Т is private;

package lists is

type list is private;

procedure insert (s: inout list; x: in t) ;

procedure get (s: inout list; x: out deprocedure clear (s: inout list);

private

type plink is access;

type link is record inf:t; next:plink; end record;

type plink is access link;

type list is record last:plink := null; end record;

end lists;

а еще лучше это

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

Тype m is array(1..size,1..size) of t;

end g_matrix;

в общем хоть что-нибудь!!!!!

заранее большое-пребольшое спасибо.

fury

21.01.2003 18:01 generic

type t is private;

with function "+" (a,b:t) return t;

with function "*" (a,b:t) return t;

type tm is new matrix(t); .

function matmult(a: inout tm, b: inout tm) return tm;

Блин, на работе запарка :((

Но вот, вроде бы так, хотя не искючено, что я мог где-нить напутать или что-нить забыть - поправьте, если что :о)

fury

21.01.2003 18:04 хотя, последняя строчка может быть и procedure matmult(a: inout tm, b: inout tm); - не уверен в обоих вариантах :((

insomnio

21.01.2003 18:41 а что такое type tm is new matrix(t)?

kaily

21.01.2003 18:49 Господа, а лекциями точно пользоваться на парте можно будет, да? Точно-точно?

fury

21.01.2003 18:54 2insomino:

Фишка в том, что matrix - это уже шаблонный тип (посмотри, что в С++ мы его используем как matrix<t>), объвленный где-то (нам этого не показывают), значит, в Аде мы тоже можем считать его объявленным. Теперь, чтобы не мучиться, снова объявляя matrix с новым типом элементов Т, мы просто создаём новый тип на базе имеющегося, что в принципе и означает строчка

type tm is new matrix(t).

Кстати, в лекциях это, вроде, было - правда, я этого не видел :о)

fury

21.01.2003 18:56 но лучше поищи в лекциях - меня часто глюююююючит :)))

fury

21.01.2003 19:03 Кстати, чтобы сделать первое задание нужно просто запомнить две вещи:

1) Однажды объявленная виртуальной, функция такой и остаётся во всех наследованных классах

2) Если функция невиртуальная, то в месте её вызова жёстко прописывается её адрес. Если же она виртульная, то в месте её вызова на самом деле записывается её адрес из vtbl (таблица виртуальных методов), который потом вычисляется в соответствии с тем, какой класс был передан в качестве параметра.

insomnio

21.01.2003 19:17 2fury

Мой ник insomnio (что в переводе - бессонница),а не insomino :)))

Спасибо большое, большое, пребольшое!

Только вопрос такой, а в Аде разве можно параметризовать тип matrix типом t? Что это за конструкция?

И вообще, зачем нам пишут, что это двумерный массив?

ЗЫ Мне кажется скоро я свихнусь, мне уже по ночам снятся родовые сегменты.

insomnio

21.01.2003 19:20 В лекциях был пример, если на Аде мы пишем

generic

type t is private;

type index is range < >;

type arr is array(index range < >) of t;

with function "<"(a, b: t) return boolean;

procedure g_sort(a: in out arr);

То на си++

template<class t>

class vector{…};

template<class t> void sort(vector<t> &v);

Тут-то мы на Аде явно выписываем тип arr. Или это необязательно?

demoniak

21.01.2003 20:43 2insomnio: наверно на Аде обязательно т.к. он входит в родовую функцию, а на Си++ не обязательно писать шаблоный класс т.к. он отдельно. ИМХО.

Ничего не понимаю, как это сдавать......

demoniak

21.01.2003 20:45 отдельно от шаблоной функции......

что такое конкретизация? Это типа выписать шаблоную функцию для конкретного типа?

kaily

21.01.2003 21:13 Так что насчет лекций? Можно ли точно ими пользоваться - кто-нибудь знает? Кто-нибудь был на последней лекции и слышал это своими ушами?:))

insomnio

21.01.2003 21:38 2demoniak

да, это просто надо выписать для какого-то конкретного типа, вместо t что-то подставить.

2kaily

я была и слышала это своими ушами. пользоваться можно всем. только это тебе не поможет, уверяю.

Аааааа, я ничего не понимаю! Как это сдавать? Это невозможно сдать, это выше моего понимания, это непостижимо моему уму!

titanikum (я)

21.01.2003 21:55 жжжжуть, депресняк полный...:-(

kaily

21.01.2003 22:29 Читаю я ваши неоптимистичные посты... и начинаю задумываться вот над чем:):

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5280
Авторов
на СтудИзбе
419
Средний доход
с одного платного файла
Обучение Подробнее