Линейные алгоритмы

    Линейным называется алгоритм, в котором выполняются все этапы решения задачи строго последовательно. Блок схема алгоритма выглядит, как последовательность действий, т.е. не содержит ветвлений и циклов:     

      Оператор присваивания

    Для присваивания значений переменным или для вычислений используется оператор присваивания. Слева от знака равенства указывается имя переменной, справа указывается выражение или значение того же типа, что и переменная. Символ ":=", связывающий левую и правую части оператора присваивания, означает "присвоить значение".
Например:
                  

:= 100;
                  Y := 'Информатика';
                  F := true;
                  Z := -2.5;
                  K :

= 5.3E-8;

 

Арифметические операции

В 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.14159265real

Старшинство операций (в порядке убывания приоритета):

  • вычисление функции;
  • унарный минус;
  • *,/,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.

Сделать бесплатный сайт с uCoz