Главная » Все файлы » Просмотр файлов из архивов » PDF-файлы » И.Г. Головин - Варианты письменного экзамена (Методическое пособие)

И.Г. Головин - Варианты письменного экзамена (Методическое пособие), страница 3

PDF-файл И.Г. Головин - Варианты письменного экзамена (Методическое пособие), страница 3 Языки программирования (54017): Ответы (шпаргалки) - 7 семестрИ.Г. Головин - Варианты письменного экзамена (Методическое пособие): Языки программирования - PDF, страница 3 (54017) - СтудИзба2019-09-19СтудИзба

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

PDF-файл из архива "И.Г. Головин - Варианты письменного экзамена (Методическое пособие)", который расположен в категории "". Всё это находится в предмете "языки программирования" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст 3 страницы из PDF

Обработка исключенияпроисходит в блоках, вызвавших блок с исключением.Пример языка: Си++.6. В языке Ада 83 подпрограммы не могут быть параметрамиподпрограмм (еще пример: Java).7. Классы памяти:• статическая;• квазистатическая;• динамическая.В языке C# объекты классов размещаются только в динамическойпамяти.8. Один из вариантов:template <typename T, int size> class Stack{public:Stack() {top = 0;}void Push(T x);T Pop(T& x);bool IsEmpty();bool IsFull();private:Stack (const Stack& s);T body[N];int top;};183.2.

Вариант 20041.X::fX::gX::gY::fY::gY::f-----------------------------Y::fX::gZ::fY::gZ::f2.Ада 95, Си++, Оберон-2, Java, Delphi, C#.3. Полностью эквивалентный фрагмент написать нельзя, поскольку Адатребует полной инкапсуляции структуры типа, а Оберон позволяет открыватьполя структуры (в примере - I открыто, а J – закрыто). Однако можно на Аденаписать написать подпрограммы доступа для I (get/set) и добиться того жеэффекта.type T is tagged private;type T1 is new tagged T with private;procedure P(X:T; L: integer);procedure P(X:T1; L: integer);Замечание: на языке Оберон процедуры P динамически привязаны ктипу (T и T1 соответственно), однако на Аде динамическая привязка — этосвойство не метода, а вызова.

Поэтому разницы между динамически истатическими привязанными методами в Аде нет.4.Ада, Delphi, C#Язык C#:try {// блок try...} finally {// блок finally...}19Блок finally обязательно выполнится после завершения блока tryнезависимо от того, нормально или аварийно (с возбуждением исключения)произойдет это завершение.5. Класс S имеет два конструктора:–явно описанный explicit S(int);–сгенерированный конструктор копирования S(const S&);Замечание: конструктор умолчания не генерируется, так как в классеесть явно описанный конструктор.6. Конструкция package имеет вид:package имя_пакета;Она может быть только первой в единице компиляции.

Смысл состоитв том, что класс, описанный в единице компиляции, относится к указанномупакету. Пакет является единицей дистрибуции Java-классов, а такжеединицей контекста.7. Тип, имя которого экспортируется, но все поля — закрыты (неэкспортируются).TYPE OpaqueT* = RECORD I:TT; J: TTT END;8.void f(){try {}}}}g(); h();catch (E1){throw;catch (E2){throw;catch (E3){throw;catch (...) {unexpected();}}3.3.

Вариант 20051.A::fA::gA::gB::fB::g20B::f-----------------------------B::fA::gC::fB::gC::f2. Семантика возобновления: после обработки исключения управлениеможет вернуться непосредственно в точку, где возникло исключение(варианты: на следующий оператор или на любой оператор из того же блока).В языке Си++ реализована другая семантика: завершения, но в некоторыхслучаях семантика возобновления может быть смоделирована, например, вслучае выделения возобновляемого ресурса (типа динамической памяти):Resource GetResource() {for (;;)try {Resource r = … // попытка получить ресурс, например// выделить памятьif (success) return r;throw NoResourceException();} catch (NoResourceException) {// попытка найти дополнительные ресурсы (например,// динамически собрать мусор)if (!success) throw;}}3.

Язык Ада (реализация в виде двунаправленного списка):generictype T is private;package G_Deque istype Deque is limited private;procedure PushRight(Deq: inout Deque; X:T);procedure PushLeft(Deq: inout Deque; X:T);procedure PopRight(Deq: inout Deque; X: out T);procedure PopLeft(Deq: inout Deque; X: out T);procedure Init(Deq: out Deque);procedure Destroy(Deq: inout Deque);function IsFull(Deq: Deque);function IsEmpty(Deq: Deque);–- другие процедуры ...privatetype PLink is access;type Link is record inf : T; next, prev : PLink; end record;type PLink is access Link;type Deque is record Left, Right: PLink; end record;end G_Deque;21Язык Java;interface IDeque<T>{void PushLeft(T x);void PushRight(T x);T PopLeft();T PopRight();bool IsFull();bool IsEmpty();// другие функции}Замечания:а).

Обобщенные конструкции употреблять не обязательно (надо тольконаписать, что тип Т должен быть непосредственно видимым в точкеописания типа Deque). Хотя обобщения здесь подходят больше.б). Структуру типа в Аде полностью выписывать необязательно.Главное — указать наличие приватной части, например:private...type Deque is …; –- структура типа Dequeend G_Deque;в). Для языка Java можно выписать не инетерфейс, а конкретный классс приватной структурой и публичными функциями-операциями.

Телафункций в этом случае можно не выписывать. Но интерфейс в данном случаебольше подходит к понятию абстрактного типа данных.4. Языки;Ада 95, Си++, Java, Delphi, C#Например, в языке Си++ абстрактная функция — это чистаявиртуальная функция. Она не обязана иметь тела и должна быть обязательнозамещена в каком-либо производном классе.5. Ключевое слово super означает в языке Java ссылку на базовыйкласс. Такое же понятие есть в языке C#, но оно называется base.Пример на Java:class A{public A(int I) { … }...}class B extends A{public B() { super(0); … }...}22Пример на C#:class A{public A(int I) { … }...}class B : A{public B() : base(0) { … }...}6.Delphi, C#«Свойство» - это член класса, который с точки зрения обращения кнему выглядит как член-данное, но с точки зрения реализации представлендвумя методами, один из которых возвращает значение свойства, а второй —устанавливает его значение.

При этом один из методов может отсутствовать,делая недоступной соответствующую операцию над свойством.Пример для языка Delphi – целое свойство Prop:type PropSample = class…privateprocedure SetPropVal(V : integer);function GetPropVal:integer;publicproperty Prop: integer read SetPropVal write GetPropVal;…end;7. Ада 83, Ада 95, Си++, Java, Delphi, C#Понятие «перегрузка» означает, что одному имени в одной областивидимости может соответствовать несколько определений. В современныхязыках программирования перегружаться могут только имена подпрограмм,но не типов, переменных, модулей.8.

Основное отличие деструктора языка C# от деструктора Си++состоит в том, что неизвестен момент его вызова. Деструктор (вдействительности — финализатор) вызывается сборщиком мусора в моментутилизации памяти, занимаемой объектом. Для ряда объектов деструкторвообще может быть не вызван. В Си++ момент вызова деструкторадостаточно точно определен.233.4. Вариант 20061.

Ада, Модула-2, ПаскальОбъединение типов (или запись с вариантами) — это конструкция,объединяющая в один тип несколько различных структур (вариантов). Всеварианты в объединении начинаются с одного адрес и занимают одну и ту жепамять.Размеченное объединение типов содержит одно выделенное поле(дискретного типа данных) — общее для всех вариантов. Такое поленазывается дискриминантом. Значение дискриминанта определяетопределяет, по какому варианту выделена память в переменной-экземпляреразмеченного объединения.2.

Указатели языка Ада 83 ссылаются только на объекты издинамической памяти. Указатель языка Си++ может ссылаться на любойобъект данных (динамический, локальный, статический), что можетприводить к труднообнаружимым ошибкам.Также в языке Ада отсутствует адресная арифметика (арифметическиеоперации над указателями), что также уменьшает вероятность появленияошибки работы с памятью.3. Си, Си++Раздельная трансляция означает то, что программа разбивается начасти — физические модули или единицы компиляции. Каждая единицаможет или обязана транслироваться отдельно от остальных.Независимая раздельная трансляция означает то, что транслятор необладает информацией об уже оттранслированных единицах и поэтому неможет проверить корректность межмодульных связей.4.

Конструкция where используется в языке C# для определенияограничений на параметры родовых (другое название - обобщенных)конструкций.Ее вид: where имя_типа : список_ограничений.Виды ограничений:–интерфейс — означает, что параметр-тип должен реализовыватьэтот интерфейс;–имя класса (может быть только одно такое ограничение в списке)— означает, что параметр-тип должен быть наследником этого класса;–struct или class – означает, что параметр-тип должен бытьструктурой или классом;–new() - означает, что параметр-тип должен иметь конструкторумолчания (без параметров).245.11212331122222222336.

Си++, Ада 83, Ада 95, Visual Basic, C#, DelphiПример для языка Delphi:if ptr = nil thenraise Exception.Create('Invalid pointer');7. Конкретизация на языке Си++:Matrix<float> b,c;…Matrix<float> a = MatMult(b,c);Язык Ада:generictype T is private;with function “+”(x,y:T) return T (<>);with function “*”(x,y:T) return T (<>);type Matrix is private;function G_MatMult(A,B: Matrix) return Matrix;8. Объекты классов языка Си++ могут быть размещены в статической,квазистатической, динамической памяти.3.5.

Вариант 20071. Семантика возобновления при обработке исключений состоит в том,что после обработки исключения управление может вернутьсянепосредственно в точку, где возникло исключение (варианты: наследующий оператор или на любой оператор из того же блока, где возниклоисключение).В перечисленных в условии языках используется другая семантика:завершения, либо вообще отсутствует понятие реакции на исключение.2. Явная реализация интерфейса означает, что вызов методаинтерфейса может происходить только через ссылку на интерфейс, но не25может происходить через ссылку на класс, реализующий интерфейс. Передвызовом интерфейсного метода необходимо явно преобразовать ссылку наобъект реализующего класса к ссылке на интерфейс. Концепция явнойреализации полезна, например, при конфликте имен между унаследованнымиинтерфейсами.

Используется, например, в С#.interface ISomeInterface{void F();}class CoClass: ISomeInterface{ISomeInterface.F() {System.Console.WriteLine(“Явно реализованный метод”);}...}...CoClass c = new CoClass();c.F(); // ошибка: нельзя вызывать явно реализованный метод// интерфейса через ссылку на объект(ISomeInterface)c.F(); // все нормально3. В языке Java используется 2 формы оператора цикла for.Первая форма полностью соответствует оператору for языка Си++:for (e1;e2;e3) SВторая форма появилась в 2005 году и используется для поэлементногопросмотра коллекций (цикл for-each).

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