В Паскале есть возможность вызывать функцию и не использовать то значение, которое она возвращает.
Иными словами, вызов функции может внешне выглядеть как вызов процедуры, например:
{$Х+} {Включаем расширенный синтаксис}
Function My.Func (var x: Integer): Integer;
begin
if x<0 then x:=0
else MyFunc:= x+10
end; {MyFunc}
var
i: Integer;
begin {main}
i:= 1;
i:= 2*MyFunc(i) -100; {Стандартный вызов функции}
MyFunc (i) {Расширенный синтаксис вызова}
end. {main}
Расширенный синтаксис делает использование функций таким же свободным, как, например, их использование в языке Си, и придает Паскалю дополнительную гибкость.
С помощью расширенного синтаксиса нельзя вызывать стандартные функции.
Компиляция с учетом расширенного синтаксиса включается активным состоянием опции EXTENDED SYNTAX диалогового окна OPTIONS/COMPILER или глобальной директивой компилятора {$Х+}.
19.4.3 Решить задачу, используя рекурсивную подпрограмму
Номер варианта | Выражение |
Найти сумму цифр заданного натурального числа | |
Подсчитать количество цифр в заданном натуральном числе | |
Описать функцию С(m,n), где 0≤m≤n, для вычисления биномиального коэффициента Сmn по следующей формуле: С0n =Сnn =1; Сmn =Сmn-1 +Сm-1n-1 при 0<m<n | |
Описать рекурсивную функцию Root(a,b,ε), которая методом деления отрезка пополам находит с точностью ε корень уравнения f(x)=0 на отрезке [a,b] (считать, что ε>0, a<b), f(a)f(b)<0 и f(x) непрерывная и монотонная на отрезке [a,b] функция). | |
Описать функцию min(x) для определения минимального элемента линейного массива X? Введя вспомогательную рекурсивную функцию min1(k), находящую минимум среди последних элементов массива X, начиная с k- того. | |
Описать рекурсивную логическую функцию Simm(S,I,J), проверяющую, является ли симметричной часть строки S, начинающаяся i- м и заканчивающаяся j- м ее элементами. | |
Составить программу для вычисления наибольшего общего делителя двух натуральных чисел. | |
Составить программу для нахождения числа, которое образуется из данного натурального числа при записи его цифр в обратном порядке. Например для числа 1234 получаем результат 4321. | |
Составить программу для перевода данного натурального числа в двоичной системе счисления (2≤ p ≤9). | |
Дана символьная строка, представляющая собой запись натурального числа p- ичной системе счисления (2≤ p ≤9). Составить программу для перевода этого числа в десятичную систему счисления. | |
Составить программу для вычисления суммы: 1!+2!+3!+…..+n! (n≤15) Примечание. Тип результата значения функции – LongInt. | |
Составить программу для вычисления суммы: 2!+4!+6!+…..+n! (n≤16, n- четное) Примечание. Тип результата значения функции – LongInt | |
Дано n различных натуральных чисел. Напечатать все перестановки этих чисел. | |
Логическая функция возвращает true, если ее аргумент - простое число. | |
Описать функцию, которая удаляет из строки все лишние пробелы. Пробелы считаются лишними, если их подряд идет более двух, если они стоят в конце строки после последней точки, если стоят после открывающегося парного знака препинания. |
Программирование алгоритмов с использованием графического режима
Цель работы
20.1.1 Познакомиться со средствами компьютерной графики в Паскале
20.1.2 Составление программ с использованием графического режима
Приборы и оборудование
20.2.1 Free Pascal
20.2.2 ПЭВМ IBM PC/XT
20.2.3 Microsoft Word
20.2.4 Задание на выполнение работы в электронном варианте.
Порядок выполнения работы
20.3.1 Изучите средства компьютерной графики в Паскале
20.3.2 Выберите номер варианта, согласно списка в учебном журнале (Приложение А).
20.3.3 Составьте программу, используя команд графического режима
20.3.4 Результаты работы распечатайте на принтере.
20.3.4 Оформите лабораторную работу для сдачи преподавателю
Этапы работы
Основные понятия и средства компьютерной графики в Паскале
До сих пор мы использовали экран компьютера только для вывода символьной информации – чисел, текстов.
Однако Паскаль позволяет выводить на экран рисунки, чертежи, графики функций, диаграммы и т.п., все то, что принято называть компьютерной графикой.
Появилась мощная графическая библиотека, организованная в модуль Graph.
Для его подключения в начале программы необходимо написать строку:
Uses Graph;
Для вывода графических изображений необходимо перевести экран в один из графических режимов.
В графическом режиме можно из программы управлять состоянием каждого пиксела (точечного элемента) экрана.
Графические режимы отличаются:
• размером графической сетки (М х N, где М— число точек по горизонтали, N — число точек по вертикали);
• цветностью (число воспроизводимых на экране цветов).
Допустимые режимы зависят от типа монитора и соответствующего графического драйвера, используемого на компьютере.
Для установки графического режима экрана существуют соответствующие процедуры. В модуле Graph процедура установки графического режима экрана имеет следующий заголовок: Procedure InitGraph(var Driver,Mode: Integer; Path: String);
Здесь Driver - переменная типа Integer, определяет тип графического драйвера;
Mode - переменная того же типа, задающая режим работы графического адаптера;
Path - выражение типа String, содержащее имя файла драйвера и, возможно, маршрут его поиска.