Здесь показаны различия между двумя версиями данной страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
subjects:programming:pascal:standard_functions [2018/06/19 12:12] ¶ |
subjects:programming:pascal:standard_functions [2023/04/25 17:32] (текущий) ¶ [Пример замены] |
||
|---|---|---|---|
| Строка 21: | Строка 21: | ||
| ===== Целые и вещественные типы данных ===== | ===== Целые и вещественные типы данных ===== | ||
| |Функция|Описание|Пример|| | |Функция|Описание|Пример|| | ||
| - | ^ABS(NX)|Абсолютная величина NX|<code pascal>ABS(-3);//=3</code>|| | + | ^ABS(NX)|Абсолютная величина (''модуль'') NX|<code pascal>ABS(-3);//=3</code>|| |
| ^SQR(NX)|Квадрат числа NX|<code pascal>SQR(3);//=9</code>|| | ^SQR(NX)|Квадрат числа NX|<code pascal>SQR(3);//=9</code>|| | ||
| Строка 28: | Строка 28: | ||
| ^ARCTAN(X)|Арктангенс X|<code pascal></code>|| | ^ARCTAN(X)|Арктангенс X|<code pascal></code>|| | ||
| ^COS(X)|Косинус X|<code pascal>COS(PI/3);//=0.5</code>|| | ^COS(X)|Косинус X|<code pascal>COS(PI/3);//=0.5</code>|| | ||
| - | ^EXP(X)|e<sup>x</sup>|<code pascal></code>|| | + | ^EXP(X)|e<sup>x</sup>|<code pascal>exp(2); //=7.38905909893065</code>|| |
| ^FRAC(X)|Дробная часть X|<code pascal>FRAC(3.52);//=0.52</code>|| | ^FRAC(X)|Дробная часть X|<code pascal>FRAC(3.52);//=0.52</code>|| | ||
| ^INT(X)|Целая часть X|<code pascal>INT(3.52);//=3</code>|| | ^INT(X)|Целая часть X|<code pascal>INT(3.52);//=3</code>|| | ||
| ^LN(X)|Натуральный логорифм (по основанию e)|<code pascal></code>|| | ^LN(X)|Натуральный логорифм (по основанию e)|<code pascal></code>|| | ||
| ^PI|Значение $\pi=3.1415926535897932385$|<code pascal></code>|| | ^PI|Значение $\pi=3.1415926535897932385$|<code pascal></code>|| | ||
| - | ^SIN(X)|Синус X|<code pascal></code>|| | + | ^SIN(X)|Синус X|<code pascal>SIN(PI/6);//=0.5</code>|| |
| ^SQRT(X)|Квадратный корень из X|<code pascal>SQRT(9);//=3</code>|| | ^SQRT(X)|Квадратный корень из X|<code pascal>SQRT(9);//=3</code>|| | ||
| + | |Функция|Описание|Пример|Версия| | ||
| + | ^Power(x, y)|x<sup>y</sup> --- возводит число x в степень y|<code pascal>Power(2, 3); //=8 | ||
| + | Power(0.5, -2); //=4 | ||
| + | Power(81, 1/4); //=3</code>|**PascalABC.NET**| | ||
| ===== Функции и процедуры работы со строками ===== | ===== Функции и процедуры работы со строками ===== | ||
| |Функция|Описание|Пример|| | |Функция|Описание|Пример|| | ||
| Строка 53: | Строка 57: | ||
| ^Insert|Вставка строки внутрь другой строки|<code pascal>s6:='Рука'; s7:='баш'; | ^Insert|Вставка строки внутрь другой строки|<code pascal>s6:='Рука'; s7:='баш'; | ||
| Insert(s7,s6,3); //s6=’Рубашка’;</code>|| | Insert(s7,s6,3); //s6=’Рубашка’;</code>|| | ||
| + | |||
| + | |||
| + | ==== Пример замены ==== | ||
| + | Можно самому написать функцию, которая бы заменяла подстроку в строе. Например, вот так: | ||
| + | <code pascal strReplace.pas> | ||
| + | function strReplaceOnce(s_txt, s_from, s_to :string): string; | ||
| + | var | ||
| + | i_pos, len_from:integer; | ||
| + | begin | ||
| + | i_pos := pos(s_from, s_txt); // Номер символа первого вхождения | ||
| + | len_from := Length(s_from); // Длинна строки для замены | ||
| + | if (i_pos > 0) and (len_from > 0) then begin | ||
| + | delete(s_txt, i_pos, len_from); // Удаляет строку | ||
| + | insert(s_to, s_txt, i_pos); // Вставляет нужную строку | ||
| + | end; | ||
| + | strReplaceOnce := s_txt; // Возвращает результат после всех действий | ||
| + | end; | ||
| + | |||
| + | function strReplaceAll(s_txt, s_from, s_to :string): string; | ||
| + | begin | ||
| + | while (pos(s_from, s_txt) > 0) do begin | ||
| + | s_txt := strReplaceOnce(s_txt, s_from, s_to); | ||
| + | end; | ||
| + | strReplaceAll := s_txt; | ||
| + | end; | ||
| + | |||
| + | begin | ||
| + | writeln(strReplaceOnce ('2-3 0123456789-23-23', '23', 'aaaB')); // 2-3 01aaaB456789-23-23 | ||
| + | writeln(strReplaceAll ('2-3 0123456789-23-23', '23', 'aaaB')); // 2-3 01aaaB456789-aaaB-aaaB | ||
| + | end. | ||
| + | </code> | ||
| ==== Преобразование типов ==== | ==== Преобразование типов ==== | ||
| Строка 60: | Строка 95: | ||
| ^IntToStr|integer в string|<code pascal></code>|| | ^IntToStr|integer в string|<code pascal></code>|| | ||
| ^FloatToStr|получить строку из числа с плавающей точки|<code pascal></code>|| | ^FloatToStr|получить строку из числа с плавающей точки|<code pascal></code>|| | ||
| + | ^byte|получить integer из boolean|<code pascal> | ||
| + | var | ||
| + | x: real; | ||
| + | sign: integer; | ||
| + | begin | ||
| + | readln(x); | ||
| + | sign:= byte(x>0)-byte(x<0); | ||
| + | writeln(sign); | ||
| + | end.</code>|| | ||
| |Процедура^Описание^Пример|| | |Процедура^Описание^Пример|| | ||
| - | ^Str|**Преобразование типов**: из числа в строку. \\ Не требуется знать начальный или конечный тип данных.|<code pascal>x:=2.73284; | + | ^Str|**Преобразование типов**: из числа в строку. \\ Не требуется знать начальный или конечный тип данных. \\ <del>**PascalABC.NET**</del>|<code pascal>x:=2.73284; |
| Str(x:4:2,s8); //s8=’2.73′;</code>|| | Str(x:4:2,s8); //s8=’2.73′;</code>|| | ||
| - | ^Val|**Преобразование типов**: из строки в число. \\ Не требуется знать начальный или конечный тип данных.|<code pascal>s8='2.73'; | + | ^Val|**Преобразование типов**: из строки в число. \\ Не требуется знать начальный или конечный тип данных. \\ <del>**PascalABC.NET**</del>|<code pascal>s8='2.73'; |
| Val(s8,x,Osh); //x=2.73;</code>|| | Val(s8,x,Osh); //x=2.73;</code>|| | ||
Записаться на занятия к репетитору