КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Процедурный типВ программировании часто встречается ситуация, когда в алгоритме используется результат вычисления некоторой функции, но сам алгоритм не зависит от того, какая именно функция вычисляется. В языке Turbo Pascal можно описать и использовать так называемый процедурный тип данных. Описание процедурного типа состоит из слова procedure или function, за которым в круглых скобках записывается список формальных параметров. Для функции после списка формальных параметров через двоеточие указывается тип функции. После того, как определен процедурный тип, можно описать переменные процедурного типа. Переменным процедурного типа можно присваивать значения конкретных процедур и функций. Естественно, что процедурная переменная и та процедура, которая присваивается ей в качестве значения, должны иметь одинаковое число формальных параметров, совпадающих по типам. Если переменная имеет тип функции, то для функций кроме формальных параметров должны совпадать типы функций. Те процедуры и функции, которые будут использоваться либо в качестве значений для процедурных переменных, либо в качестве фактических параметров при вызове процедур и функций, должны удовлетворять следующим правилам: -должны компилироваться с ключом компилятора {$F+} -не должны быть стандартными процедурами или функциями -не должны объявляться внутри других процедур или функций С погрешностью 0.0001 методом простой итерации уточнить корни уравнений ln(x)- x +1.8 = 0 на отрезке [1; 3] и на [0; 2]. Текст программы program lab12; const e = 0.0001; type tip = function (x : real): real; { Процедурный тип} {$F+} { Директива дальней компиляции} function f1(x : real) : real; begin f1 := ln(x) - x + 1.8 end; function pf1(x : real) : real; begin pf1 := 1/x – 1 end; function f2(x : real) : real; begin f2 := exp(x) - x*x*x end; function pf2(x : real) : real; begin pf2 := exp(x) - 3*x*x end; {$F-} { Отмена директивы} function Koren(a, b : real; f, pf : tip) : real; { Основная подпрограмма} var x : real; begin x := (a + b)/2; {Начальное приближение} repeat x := x - f(x)/pf(x) until abs(f(x)) < e; Koren := x end; begin writeln('Корень уравнения ln(x)-x+1.8 на отрезке [1; 3] : ', Koren(1, 3, f1, pf1):6:4); writeln('Корень уравнения exp(x)-x*x*x на отрезке [0;2] : ', Koren(0, 2, f2, pf2):6:4); readln end.
Сортировка символьных данных Понятие: сортировка символов сводится к сравнению кодов этих символов и принятие соответствующих мер. Пример: сортировка символов по возрастанию (брал именно символы, чтобы легче было разобраться)
|