Просмотр содержимого документа
«Структура программы на Turbo Pascal »
Разработка программ
на языке Turbo Pascal
1. Алгоритм – это:
Понятное и точное предписание исполнителю выполнить последовательность команд;
Правила выполнения определённых действий;
Набор команд для компьютера;
Протокол вычислительной сети.
2. Что из перечисленного является алгоритмом:
Правила техники безопасности;
Инструкция по настройке каналов телевизора;
Список класса;
Стихотворение.
3. Алгоритм называется циклическим:
Если в нём присутствует конструкция если … то … иначе ;
Если он представим в табличной форме;
Если его исполнение предполагает многократное повторение одних и тех же операций.
4. Алгоритм, в котором в зависимости от истинности условия выполняется одна или другая последовательность команд называется:
Линейным;
Циклическим;
Разветвляющимся;
Вспомогательным.
5. Как называется свойство алгоритма, соответствующее определению: «Команды алгоритма должны определять однозначное действие исполнителя»?
Понятность;
Дискретность;
Точность;
Результативность.
ОТВЕТЫ К ТЕСТУ
1. Алгоритм – это:
Понятное и точное предписание исполнителю выполнить последовательность команд;
2. Что из перечисленного является алгоритмом:
В. Инструкция по настройке каналов телевизора;
3. Алгоритм называется циклическим:
С. Если его исполнение предполагает многократное повторение одних и тех же операций.
4. Алгоритм, в котором в зависимости от истинности условия выполняется одна или другая последовательность команд называется:
С. Разветвляющимся;
5. Как называется свойство алгоритма, соответствующее определению: «Команды алгоритма должны определять однозначное действие исполнителя»?
С. Точность;
Структура программы на Паскале
Функции F (x)
Арифметические
операции
PROGRAM
;
ИМЯ ПРОГРАММЫ
;
список однотипных переменных
ТИП
VAR
:
ABS (x)
|x|
+
сложение
.
ОПЕРАТОРЫ
BEGIN
END
SQR (x)
x 2
-
вычитание
x
SQRT (x)
ИМЯ ПРОГРАММЫ
;
PROGRAM
*
умножение
e x
EXP (x)
список однотипных переменных
INTEGER
:
VAR
;
/
деление
;
REAL
список однотипных переменных
:
Ln x
LN (x)
BEGIN
Sin x
SIN (x)
div
деление
нацело
)
(
READ
;
список ввода
Cos x
COS (x)
mod
Остаток
от деления
(
READLN
список ввода
)
;
;
переменная
арифметическое выражение
Приоритеты выполнения операций
: =
;
список вывода
WRITE
(
)
( )
F(x)
div
*
+
(
)
список вывода
WRITELN
-
mod
/
.
END
Структура программы на языке Паскаль:
Заголовок программы PROGRAM PRIMER ; Раздел описания переменных VAR x, y, z, F : INTEGER ; Раздел операторов BEGIN READ ( x, y, z ) ; F := (x + y + z)*2 ; WRITELN ( F ) END.
Заголовок программы PROGRAM PRIMER ;
Раздел описания переменных VAR x, y, z, F : INTEGER ;
Раздел операторов BEGIN READ ( x, y, z ) ; F := (x + y + z)*2 ; WRITELN ( F ) END.
2
13
Структура программы на Паскале
Функции F (x)
Арифметические
операции
;
ИМЯ ПРОГРАММЫ
PROGRAM
список однотипных переменных
;
VAR
ТИП
:
|x|
+
сложение
ABS (x)
END
.
BEGIN
ОПЕРАТОРЫ
x 2
SQR (x)
-
вычитание
x
SQRT (x)
ИМЯ ПРОГРАММЫ
PROGRAM
;
*
умножение
EXP (x)
e x
INTEGER
список однотипных переменных
:
VAR
;
/
деление
список однотипных переменных
;
REAL
:
LN (x)
Ln x
BEGIN
div
Sin x
SIN (x)
деление
нацело
)
список ввода
;
(
READ
Cos x
COS (x)
mod
Остаток
от деления
READLN
(
список ввода
)
;
переменная
арифметическое выражение
Приоритеты выполнения операций
;
: =
;
список вывода
)
(
WRITE
F(x)
( )
*
+
div
)
(
WRITELN
список вывода
/
-
mod
.
END
Раздел описания переменных начинается со слова VAR (variables – переменные), за которым идет список имен однотипных переменных через запятую. Тип указывается после двоеточия. В стандарте языка Паскаль существует два числовых типа величин: вещественный ( REAL ) и целый ( INTEGER ). Идентификаторы (имена) переменных составляются из латинских букв и цифр, причем первым символом обязательно должна быть буква.
3
14
Золотое правило
Программирования:
«Все переменные, которые
используются в программе
должны быть описаны в
разделе описаний!!!»
Структура программы на Паскале
Арифметические
Функции F (x)
операции
;
ИМЯ ПРОГРАММЫ
PROGRAM
;
список однотипных переменных
ТИП
:
VAR
ABS (x)
|x|
+
сложение
END
.
BEGIN
ОПЕРАТОРЫ
x 2
SQR (x)
-
вычитание
x
SQRT (x)
PROGRAM
ИМЯ ПРОГРАММЫ
;
*
умножение
e x
EXP (x)
;
список однотипных переменных
INTEGER
:
VAR
/
деление
;
REAL
список однотипных переменных
:
LN (x)
Ln x
BEGIN
SIN (x)
div
Sin x
деление
нацело
;
список ввода
READ
(
)
Cos x
COS (x)
mod
Остаток
от деления
;
)
список ввода
(
READLN
Приоритеты выполнения операций
;
арифметическое выражение
: =
переменная
)
WRITE
;
(
список вывода
F(x)
( )
*
div
+
WRITELN
(
)
список вывода
/
-
mod
END
.
Раздел операторов – основная часть программы. Начало и конец раздела отмечаются служебными словами BEGIN (начало) и END (конец), которые являются операторными скобками. Между этими словами помещаются все команды алгоритма, записанные на языке Паскаль (операторы). Разделителем операторов является точка с запятой. Перед словом END точку с запятой можно не ставить. В самом конце программы ставится точка.
4
16
Структура программы на Паскале
Арифметические
Функции F (x)
операции
PROGRAM
ИМЯ ПРОГРАММЫ
;
VAR
список однотипных переменных
;
:
ТИП
+
|x|
сложение
ABS (x)
END
.
ОПЕРАТОРЫ
BEGIN
x 2
SQR (x)
-
вычитание
SQRT (x)
x
;
ИМЯ ПРОГРАММЫ
PROGRAM
*
умножение
e x
EXP (x)
VAR
;
список однотипных переменных
INTEGER
:
/
деление
REAL
список однотипных переменных
:
;
Ln x
LN (x)
BEGIN
Sin x
SIN (x)
div
деление
нацело
READ
;
список ввода
)
(
COS (x)
Cos x
mod
Остаток
от деления
)
список ввода
(
;
READLN
;
: =
переменная
арифметическое выражение
Приоритеты выполнения операций
WRITE
;
список вывода
(
)
( )
F(x)
+
*
div
WRITELN
(
)
список вывода
/
-
mod
.
END
Ввод исходных данных с клавиатуры происходит по оператору READ или READLN ( читать ).
Оператор READLN отличается от READ только тем, что после ввода данных курсор перемещается
в начало новой строки. При выполнении команды ввода компьютер ожидает действий пользователя,
который набирает на клавиатуре значения переменных в том порядке, в каком они указаны в списке,
отделяя их друг от друга пробелами. Одновременно с набором данных они появляются на экране.
В конце набора нажимается клавиша ВВОД (ENTER).
5
17
Структура программы на Паскале
Арифметические
Функции F (x)
операции
PROGRAM
;
ИМЯ ПРОГРАММЫ
список однотипных переменных
ТИП
:
VAR
;
ABS (x)
+
|x|
сложение
ОПЕРАТОРЫ
BEGIN
.
END
SQR (x)
x 2
-
вычитание
SQRT (x)
x
PROGRAM
;
ИМЯ ПРОГРАММЫ
*
умножение
EXP (x)
e x
:
список однотипных переменных
INTEGER
;
VAR
/
деление
;
список однотипных переменных
:
REAL
Ln x
LN (x)
BEGIN
Sin x
SIN (x)
div
деление
нацело
READ
)
список ввода
;
(
COS (x)
Cos x
mod
Остаток
от деления
список ввода
;
(
READLN
)
:=
переменная
арифметическое выражение
;
Приоритеты выполнения операций
;
(
WRITE
список вывода
)
F(x)
( )
*
div
+
WRITELN
(
)
список вывода
/
-
mod
END
.
Арифметический оператор присваивания: слева - переменная, справа - арифметическое выражение, которое должно быть вычислено. Составной символ := читается как «присвоить».
Сначала вычисляется арифметическое выражение, затем полученное значение присваивается переменной. Пример:A:=SQR (x) + SIN (y) / (12*z + 5)
Арифметическое выражение – это совокупность констант, переменных и функций, объединенных знаками арифметических действий и круглыми скобками. Результатом вычисления арифметического выражения является числовая величина.
6
18
Структура программы на Паскале
Арифметические
Функции F (x)
операции
;
PROGRAM
ИМЯ ПРОГРАММЫ
VAR
:
ТИП
список однотипных переменных
;
+
ABS (x)
|x|
сложение
ОПЕРАТОРЫ
BEGIN
.
END
SQR (x)
x 2
-
вычитание
SQRT (x)
x
;
PROGRAM
ИМЯ ПРОГРАММЫ
*
умножение
e x
EXP (x)
список однотипных переменных
:
INTEGER
;
VAR
/
деление
REAL
:
;
список однотипных переменных
Ln x
LN (x)
BEGIN
Sin x
SIN (x)
div
деление
нацело
)
READ
список ввода
;
(
Cos x
COS (x)
mod
Остаток
от деления
(
)
READLN
;
список ввода
:=
переменная
арифметическое выражение
;
Приоритеты выполнения операций
)
(
WRITE
;
список вывода
( )
F(x)
+
div
*
WRITELN
(
)
список вывода
-
mod
/
.
END
Правила записи арифметических выражений
Арифметическое выражение записывается в строку Нельзя ставить подряд два знака арифметических операций Нельзя опускать знак умножения между сомножителями Используются только круглые скобки Последовательность выполнения операций определяется по их приоритетам
Арифметическое выражение записывается в строку Нельзя ставить подряд два знака арифметических операций Нельзя опускать знак умножения между сомножителями Используются только круглые скобки Последовательность выполнения операций определяется по их приоритетам
Арифметическое выражение записывается в строку Нельзя ставить подряд два знака арифметических операций Нельзя опускать знак умножения между сомножителями Используются только круглые скобки Последовательность выполнения операций определяется по их приоритетам
Арифметическое выражение записывается в строку
Нельзя ставить подряд два знака арифметических операций
Нельзя опускать знак умножения между сомножителями
Используются только круглые скобки
Последовательность выполнения операций определяется по их приоритетам
7
19
Структура программы на Паскале
Функции F (x)
Арифметические
операции
;
PROGRAM
ИМЯ ПРОГРАММЫ
:
VAR
ТИП
список однотипных переменных
;
ABS (x)
|x|
сложение
+
END
.
ОПЕРАТОРЫ
BEGIN
x 2
SQR (x)
-
вычитание
SQRT (x)
x
PROGRAM
ИМЯ ПРОГРАММЫ
;
*
умножение
EXP (x)
e x
;
список однотипных переменных
INTEGER
:
VAR
/
деление
список однотипных переменных
:
REAL
;
LN (x)
Ln x
BEGIN
div
SIN (x)
Sin x
деление
нацело
список ввода
)
(
READ
;
Cos x
COS (x)
mod
Остаток
от деления
(
список ввода
)
;
READLN
;
переменная
арифметическое выражение
Приоритеты выполнения операций
: =
список вывода
)
;
(
WRITE
F(x)
( )
+
*
div
WRITELN
(
)
список вывода
/
mod
-
.
END
Вывод результатов происходит по WRITE или WRITELN ( писать ). Результаты выводятся на экран компьютера в порядке их перечисления в списке. Элементами списка вывода могут быть константы, переменные, выражения. Разница в выполнении операторов WRITE и WRITELN состоит в том, что после выполнения операции вывода по оператору WRITELN экранный курсор перемещается в начало новой строки, а по оператору WRITE этого не происходит.
8
20
ЗАДАЧА №1
Линейные алгоритмы на Паскале
Задача: разделить одну простую дробь на другую- получить результат
m
d
алгДеление дробей
a
a
c
;
=
=
:
PROGRAM
Division
b
b
n
c
d
целa, b, c, d, m, n
a, b, c, d, m, n
:
;
VAR
INTEGER
нач
BEGIN
начало
ввод a, b, c, d
ввод a, b, c, d
READLN
(
)
a, b, c, d
;
m:=ad
m : = a d
m
;
a*d
: =
n:=bc
;
b*c
n
: =
n : = b c
вывод m
вывод m
)
WRITELN
;
m
(
вывод n
вывод n
)
n
WRITELN
(
кон
END
.
конец
Программа на языке Паскаль для вычисления результата деления одной простой дроби на другую является примером реализации линейного вычислительного алгоритма.
Программа начинается с заголовка (служебное слово PROGRAM ). За служебным словом следует произвольное имя, придуманное программистом. В конце заголовка ставится точка с запятой.
22
Линейные алгоритмы на Паскале
Задача: разделить одну простую дробь на другую- получить результат
a
m
d
a
c
алгДеление дробей
PROGRAM
=
=
:
;
Division
d
n
c
b
b
целa, b, c, d, m, n
;
a, b, c, d, m, n
VAR
:
INTEGER
нач
BEGIN
начало
ввод a, b, c, d
)
a, b, c, d
;
ввод a, b, c, d
(
READLN
m:=ad
m : = a d
a*d
;
: =
m
n:=bc
n : = b c
b*c
n
: =
;
вывод m
вывод m
n
m
c
b
d
a
)
m
WRITELN
;
(
вывод n
вывод n
WRITELN
(
)
n
3
2
m
n
1
5
кон
конец
.
END
Раздел описания переменных, начинается со слова VAR , за которым следует список имен однотипных переменных через запятую. Идентификаторы переменных составляются из латинских букв и цифр (первый символ обязательно должен быть буквой. Тип указывается через двоеточие.
В нашем примере все переменные имеют целый тип ( INTEGER ). В конце описания каждого типа необходимо ставить разделитель – точку с запятой
23
Линейные алгоритмы на Паскале
Задача: разделить одну простую дробь на другую- получить результат
a
m
c
a
d
алгДеление дробей
Division
;
=
:
=
PROGRAM
b
b
d
n
c
целa, b, c, d, m, n
INTEGER
VAR
a, b, c, d, m, n
:
;
нач
BEGIN
начало
ввод a, b, c, d
)
(
a, b, c, d
ввод a, b, c, d
READLN
;
m:=ad
m : = a d
m
a*d
;
: =
n:=bc
n
;
: =
n : = b c
b*c
вывод m
m
b
n
c
вывод m
d
a
m
WRITELN
)
;
(
вывод n
вывод n
n
)
WRITELN
(
3
2
n
m
5
1
кон
.
END
конец
Служебное слово BEGIN (начало) является операторной скобкой и с него начинается раздел операторов. Используется вместе с другой операторной скобкой - END (конец). Между этими служебными словами помещаются все операторы, из которых складывается программа.
24
Линейные алгоритмы на Паскале
Задача: разделить одну простую дробь на другую- получить результат
m
d
a
c
a
алгДеление дробей
=
;
Division
PROGRAM
=
:
n
d
b
b
c
целa, b, c, d, m, n
INTEGER
:
a, b, c, d, m, n
;
VAR
нач
BEGIN
начало
ввод a, b, c, d
a, b, c, d
;
)
ввод a, b, c, d
(
READLN
m:=ad
m : = a d
;
: =
m
a*d
n:=bc
n
: =
b *c
n : = b c
;
вывод m
b
c
n
вывод m
m
a
d
WRITELN
m
;
)
(
вывод n
вывод n
)
(
WRITELN
n
3
m
n
2
5
1
кон
END
конец
.
По оператору READ ( READLN ) происходит ввод данных с клавиатуры. При выполнении команды ввода компьютер ожидает действий пользователя, который должен набрать на клавиатуре значения переменных в том порядке, в котором они указаны в списке, отделяя их друг от друга пробелами. Одновременно с набором данных на клавиатуре они появляются на экране (пример: 5, 9, 7, 13). В конце набора нажимается клавиша ВВОД (Enter).
1 3 2 5
25
Линейные алгоритмы на Паскале
Задача: разделить одну простую дробь на другую- получить результат
d
c
a
m
a
алгДеление дробей
PROGRAM
Division
=
;
:
=
n
c
b
d
b
целa, b, c, d, m, n
VAR
:
a, b, c, d, m, n
;
INTEGER
нач
BEGIN
начало
ввод a, b, c, d
;
a, b, c, d
ввод a, b, c, d
)
READLN
(
m:=ad
m : = a d
;
a*d
m
:=
n:=bc
:=
n
b*c
;
n : = b c
вывод m
c
b
m
n
вывод m
a
d
;
m
(
WRITELN
)
вывод n
вывод n
n
)
(
WRITELN
2
n
5
3
1
5
кон
конец
END
.
1 3 2 5
В данном разделе программы с помощью операторов присваивания организован процесс вычисления значений переменных m и n по исходным данным a, b, c, d, значения которых были предварительно введены в компьютер с клавиатуры.
26
Линейные алгоритмы на Паскале
Задача: разделить одну простую дробь на другую- получить результат
c
a
d
m
a
алгДеление дробей
=
:
=
Division
PROGRAM
;
b
d
n
b
c
целa, b, c, d, m, n
VAR
INTEGER
;
:
a, b, c, d, m, n
нач
BEGIN
начало
ввод a, b, c, d
ввод a, b, c, d
a, b, c, d
READLN
(
)
;
m:=ad
m : = a d
;
a*d
m
:=
n:=bc
:=
n
b*c
;
n : = b c
вывод m
b
c
m
n
вывод m
a
d
;
)
(
WRITELN
m
вывод n
вывод n
n
)
(
WRITELN
3
6
5
2
5
1
кон
END
.
конец
1 3 2 5
В данном разделе программы с помощью операторов присваивания организован процесс вычисления значений переменных m и n по исходным данным a, b, c, d, значения которых были предварительно введены в компьютер с клавиатуры.
27
Линейные алгоритмы на Паскале
Задача: разделить одну простую дробь на другую- получить результат
c
m
a
a
d
алгДеление дробей
Division
=
:
;
PROGRAM
=
b
d
b
c
n
целa, b, c, d, m, n
a, b, c, d, m, n
:
VAR
;
INTEGER
нач
BEGIN
начало
ввод a, b, c, d
ввод a, b, c, d
;
a, b, c, d
)
(
READLN
m:=ad
m : = a d
;
: =
m
a*d
n:=bc
n
b*c
: =
;
n : = b c
вывод m
WRITELN
;
m
c
)
(
m
вывод m
n
b
a
d
вывод n
вывод n
n
)
(
WRITELN
6
5
2
3
5
1
кон
конец
END
.
1 3 2 5
5
Вывод результата на экран по оператору WRITE ( WRITELN ).
На этом шаге производится вывод значения переменной m ( 5 )
28
Линейные алгоритмы на Паскале
Задача: разделить одну простую дробь на другую- получить результат
c
m
a
a
d
алгДеление дробей
Division
=
:
;
PROGRAM
=
b
d
b
c
n
целa, b, c, d, m, n
a, b, c, d, m, n
INTEGER
VAR
;
:
нач
BEGIN
начало
ввод a, b, c, d
)
;
a, b, c, d
READLN
ввод a, b, c, d
(
m:=ad
m : = a d
m
;
a *d
: =
n:=bc
n
b*c
;
: =
n : = b c
вывод m
n
m
вывод m
c
b
a
d
(
WRITELN
)
;
m
вывод n
n
)
(
WRITELN
вывод n
3
6
5
2
5
1
кон
конец
END
.
1 3 2 5
5
6
Вывод результата на экран по оператору WRITE ( WRITELN ).
На этом шаге производится вывод значения переменной n ( 6 )
29
Линейные алгоритмы на Паскале
Задача: разделить одну простую дробь на другую- получить результат
a
c
d
a
m
алгДеление дробей
;
=
:
Division
PROGRAM
=
b
b
d
n
c
целa, b, c, d, m, n
a, b, c, d, m, n
INTEGER
:
VAR
;
нач
BEGIN
начало
ввод a, b, c, d
ввод a, b, c, d
a, b, c, d
;
READLN
(
)
m:=ad
m : = a d
m
a*d
;
: =
n:=bc
n : = b c
;
b*c
n
: =
вывод m
вывод m
WRITELN
;
)
m
(
вывод n
вывод n
WRITELN
(
)
n
кон
END
конец
.
1 3 2 5
5
6
Замыкающая операторная скобка END , означающая КОНЕЦ ПРОГРАММЫ. Используется вместе с другой операторной скобкой BEGIN (начало). Между этими служебными словами размещается программа на языке Паскаль. После слова END (в самом конце программы) ставится точка.
30
Самостоятельная работа
ЗАДАЧА №2
Пример линейного алгоритма на Паскале
По трем сторонам треугольника (a, b, c)
вычислить площадь треугольника ( S ),
используя формулу Герона.
начало
ввод a, b, c
p : = (a + b + c) / 2
S : = p (p - a) (p - b) (p - c)
вывод S
конец
30
Пример линейного алгоритма на Паскале
По трем сторонам треугольника (a, b, c)вычислить площадь треугольника ( S )
Формула
Герона
;
GERON
PROGRAM
;
INTEGER
:
a, b, c
VAR
:
;
p, S
REAL
начало
BEGIN
ввод a, b, c
READLN
;
)
a, b, c
(
p : = (a + b + c) / 2
;
: =
p
(a + b + c) / 2
S : = p (p - a) (p - b) (p - c)
S
;
SQRT (p * (p – a) * (p – b) * (p – c))
: =
вывод S
)
S
(
WRITELN
конец
.
END
33
Задание на дом:
П. 35
Построить блок-схему для разветвляющегося алгоритма:
«Ввести с клавиатуры два числа и вывести наибольшее из них на экран»