Пример программы на паскале с двумя условиями

В этом уроке мы с Вами рассмотрим конструкцию условия, в которой мы будем проверять сразу несколько совпадений — например равно ли первое число второму и второе третьему. Для такой проверки используются зарезервированные слова, которые дают понять программе, что дальше будет ещё одно условие, но в этом случаем будет истина, если оба условия верны, но также можно проверять их не зависимо друг от друга.

Давайте рассмотрим на примере использование сразу несколько условий.

Program IF_ELSE; uses crt; var num1, num2, num3: Integer; begin clrscr; write(‘Введите три числа через пробел — ‘); readln(num1, num2, num3); if ((num1 = num2)and(num2=num3)) then writeln(‘Все числа равны!’) else writeln(‘Числа не равны!’); readln; end.

Использование вложенного оператора If.

Условные операторы в Pascal можно вкладывать друг в друга. Для этого используется вложенный оператор IF. Рассмотрим это на примере программы, которая будет считать количество корней квадратного уравнения.

program vetvlenija3; uses crt; var A, B, C, D:real; begin clrscr; write (‘Введите коэффициенты A,B,C: ‘); readln (A,B,C); D:=sqr(B)-4*A*C; if D>=0 then if D>0 then writeln (‘Два вещественных корня’) else writeln (‘Один вещественный корень’) else writeln (‘Нет вещественных корней’); readln end.

В строке №8 вводим формулу для расчета дискриминанта. Как известно, он вычисляется по формуле D=b 2 — 4ac. При записи на языке Паскаль получается выражение «sqr(B)-4*A*C». Результат этого выражения сохраняем в переменной «D»

Двойное условие в Pascal

В строке №9 проверяем 1-ое условие: если «D» больше либо равно 0, тогда начинает проверяться 2-ое условие (строка №10) о том, что «D» больше 0. Если 2-ое условие выполняется, то на экран выводится сообщение «Два вещественных корня» (строка №11). Если 2-ое условие не выполняется (строка №12), то на экран выводится сообщение в строке №13.

Строка №14. Если не выполняется 1-ое условие, то на экран выводится сообщение в строке №15.
Таким образом, нам необходимо усвоить, что если мы используем вложенный оператор If, то последний Else в программе относится к первому If, предпоследний Else – ко второму If и т.д.

vlozhennihyj operator if

Запускаем и вводим, например, 4, 8, 2 через пробел и нажимаем Enter.

vlozhennihyj operator if.

При использовании условного оператора If следует учитывать, что после служебного слова Then может стоять только один оператор (например, оператор вывода на экран Writeln, как в примере №20). Если же нам необходимо использовать несколько операторов, то их необходимо взять в блок begin..end. Для наглядности рассмотрим следующий пример.

Использование Begin…end для If.

program vetvlenija; uses crt; var A,B,C,D,X1,X2:real; begin clrscr; write (‘Введите коэффициенты A,B,C: ’); readln (A,B,C); D:=sqr(B)-4*A*C; if D>=0 then if D>0 then begin X1:=(-B+sqrt(D))/(2*A); X2:=(-B-sqrt(D))/(2*A); writeln (‘Два вещественных корня ’,X1:6:2,X2:6:2) end else writeln (‘Один вещественный корень ’,-B/2*A) else writeln (‘Нет вещественных корней’); readln end.

Читайте также:
Как пользоваться программой recover my files

Pascal: Условный оператор

Программирование на языке Python (§ 54 - § 61)

#4. Циклы For, While, repeat на PascalABC.net

При решении этой задачи требуется
выполнить следующие условия:
проверить больше или равен 0 значение
х. Если х больше или равен 0, то в у
записать значение х, если меньше 0, то
присвоить у значение –х
Х, при Х >= 0
У=
-X, при Х < 0

11.

Алгоритм задачи может быть записан:
начало
ЕСЛИ x>=0
ТО y:=x
ИНАЧЕ y:=-x;
ввод х
да
X >= 0
y:= x
нет
y:= -x
вывод у
конец

12.

Пример программы:
Program modul;
Var x,y: integer;
Begin
Writeln(‘Введите число’);
Readln(x);
If x>0
then y :=x
else y:=-x;
Writeln(‘y = ‘, y);
End.

13.

Program B1;
Var a: Integer;
Begin
readln(a);
if a>10 then writeln(‘введеное число больше 10’)
else writeln(‘введеное число меньше 10’);
end.
Обратите внимания, «;» не ставится

14.

Ввести два целых числа и вывести на экран
наибольшее из них.
Блок-схема
начало
ввод a,b
да
a > b?
max:= a
нет
max:= b
вывод max
конец
14

15. Из двух заданных целых чисел выбрать наибольшее.

program one;
var x, y, max: integer;
begin
write (‘Введите два целых числа: ‘);
readln (x, y);
if x >= y
then max:=x
else max:=y;
writeln (‘наибольшее = ‘,max)
end.

16.

Сложные условия
Задача. Фирма набирает сотрудников от
25 до 40 лет включительно. Ввести
возраст человека и определить, подходит
ли он фирме (вывести ответ «подходит»
или «не подходит»).
Особенность: надо проверить, выполняются ли два
условия одновременно.
?
Можно ли решить известными методами?
16

17.

1 способ решения. Блок-схема
начало
ввод x
да
да
‘подходит’
x x >= 25?
нет
нет
‘не подходит’
конец
‘не подходит’
17

18.

1 способ решения. Программа
program qq;
var x: integer;
begin
writeln(‘Введите возраст’);
read ( x );
if x >= 25 then
if x writeln (‘Подходит’)
else
writeln (‘Не подходит’)
else
writeln (‘Не подходит’);
end.
18

19.

2 способ решения. Блок-схема
начало
ввод x
да
x >= 25
и
x ‘подходит’
нет
‘не подходит’
конец
19

20.

2 способ решения. Программа
program qq;
var x: integer;
begin
сложное
writeln(‘Введите возраст’);
условие
read ( x );
if (x >= 25) and (x writeln (‘Подходит’)
else
writeln (‘Не подходит’)
end.
20

21.

21
Сложные условия
Простые условия (отношения)
>
>=
=
равно
не равно
<>
Сложное условие – это условие, состоящее из
нескольких простых условий (отношений), связанных с
помощью логических операций:
• not – НЕ (отрицание, инверсия)
• and – И (логическое умножение, конъюнкция,
одновременное выполнение условий)
• or – ИЛИ (логическое сложение, дизъюнкция,
выполнение хотя бы одного из условий)
• xor – исключающее ИЛИ (выполнение только
одного из двух условий, но не обоих)

22.

Сложные условия
Порядок выполнения (приоритет = старшинство)
• выражения в скобках
• not
• and
• or, xor
• , >=, =, <>
Особенность – каждое из простых условий обязательно
заключать в скобки.
Пример 4
1
6
2
5
3
if not (a > b) or (c <> d) and (b <> a)
then begin
.
end
22

Читайте также:
Как добавить программу в меню отправить

23. Написать алгоритм вычисления значения у, если

1.
Написать алгоритм вычисления
значения у, если
Алгоритм
12 х 2 , если х 16,
у
3 х х 3 , если х 16.
Функция задана двумя
различными аналитическими
выражениями на двух
участках координатной оси.
Если х Если же х>16, то у=3*х-х*х*х.
Второе неравенство является
противоположным первому,
поэтому достаточно поставить
одно первое условие.
Начало
Ввод х ;
Если х y:=12*x*x
иначе
y:=3*x-x*x*x;
Вывод у;
Конец.

24. Блок-схема

начало
ввод х
да
х >= 16
у:= 12*х*х
нет
у:= 3*х-х*х*х
вывод у
конец

25. Программа

program qq;
var x, у: real;
begin
writeln(‘Введите значение аргумента х’);
read ( x );
if x >= 16 then у:=12*х*х
else у:=3*х-х*х*х;
writeln (‘у=‘, у);
end.

26. 2. Определить является ли треугольник со сторонами a, b, c равносторонним треугольником.

Алгоритм
Треугольник является равносторонним,
если все стороны равны между собой.
Начало
Ввод a,b,c ;
Если a=b и b=c то
вывод (треугольник равносторонний)
иначе
вывод (треугольник неравносторонний);
Конец.

27. Блок-схема

начало
ввод a,b,c
да
вывод
треугольник
равносторонний
нет
a=b
и
b=c
вывод
треугольник
неравносторонний
конец

28. Программа

program qq;
var x, у: real;
begin
writeln(‘Введите длины сторон a, b, c’);
read ( a,b,c );
if (a=b) and (b=c) then
writeln(‘треугольник равносторонний’)
else
writeln(‘треугольник неравносторонний’);
end.

29.

Пример программы:
Program uslov;
Var a: integer;
Begin
Writeln(‘введите число’);
Write(‘a=‘);
Readln(a);
If a mod 2=0 then writeln(‘a –четное’)
else writeln(‘a –нечетное’);
End.

30.

Если в качестве блока Действие1 (Действие2)
должна выполниться серия операторов,
то эти операторы заключаются в операторные
скобки Begin – End.

31. Задание на дом: оформить задачи в виде кода программы на языке Паскаль и блок-схемы

1. Дано целое число. Если оно является положительным, то
прибавить к нему 1, в противном случае вычесть из него два.
Вывести полученное число.
2. Даны три стороны одного треугольника и три стороны
другого треугольника. Определить, будут ли эти
треугольники равновеликими, т. е. имеют ли они равные
площади.
3. Составьте программу вычисления функции:
x, если x 0
Y
5 x, если x 0

32.

4.
Написать алгоритм вычисления значения z,
a 3 a 2a, если а 0
если
z 2
а, если а 0
5.
Определить является ли треугольник со
сторонами a, b, c равнобедренным
треугольником.
6.
Определить является ли треугольник со
сторонами a, b, c прямоугольным
треугольником.

33. Решение задач.

В качестве оператора в команде ветвления
может быть другой условный оператор. В
этом случае получаем вложенные ветвления.
Рассмотрим на примере.
Задача. Составить программу для
решения квадратного
уравнения ax2 + bx + c = 0.
Решение задач.

34. Решение задач.

35. Решение задач.

PROGRAM zadacha2;
VAR a,b,c,D,x,x1,x2:REAL;
BEGIN
WRITE(‘a=’); READLN(a);
WRITE(‘b=’); READLN(b);
WRITE(‘c=’); READLN(c);
D:= b*b — 4*a*c;
WRITE (‘Корни уравнения: ‘);
IF D>0 THEN
BEGIN
x1:=(-b+SQRT(D))/(2*a);
x1:=(-b-SQRT(D))/(2*a);
WRITELN (‘x1= ‘,x1:5:2,’x2= ‘,x2:5:2);
END
ELSE
IF D=0 THEN
BEGIN
x:= -b/(2*a);
WRITELN (‘x= ‘,x:5:2);
END
ELSE
WRITELN (‘Корней нет’);
END.
Решение задач.

36. Для записи в тетрадь

Разветвляющимся называется алгоритм, в
котором выбирается одна из нескольких
возможных серий команд. Каждый подобный
путь называется ветвью алгоритма.
Признаком разветвляющегося алгоритма
является наличие операций проверки условия.
Слайды 36-50 –записать в тетрадь

37.

Условие – это логическое выражение, которое может
быть записано в операторе явно или вычислено в
программе. Для записи простых условий используются
операции отношения:
< меньше
x>y
> больше
a>5
>= больше или равно
<> не равно a+b<>0
= равно s mod 2 = 0
n t>=r

Читайте также:
Программа для подключение клавиатуры

38.

В ветвлении можно проверять несколько условий
одновременно. Для этого условия связываются между
собой логическими операциями. Получается сложное
условие.
Если необходимо проверить одновременное выполнение
нескольких условий, для их связи используют
логическую операцию AND (И)
Например, условие 0 выглядеть так:
(х>0) and (х <5)

39.

Если же нужно чтобы выполнялось хотя бы одно из
нескольких условий, то для их связи используют
операцию OR (ИЛИ)
Например, условия y9 будет выглядеть
следующим образом:
(y<0) or (y>9)
Логическая операция NOT (НЕ) меняет значение
условия на противоположное.
Например, необходимо взять все значения х, кроме 1:
not (x=1)
При связывании нескольких условий логическими
операциями, необходимо заключать простые условия в
скобки.

40.

Основные варианты структуры ветвления:
если — то;
то — иначе;
да
условие
нет
если –
да
условие
серия команд 1
серия команд 2
серия команд 1
полное ветвление
неполное ветвление
нет

41.

Запись команды ветвления на языке
программирования Pascal.
IF (условие)
THEN (оператор 1);

42.

IF (условие) THEN
BEGIN
;
;

;
END;
Если должна выполниться серия команд, то
эти операторы заключаются в операторные
скобки Begin – End.

43.

Запись полного ветвления
на языке программирования Pascal
IF (условие)
THEN (оператор 1)
ELSE (оператор 2);

44.

IF (условие) THEN
BEGIN
;
;

;
END
ELSE
BEGIN
;
;

;
END;

45.

ЗАДАЧА 1. Из двух чисел А и В найти набольшее.
PROGRAM zadacha1;
VAR A, B, max: INTEGER;
BEGIN
WRITE(‘A=’);
READLN(A);
WRITE(‘B=’);
READLN(B);
B , то наибольшее число А, иначе наибольшее число В>
IF A>B THEN max :=A
ELSE max :=B;
WRITELN (‘Большее число = ‘, max );
END.

46.

ЗАДАЧА 2. Из двух чисел А и В найти набольшее и наименьшее.
PROGRAM zadacha2;
VAR A, B, max, min: INTEGER;
BEGIN
WRITE(‘A=’); READLN(A);
WRITE(‘B=’); READLN(B);
IF A>B THEN begin
max :=A;
min :=B;
end
ELSE begin
max :=B;
min :=A;
end;
WRITELN (‘max=‘, max, ‘ min=‘, min);
END.

47.

Определение четности числа
Пример программы:
Program uslov;
Var a: integer;
Begin
Writeln(‘введите число’);
Write(‘a=‘);
Readln(a);
If a mod 2=0 then writeln(‘a –четное’)
else writeln(‘a –нечетное’);
End.

48.

48
Задача . Фирма набирает сотрудников от 25 до 40 лет включительно.
Ввести возраст человека и определить, подходит ли он фирме
(вывести ответ «подходит» или «не подходит»).
program qq;
var x: integer;
begin
writeln(‘Введите возраст’);
read ( x );
if (x >= 25) and (x then writeln (‘Подходит’)
else writeln (‘Не подходит’)
end.

49.

Вложенное ветвление:
да
Условие 1
да
серия команд 1
нет
Условие 2
серия команд 2
IF (условие)
THEN (оператор 1)
ELSE IF (условие) THEN (оператор 1)
ELSE (оператор 2);
нет
серия команд 3

50.

Задача 4. Найти наибольшее из трёх данных чисел
a, b, c.
Program zadacha3;
Var a, b, c, max: Integer;
Begin
writeln(‘введи числа’);
readln(а,b,c);
if a>b then
if a>c then max:=a
else max:=c
else
if b>c then max:=b
else max:=c;
writeln(‘большее число равно ’, max);
End.

Источник: ppt-online.org

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru