Студопедия

КАТЕГОРИИ:

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника



Процедурный тип




Читайте также:
  1. Процедурный Переход

В программировании часто встречается ситуация, когда в алгоритме используется результат вычисления некоторой функции, но сам алгоритм не зависит от того, какая именно функция вычисляется. В языке 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.

 

Сортировка символьных данных

Понятие: сортировка символов сводится к сравнению кодов этих символов и принятие соответствующих мер.
Сортировка строк, имхо, сложнее, поскольку имеем два варианта, например:
яблоко - книга ----> я>к при сравнении кодов я и к.
книга - камень ----> к=к, далее н<а и т. д.

Пример: сортировка символов по возрастанию (брал именно символы, чтобы легче было разобраться)


Дата добавления: 2015-04-21; просмотров: 5; Нарушение авторских прав







lektsii.com - Лекции.Ком - 2014-2021 год. (0.012 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав
Главная страница Случайная страница Контакты