Similar presentations:
Тема 3.4. Операторы языка Pascal
1. Операторы языка Pascal
1. Схемы программ2. Подпрограммы ввода-вывода
3. Составной оператор
4. Условный оператор
5. Оператор выбора case
6. Операторы цикла
7. Оператор цикла for
8. Оператор цикла while
9. Оператор цикла repeat..until
10. Операторы передачи управления
1
2.
1. Схемы программГОСТ 19.701-90. ЕСПД.
Схемы алгоритмов, программ, данных и систем.
Обозначения условные и правила выполнения
В стандарте определены символы и правила их применения в:
1) схемах данных;
2) схемах программ;
3) схемах работы системы;
4) схемах взаимодействия программ;
5) схемах ресурсов системы.
Операторы языка Pascal
2
3.
1. Схемы программ1) Схемы программ отображают последовательность операций в
программе.
2) Схема программы состоит из:
• символов процесса, указывающих фактические операции обработки
данных (включая символы, определяющие путь, которого следует
придерживаться с учетом логических условий);
• линейных символов, указывающих поток управления;
• специальных символов, используемых для облегчения написания и
чтения схемы.
Операторы языка Pascal
3
4.
1. Схемы программДанные
Символ отображает данные, носитель данных не определен
Процесс
Символ отображает функцию обработки данных любого вида
Предопределенный процесс
Символ отображает предопределенный процесс, состоящий из
одной или нескольких операций или шагов программы, которые
определены в другом месте (в подпрограмме, модуле)
Подготовка
Символ отображает модификацию команды или группы команд с
целью воздействия на некоторую последующую функцию
(установка переключателя, модификация индексного регистра или
инициализация программы)
Операторы языка Pascal
4
5.
1. Схемы программРешение
Символ отображает решение или функцию переключательного
типа, имеющую один вход и ряд альтернативных выходов, один и
только один из которых может быть активизирован после
вычисления условий
Границы цикла
Символ отображает предопределенный процесс, состоящий из
одной или нескольких операций или шагов программы, которые
определены в другом месте (в подпрограмме, модуле)
Линия
Символ отображает поток данных или управления.
При необходимости или для повышения удобочитаемости могут
быть добавлены стрелки-указатели
Операторы языка Pascal
5
6.
1. Схемы программСоединитель
Символ отображает выход в часть схемы и вход из другой части
этой схемы и используется для обрыва линии и продолжения ее в
другом месте. Соответствующие символы-соединители должны
содержать одно и то же уникальное обозначение.
Терминатор
Символ отображает выход во внешнюю среду и вход из внешней
среды (начало или конец схемы программы, внешнее
использование и источник или пункт назначения данных).
Комментарий
Символ используют для добавления описательных комментариев
или пояснительных записей в целях объяснения или примечаний.
Операторы языка Pascal
6
7.
1. Схемы программПотоки данных или потоки управления в схемах показываются
линиями. Направление потока слева направо и сверху вниз считается
стандартным.
В случаях, когда необходимо внести большую ясность в схему
(например, при соединениях), на линиях используются стрелки.
Если поток имеет направление, отличное от стандартного, стрелки
должны указывать это направление.
Операторы языка Pascal
7
8.
1. Схемы программВ схемах следует избегать пересечения линий. Пересекающиеся линии
не имеют логической связи между собой, поэтому изменения
направления в точках пересечения не допускаются.
Две или более входящие линии могут объединяться в одну исходящую
линию. Если две или более линии объединяются в одну линию, место
объединения должно быть смещено.
Линии в схемах должны подходить к символу либо слева, либо сверху,
а исходить либо справа, либо снизу. Линии должны быть направлены к
центру символа
Операторы языка Pascal
8
9.
1. Схемы программНесколько выходов из символа следует показывать:
1) несколькими линиями от данного символа к другим символам;
2) одной линией от данного символа, которая затем разветвляется в
соответствующее число линий.
Каждый выход из символа должен
сопровождаться соответствующими
значениями условий, чтобы показать
логический путь, который он
представляет, с тем чтобы эти условия и
соответствующие ссылки были
идентифицированы.
Операторы языка Pascal
9
10.
1. Схемы программТекст для чтения должен записываться слева направо и сверху вниз
независимо от направления потока.
Операторы языка Pascal
10
11.
1. Схемы программa = 10, 15, 20 мм.
b =1.5a
Операторы языка Pascal
11
12.
1. Схемы программОператоры языка Pascal
12
13.
1. Схемы программОператоры языка Pascal
13
14. Схема программы для решения квадратного уравнения
1. Схемы программСхема программы для решения квадратного уравнения
Операторы языка Pascal
14
15. Операторы языка Pascal
1. Схемы программ2. Подпрограммы ввода-вывода
3. Составной оператор
4. Условный оператор
5. Оператор выбора case
6. Операторы цикла
7. Оператор цикла for
8. Оператор цикла while
9. Оператор цикла repeat..until
10. Операторы передачи управления
15
16.
2. Подпрограммы ввода-выводаВвод данных с клавиатуры:
Read(<Список ввода>)*;
Readln(<Список ввода>)**;
Readln;
* Вводит значения с клавиатуры
** Вводит значения с клавиатуры и осуществляет переход на следующую строку
Вывод данных на экран:
Write(<Список вывода>)*;
Writeln(<Список вывода>)*;
Writeln;
* Выводит значения
** Выводит значения и осуществляет переход на новую строку
Операторы языка Pascal
16
17.
2. Подпрограммы ввода-выводаvar
a: integer;
b: real;
begin
readln(a,b);
writeln(a);
writeln(b);
end.
Вариант ввода 1:
Вариант ввода 2:
1 10.12
1
10.12
11
12.1
11
12.1
Операторы языка Pascal
17
18.
2. Подпрограммы ввода-выводаФорматированный вывод
Символ «:» задает формат вывода числа
Write(x:5);
// под вывод числа отводится 5 символов,
// не хватает - расширяется
Write(x:5:2);
// под число – 5 символов,
// под дробную часть – 2 символа
Операторы языка Pascal
18
19.
2. Подпрограммы ввода-выводаvar x: real;
y : integer;
begin
x:=12345.1537; y := 10;
write(y); write(x); writeln;
writeln(y,x); writeln(y,'-',x);
writeln('Переменная y=',y,', переменная x=',x);
writeln(y,x:12);
writeln(x:2:3); writeln(x:3:4);
writeln(x:15:2);
end.
Результат:
1012345.1537
1012345.1537
10-12345.1537
Переменная y=10, переменная x=12345.1537
10 12345.1537
12345.154
12345.1537
12345.15
Операторы языка Pascal
19
20. Операторы языка Pascal
1. Схемы программ2. Подпрограммы ввода-вывода
3. Составной оператор
4. Условный оператор
5. Оператор выбора case
6. Операторы цикла
7. Оператор цикла for
8. Оператор цикла while
9. Оператор цикла repeat..until
10. Операторы передачи управления
20
21.
3. Составной операторСоставной оператор – это последовательность произвольных
операторов программы, заключенная в операторные скобки –
зарезервированные слова BEGIN … END.
Составные операторы обрабатываются, как один оператор.
Это имеет решающее значение там, где синтаксис Паскаля
допускает использование только одного оператора.
begin
………
begin
Z := X;
X := Y;
end;
end;
Операторы языка Pascal
21
22. Операторы языка Pascal
1. Схемы программ2. Подпрограммы ввода-вывода
3. Составной оператор
4. Условный оператор
5. Оператор выбора case
6. Операторы цикла
7. Оператор цикла for
8. Оператор цикла while
9. Оператор цикла repeat..until
10. Операторы передачи управления
22
23.
4. Условный операторСтруктура полной формы условного оператора:
IF <условие> THEN <оператор1> ELSE <оператор2>
где IF, THEN, ELSE – зарезервированные слова (если, то, иначе);
<условие> – произвольное выражение логического типа;
<оператор1>, <оператор2> – любые операторы
да
нет
условие
Оператор 1
Операторы языка Pascal
Оператор 2
23
24.
4. Условный операторСтруктура краткой формы условного оператора:
IF <условие> THEN <оператор1>
да
нет
условие
Оператор 1
Операторы языка Pascal
24
25.
4. Условный операторvar
x, y, max: real;
begin
... {ввод значений x, y, max}
if x>max then //Полная форма условного оператора
y := max
else
y := x;
...
end.
var
x, y, max: real;
begin
... {ввод значений x, y, max}
y := x;
if y>max then //Краткая форма условного оператора
y := max;
...
end.
Операторы языка Pascal
25
26.
4. Условный операторПример. Отыскание наибольшего из трех чисел
var
a, b, c, max: integer;
begin
...
if a>b then
if b>c then
max := a
else
if a>c then
max := a
else
max := c
else
{b>a}
if b>c then
max := b
else
max := c;
wirteln(‘Max = ‘, max);
end.
Операторы языка Pascal
var
a, b, c, max: integer;
begin
...
max := a;
if b>max then
max := b;
if c>max then
max := c;
wirteln(‘Max = ‘, max);
end.
26
27.
4. Условный операторСхема алгоритма к задаче поиска наибольшего из трех чисел
max:=a
да
нет
b>max
max:=b
да
нет
c>max
max:=c
max
Выход
Операторы языка Pascal
27
28.
4. Условный операторПример: Вывести на экран сообщение попадает ли значение введенной
переменной в отрезок [10; 20]
var
a:integer;
begin
writeln('Введите значение переменной');
readln(a);
if a >= 10 and a<=20 then
writeln('Значение "a" попадает в отрезок [10; 20]')
else
writeln('Значение "a" не попадает в отрезок [10; 20]');
end.
var
a:integer;
begin
writeln('Введите значение переменной');
readln(a);
if (a >= 10) and (a<=20) then
writeln('Значение "a" попадает в отрезок [10; 20]')
else
writeln('Значение "a" не попадает в отрезок [10; 20]');
end.
Операторы языка Pascal
ОШИБКА:
Операция '>=' не
применима к
типам integer и
boolean
Верно
28
29. Операторы языка Pascal
1. Схемы программ2. Подпрограммы ввода-вывода
3. Составной оператор
4. Условный оператор
5. Оператор выбора case
6. Операторы цикла
7. Оператор цикла for
8. Оператор цикла while
9. Оператор цикла repeat..until
10. Операторы передачи управления
29
30.
5. Оператор выбора CASEСтруктура:
case <ключ выбора> of
<список выбора 1>: <оператор1>;
...
<список выбора N>: <операторN>;
else <оператор0>
end;
Здесь CASE, OF, ELSE, END – зарезервированные слова (случай, из,
иначе, конец);
< список выбора>: <оператор>;(< список выбора > – константа
того же типа, что и <ключ выбора>);
<оператор> – произвольный оператор Турбо Паскаля
Операторы языка Pascal
30
31.
5. Оператор выбора CASEСхема алгоритма оператора выбора CASE
Операторы языка Pascal
31
32.
5. Оператор выбора CASEvar
x,y,z: real;
operation: char; {знак операции}
stop: boolean; {признак ошибочной операции и останов}
begin
stop := false;
repeat
writeln;
{пустая строка-разделитель}
write(’x, y =’); readln(x,y);
write(’операция:’);
readln(operation);
case operation of
’+’: z := x+y;
’-’: z := x-y;
’/’: z := x/y;
’*’: z := x*y;
else
stop := true;
end;
if not stop then
writeln(’результат = ’, z);
until stop;
end.
Операторы языка Pascal
32
33. Операторы языка Pascal
1. Схемы программ2. Подпрограммы ввода-вывода
3. Составной оператор
4. Условный оператор
5. Оператор выбора case
6. Операторы цикла
7. Оператор цикла for
8. Оператор цикла while
9. Оператор цикла repeat..until
10. Операторы передачи управления
33
34.
6. Операторы циклаЦикл – повторение одних и тех же действий
Тело цикла – последовательность действий, которая повторяется в
цикле
Шаг цикла – один проход цикла
Параметры цикла – переменные, которые изменяются внутри цикла и
влияют на его окончания
ВАЖНО:
– цикл всегда должен закончиться, содержимое тела должно
обязательно влиять на его окончание
– условие выхода из цикла должно состоять из корректных выражений
и значений, определенных еще до первого выполнения тела цикла
Операторы языка Pascal
34
35. Операторы языка Pascal
1. Схемы программ2. Подпрограммы ввода-вывода
3. Составной оператор
4. Условный оператор
5. Оператор выбора case
6. Операторы цикла
7. Оператор цикла for
8. Оператор цикла while
9. Оператор цикла repeat..until
10. Операторы передачи управления
35
36.
7. Оператор цикла forВозрастающий счетчик
FOR <парам. цикла> := <нач. знач.> TO <кон. знач.> DO <оператор>;
Убывающий счетчик
FOR <парам. цикла> := <кон. знач.> DOWNTO <нач. знач.> DO <оператор>;
Здесь FOR, TO, DO – зарезервированные слова (для, до, выполнить)
<парам. цикла> – переменная перечисляемого типа;
<нач. знач.> и <кон. знач.> – выражения переменная перечисляемого типа;
<оператор> – произвольный оператор Паскаля
Операторы языка Pascal
36
37.
7. Оператор цикла forПример. Расчёт факториала числа N
var
i, N, fact: integer;
begin
write(‘Введите N:’);
readln(N);
fact := 1;
for i := 1 to N do
fact := fact*i;
writeln(‘N!=’,fact);
end.
Операторы языка Pascal
var
i, N, fact: integer;
begin
write(‘Введите N:’);
readln(N);
fact := 1;
for i := N downto 1 do
fact := fact*i;
writeln(‘N!=’,fact);
end.
37
38.
7. Оператор цикла forvar
i: integer;
begin
writeln('начало цикла');
for i := 1 to 3 do writeln('счетчик ',i);
writeln('цикл завершился');
end.
начало цикла
счетчик 1
счетчик 2
счетчик 3
цикл завершился
var
i: integer;
begin
writeln('начало цикла');
for i := 10 downto 8 do writeln('счетчик ',i);
writeln('цикл завершился');
end.
начало цикла
счетчик 10
счетчик 9
счетчик 8
цикл завершился
Операторы языка Pascal
38
39.
7. Оператор цикла forvar
i: integer;
begin
writeln('начало цикла');
for i := 5 to 2 do writeln('счетчик ',i);
writeln('цикл завершился');
end.
var
i: integer;
begin
writeln('начало цикла');
for i := 10 downto 11 do writeln('счетчик ',i);
writeln('цикл завершился');
end.
Операторы языка Pascal
начало цикла
цикл завершился
начало цикла
цикл завершился
39
40.
7. Оператор цикла forvar
i,x: integer;
begin
writeln('начало цикла');
x := 1;
for i := 1 to 5 do
begin
x := x + 2;
writeln('счетчик ',i, ' x=',x);
end;
writeln('цикл завершился');
end.
Операторы языка Pascal
начало цикла
счетчик 1 x=3
счетчик 2 x=5
счетчик 3 x=7
счетчик 4 x=9
счетчик 5 x=11
цикл завершился
40
41.
7. Оператор цикла forvar
i: integer;
begin
writeln('начало цикла');
for i := 1 to 5 do ;
writeln('счетчик ',i);
writeln('цикл завершился');
end.
Операторы языка Pascal
начало цикла
счетчик 5
цикл завершился
41
42. Операторы языка Pascal
1. Схемы программ2. Подпрограммы ввода-вывода
3. Составной оператор
4. Условный оператор
5. Оператор выбора case
6. Операторы цикла
7. Оператор цикла for
8. Оператор цикла while
9. Оператор цикла repeat..until
10. Операторы передачи управления
42
43.
8. Оператор цикла whileСтруктура
WHILE <условие> DO <оператор>
Здесь WHILE, DO – зарезервированные слова (пока [выполняется
условие], делать)
<условие> – произвольное выражение логического типа;
<оператор> – произвольный оператор.
Операторы языка Pascal
43
44.
8. Оператор цикла whilevar
run: boolean;
x : integer;
begin
run := true;
x := 0;
while run do
begin
writeln('в цикле x=',x);
x := x + 1;
if x>=3 then run := false;
end;
writeln('после цикла x=',x);
end.
Операторы языка Pascal
в цикле x=0
в цикле x=1
в цикле x=2
после цикла x=3
44
45.
8. Оператор цикла whileПример. Отделение корня на отрезке методом половинного деления.
program mdp;
var
a, b, e, c, x, f_a, f_c, f_x: real;
begin
a:=1; b:=2;
write ('задайте точность e=');
read(e);
c:=(a+b)/2;
while abs(b-a)>e do
begin
f_a := exp(a*ln(5))-6*a-3;
f_c := exp(c*ln(5))-6*c-3;
if f_a*f_c<0 then b:=c else a:=c;
c:=(a+b)/2;
end;
x:=(a+b)/2;
f_x := exp(x*ln(5))-6*x-3;
writeln ('x=',x:3:3,' f(x)=',f_x:4:4);
end.
Операторы языка Pascal
45
46. Операторы языка Pascal
1. Схемы программ2. Подпрограммы ввода-вывода
3. Составной оператор
4. Условный оператор
5. Оператор выбора case
6. Операторы цикла
7. Оператор цикла for
8. Оператор цикла while
9. Оператор цикла repeat..until
10. Операторы передачи управления
46
47.
9. Оператор цикла repeat..untilСтруктура
REPEAT <тело цикла> UNTIL <условие>
Здесь REPEAT, UNTIL – зарезервированные слова (повторять до тех
пор, пока не будет выполнено условие)
<тело цикла> – произвольная последовательность операторов.
<условие> – произвольное выражение логического типа
Операторы языка Pascal
47
48.
9. Оператор цикла repeat..untilПример. Вывод ASCII-кода символа.
const
ENTER = 13;
var
ch: char;
begin
repeat
readln(ch);
writeln(‘Код символа ’’’, ch, ’’’ – ’, ord(ch) );
until ord(ch) = ENTER
end.
Операторы языка Pascal
1
Код символа '1' – 49
Код символа ' ' – 32
r
Код символа 'r' – 114
R
Код символа 'R' – 82
Код символа '
' – 13
48
49.
9. Оператор цикла repeat..untilРассчитать значение функции f(x)=2x+3 на отрезке [a;b] с шагом h
При помощи цикла for
var
i,N: integer;
a,b,h,x,y : real;
begin
writeln('введите параметры отрезка [a,b], h');
write('a=');readln(a);
write('b=');readln(b);
write('h=');readln(h);
x := a;
N := trunc((b-a)/h)+1;
for i := 1 to N do
begin
y := 2*x + 3;
writeln('y(',x,')=',y);
x := x + h;
end;
end.
Операторы языка Pascal
49
50.
9. Оператор цикла repeat..untilРассчитать значение функции f(x)=2x+3 на отрезке [a;b] с шагом h
При помощи цикла while
var
i,N: integer;
a,b,h,x,y : real;
begin
writeln('введите параметры отрезка [a,b], h');
write('a=');readln(a);
write('b=');readln(b);
write('h=');readln(h);
x := a;
while not (x > b) do
begin
y := 2*x + 3;
writeln('y(',x,')=',y);
x := x + h;
end;
end.
Операторы языка Pascal
50
51.
9. Оператор цикла repeat..untilРассчитать значение функции f(x)=2x+3 на отрезке [a;b] с шагом h
При помощи цикла repeat..until
var
i,N: integer;
a,b,h,x,y : real;
begin
writeln('введите параметры отрезка [a,b], h');
write('a=');readln(a);
write('b=');readln(b);
write('h=');readln(h);
x := a;
repeat
y := 2*x + 3;
writeln('y(',x,')=',y);
x := x + h;
until x > b
end.
Операторы языка Pascal
51
52.
9. Оператор цикла repeat..untilПри помощи цикла for
При помощи цикла while
введите параметры отрезка [a,b], h
a=-3
b=4
h=2
y(-3)=-3
y(-1)=1
y(1)=5
y(3)=9
введите параметры отрезка [a,b], h
a=-3
b=4
h=2
y(-3)=-3
y(-1)=1
y(1)=5
y(3)=9
При помощи цикла repeat..until
введите параметры отрезка [a,b], h
a=-3
b=4
h=2
y(-3)=-3
y(-1)=1
y(1)=5
y(3)=9
Операторы языка Pascal
52
53. Операторы языка Pascal
1. Схемы программ2. Подпрограммы ввода-вывода
3. Составной оператор
4. Условный оператор
5. Оператор выбора case
6. Операторы цикла
7. Оператор цикла for
8. Оператор цикла while
9. Оператор цикла repeat..until
10. Операторы передачи управления
53
54.
10. Операторы передачи управленияОператоры передачи управления принудительно изменяют порядок
выполнения команд:
BREAK - осуществляет немедленный выход из циклов repeat,
while, for и управление передается оператору, находящемуся
непосредственно за циклом,
CONTINUE – начинает новую итерацию цикла, даже если
предыдущая не была завершена,
EXIT – осуществляет выход из подпрограммы,
HALT – прекращает выполнение программы.
Операторы языка Pascal
54
55.
10. Операторы передачи управленияbegin
writeln('строка 1');
writeln('строка 2');
halt;
writeln('строка 3');
writeln('строка 4');
end.
var i : integer;
begin
writeln('До цикла');
for i := 1 to 5 do
begin
writeln('итерация ',i);
if i=2 then break;
end;
writeln('После цикла');
end.
Операторы языка Pascal
строка 1
строка 2
До цикла
итерация 1
итерация 2
После цикла
55
56.
10. Операторы передачи управленияvar i, j : integer;
begin
writeln('До цикла');
for i := 1 to 3 do
for j := 1 to 3 do
begin
writeln('итерация i=',i,' j=',j);
if i=2 then break;
end;
writeln('После цикла');
end.
Операторы языка Pascal
До цикла
итерация i=1 j=1
итерация i=1 j=2
итерация i=1 j=3
итерация i=2 j=1
итерация i=3 j=1
итерация i=3 j=2
итерация i=3 j=3
После цикла
56