Программирование на языке Паскаль

Содержание

Слайд 2

При разработке программы иногда появляются повторяемые группы действий или возникает необходимость

При разработке программы иногда появляются повторяемые группы действий или возникает необходимость

расчленить программу на функциональные модули, сделать ее структуру иерархической.
Для этого во всех языках программирования используют подпрограммы.

Подпрограмма — это специальным образом оформленный алгоритм, который может многократно использоваться при решении более общей задачи.

Слайд 3

В Паскале подпрограмма является частью основной программы, ее описание располагается между

В Паскале подпрограмма является частью основной программы, ее описание располагается между

разделом var главной программы и ее программным блоком (первым begin).
Подпрограмм может быть несколько, их описания располагаются в произвольном порядке одно за другим.

В Паскале различают два вида подпрограмм: процедуры и функции. Основное различие между ними заключается в том, что процедура получает в результате своей работы любое количество данных, а функция — только одно значение.

Слайд 4

Объявление переменных Глобальные переменные - переменные, объявленные в основной программе, доступны

Объявление переменных

Глобальные переменные - переменные, объявленные в основной программе, доступны всем

операторам программы, а так же операторам процедур и функций.

Локальные переменные - переменные, объявленные в процедуре или функции. Они доступны только операторам процедур или функций.

Слайд 5

Программирование на языке Паскаль Процедуры © К.Ю. Поляков, 2006-2009

Программирование на языке Паскаль

Процедуры

© К.Ю. Поляков, 2006-2009

Слайд 6

Процедуры Procedure (список формальных параметров); const type var begin ; end;

Процедуры

Procedure <имя> (список формальных параметров);
const
type
var
begin
<операторы>;
end;
Вызов процедуры – это

упоминание ее имени в тексте основной программы.

Могут быть опущены

Слайд 7

Процедуры Особенности: все процедуры расположены выше основной программы в заголовке процедуры

Процедуры

Особенности:
все процедуры расположены выше основной программы
в заголовке процедуры перечисляются формальные параметры,

они обозначаются именами, поскольку могут меняться
при вызове процедуры в скобках указывают фактические параметры (числа или арифметические выражения) в том же порядке

procedure Tr( x, y, r, g, b: integer);

Tr (200, 100, 0, 255, 0);

x

y

r

g

b

Слайд 8

Процедуры Особенности: для каждого формального параметра после двоеточия указывают его тип

Процедуры

Особенности:
для каждого формального параметра после двоеточия указывают его тип
если однотипные параметры

стоят рядом, их перечисляют через запятую
Пример

procedure A (x: real; y: integer; z: real);

procedure A (x, z: real; y, k, l: integer);

procedure A (x, z: real; var l: real);

Переменные, которые используются в формуле

Переменная, в которую записывается результат

Слайд 9

Процедуры Особенности: в процедуре можно объявлять дополнительные локальные переменные, остальные процедуры

Процедуры

Особенности:
в процедуре можно объявлять дополнительные локальные переменные, остальные процедуры не имеют

к ним доступа

program qq;
procedure A(x, y: integer);
var a, b: real;
begin
a := (x + y)/6;
...
end;
begin
...
end.

procedure A(x, y: integer);
var a, b: real;
begin
a := (x + y)/6;
...
end;

локальные переменные

var a, b: real;

Слайд 10

Параметры-переменные Задача: составить процедуру, которая меняет местами значения двух переменных. Особенности:

Параметры-переменные

Задача: составить процедуру, которая меняет местами значения двух переменных.
Особенности:
надо, чтобы изменения,

сделанные в процедуре, стали известны вызывающей программе

program qq;
var x, y: integer;
begin
x := 1; y := 2;
Exchange ( x, y );
writeln ( ’x = ’, x, ’ y = ’, y );
end.

procedure Exchange ( a, b: integer );
var c: integer;
begin
c := a; a := b; b := c;
end;

эта процедура работает с копиями параметров

x = 1 y = 2

Слайд 11

Программирование на языке Паскаль Функции © К.Ю. Поляков, 2006-2009

Программирование на языке Паскаль

Функции

© К.Ю. Поляков, 2006-2009

Слайд 12

Функции Функция – это вспомогательный алгоритм (подпрограмма), результатом работы которого является

Функции

Функция – это вспомогательный алгоритм (подпрограмма), результатом работы которого является некоторое

значение.
3 категории функций:
стандартные функции (abs(x), sqrt(x), sqr(x), sin(x), cos(x), и т.д.);
функции программиста (объявлять свою собственную функцию и в дальнейшем использовать её так же как и стандартную);
библиотечные функции (стандартные библиотечные модули).
Слайд 13

Функции Зачем? для выполнения одинаковых расчетов в различных местах программы для создания общедоступных библиотек функций

Функции

Зачем?
для выполнения одинаковых расчетов в различных местах программы
для создания общедоступных

библиотек функций
Слайд 14

Структура функции В разделе операторов должен находится, хотя бы один оператор, присваивающий имени функции значение.

Структура функции

В разделе операторов должен находится, хотя бы один оператор, присваивающий

имени функции значение.
Слайд 15

Функции Задача: составить функцию, которая вычисляет наибольшее из двух значений, и

Функции

Задача: составить функцию, которая вычисляет наибольшее из двух значений, и привести

пример ее использования
Функция:

формальные параметры

function Max (a, b: integer): integer;
begin
if a > b then Max := a
else Max := b;
end;

это результат функции

Слайд 16

Функции Особенности: заголовок начинается словом function формальные параметры описываются так же,

Функции

Особенности:
заголовок начинается словом function
формальные параметры описываются так же, как и для

процедур
можно использовать параметры-переменные
в конце заголовка через двоеточие указывается тип результата
функции располагаются ВЫШЕ основной программы
Слайд 17

Функции Особенности: можно объявлять и использовать локальные переменные значение, которое является

Функции

Особенности:
можно объявлять и использовать локальные переменные
значение, которое является результатом, записывается в

переменную, имя которой совпадает с названием функции; объявлять ее НЕ НАДО:
Слайд 18

Программа program qq; var a, b, max: integer; begin writeln('Введите два

Программа

program qq;
var a, b, max: integer;
begin
writeln('Введите два числа');
read(a, b);

max := Max ( a, b );
writeln('Наибольшее число ', max );
end.

function Max (a, b: integer): integer;
begin
...
end;

c

c

c

фактические параметры

вызов функции

Слайд 19

Найти S и P треугольника, вершины которого заданы координатами (x1, y1)

Найти S и P треугольника, вершины которого заданы координатами

(x1, y1)

(x3, y3)

(x2,

y2)

L1

L2

L3

полупериметр

Слайд 20

Решаем используя Процедуру var x1,y1,x2,y2,x3,y3:real; P,S,PP,l1,l2,l3:real; Procedure dl(a,b,c,d:real; var l:real); begin

Решаем используя Процедуру

var x1,y1,x2,y2,x3,y3:real;
P,S,PP,l1,l2,l3:real;
Procedure dl(a,b,c,d:real; var l:real);
begin
l:=sqrt(sqr(a-c)+sqr(b-d));
end;
begin

read(x1,y1,x2,y2,x3,y3);
dl(x1,y1,x2,y2,l1);
dl(x2,y2,x3,y3,l2);
dl(x3,y3,x1,y1,l3);
P:=l1+l2+l3;
PP:=P/2;
S:=sqrt(PP*(PP-l1)*(PP-l2)*(PP-l3));
writeln(P:10:2,S:10:2);
end.
Слайд 21

Решаем используя Функцию var x1,y1,x2,y2,x3,y3:real; P,S,PP,l1,l2,l3:real; function dl(a,b,c,d:real):real; begin dl:=sqrt(sqr(a-c)+sqr(b-d)); end;

Решаем используя Функцию

var x1,y1,x2,y2,x3,y3:real;
P,S,PP,l1,l2,l3:real;
function dl(a,b,c,d:real):real;
begin
dl:=sqrt(sqr(a-c)+sqr(b-d));
end;
begin
read(x1,y1,x2,y2,x3,y3);
l1:=dl(x1,y1,x2,y2);

l2:=dl(x2,y2,x3,y3);
l3:=dl(x3,y3,x1,y1);
P:=l1+l2+l3;
PP:=P/2;
S:=sqrt(PP*(PP-l1)*(PP-l2)*(PP-l3));
writeln(P:10:2,S:10:2);
end.
Слайд 22

Решаем используя Процедуру var k,a,f1,s:integer; procedure fact(n:integer; var f:integer); var i:integer;

Решаем используя Процедуру

var k,a,f1,s:integer;
procedure fact(n:integer; var f:integer);
var i:integer;
begin
f:=1;

for i:=1 to n do
f:= f*i;
end;
begin
read(k);
a:=2;
while a<=k do
begin
fact(a,f1);
s:=s+f1;
a:=a+2;
end;
writeln(s);
end.