Презентация на тему: » Подпрограммы в Паскале.» — Транскрипт:
1 Подпрограммы в Паскале
2 Назначение При разработке программы иногда появляются повторяемые группы действий или возникает необходимость расчленить программу на функциональные модули, сделать ее структуру иерархической. Для этого во всех языках программирования существуют средства организации подпрограмм. В Паскале подпрограмма является частью основной программы, ее описание располагается между разделом var главной программы и ее программным блоком (первым begin). Подпрограмм может быть несколько, их описания располагаются в произвольном порядке одно за другим. Подпрограмма это специальным образом оформленный алгоритм, который может многократно использоваться при решении более общей задачи.
3 Подпрограммы процедуры функции В Паскале различают два вида подпрограмм: процедуры и функции. Основное различие между ними заключается в том, что процедура получает в результате своей работы любое количество данных, а функция только одно значение.
Подпрограммы, процедуры и функции
4 Функция Это последовательность операторов, имеющая имя и результат Это последовательность операторов, имеющая имя и результат Обрабатывает данные, предназначенные ей из главной программы, и затем возвращает полученный результат Обрабатывает данные, предназначенные ей из главной программы, и затем возвращает полученный результат Функция называется с помощью указателя. Указатель- это имя функции, после которого в круглых скобках перечисляются аргументы функции. Функция называется с помощью указателя. Указатель- это имя функции, после которого в круглых скобках перечисляются аргументы функции. Далее
5 Функции Pascal можно разделить на три группы: стандартные функции (abs(x), sqrt(x), sqr(x), sin(x), cos(x), и т.д.); стандартные функции (abs(x), sqrt(x), sqr(x), sin(x), cos(x), и т.д.); функции программиста (объявлять свою собственную функцию и дальнейшем использовать её так же как и стандартную); функции программиста (объявлять свою собственную функцию и дальнейшем использовать её так же как и стандартную); библиотечные функции (стандартные библиотечные модули). библиотечные функции (стандартные библиотечные модули). Меню
6 Структура функции Function ( ): ; const …; ….. var … ; Begin имя:= выражение; End; Блок описания локальных переменных В разделе операторов должен находится, хотя бы один оператор, присваивающий имени функции значение. Меню
7 Объявление переменных Глобальные переменные — переменные, объявленные в основной программе, доступны всем операторам программы, а так же операторам процедур и функций. Далее Локальные п пп переменные — переменные, объявленные в процедуре или функции. Они доступны только операторам процедур или функций.
8 Пример: program primer1; var r, c, q : real; function inper ( a: real; b: real) :real; var x,y: real; begin ; end; begin (основная программа) end. Глобальные переменные Локальные переменные Назад
9 Примеры: Вычисление функции Вычисление n-й степени числа. Вычисление скорости свободного падения тела. Меню
Урок 21. Подпрограммы. Функции на языке Паскаль
10 Вычисление функции program f1; var n,x: real; function fun(a:real):real; var y:real; begin y:=sqrt(a)+a; fun:=y; end; Назад begin write(‘n=’); readln(n); x:=fun(n); writeln(‘x=’,x:3:5); readln; end.
11 Вычисление скорости свободного падения тела. program f2; var t,v: real; function fun(t:real):real; begin fun:=9.8*t; end; begin write(‘t=’); readln(t); v:=fun(t); writeln(‘v=’,v:3:5); readln; end.
12 Вычисление n-й степени числа. program f2; var n: integer; z,x: real; function step(a:integer;x:real):real; var y:real; i:integer; begin y:=1; for i:=1 to a do begin y:=y*x; step:=y; end; end; begin write(степень=’); readln(n); write(‘x=’); readln(x); z:=step(n,x); writeln(‘z=’,z:3:5); readln; end. Назад
13 Задания: 1. Р Рассчитать значение х= Меню 4.Написать программу свободного падения. выводящую таблицу скорости за первые 10 секунд с шагом 0,5 секунд 3. Даны шесть различных чисел. Определить максимальное из них. 2. Рассчитать значение х= 14 Диктант по теме: «Функции в Паскале» 1. Какую подпрограмму можно назвать функцией? 2. Объясните назначение локальных и глобальных переменных.
3. Что такое указатель? 4. Перечислите группы функций. 5. Каким образом происходит обращение к функции? меню
15 Задания для самостоятельной работы 1. Составить программу для вычисления суммы членов геометрической прогрессии. 2. Даны стороны двух треугольников. Найти сумму их периметров и сумму их площадей. 3. Даны координаты точек прямоугольника. Определить, является ли он квадратом, ромбом, трапецией или параллелограммом, и вычислить, исходя из этого, площадь фигуры. 4. Найти все простые числа из заданного интервала натуральных чисел [N1, N2]. меню
16 Вычисление функции program f1; uses Crt; var n,x,s: real; i:integer; function fun(a:real):real; var y:real; begin y:=sqrt(a)+a; fun:=y; end; Назад begin s:=0; for i:=1 to 3 do begin write(‘n=’); readln(n); x:=fun(n)/2; s:=s+x; end; writeln(s=’,s:3:5); readln; end. ФУНКЦИяФУНКЦИя
17 Вычисление функции program f1; uses Crt; var n,x: real; i:integer; function fun(a:real):real; var y:real; begin y:=a+sin(a); fun:=y; end; Назад begin s:=0; for i:=1 to 3 do begin write(‘n=’); readln(n); x:=fun(n)/3; s:=s+x; end; writeln(s=’,s:3:5); readln; end. ФУНКЦИяФУНКЦИя
18 Составить таблицу скорости свободного падения тела за первые 10 секунд с шагом 0,5 секунд Назад program f2; var t,v: real; n:integer; function fun(t:real):real; begin fun:=9.8*t; end; begin n:=1; while n
19 Ответы на диктант «Функции в Паскале» 1. Это последовательность операторов, имеющая имя и результат. 2. Глобальные переменные — переменные, объявленные в основной программе, доступны всем операторам программы, а так же операторам процедур и функций. Локальные переменные — переменные, объявленные в процедуре или функции. Они доступны только операторам процедур или функций.
3. Это имя функции. 4. Стандартные, функции программиста библиотечные. 5. В основной программе указывается имя функции и аргумент
20 Процедура – это независимая именованная часть программы, которую можно вызвать по имени для выполнения определенных действий.
21 Структура процедуры: procedure (список формальных параметров); const type var begin ; end; Вызов процедуры – это упоминание ее имени в тексте основной программы.
22 PROGRAM PRIMER; VAR A,B,S: REAL; PROCEDURE SUMMA (X,Y:REAL; VAR S:REAL); BEGIN S:=X+Y; END; BEGIN WRITELN(‘A=B=’); READLN(A,B); SUMMA(A,B,S); WRITELN(‘S=’,S, ‘ ‘,A, ‘ ‘, B); END.
Источник: www.myshared.ru
Описание подпрограммы располагается между разделом var и программным блоком главной программы
Запись вспомогательных алгоритмов на языке Паскаль
Запись вспомогательных алгоритмов в языках программирования осуществляется с помощью подпрограмм. В Паскале подпрограмма является частью основной программы. Её описание располагается между разделом var и программным блоком главной программы. Если подпрограмм несколько, то их описания располагаются в произвольном порядке одно за другим.
Структура описания подпрограммы аналогична структуре главной программы. Описание подпрограммы начинается с заголовка и заканчивается оператором end.
В Паскале различают два вида подпрограмм: процедуры и функции.
Процедура — подпрограмма, имеющая произвольное количество входных и выходных данных.
Описание процедуры имеет вид:
В заголовке процедуры после её имени приводится перечень формальных параметров и их типов. Входные параметры, значения которых не изменяются в программе, должны быть параметрами-значениями. Выходные (результирующие) параметры должны быть параметрами-переменными.
Для вызова процедуры достаточно указать её имя со списком фактических параметров. В качестве параметров-значений можно указывать имена переменных, константы и выражения.
Например, заголовок процедуры вычисления наибольшего общего делителя может быть описан так:
Procedure nod (a, b: integer; var с : integer);
Возможны следующие варианты вызова этой процедуры:
nod (36, 15, z) — в качестве параметров-значений использованы константы;
nod (х, у, z) — в качестве параметров-значений использованы имена переменных;
nod (х+у, 15, z) — в качестве параметров-значений использованы выражение и константа.
В любом случае между фактическими и формальными параметрами должно быть полное соответствие по количеству, порядку следования и типу.
Пример 1 . Напишем процедуру для нахождения наибольшего общего делителя двух чисел с помощью алгоритма Евклида. Используем её для нахождения наибольшего общего делителя следующих шести чисел: 16, 32, 40, 64, 80 и 128.
Измените программу так, чтобы с её помощью можно было найти:
а) наибольший общий делитель следующих пяти чисел: 12, 24, 30, 48 и 51;
б) наибольший общий делитель произвольных десяти целых двузначных чисел.
Описание функции имеет вид:
В заголовке функции после её имени приводится описание входных данных — указывается перечень формальных параметров и их типов. Там же указывается тип самой функции, т. е. тип результата.
Функция — подпрограмма, имеющая единственный результат, записываемый в ячейку памяти, имя которой совпадает с именем функции. Поэтому в блоке функции обязательно должен присутствовать оператор : =.
Для вызова функции достаточно указать её имя со списком фактических параметров в любом выражении, в условиях (после слов if, while, until) или в операторе write главной программы.
Пример 2 . Напишем программу нахождения максимального из четырёх целых чисел, использующую функцию поиска максимального из двух чисел:
Измените программу так, чтобы с её помощью можно было найти:
а) максимальное из чисел а, b, с;
б) максимальное из чисел b, с, d;
в) минимальное из четырёх чисел;
г) разность максимального и минимального из четырёх чисел.
Пример 3 . В январе Саше подарили пару новорождённых кроликов. Через два месяца они дали первый приплод — новую пару кроликов, а затем давали приплод по паре кроликов каждый месяц. Каждая новая пара также даёт первый приплод (пару кроликов) через два месяца, а затем — по паре кроликов каждый месяц. Сколько пар кроликов будет у Саши в декабре?
Составим математическую модель этой задачи. Обозначим через f(n) количество пар кроликов в месяце с номером n. По условию задачи, f(1) = 1, f(2) = 1, f(3) = 2. Из двух пар, имеющихся в марте, дать приплод в апреле сможет только одна: f(4) = 3. Из пар, имеющихся в апреле, дать приплод в мае смогут только пары, родившиеся в марте и ранее: f(5) = f(4) + f(3) = 3 + 2 = 5. В общем случае: f(n) = f(n — 1) + f(n — 2), n ≥ 3.
Числа 1, 1, 2, 3, 5, 8. образуют так называемую последовательность Фибоначчи, названную в честь итальянского математика, впервые решившего соответствующую задачу ещё в начале XIII века.
Оформим в виде функции вычисление члена последовательности Фибоначчи.
Полученная функция — рекурсивная; в ней реализован способ вычисления очередного значения функции через вычисление её предшествующих значений.
Напишите программу, вычисляющую и выводящую 10 первых членов последовательности Фибоначи.
Источник: skobelevserg.jimdofree.com
Презентация, доклад к уроку Функции: способы организации и описание. Вызов функций
Слайд 4Тема урока:
Функции: способы организации и описание. Вызов функций
Слайд 5Цели урока:
сформировать знания и умения по данной теме;
научиться применять подпрограммы-функции
в решении задач на языке Паскаль.
Слайд 6Вопросы:
1. Что такое подпрограмма?
Подпрограмма – это специальным образом оформленный алгоритм, который
может многократно использоваться при решении более общей задачи
Слайд 72. Какие задачи решают подпрограммы?
Избавляют от необходимости многократно повторять в тексте
программы аналогичные фрагменты;
Улучшают структуру программы, облегчая ее понимание;
Повышают устойчивость к ошибкам программирования и непредвиденным последствиям при модификациях программы
Слайд 83. Где в программе описывается подпрограмма?
Описание подпрограммы располагается между разделом Var
главной программы и ее программным блоком (первым begin).
Подпрограмм может быть несколько, их описания располагаются в произвольном порядке одно за другим.
Слайд 94. Назовите виды подпрограмм
процедуры и функции
Слайд 105. Как описываются процедуры на языке Паскаль?
Procedure Имя (формальные параметры);
описание переменных; begin
инструкции;
end;
Слайд 116. Какие параметры называются «формальные» и какие — «фактические»?
Фактические параметры —
находятся в главной программе и указываются при вызове подпрограммы;
формальные параметры – находятся в подпрограмме и указываются при ее описании
Слайд 127. Как выполнить вызов процедуры в программе?
Имя (фактические параметры);
Слайд 138. Какие переменные называются глобальными, а какие локальными переменными?
Глобальные переменные —
это переменные, описанные в основной программе;
Локальные переменные- это переменные, описанные в подпрограмме
Слайд 14Иннокентий Смоктуновский
Андрей Панин
Слайд 15процедура или функция?
__________ MaxNum(a,b:integer):integer;
var
max: integer;
begin
if a>b
then max:=a else max:=b;
MaxNum:=max;
end;
Слайд 16процедура или функция?
________ MaxNum(a,b:integer; var
max:integer);
begin
if a>b then max:=a else max:=b;
end;
Слайд 17процедура или функция?
________Add(x,y: integer):integer;
begin
Add:=x+y;
end;
Слайд 18Решение задач
Задача 1. Написать программу нахождения суммы максимального и минимального элемента
целочисленного массива, используя подпрограмму-функцию нахождения максимального и минимального элемента.
Слайд 19…
type
tArr=array[1..100] of integer;
var
MasA:tArr;
i,n:byte;
sum:integer;
Слайд 20function MaxEl(Mas:tArr;n:byte):integer;
var m:integer;
begin
m:=Mas[1];
for i:=2 to n do
if m
Слайд 21 function MinEl(Mas:tArr;n:byte):integer;
var m:integer;
begin
m:=Mas[1];
for i:=2 to n do
if m>Mas[i] then m:=Mas[i];
MinEl:=m;
end;
Слайд 22Begin randomize;
writeln(‘Vvedite n’); readln(n);
for i:=1 to n
do MasA[i]:=random(10)-3;
sum:=MaxEl(MasA,n)+MinEl(MasA,n);
writeln(‘Elementi massiva: ‘);
for i:=1 to n do write(MasA[i],’ ‘);
writeln; writeln(‘Summa = ‘,sum);
readln; end.
Слайд 23Анализ программы
Назовите глобальные и локальные переменные.
Назовите фактические и формальные параметры.
Как в
основной программе осуществляется обращение к подпрограмме?
Слайд 24Задача 2. Найти наибольшее число из 4 заданных чисел.
Слайд 25var a,b,c,d,n:integer;
function MaxNum(x,y:integer):integer;
var max:integer;
begin
if x>y then max:=x else max:=y;
MaxNum:=max;
end;
begin
writeln(‘Vvedite a,b,c,d’); readln(a,b,c,d);
n:=MaxNum(MaxNum(a,b),MaxNum(c,d));
writeln(‘Maksimalnoe chislo = ‘,n);
readln;
end.
Слайд 26Задача 3. Составить программу вычисления площади кольца по значениям внутреннего и
внешнего радиусов, используя подпрограмму вычисления площади круга.
Слайд 27program Project1;
uses SysUtils;
var R1,R2,Pl:real;
function Pl_kr(r:real):real;
begin
Pl_kr:=3.14*sqr(r);
end;
begin
writeln(‘Vvedite vneshniy radius’); readln(R1);
writeln(‘Vvedite vnutrenniy radius’); readln(R2);
Pl:=Pl_kr(R1)-Pl_kr(R2);
writeln(‘Ploschad koltsa = ‘,Pl:6:2);
readln;
end.
Слайд 28Рефлексия
Что такое подпрограмма-функция в Pascal?
Где объявляется в основной программе подпрограмма-функция?
Как объявляется подпрограмма-функция?
Как
вызывается в основной программе подпрограмма- функция?
Слайд 29Завершите фразу:
Сегодня я узнал(а)…
Было интересно…
Было трудно…
Я понял(а), что…
Теперь я могу…
Я почувствовал(а),
что…
Я приобрел(а)…
Я научился(ась)…
У меня получилось …
Я смог(ла)…
Меня удивило…
Мне захотелось…
Слайд 30Домашнее задание
1) Выучить тему сегодняшнего урока.
2) Выполнить задачу. По координатам
вершин треугольника вычислить его периметр и площадь, используя подпрограмму-функцию вычисления длины отрезка, соединяющего две точки.
Источник: shareslide.ru