И.Г. Головин - Варианты письменного экзамена (Методическое пособие), страница 4
Описание файла
PDF-файл из архива "И.Г. Головин - Варианты письменного экзамена (Методическое пособие)", который расположен в категории "". Всё это находится в предмете "языки программирования" из 7 семестр, которые можно найти в файловом архиве МГУ им. Ломоносова. Не смотря на прямую связь этого архива с МГУ им. Ломоносова, его также можно найти и в других разделах. .
Просмотр PDF-файла онлайн
Текст 4 страницы из PDF
Она имеет вид;for (T v:Coll)SЗдесь Coll — коллекция элементов (типа T или приводимых к типу T).Переменная v на каждой итерации цикла принимает значение очередногоэлемента коллекции.Для того, чтобы объекты класса-коллекции могли появляться в циклеfor-each, класс должен реализовать интерфейс Iterable.4. При вызове сопрограммы управление передается в точку,непосредственно следующую за местом, где оно покинуло сопрограмму. Вподпрограммах управление всегда начинается с первого оператора, и это независит от того, в какой точке управление покинуло подпрограмму впрошлый раз.5.112221222133266.
Оберон, Оберон-2Перечислимый тип в C# имеет вид:enum T : базовый_целый_тип {список_констант}илиenum T {список_констант}По умолчанию базовый_целый_тип — это int.Каждая константа в списке может быть инициализирована своимзначением (как в Си++). К перечислениям нельзя применять арифметическиеи побитовые операции, но если перед перечислением стоит атрибут [Flags],то к элементам перечисления применимы побитовые операции | и &.Константы из перечислимого типа видимы только потенциально и приобращении должны уточняться именем типа: тип.имя_константы.Пример:enum Color : long{Red,Green = 50,Blue}Color c = Color.Red;7.generictype T is private;Size : integer;package G_Queue istype Queue is limited private;procedure Enqueue(Q: inout Queue; X:T);procedure Dequeue(Q: inout Queue; X:T);procedure Init(Q: out Queue);procedure Destroy(Q: inout Queue);function IsFull(Q: Queue);function IsEmpty(Q: Queue);–- другие процедуры ...privatetype Queue is recordLeft, Right: integer;body : array(1..Size) of T;end record;end G_Queue;278.
АдаПри односторонней связи (импорт-экспорт) модуль, экспортирующийимена, не зависитот импортирующих (клиентских) модулей. Придвусторонней связи оба модуля зависят друг от друга. В языке Ададвусторонняя связь используется при раздельной трансляции вложенныхмодулей.Вложенный модуль обозначается «заглушкой» во внешнем модуле:procedure Outer is–- заглушкаprocedure Inner is separate;. . .end Outer;При трансляции вложенный модульсвязывающим его с объемлющим модулем:снабжаетсязаголовком,separate(Outer)procedure Inner is. . .end Inner;Связь «заглушка-заголовок» - пример двусторонней связи.3.6. Вариант 20081.
Ключевое слово sealed может стоять перед виртуальным методомили классом. В первом случае оно означает, что метод нельзя замещать впроизводных классах, во втором — что класс нельзя наследовать. Изперечисленных в условии языков аналогичное понятие есть в языке Java(final).2.Вложенность модулей означает, что определение одного модуля(внутреннего) находится внутри другого (внешнего). Из перечисленных вусловии языков вложенные библиотечные модули могут быть только в языкеАда (как 83, так и 95). В Обероне и Delphi вложенными могут быть толькоподпрограммы (которые не являются библиотечными модулями).3. Язык Модула-2.DEFINITION MODULE HashTables;FROM Types IMPORT KeyType, ElementType;TYPE HashTable;PROCEDURE Init(VAR T:HashTable);PROCEDURE Destroy(VAR T:HashTable);28PROCEDURE Lookup(VAR T:HashTable;Key: KeyType; VAR X:ElementType):BOOLEAN;PROCEDURE Add(VAR T:HashTable; Key: KeyType; X:ElementType);PROCDURE Remove(VAR T:HashTable; Key: KeyType):BOOLEAN;VAR Done: BOOLEAN;END HashTables.Язык Java:interface IHashTable : Iterable{ElementType Lookup(KeyType Key);void Add(KeyType Key, ElementType El);bool Remove(KeyType Key);}4.
Ада 95, Java, Delphi, Оберон-2, Cи++, С#Виртуальность метода означает динамическое связывание метода привызове метода через ссылку на объект (базового) класса. Будет вызван методдля объекта, на который в настоящее время указывает ссылка. Этот объектможет относиться не к базовому, а к производному классу. если впроизводном классе метод замещен, то будет вызван не метод из базовогокласса (как в случае невиртуальных методов), а его заместитель .5.
Абстрактный тип данных (АТД) — это тип с полностьюинкапсулированной структурой. Использовать объекты АТД возможнотолько при помощи явно определенных в интерфейсе типа операций.Абстрактный класс (АК) — это класс, содержащий хотя бы одинабстрактный метод.Прямой связи между АК и АТД нет. АТД может быть абстрактнымклассом, а может и не быть. Аналогично, АК может иметьинкапсулированную структуру, а может и не иметь.Пример АТД можно найти в ответе на задачу 3 этого варианта. ПримерАК (язык Java):interface IDrawable{void Paint();}abstract class UIControl : IDrawable{... // нет реализации метода Paint()}class EditControl: UIControl{public void Paint() { ...
// реализация метода Paint()}. . .}296. Ада 83, Ада 95,Си++, Java, Delphi, C#Понятие «перегрузка» означает, что одному имени в одной областивидимости может соответствовать несколько определений. В современныхязыках программирования перегружаться могут только имена подпрограмм,но не типов, переменных, модулей. Пример на языке Си++:class X {public:void f();void f (int)};X a;a.f(); // первая функцияa.f(0); // вторая функцияОтличие перегрузки от замещения состоит во-первых, в том, чтоперегрузка обрабатывается статически (на этапе трансляции), в во-вторых,при замещении речь идет о разных областях видимости: базовый класс собъявлением виртуального метода (объемлющая область видимости) ипроизводный класс с замещающим методом (вложенная область видимости).7.
Структура в языке C# является типом-значением. Имена структур неявляются ссылками (как имена объектов-классов), а обозначаютнепосредственно объект.Структуры не могут наследоваться, не могут быть наследовать сами(только по умолчанию от класса Object). Также структуры не могут иметьявный конструктор умолчания.8. Ключевое слово override означает, что метод, в объявлении которогооно появляется, является заместителем виртуального метода из базовогокласса.В языке Java такая конструкция отсутствует, поскольку все методыимеют динамическое связывание, поэтому любой метод, имя и сигнатуракоторого совпадают с методом их базового класса, является егозаместителем.30Список литературыОсновная литература1.
Кауфман В.Ш. Языки программирования: концепции и принципы. –М.: Радио и связь, 1993.2. Бен-Ари М. Языки программирования. Практический сравнительныйанализ. – М.: Мир, 2000.3. Пратт Т., Зелковиц М. Языки программирования: разработка иреализация. – СПб.: Питер, 2002.4. Себеста Р.У. Основные концепции языков программирования.
– М.:Издательский дом «Вильямс», 2001.Дополнительная литература1. Страуструп Б. Дизайн и эволюция Си++. – М.: ДМК Пресс, 2000.2. Страуструп Б. Язык программирования Си++. – М., СПб. :«Издательство БИНОМ» - «Невский Диалект», 2001.3. Вандевурд Д., Джосаттис Н.М. Шаблоны Си++, справочникразработчика. - М.: Издательский дом «Вильямс», 2003.4. Арнолд К., Гослинг Д. Холмс Д.
Язык программирования Java. - М.:Издательский дом «Вильямс», 2001.5. Вирт Н. Программирование на языке Модула-2. – М.: Мир, 1987.6. Джехани Н. Язык Ада. – М.: Мир, 1988.7. Шилдт Г. С# 2.0. Полное руководство. – М.: ЭКОМ Паблишерс, 2007.31СодержаниеI. Программа курса «Языки программирования».................................................31. Введение...........................................................................................................32. Базисные типы данных в языках программирования: простые исоставные типы данных, операции над ними...................................................33.
Операторный базис языков программирования. Управлениепоследовательностью вычислений....................................................................34. Процедурные абстракции...............................................................................45.
Определение новых типов данных. Логические модули. Классы..............46. Инкапсуляция и абстрактные типы данных.................................................57. Модульность и раздельная трансляция.........................................................58. Исключительные ситуации и обработка ошибок.........................................59. Наследование типов и классов.......................................................................510. Динамический полиморфизм.......................................................................611. Абстрактные классы и интерфейсы.............................................................612.
Множественное наследование.....................................................................613. Динамическая идентификация типа............................................................614. Понятие о родовых объектах. Обобщенное программирование..............7II. Варианты экзаменационных работ...................................................................82.1. Вариант 2003.................................................................................................82.2.
Вариант 2004...............................................................................................102.3. Вариант 2005...............................................................................................112.4. Вариант 2006...............................................................................................122.5. Вариант 2007...............................................................................................142.6. Вариант 2008 (пересдача)..........................................................................15III. ОТВЕТЫ, УКАЗАНИЯ И РЕШЕНИЯ ..........................................................173.1. Вариант 2003...............................................................................................173.2.
Вариант 2004...............................................................................................193.3. Вариант 2005...............................................................................................203.4. Вариант 2006...............................................................................................243.5. Вариант 2007...............................................................................................253.6. Вариант 2008...............................................................................................28Список литературы................................................................................................3132.