Язык программирования Pascal Ветвление
Практическая работа №4.
Решение задач с использованием условного оператора
=b+c соответствует 2≥5 значение FALSE " width="640"
Операции отношения =, , =,
- возвращают значение типа boolean (true или false)
- возвращают значение типа boolean (true или false)
Выражение отношения – два выражения , связанных операцией отношения.
Семантика:
- Вычисляются значения выражений;
- Проверяется истинность отношения
Например:
a:=1; b:=2;c:=3;
2*a=b+c
соответствует 2≥5 значение FALSE
0 then n:=n+1 else n:=n-2; writeln ('n=',n); end . Пример: If2. Дано целое число N . Если оно положительное, то прибавить к нему 1; если отрицательно вычесть из него 2. Вывести полученное число. " width="640"
Условный оператор if … then … else полная форма
Синтаксис:
if
then else ;
Семантика:
1. Вычисляется значение
2. Если истинно (TRUE), то выполняется оператор1, иначе выполняется оператор2.
program if_2;
var n: integer ;
begin
write ('введите целое число n=');
readln (n);
if n0
then n:=n+1
else n:=n-2;
writeln ('n=',n);
end .
Пример:
If2. Дано целое число N .
Если оно положительное, то прибавить к нему 1; если отрицательно вычесть из него 2.
Вывести полученное число.
b then max:=a; writeln ('max=',max); end. Пример: If6. Даны два числа. Вывести большее из них " width="640"
Условный оператор if … then … краткая форма (обход)
Синтаксис:
if then ;
Семантика:
1. Вычисляется значение
2. Если оказывается истинным (TRUE), то выполняется оператор1, иначе переход к следующему оператору.
program a_max_b;
var a,b,max : real ;
begin
writeln ('введите числа a и b');
readln (a,b);
writeln ('a=',a,' b=',b);
max:=b;
if ab then max:=a;
writeln ('max=',max);
end.
Пример:
If6. Даны два числа. Вывести большее из них
b then begin v:=a; a:=b; b:=v; end ; writeln ('a=',a,' b=',b); end. Пример If9. Даны две переменные A, B. Поместить в A меньшее из значений, а в B — большее. Вывести новые значения переменных A и B. " width="640"
Условный оператор
- Если в ветвях необходимо выполнить несколько операторов то используется составной оператор (блок - begin…end ).
program aib;
var a,b,v: real ;
begin
writeln ('введите числа a и b');
readln (a,b);
writeln ('a=',a,' b=',b);
if ab then begin v:=a; a:=b; b:=v; end ;
writeln ('a=',a,' b=',b);
end.
Пример
If9. Даны две переменные A, B. Поместить в A меньшее из значений, а в B — большее. Вывести новые значения переменных A и B.
Решение задач на ветвление
Задача 1 . Дано целое число. Если оно положительное, то удвоить его; если отрицательное, то вычесть из него 2; если нулевое, то заменить его на 10. Вывести полученное число .
Задача 2 . Даны три числа. Найти наименьшее из них.
Задача 3. Даны координаты точки, не лежащие на OX и OY. Определить номер координатной четверти для точки.
Задача 4. Для данного вещественного x найти значение функции f(х)
Задача 5. Для данного вещественного x найти значение функции f(х).
Задача 6. Программа проверки знания таблицы умножения. Использовать функцию Random (х).
0 then n:=2*n else begin if n=0 then n:= n+10 else n:=n-2; end ; writeln ('n=',n); end . " width="640"
Решение задач на ветвление
Задача 1 . Дано целое число. Если оно положительное, то удвоить его; если отрицательное, то вычесть из него 2; если нулевое, то заменить его на 10. Вывести полученное число .
program if_2;
var
n: integer ;
begin
write ('введите целое число n=');
readln (n);
if n0
then n:=2*n
else
begin
if n=0
then n:= n+10
else n:=n-2;
end ;
writeln ('n=',n);
end .
y then min:=y; if minz then min:=z; writeln ('min=',min); end. Задача 2 . Даны три числа. Найти наименьшее из них. " width="640"
Решение задач на ветвление
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 miny then min:=y;
if minz then min:=z;
writeln ('min=',min);
end.
Задача 2 . Даны три числа.
Найти наименьшее из них.
0 then begin if y0 then n:=1 else n:=4; end else begin if y0 then n:=2 else n:=3; end; writeln ('четверть n=',n); end. Задача 3. Даны координаты точки, не лежащие на OX и OY. Определить номер координатной четверти для точки. " width="640"
Решение задач на ветвление
program XOY;
var x,y :real;
n: integer;
begin
writeln ('введите координаты точки x y');
readln(x,y);
writeln ('x=',x,' y=',y);
if x0 then begin
if y0 then n:=1
else n:=4;
end
else begin
if y0 then n:=2
else n:=3;
end;
writeln ('четверть n=',n);
end.
Задача 3. Даны координаты точки, не лежащие на OX и OY. Определить номер координатной четверти для точки.
0 then f:=2*sin(x) else f:=6-x; writeln ('f(',x,')=',f); end. " width="640"
Решение задач на ветвление
Задача 4. Для данного вещественного x найти значение функции f(х)
program f_sin ;
var
x,f: real;
begin
write ('введите x=');
readln (x);
if x0
then f:=2*sin(x)
else f:=6-x;
writeln ('f(',x,')=',f);
end.
=2 then f:=4 else f:=x*x end; writeln ('f(',x,')=',f); end. " width="640"
Решение задач на ветвление
Задача 5. Для данного вещественного x найти значение функции f(х).
program finctian ;
var
x,f: real;
begin
write('введите x=');
readln(x);
if x
then f:=-x
else begin 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 ,
- бинарные операции and , or и xor , унарная not ,
- Логическое выражение – имеют тип boolean .
a
0
b
0
a and b
0
1
a or b
1
0
1
0
0
a xor b
0
0
1
0
1
not a
1
1
1
1
1
1
1
0
0
0
Not - логическое отрицание
And – логическое умножение
Or - логическое сложение
Xor – или-не, строгое или.
= -2) and (x if (x = -1) and (x if (x = 1) and (x if x = 2 then y := 0; writeln ('Для x = ', x, ' y = ', y); end. По значению x вычислить значение составной функции y , заданной в виде графика " width="640"
Вычисление составной функции
program calc_function_1;
var x, y : real ;
begin
writeln (' Введите значение аргумента'); readln (x);
if x
if (x = -2) and (x
if (x = -1) and (x
if (x = 1) and (x
if x = 2 then y := 0;
writeln ('Для x = ', x, ' y = ', y);
end.
- По значению x вычислить значение составной функции y , заданной в виде графика
Задачи на логические выражения
- 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 — являются).
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 .
Дано:
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))
0) and (N mod 2=0) then writeln ('положительное четное'); if (N0) and (N mod 20) then writeln ('положительное нечетное'); end . If29. Дано целое число. Вывести его строку-описание вида «отрицательное четное число», «нулевое число», «положительное нечетное число» и т. д. Дано: N – целое Найти: словесное описание Отрицательное четное (N Отрицательное нечетное (N0) Нулевое N=0 Положительное четное (N0) and (N mod 2=0) Положительное нечетное (N0) and (N mod 20) " width="640"
Задачи на логические выражения
program god;
var N:integer;
begin
write ('введите N=');
readln (N);
if (Nand (N mod 2=0) then writeln ('отрицательное четное');
if (Nand (N mod 20)
then writeln ('отрицательное нечетное');
if (N=0)
then writeln ('нулевое');
if (N0) and (N mod 2=0)
then writeln ('положительное четное');
if (N0) and (N mod 20)
then writeln ('положительное нечетное');
end .
If29. Дано целое число. Вывести его строку-описание вида «отрицательное четное число», «нулевое число», «положительное нечетное число» и т. д.
Дано: N – целое
Найти: словесное описание
Отрицательное четное
(N
Отрицательное нечетное
(N0)
Нулевое
N=0
Положительное четное
(N0) and (N mod 2=0)
Положительное нечетное
(N0) and (N mod 20)
100) and (N mod 2=0) then writeln ('трехзначное четное'); if (N100) and (N mod 20) then writeln ('трехзначное нечетное'); end . If30. Дано целое число, лежащее в диапазоне 1–999. Вывести его строку-описание вида «четное двузначное число», «нечетное трехзначное число» и т. д. Дано: N – целое (1-999) Найти: словесное описание Цифра четная (N Цифра нечетная (N0) Двухзначное четное (10 Двухзначное нечетное (100) Трехзначное четное (N100) and (N mod 2=0) Трехзначное нечетное (N100) and (N mod 20) " width="640"
Задачи на логические выражения
program god;
var N:integer;
begin
write ('введите N=');
readln (N);
if (Nand (N mod 2=0) then writeln ('цифра четная');
if (Nand (N mod 20) then writeln ('цифра нечетная');
if (10and (Nand (N mod 2=0) then writeln ('двухзначное четное');
if (10and (Nand (N mod 20) then writeln ('двухзначное нечетное');
if (N100) and (N mod 2=0) then writeln ('трехзначное четное');
if (N100) and (N mod 20) then writeln ('трехзначное нечетное');
end .
- If30. Дано целое число, лежащее в диапазоне 1–999. Вывести его строку-описание вида «четное двузначное число», «нечетное трехзначное число» и т. д.
Дано: N – целое (1-999)
Найти: словесное описание
Цифра четная
(N
Цифра нечетная
(N0)
Двухзначное четное
(10
Двухзначное нечетное
(100)
Трехзначное четное
(N100) and (N mod 2=0)
Трехзначное нечетное
(N100) and (N mod 20)
0) and (y0) then writeln('Точка находится в первой четверти'); if (x0) then writeln('Точка находится во второй четверти'); if (x if (x0) and (y if (x=0) or (y=0) then writeln('Точка находится на оси координат'); end. Ввод х, y Точка в первой четверти Да (x0) and (y0) Дано: (x,y) - координаты Найти: четверть Решение: (x0) and (y0) в первой четверти (x0) во второй четверти (x в третьей четверти (x0) and (y в четвертой четверти (x=0) or (y=0) на оси координат Нет Точка во второй четверти Да (x0) Нет Точка в третьей четверти Да (xНет Точка в четвертой четверти Да (x0) and (yНет Точка на оси координат Да (x=0) or (y=0) Нет Конец " width="640"
Задачи на логические выражения
Начало
- Заданы координаты точки (x,y). Определить, где находится точка.
Program v16_1;
Var x,y:real;
begin
writeln('Введите координаты точки:');
write('x= ');readln(x);
write('y= ');readln(y);
if (x0) and (y0) then writeln('Точка находится в первой четверти');
if (x0) then writeln('Точка находится во второй четверти');
if (x
if (x0) and (y
if (x=0) or (y=0) then writeln('Точка находится на оси координат');
end.
Ввод х, y
Точка в первой четверти
Да
(x0) and (y0)
Дано: (x,y) - координаты
Найти: четверть
Решение:
(x0) and (y0) в первой четверти
(x0) во второй четверти
(x в третьей четверти
(x0) and (y в четвертой четверти
(x=0) or (y=0) на оси координат
Нет
Точка во второй четверти
Да
(x0)
Нет
Точка в третьей
четверти
Да
(x
Нет
Точка в четвертой четверти
Да
(x0) and (y
Нет
Точка на оси координат
Да
(x=0) or (y=0)
Нет
Конец