Напишите главную программу на языке
Упражнения
1. Напишите главную программу на языке С, которая вызывает внешнюю функцию f с целочисленным параметром; в другом файле напишите функцию f с параметром с плавающей точкой, который она печатает. Откомпилируйте, скомпонуйте и выполните программу. Что она печатает? Попытайтесь откомпилировать, скомпоновать и выполнить ту же самую программу на языке C++ .
2. Напишите программу, реализующую абстрактный тип данных для очереди, и главную программу, которая объявляет и использует несколько очередей. Очередь должна быть реализована как массив, который объявлен в закрытой части пакета языка Ada или класса C++. Затем измените реализацию на связанный список; главная программа должна выполняться без изменений.
3. Что происходит, если вы пытаетесь присвоить одну очередь другой? Решите проблему, используя ограниченный приватный тип в языке Ada или конструктор копий (copy-constructor) в C++.
4. В языках С и C++ в объявлении подпрограммы имена параметров не обязательны:
C |
Почему это так? Будут ли так или иначе использоваться имена параметров? Почему в языке Ada требуется, чтобы в спецификации пакета присутствовали имена параметров?
5. В языке Ada есть конструкция для раздельной компиляции, которая не зависит от конструкции пакета:
Ada |
Global: Integer;
procedure R is separate; -- Раздельно компилируемая процедура
end Main;
separate(Main) --Другой файл
procedure R is
begin
Global := 4; -- Обычные правила области действия
end R:
Факт раздельной компиляции локального пакета или тела процедуры не влияет на область действия и видимость. Как это может быть реализовано? Требуют ли изменения в раздельно компилируемой единице перекомпиляции родительской единицы? Почему? Обратный вопрос: как изменения в родителе воздействуют на раздельно компилируемую единицу?