 META | Задача Метапрограммой называется программа, которая сама создает другие программы. В этой задаче следует написать метапрограмму, которая создаст программу на языке Паскаль для нахождения максимального из заданных n целых чисел (1<=n<=9). Программа должна удовлетворять следующим требованиям: -
она должна начинаться со строки program maximum (input, output); -
программа должна зарезервировать в памяти место ровно для n целочисленных переменных. Имена этих переменных должны быть взяты из первых n букв латинского алфавита (a, b, c, d, e, f, g, h, i, j). Значения для всех этих переменных должны быть прочитаны одним вызовом процедуры readln; -
кроме вызова процедуры writeln, в оставшейся части программы разрешается использовать только операторы if then else. Логическим условием в каждом из операторов должно быть строгое неравенство (< или>) с двумя целочисленными переменными, без скобок; -
в программе должна быть использована ровно одна пара операторных скобок begin end, обозначающая начало и конец основной программы; -
в программе должно быть использовано ровно три точки с запятой: ·после заголовка программы; ·после объявления переменных; ·после вызова процедуры readln; -
не должно быть избыточных сравнений переменных. Например, если в процессе выполнения программы стало ясно, что переменная a не может быть максимумом, эта переменная не должна более сравниваться; -
программа должна компилироваться и выполняться. Результатом работы программы для введенных n целых чисел должно быть напечатанное в отдельной строке максимальное из них. -
программа не должна содержать иных конструкций Паскаля, кроме перечисленных выше. Входные данные находятся в текстовом файле META.IN, единственная строка которого определяет значение n. Выходные данные помещаются в текстовый файл MAXIMUM.PAS, содержащий программу на языке Паскаль, которая находит максимум из n чисел. Например: META.IN 3 MAXIMUM.PAS program maximum(input,output); i a,b,c: integer; begin readln(a,b,c); if a>b then if a>c then writeln(a) else writeln(c) else if c<b then writeln(b) else writeln(c) end. |
|---|