Слайд 1Операторы языка Pascal
Схемы программ
Подпрограммы ввода-вывода
Составной оператор
Условный оператор
Оператор выбора case
Операторы цикла
Оператор
цикла for
Оператор цикла while
Оператор цикла repeat..until
Операторы передачи управления
Слайд 21. Схемы программ
Операторы языка Pascal
ГОСТ 19.701-90. ЕСПД.
Схемы алгоритмов, программ,
данных и систем.
Обозначения условные и правила выполнения
В стандарте определены
символы и правила их применения в:
1) схемах данных;
2) схемах программ;
3) схемах работы системы;
4) схемах взаимодействия программ;
5) схемах ресурсов системы.
Слайд 31. Схемы программ
Операторы языка Pascal
1) Схемы программ отображают последовательность операций
в программе.
2) Схема программы состоит из:
символов процесса, указывающих фактические операции
обработки данных (включая символы, определяющие путь, которого следует придерживаться с учетом логических условий);
линейных символов, указывающих поток управления;
специальных символов, используемых для облегчения написания и чтения схемы.
Слайд 41. Схемы программ
Операторы языка Pascal
Данные
Символ отображает данные, носитель данных не
определен
Процесс
Символ отображает функцию обработки данных любого вида
Предопределенный процесс
Символ отображает предопределенный
процесс, состоящий из одной или нескольких операций или шагов программы, которые определены в другом месте (в подпрограмме, модуле)
Подготовка
Символ отображает модификацию команды или группы команд с целью воздействия на некоторую последующую функцию (установка переключателя, модификация индексного регистра или инициализация программы)
Слайд 51. Схемы программ
Операторы языка Pascal
Решение
Символ отображает решение или функцию переключательного
типа, имеющую один вход и ряд альтернативных выходов, один и
только один из которых может быть активизирован после вычисления условий
Границы цикла
Символ отображает предопределенный процесс, состоящий из одной или нескольких операций или шагов программы, которые определены в другом месте (в подпрограмме, модуле)
Линия
Символ отображает поток данных или управления.
При необходимости или для повышения удобочитаемости могут быть добавлены стрелки-указатели
Слайд 61. Схемы программ
Операторы языка Pascal
Соединитель
Символ отображает выход в часть схемы
и вход из другой части этой схемы и используется для
обрыва линии и продолжения ее в другом месте. Соответствующие символы-соединители должны содержать одно и то же уникальное обозначение.
Терминатор
Символ отображает выход во внешнюю среду и вход из внешней среды (начало или конец схемы программы, внешнее использование и источник или пункт назначения данных).
Комментарий
Символ используют для добавления описательных комментариев или пояснительных записей в целях объяснения или примечаний.
Слайд 71. Схемы программ
Операторы языка Pascal
Потоки данных или потоки управления в
схемах показываются линиями. Направление потока слева направо и сверху вниз
считается стандартным.
В случаях, когда необходимо внести большую ясность в схему (например, при соединениях), на линиях используются стрелки.
Если поток имеет направление, отличное от стандартного, стрелки должны указывать это направление.
Слайд 81. Схемы программ
Операторы языка Pascal
В схемах следует избегать пересечения линий.
Пересекающиеся линии не имеют логической связи между собой, поэтому изменения
направления в точках пересечения не допускаются.
Две или более входящие линии могут объединяться в одну исходящую линию. Если две или более линии объединяются в одну линию, место объединения должно быть смещено.
Линии в схемах должны подходить к символу либо слева, либо сверху, а исходить либо справа, либо снизу. Линии должны быть направлены к центру символа
Слайд 91. Схемы программ
Операторы языка Pascal
Несколько выходов из символа следует показывать:
1)
несколькими линиями от данного символа к другим символам;
2) одной линией
от данного символа, которая затем разветвляется в соответствующее число линий.
Каждый выход из символа должен сопровождаться соответствующими значениями условий, чтобы показать логический путь, который он представляет, с тем чтобы эти условия и соответствующие ссылки были идентифицированы.
Слайд 101. Схемы программ
Операторы языка Pascal
Текст для чтения должен записываться слева
направо и сверху вниз независимо от направления потока.
Слайд 111. Схемы программ
Операторы языка Pascal
a = 10, 15, 20 мм.
b
=1.5a
Слайд 121. Схемы программ
Операторы языка Pascal
Слайд 131. Схемы программ
Операторы языка Pascal
Слайд 141. Схемы программ
Операторы языка Pascal
Схема программы для решения квадратного уравнения
Слайд 15Операторы языка Pascal
Схемы программ
Подпрограммы ввода-вывода
Составной оператор
Условный оператор
Оператор выбора case
Операторы цикла
Оператор
цикла for
Оператор цикла while
Оператор цикла repeat..until
Операторы передачи управления
Слайд 162. Подпрограммы ввода-вывода
Операторы языка Pascal
Ввод данных с клавиатуры:
Read()*;
Readln()**;
Вывод
данных на экран:
Write()*;
Writeln()*;
Readln;
Writeln;
* Вводит значения с клавиатуры
**
Вводит значения с клавиатуры и осуществляет переход на следующую строку
* Выводит значения
** Выводит значения и осуществляет переход на новую строку
Слайд 172. Подпрограммы ввода-вывода
Операторы языка Pascal
var
a: integer;
b: real;
begin
readln(a,b);
writeln(a);
writeln(b);
end.
Вариант ввода 1:
1 10.12
1
10.12
Вариант ввода 2:
11
12.1
11
12.1
Слайд 182. Подпрограммы ввода-вывода
Операторы языка Pascal
Форматированный вывод
Символ «:» задает формат вывода
числа
Write(x:5); // под вывод числа отводится 5 символов,
// не хватает
- расширяется
Write(x:5:2); // под число – 5 символов,
// под дробную часть – 2 символа
Слайд 192. Подпрограммы ввода-вывода
Операторы языка Pascal
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
Слайд 20Операторы языка Pascal
Схемы программ
Подпрограммы ввода-вывода
Составной оператор
Условный оператор
Оператор выбора case
Операторы цикла
Оператор
цикла for
Оператор цикла while
Оператор цикла repeat..until
Операторы передачи управления
Слайд 213. Составной оператор
Операторы языка Pascal
Составной оператор – это последовательность произвольных
операторов программы, заключенная в операторные скобки – зарезервированные слова BEGIN
… END.
Составные операторы обрабатываются, как один оператор.
Это имеет решающее значение там, где синтаксис Паскаля допускает использование только одного оператора.
begin
………
begin
Z := X;
X := Y;
end;
end;
Слайд 22Операторы языка Pascal
Схемы программ
Подпрограммы ввода-вывода
Составной оператор
Условный оператор
Оператор выбора case
Операторы цикла
Оператор
цикла for
Оператор цикла while
Оператор цикла repeat..until
Операторы передачи управления
Слайд 234. Условный оператор
Операторы языка Pascal
Структура полной формы условного оператора:
IF
THEN ELSE
где IF, THEN, ELSE – зарезервированные слова
(если, то, иначе);
<условие> – произвольное выражение логического типа;
<оператор1>, <оператор2> – любые операторы
Слайд 244. Условный оператор
Операторы языка Pascal
Структура краткой формы условного оператора:
IF
THEN
Слайд 254. Условный оператор
Операторы языка Pascal
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.
Слайд 264. Условный оператор
Операторы языка Pascal
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.
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.
Пример. Отыскание наибольшего из трех чисел
Слайд 274. Условный оператор
Операторы языка Pascal
Схема алгоритма к задаче поиска наибольшего
из трех чисел
Слайд 284. Условный оператор
Операторы языка Pascal
Пример: Вывести на экран сообщение попадает
ли значение введенной переменной в отрезок [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.
ОШИБКА:
Операция '>=' не применима к типам integer и boolean
Верно
Слайд 29Операторы языка Pascal
Схемы программ
Подпрограммы ввода-вывода
Составной оператор
Условный оператор
Оператор выбора case
Операторы цикла
Оператор
цикла for
Оператор цикла while
Оператор цикла repeat..until
Операторы передачи управления
Слайд 305. Оператор выбора CASE
Операторы языка Pascal
Структура:
case of
: ;
...
выбора N>: ;
else
end;
Здесь CASE, OF, ELSE, END – зарезервированные слова (случай,
из, иначе, конец);
< список выбора>: <оператор>;(< список выбора > – константа того же типа, что и <ключ выбора>);
<оператор> – произвольный оператор Турбо Паскаля
Слайд 315. Оператор выбора CASE
Операторы языка Pascal
Схема алгоритма оператора выбора CASE
Слайд 325. Оператор выбора CASE
Операторы языка Pascal
var
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.
Слайд 33Операторы языка Pascal
Схемы программ
Подпрограммы ввода-вывода
Составной оператор
Условный оператор
Оператор выбора case
Операторы цикла
Оператор
цикла for
Оператор цикла while
Оператор цикла repeat..until
Операторы передачи управления
Слайд 346. Операторы цикла
Операторы языка Pascal
Цикл – повторение одних и тех
же действий
Тело цикла – последовательность действий, которая повторяется в цикле
Шаг
цикла – один проход цикла
Параметры цикла – переменные, которые изменяются внутри цикла и влияют на его окончания
ВАЖНО:
– цикл всегда должен закончиться, содержимое тела должно обязательно влиять на его окончание
– условие выхода из цикла должно состоять из корректных выражений и значений, определенных еще до первого выполнения тела цикла
Слайд 35Операторы языка Pascal
Схемы программ
Подпрограммы ввода-вывода
Составной оператор
Условный оператор
Оператор выбора case
Операторы цикла
Оператор
цикла for
Оператор цикла while
Оператор цикла repeat..until
Операторы передачи управления
Слайд 367. Оператор цикла for
Операторы языка Pascal
Возрастающий счетчик
FOR :=
TO DO ;
Убывающий счетчик
FOR
:= <кон. знач.> DOWNTO <нач. знач.> DO <оператор>;
Здесь FOR, TO, DO – зарезервированные слова (для, до, выполнить)
<парам. цикла> – переменная перечисляемого типа;
<нач. знач.> и <кон. знач.> – выражения переменная перечисляемого типа;
<оператор> – произвольный оператор Паскаля
Слайд 377. Оператор цикла for
Операторы языка Pascal
Пример. Расчёт факториала числа 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.
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.
Слайд 387. Оператор цикла for
Операторы языка Pascal
var
i: integer;
begin
writeln('начало цикла');
for i := 1 to 3 do writeln('счетчик ',i);
writeln('цикл
завершился');
end.
var
i: integer;
begin
writeln('начало цикла');
for i := 10 downto 8 do writeln('счетчик ',i);
writeln('цикл завершился');
end.
начало цикла
счетчик 1
счетчик 2
счетчик 3
цикл завершился
начало цикла
счетчик 10
счетчик 9
счетчик 8
цикл завершился
Слайд 397. Оператор цикла for
Операторы языка Pascal
var
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.
начало цикла
цикл завершился
начало цикла
цикл завершился
Слайд 407. Оператор цикла for
Операторы языка Pascal
var
i,x: integer;
begin
writeln('начало цикла');
x := 1;
for i := 1 to 5 do
begin
x := x + 2;
writeln('счетчик ',i, ' x=',x);
end;
writeln('цикл завершился');
end.
начало цикла
счетчик 1 x=3
счетчик 2 x=5
счетчик 3 x=7
счетчик 4 x=9
счетчик 5 x=11
цикл завершился
Слайд 417. Оператор цикла for
Операторы языка Pascal
var
i: integer;
begin
writeln('начало цикла');
for i := 1 to 5 do ;
writeln('счетчик ',i);
writeln('цикл завершился');
end.
начало цикла
счетчик 5
цикл завершился
Слайд 42Операторы языка Pascal
Схемы программ
Подпрограммы ввода-вывода
Составной оператор
Условный оператор
Оператор выбора case
Операторы цикла
Оператор
цикла for
Оператор цикла while
Оператор цикла repeat..until
Операторы передачи управления
Слайд 438. Оператор цикла while
Операторы языка Pascal
Структура
WHILE DO
Здесь WHILE,
DO – зарезервированные слова (пока [выполняется условие], делать)
– произвольное
выражение логического типа;
<оператор> – произвольный оператор.
Слайд 448. Оператор цикла while
Операторы языка Pascal
var
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.
в цикле x=0
в цикле x=1
в цикле x=2
после цикла x=3
Слайд 458. Оператор цикла while
Операторы языка Pascal
Пример. Отделение корня на отрезке
методом половинного деления.
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.
Слайд 46Операторы языка Pascal
Схемы программ
Подпрограммы ввода-вывода
Составной оператор
Условный оператор
Оператор выбора case
Операторы цикла
Оператор
цикла for
Оператор цикла while
Оператор цикла repeat..until
Операторы передачи управления
Слайд 479. Оператор цикла repeat..until
Операторы языка Pascal
Структура
REPEAT UNTIL
Здесь
REPEAT, UNTIL – зарезервированные слова (повторять до тех пор, пока
не будет выполнено условие)
<тело цикла> – произвольная последовательность операторов.
<условие> – произвольное выражение логического типа
Слайд 489. Оператор цикла repeat..until
Операторы языка Pascal
const
ENTER = 13;
var
ch:
char;
begin
repeat
readln(ch);
writeln(‘Код символа ’’’, ch,
’’’ – ’, ord(ch) );
until ord(ch) = ENTER
end.
Пример. Вывод ASCII-кода символа.
1
Код символа '1' – 49
Код символа ' ' – 32
r
Код символа 'r' – 114
R
Код символа 'R' – 82
Код символа '
' – 13
Слайд 499. Оператор цикла repeat..until
Операторы языка Pascal
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.
Рассчитать значение функции f(x)=2x+3 на отрезке [a;b] с шагом h
При помощи цикла for
Слайд 509. Оператор цикла repeat..until
Операторы языка Pascal
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.
Рассчитать значение функции f(x)=2x+3 на отрезке [a;b] с шагом h
При помощи цикла while
Слайд 519. Оператор цикла repeat..until
Операторы языка Pascal
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.
Рассчитать значение функции f(x)=2x+3 на отрезке [a;b] с шагом h
При помощи цикла repeat..until
Слайд 529. Оператор цикла repeat..until
Операторы языка Pascal
При помощи цикла for
введите параметры
отрезка [a,b], h
a=-3
b=4
h=2
y(-3)=-3
y(-1)=1
y(1)=5
y(3)=9
При помощи цикла while
введите параметры отрезка [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
Слайд 53Операторы языка Pascal
Схемы программ
Подпрограммы ввода-вывода
Составной оператор
Условный оператор
Оператор выбора case
Операторы цикла
Оператор
цикла for
Оператор цикла while
Оператор цикла repeat..until
Операторы передачи управления
Слайд 5410. Операторы передачи управления
Операторы языка Pascal
Операторы передачи управления принудительно изменяют
порядок выполнения команд:
BREAK - осуществляет немедленный выход из циклов
repeat, while, for и управление передается оператору, находящемуся непосредственно за циклом,
CONTINUE – начинает новую итерацию цикла, даже если предыдущая не была завершена,
EXIT – осуществляет выход из подпрограммы,
HALT – прекращает выполнение программы.
Слайд 5510. Операторы передачи управления
Операторы языка Pascal
begin
writeln('строка 1');
writeln('строка 2');
halt;
writeln('строка 3');
writeln('строка 4');
end.
строка 1
строка 2
var i : integer;
begin
writeln('До цикла');
for i := 1 to 5 do
begin
writeln('итерация ',i);
if i=2 then break;
end;
writeln('После цикла');
end.
До цикла
итерация 1
итерация 2
После цикла
Слайд 5610. Операторы передачи управления
Операторы языка Pascal
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.
До цикла
итерация 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
После цикла