Язык программирования Pascal ВетвлениеА. Жидков
Операции отношения =, , =, возвращают значение типа boolean (true или false)Выражение отношения – два выражения, связанных операцией отношения. Семантика:Вычисляются значения выражений;Проверяется истинность отношения Например:a:=1; b:=2;c:=3;2*a>=b+c соответствует 2≥5 значение FALSE
Условный оператор if…then…elseполная форма Синтаксис:if then else ; Семантика:1. Вычисляется значение 2. Если истинно (TRUE), то выполняется оператор1, иначе выполняется оператор2. Пример:If2. Дано целое число N. Если оно положительное, то прибавить к нему 1; если отрицательно вычесть из него 2. Вывести полученное число. program if_2; var n: integer; begin write ('введите целое число n='); readln (n); if n>0 then n:=n+1 else n:=n-2; writeln ('n=',n); end.
Условный оператор if…then…краткая форма (обход)Синтаксис:if then ;Семантика:1. Вычисляется значение 2. Если оказывается истинным (TRUE), то выполняется оператор1, иначе переход к следующему оператору. Пример:If6. Даны два числа. Вывести большее из них program a_max_b;var a,b,max : real;begin writeln ('введите числа a и b'); readln (a,b); writeln ('a=',a,' b=',b); max:=b; if a>b then max:=a; writeln ('max=',max); end.
Если в ветвях необходимо выполнить несколько операторов то используется составной оператор (блок - begin…end). Пример If9. Даны две переменные A, B. Поместить в A меньшее из значений, а в B — большее. Вывести новые значения переменных A и B. program aib;var a,b,v:real;begin writeln ('введите числа a и b'); readln(a,b); writeln ('a=',a,' b=',b); if a>b then begin v:=a; a:=b; b:=v; end; writeln ('a=',a,' b=',b); end.
Задача 1. Дано целое число. Если оно положительное, то удвоить его; если отрицательное, то вычесть из него 2; если нулевое, то заменить его на 10. Вывести полученное число . Задача 2. Даны три числа. Найти наименьшее из них.Задача 3. Даны координаты точки, не лежащие на OX и OY. Определить номер координатной четверти для точки.Задача 4. Для данного вещественного x найти значение функции f(х) Задача 5. Для данного вещественного x найти значение функции f(х).Задача 6. Программа проверки знания таблицы умножения. Использовать функцию Random(х).
Решение задач на ветвление Задача 1. Дано целое число. Если оно положительное, то удвоить его; если отрицательное, то вычесть из него 2; если нулевое, то заменить его на 10. Вывести полученное число . program if_2; var n: integer; begin write('введите целое число n='); readln(n); if n>0 then n:=2*n else begin if n=0 then n:= n+10 else n:=n-2; end; writeln ('n=',n); end.
Решение задач на ветвление Задача 2. Даны три числа. Найти наименьшее из них. program if_2;var x,y,z,min :real;begin writeln ('введите три числа x y z'); readln(x,y,z); writeln ('x=',x,' y=',y,' z=',z); min:=x; if min>y then min:=y; if min>z then min:=z; writeln ('min=',min); end.
Решение задач на ветвлениеЗадача 3. Даны координаты точки, не лежащие на OX и OY. Определить номер координатной четверти для точки.
Решение задач на ветвлениеЗадача 4. Для данного вещественного x найти значение функции f(х) program f_sin ; var x,f: real; begin write('введите x='); readln(x); if x>0 then f:=2*sin(x) else f:=6-x; writeln ('f(',x,')=',f); end.
Решение задач на ветвлениеЗадача 5. Для данного вещественного x найти значение функции f(х). program finctian ; var x,f: real; begin write('введите x='); readln(x); if x=2 then f:=4 else f:=x*x end; writeln ('f(',x,')=',f); end.
Логические операции and, or, not Логические операции - применяют к операндам типа boolean, они возвращают значение типа booleanбинарные операции and, or и xor, унарная not, Логическое выражение – имеют тип boolean. Not - логическое отрицание And – логическое умножениеOr - логическое сложениеXor – или-не, строгое или.
Вычисление составной функцииПо значению x вычислить значение составной функции y, заданной в виде графика program calc_function_1;var x, y : real;beginwriteln(' Введите значение аргумента'); readln(x);if x < -2 then y := 0;if (x >= -2) and (x < -1) then y := -x - 2;if (x >= -1) and (x < 1) then y := x;if (x >= 1) and (x < 2) then y := -x + 2;if x >= 2 then y := 0;writeln('Для x = ', x, ' y = ', y);end.
If28. Дан номер года. Определить количество дней в этом году, учитывая, что обычный год насчитывает 365 дней, а високосный — 366 дней. Високосным считается год, делящийся на 4, за исключением тех годов, которые делятся на 100 и не делятся на 400 (например, годы 300, 1300 и 1900 не являются високосными, а 1200 и 2000 — являются). If29. Дано целое число. Вывести его строку-описание вида «отрицательное четное число», «нулевое число», «положительное нечетное число» и т. д. If30. Дано целое число, лежащее в диапазоне 1–999. Вывести его строку-описание вида «четное двузначное число», «нечетное трехзначное число» и т. д.
Задачи на логические выражения If28. Дан номер года. Определить количество дней в этом году, учитывая, что обычный год насчитывает 365 дней, а високосный — 366 дней. Високосным считается год, делящийся на 4, за исключением тех годов, которые делятся на 100 и не делятся на 400 (например, годы 300, 1300 и 1900 не являются високосными, а 1200 и 2000 — являются). Дано:N – год (integer)Найти: число дней DДелится на 4 N mod 4 =0Делится на 100 N mod 100 =0Не делится на 400 N mod 400 0 (N mod 4=0) and not((N mod 100=0) and (N mod 4000)) program god;var N,D:integer;begin writeln ('введите год'); readln (N); D:=365; if (N mod 4=0) and not ((N mod 100=0) and (N mod 4000)) then D:=366; writeln('в году ', N, ' число дней=',D); end.
Задачи на логические выражения If29. Дано целое число. Вывести его строку-описание вида «отрицательное четное число», «нулевое число», «положительное нечетное число» и т. д.Дано: N – целоеНайти:словесное описаниеОтрицательное четное (N0) and (N mod 20) program god;var N:integer;begin write ('введите N='); readln (N); if (N0) and(N mod 20) then writeln ('положительное нечетное');end.
Задачи на логические выражения If30. Дано целое число, лежащее в диапазоне 1–999. Вывести его строку-описание вида «четное двузначное число», «нечетное трехзначное число» и т. д. Дано: N – целое (1-999)Найти:словесное описаниеЦифра четная (N
Задачи на логические выражения Заданы координаты точки (x,y). Определить, где находится точка. Дано: (x,y) - координатыНайти: четвертьРешение:(x>0) and (y>0) в первой четверти(x0) во второй четверти(x0) then writeln('Точка находится в первой четверти'); if (x0) then writeln('Точка находится во второй четверти'); if (x