Линейные алгоритмы
Линейным называется алгоритм, в котором выполняются все этапы решения задачи строго последовательно. Блок схема алгоритма выглядит, как последовательность действий, т.е. не содержит ветвлений и циклов:
Оператор присваивания
Для присваивания значений переменным или для вычислений используется оператор присваивания. Слева от знака равенства указывается имя переменной, справа указывается выражение или значение того же типа, что и переменная. Символ ":=", связывающий левую и правую части оператора присваивания, означает "присвоить значение".
Например:
:= 100;
Y := 'Информатика';
F := true;
Z := -2.5;
K :
Арифметические операции
В Pascal определены следующие арифметические операции над числовыми переменными:
+ - сложение; - - вычитание; * - умножение; / - деление вещественное; div - деление целочисленное; mod - получение остатка от целочисленного деления.
Арифметические функции
| Функция | Наименование | Тип результата |
| sin(X) | Синус | real |
| cos(X) | Косинус | real |
| ln(X) | Логарифм | real |
| sqrt(X) | Корень квадратный | real |
| arctan(X) | Арктангенс | real |
| exp(X) | Экспонента | real |
| sqr(X) | Квадрат числа | real |
| abs(X) | Абсолютная величина | real |
| frac(X) | Дробная часть числа | real |
| int(X) | Целая часть числа | real |
| Pi | Число пи=3.14159265 | real |
Старшинство операций (в порядке убывания приоритета):
- вычисление функции;
- унарный минус;
- *,/,div,mod;
- +,-
Возведение положительного числа в вещественную степень следует производить, используя следующее математическое тождество: xy = ey ln x. На Паскале это записывается так:
exp (y*ln(x))
Ввод данных с клавиатуры производится путем обращения к стандартным процедурам:
Read(<список ввода>) Redln(<список ввода>)
Элементы списка ввода - идентификаторы переменных. Вводимые значения отражаются на экране. При выполнении оператора пользователь набирает на клавиатуре соответствующую последовательность значений, разделяя их пробелами.
Вывод данных на экран производится путем обращения к стандартным процедурам:
Write (<список вывода>) Writeln (<список вывода>)
Элементы списка вывода - константы, переменные, выражения, форматы вывода.
Структура программы на Паскале:
Program <Имя программы>;
Label <раздел описания меток>;
Const<раздел описания констант>;
Type <раздел описания типов>;
Var <раздел описания переменных>;
Procedure (Function) <раздел описания подпрограмм>;
Begin
<раздел операторов>
End.
Для любой программы обязательным является лишь раздел операторов. Все программные объекты (константы, переменные, типы и пр.) должны быть описаны в соответствующих разделах описаний.
Здесь и в дальнейшем служебные слова Паскаля будут выделяться полужирным шрифтом. Служебными называются слова, значения которых в языке однозначно определены.
Задача 1. Вычислить периметр и площадь прямоугольного треугольника по заданным длинам двух катетов aи b.
Решение
program perimetr_ploshchad;
uses crt;
var a,b,perimetr,ploshchad:integer;
begin
writeln ('введите длины катетов');
write ('введите длину первого катета ');
readln(a);
write ('введите длину второго катета ');
readln(b);
writeln('периметр данного прямоугольного треугольника равен ',sqrt(sqr(a)+sqr(b))+a+b);
writeln('площадь данного прямоугольного треугольника равна ',(a*b)/2);
end.
Задача 2. Найти произведение цифр заданного четырехзначного числа.
Решение
program pcifr;
uses crt;
var s,a:integer;
begin
write('введите четырехзначное число ');
readln(a);
s:=1;
s:=a mod 10;
a:=a div 10;
s:=s*(a mod 10);
a:=a div 10;
s:=s*(a mod 10);
a:=a div 10;
s:=s*(a mod 10);
a:=a div 10;
writeln('произведение цифр данного числа равна ',s);
end.
Задача 3. Даны два числа. Найти среднее арифметическое кубов этих чисел и среднее геометрическое модулей этих чисел.
Решение
program srednee;
uses crt;
var a,b:integer;
begin
writeln('введите два числа');
writeln('число 1');
readln(a);
writeln('число 2');
readln(b);
writeln('среднее арифметическое кубов данных чисел равно ',(a*a*a+b*b*b)/2);
writeln('среднее геометрическое модулей данных чисел равно ',sqrt(abs(a)*abs(b)));
end.
