Programming Taskbook 0
Download 1.62 Mb. Pdf ko'rish
|
Abramyan-Pascal2016-1
- Bu sahifa navigatsiya:
- Array7 ); // Вариант 1
- Array7 ); // Вариант 2
- Array7 ); // Вариант 2a
Замечание. При реализации вариантов функций ReadSeqInteger, Read-
SeqReal, ReadSeqString для электронного задачника Programming Taskbook было решено отказаться от «отложенного» характера их выполнения: ввод элементов последовательности выполняется ими немедленно, и введенные элементы сохраняются в памяти, подобно введенным элементам массивов. Отличие этих функций от аналогичных функций для ввода массивов со- стоит лишь в том, что возвращаемый ими результат имеет тип последова- тельности (а не массива). Подобная модификация не дает проявиться осо- бенностям ввода последовательностей, описанным выше, и благодаря это- му избавляет начинающего программиста от многих ошибок, которые ему на начальном этапе изучения последовательностей было бы трудно понять и исправить. Обсудив средства ввода массивов и последовательностей, мы можем обратиться к задачам, в которых дается некоторый набор данных, требую- щий обработки. Одной из простейших подобных задач является задача Array7, в которой дается размер массива и его элементы и требуется выве- сти элементы массива в обратном порядке. Очевидное решение, использу- ющее цикл, выглядит следующим образом: Task('Array7'); // Вариант 1 var a := ReadArrReal; for var i := a.Length - 1 downto 0 do Write(a[i]); Чтобы получить более краткое решение, можно использовать запрос, инвертирующий последовательность, т. е. располагающий ее элементы в обратном порядке (точнее, данный запрос возвращает новую последова- тельность, которая является инвертированной по отношению к исходной). Этот запрос имеет имя Reverse и не требует параметров. Полученную в ре- зультате применения этого запроса инвертированную последовательность можно сразу переслать задачнику, поэтому в решении не потребуется ис- пользовать ни одной переменной: Task('Array7'); // Вариант 2 ReadSeqReal.Reverse.Write; Запрос Reverse можно применить и к массиву, так как любой массив может быть неявно преобразован в последовательность: Task('Array7'); // Вариант 2a ReadArrReal.Reverse.Write; |
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling