КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Процедуры и функции для работы со строками string
CaseTag02: MyTagType02 of CaseTag01: MyTagType01 of CaseTag0: MyTagType0 of CaseTag0: MyTagType0 of Type Begin Type End. Else Сase X of Else Begin Var Type Пример. End Else ... Begin Begin Begin Whiletrue do Begin Var Begin Begin Else End Begin Begin xOld:= xNew; xNew:= (xR * yL - xL * yR) / (yL - yR);
yNew:= f(xNew);
if yNew * yR < 0 then xL:= xNew; yL:= yNew; // Пододвинулась вправо левая граница промежутка xR:= xNew; yR:= yNew; // Пододвинулась влево правая граница промежутка end;
if Abs(xNew - xOld) < Eps then break; Inc(n); if n > nMax then Writeln(‘За ’, nMax, ‘ шагов требуемая точность не достигнута.’); break; end; end;
xNew:= (xR * yL - xL * yR) / (yL - yR); Writeln('Result: x=', xNew:0:12, ‘ n=’, n); end;
procedure NewtonSearchRoot(xL, xR, Eps: double; f, df, d2f: MyFuncType); xOld, xNew: double; n: integer; n:= 0;
if f(xL) * d2f(xL) > 0 then xNew:= xL else xNew:= xR;
xOld:= xNew; xNew:= xOld - f(xOld) / df(xOld);
if Abs(xNew - xOld) < Eps then break; Inc(n); if n > nMax then Writeln(‘За ’, nMax, ‘шагов требуемая точность не достигнута.’); break; end; end;
Writeln('Result: x=', xNew:0:12, ‘ n=’, n); end;
ChordSearchRoot(-2, 0, 0.000000000001, f); NewtonSearchRoot(-2, 0, 0.000000000001, f, dfdx, d2fdx2); Readln; end.
Результат работы программы:
Result: x = - 0.852605502013 n = 55 Result: x = - 0.852605502014 n = 6
Оператор выбора
< Оператор выбора> ::= case <Выражение-селектор> of <Список 1>: <Оператор 1>; <Список 2>: <Оператор 2>; <Список N>: <Оператор N>; <Операторы>;
ColorType = ( Red, Orange, Yellow, Green, Blue, DarkBlue, Purple, Black, White );
MyColor: ColorType;
X: integer;
MyColor:= Green; с ase MyColor of Red: X:= 1; Orange: X:= 2; Yellow: X:= 3; Green: X:= 4; Blue: X:= 5; DarkBlue, Purple: X:= 0; X:= -1; end;
Write('Input Persons''Age: '); readln(X);
0.. 1: writeln('Baby'); 2.. 9: writeln('Child'); 10.. 19: writeln('Teenager'); 20.. 35: writeln('Young Person'); 36.. 64: writeln('Mead Age Person');
65.. 90: writeln('Old Person'); 91.. 120: writeln('Very Old Person'); 121.. 180: writeln('Very Very Old Person'); writeln('Unimpossible Age'); end;
readln;
Тип «Запись» (продолжение) Упакованные записи
{$PACKRECORDS 1} MyRecordType1A = record A: byte; B: word; end; {$PACKRECORDS 2} MyRecordType1B = packed record A: byte; B: word; end;
MyRecordType1C = record A: byte; B: word; end; {$ALIGNMENT ON} {$ALIGN 8} MyRecordType1D = record A: byte; B: word; end; writeln(SizeOf(MyRecordType1A)); // 3 writeln(SizeOf(MyRecordType1B)); // 3 writeln(SizeOf(MyRecordType1C)); // 4 writeln(SizeOf(MyRecordType1D)); // 4 readln; end. Записи с вариантной частью
MyTagType0 = (Type00, Type01, Type02, Type03); MyTagType01 = (Type010, Type011, Type012, Type013); MyTagType02 = (Type020, Type021, Type022, Type023);
MyRecordType1 = record i: integer; d: double; Type00: ( s: string [7]; mA: array [1..3] of single; ); Type01: ( R1, R2: MyRecordType2D; ); Type02.. Type03: ( c1: char; T1: TDateTime; ); end; MyRecordType2 = record r: single; Type00: ( bWas: boolean; mC: array [1..4] of char; Type010: (k: integer;); Type011.. Type013: (b: byte;); ); Type01: ( R1, R2: MyRecordType2D; Type020: (c: char;); Type021.. Type023: (s0: shortint;); ); end;
function Length(S: string): byte; Возвращает длину строки S. Значение длины равноценно значению Ord(s[0]), поскольку код «нулевого» байта строки есть её текущая длина.
function Copy(S: string; iStart, iLength: byte): string; Возвращает подстроку строки S – набор из iLength символов, начинающийся с символа с номером iStart. Нумерация символов в строке начинается с единицы. Замечание: Copy(S, n, 1) равноценно S[n].
procedure Delete(S: string; iStart, iLength: byte); Удаляет из строки S её подстроку – набор из iLength символов, начинающийся с символа с номером iStart. Нумерация символов в строке начинается с единицы.
function Index(S, SWhat: string): byte; Ищет первое вхождение подстроки sWhat в строку S. Результат – номер символа, начиная с которого найдено вхождение. Результат – ноль, если вхождение не найдено.
function Str(X: <числовой тип>): string; Возвращает строковое выражение числа X.
procedure Val(S: string; var X: <числовой тип>; IER: integer); Пытается преобразовать строку S в число и занести его в параметр-переменную X. Если попытка завершается удачно, IER=0, в противном случае IER<>0.
Дата добавления: 2014-01-04; Просмотров: 231; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |