Лекция 2.
Стандартные процедуры и функции для работы с целочисленными аргументами.
Inc(x,y) Инкременент(увеличение) аргумента х на величину y.
Dec(x,y) Декремент (уменьшение) аргумента х на величину у.
Inc(x) Увеличение на 1: х=х+1.
Dec(x) Уменьшение на 1: х=х-1.
abs(x) Модуль аргумента. |x|
sqr(x) Возведение аргумента в квадрат.
odd(x) Функция возвращает значение истина (true), если число x
нечетное и ложь (false) в противном случае.
Вещественные типы данных.
Данные вещественного типа имеют своими значениями подмножества действительных чисел, допустимых в конкретной ЭВМ.
Real (comp, double, extended, single):
2e², -0,14e² и т.п.
Стандартные процедуры и функции.
abs(x) |x|
sin(x) sin X
cos(x) cos X
arctg(x) arctg X
sqr(x) x²
sqrt(x) √x
exp(x) Е (экспонента) в степени х
ln(x) ln X
Trunc(x) выделение целой части значения (результат –длинное число)
Fruc(x) Выделение дробной части аргумента х.
int(x) целая часть аргумента.
round(x) округление до ближайшего целого (результат – длинное
число).
random случайное число из диапазона [0,1]
Пример:
1)
<img src="
http://worldofgothic.ru/forum/index.php?action=dlattach;topic=4977.0;attach=1531">
y:=sqrt(abs(10.2-sqr(x)))/2*exp(3*x);
2)
<img src="
http://worldofgothic.ru/forum/index.php?action=dlattach;topic=4977.0;attach=1533">
y:=abs((exp(x*ln(sqr(x)))-sin(3*x)/cos(3*x))/(exp(1/5*ln(cos(x/3)))))
Логический тип данных
Переменные логического типа могут принимать 2 значения: истина и ложь. Для их описания используется ключевое слово boolcan. И памяти РС они занимают 1 байт. Свои значения логические переменные получают в результате выполнения операции отношения (сравнения). Результат отношения равен истине, если отношение удовлетворяется для значений, входящих в него операндов.
Var
c:boolcan;
…
c:=a>7
a mod 2=1 число а – нечетное.
a mod 7=0 кратно 7
a mod 5 <>0 не кратно 5
a div 10=a mod 10 цифры совпадают (11, 22 и т.д)
abs(x)<=7 диапозон от -7 до 7
Символьный тип данных
char
Величины символьного типа занимают 1 байт.
Значением типа char может быть любой символ из расширенного набора ASCII
Стандартные функции для работы с символьными данными
ORD(x) определяет порядковый номер аргумента х. Результат –
целое число.
CHR(x) определяет символ, код которого равен х.
Пример:
Var
a,b,ch,c1:char;
Begin
a:=’q’; {c1:=’de’ – нельзя. Обязательно, чтобы один знак)
b:=’8’ {символ 8, а не число}
ch:=’;’;
c1>=ch;
c1:=b;
Строковый тип данных
string
Значения переменных строкового типа – это последовательность допустимых символов.
Пример:
Var
s, s1, str2:string;]
…
s:=’МЭСИ’; {4 байта}
str2:=’Университет’; {11 байт}
s1:=’123’ {не число 123, а строка из 3 символов}
Program Name;
Var
name:string;
Begin
write(‘Введите ваше имя ‘);
readln(name);
writeln(‘Превед, ‘,name)
end.
…
Дальше куска лекции нет, обойдемся без нее
…
Ветвление алгоритма
<img src="
http://worldofgothic.ru/forum/index.php?action=dlattach;topic=4977.0;attach=1535">
Условный оператор
If <условие> then
<оператор1>{; - не ставится}
else
<оператор2>;
Выполнение условного оператора назначается с вычисления значения логического выражения, записанного в условии.
Простые условия записываются в виде равенств и неравенств. Сложные условия составляют из простых операций. Если <условие>истинно, то выполняется <оператор1>, в противном случае – <оператор2>. Если в качестве оператора должна быть выполнена последовательность операторов, то они объединяются операторными скобками: Begin и End;
Пример:
у=√x - если x>0)
у=|x| - в противном случае
If x>0
Then
y:=sqrt(x)
Else
y:=abs(x);
Формат неполного условного оператора
<img src="
http://worldofgothic.ru/forum/index.php?action=dlattach;topic=4977.0;attach=1537">
Ветвь else может отсутствовать. В этом случае, если условие ложное, никакие действия не выполняются.
Например:
Если число а кратно 8, увеличить его в 5 раз. (если нет – ничего не делать)
If a mod 8=0
then a:=a*5;
Пример:
Условие: Даны 2 числа. Большее из них увеличить в 3 раза, меньшее – уменьшить на 1.
Блок-схема:
<img src="
http://worldofgothic.ru/forum/index.php?action=dlattach;topic=4977.0;attach=1539">
Программа:
Program ex;
Var
x,y:real; {исходные данные, результат}
Begin
write(‘Введите два числа ‘);
readln(x,y);
If x>y
then
begin
x:=3*x;
Dec(y)
End
else
begin
Dec(x);
y:=3*y;
end;
writeln(‘Новые значения ‘);
writeln(‘x= ‘,x:7:2,’ y= ‘,y:7:2);
end.
Тест:
Исходные данные Результат
х=5, y=2. x=15, y=1
x=-10, y=15 x=-11, y=45
Если в конце программы ввести readln, то она будет ждать нажатия клавиши Enter для завершения.