УТВЕРЖДАЮ
Зам. директора по УР
___________ Бисалиева Ж. Е.
/___/___/2020 г.
МЕТОДИЧЕСКАЯ РАЗРАБОТКА ОТКРЫТОГО УРОКА
по дисциплине
«Основы алгоритмизации и программирования»
на тему
«Подпрограммы-процедуры»
в группе №22, 2 курс, специальность «Техник-программист»
Дата проведения: /___/___/2020 г.
Тип урока: комбинированный.
Средства обучения:
- раздаточный материал (блан опорного конспекта);
- слайд-лекция;
- проектор; доска
Цель урока:
· дать учащимся представление о подпрограммах и возможностях их использования;
· показать на примерах механизм реализации подпрограмм с помощью процедур.
Задачи:
· Образовательные:
o Ознакомить с понятием подпрограммы
o формировать умение применять полученные знания в процессе создания и отладки программ
o изучить принципы описания и использования подпрограмм
o ознакомить с параметрами подпрограмм
· Развивающие:
o развивать внимание, наблюдательность, память, логическое мышление
o развивать умение анализировать и систематизировать необходимый для работы материал
o развивать навыки принимать решения самостоятельно
· Воспитательные:
o воспитывать культуру поведения, иметь свой взгляд на способ решения поставленной задачи, уметь выслушивать противоположную точку зрения
o воспитывать умение рациональной организации учебного материала
После изучения темы учащиеся должны:
o Знать:
Виды подпрограмм в Паскале. Способы записи процедур и функций. Механизм передачи параметров межу подпрограммой и основной программой.
o Уметь:
Разрабатывать вспомогательные алгоритмы. Оформлять подпрограммы в виде процедур и функций.
План:
– Повторение материала.
– Изучение нового материала.
– Закрепление и Итог урока.
– Домашнее задание.
ХОД УРОКА:
I. Организационный момент:
– приветствие;
– отметка отсутствующих;
– ознакомление с темой урока.
Введение:
Тема нашего сегодняшнего урока Подпрограммы-процедуры. Считается, что это одна из самых сложных для освоения тем при изучении основ программирования, но и она же одна из тем, которые значительно облегчают работу программистов, освоивших ее. Сегодня мы с вами в ходе урока должны получить ответы на следующие вопросы:
1. Что такое подпрограмма?
2. Какие преимущества она даёт?
3. Когда ее удобно использовать??
4. Назначение локальных и глобальных переменных.
5. Как происходит обмен данными с процедурой?
6. Какие бывают параметры?
7. Чем отличаются формальные и фактические параметры?
II.Повторение пройденного материала:
А) Выполнение заданий:
1. Установите соответствие между служебными словами и названиями разделов программы.
1) Var 2) Program 3) Uses 4) Begin … end |
1) Раздел операторов 2) Раздел имени программы 3) Раздел описания переменных 4) Раздел описания библиотечных модулей |
2. Расставьте строки программы в правильном порядке, чтобы получилась программа, которая находит решение уравнения x=b/a.
1) writeln(‘решения нет’) |
|
2) a,x,b:real; |
|
3) if |
|
4) writeln(‘x=’,b/a); |
|
5) a<>0 |
|
6) begin |
|
7) then |
|
8) readln(a,b) |
|
9) end. |
|
10) else |
|
3. Исправьте ошибки в следующем фрагменте программы:
a) Var I, k:real; S:real; Begin K=81; S:=4 For i=1 to k S=s/2 End. |
б) Var a:real; Begin s=10; s:=s+2 for s:1 to 10 do writeln s end. |
4. Выполните трассировку (пошаговое выполнение алгоритма вручную). Определите значение переменной Х после выполнения фрагмента программы.
X:=10; For I:=1 to 5 do Begin Writeln (I,X); X:=X-2; End;
X ____________
|
I |
X |
|
|
5. Заполните таблицу:
x |
y |
a |
19 |
10 |
|
6 |
44 |
|
100 |
49 |
|
55 |
22 |
|
Program Primer;
Var a, x, y:integer;
Begin
Read(x,y);
If (x+y>50) or (y>100) Then
A:=x+y
Else
A:=2*x+y;
Write(a);
End.
Б) Актуализация знаний
Фронтальный опрос, индивидуальная работа: заполнение опорного конспекта урока.
И прежде, чем приступить к изучению новой темы, нам необходимо повторить некоторые вопросы, пройденные ранее и которые понадобятся нам сегодня для лучшего усвоения и понимания темы подпрограммы – процедуры:
1. Основные этапы развития языков программирования.
2. Структура программы на языке Object Pascal/Delphi.
3. Основные типы данных языка Object Pascal/Delphi.
4. Понятие переменной в языке Object Pascal/Delphi.
III.Объяснение нового материала:
Установка. Очень часто в жизни человеку нужно решить жизненно важную задачу, которая состоит из нескольких этапов. Например, сборка автомобиля на конвейере завода. Из цеха завода не сразу выходит готовый автомобиль. Весь процесс сборки автомобиля на заводе разбивают на этапы, причем для рабочих разных специальностей: от сборщиков салона автомобиля до специалистов, отвечающих за покраску кузова, существуют временные рамки и точный, поэтапный план сборки. Например, в машине не может быть собран салон, если кузов еще не покрашен. В данном примере рабочие завода рационально разбили сложную задачу сборки автомобиля на более простые подзадачи, которые решают специалисты конкретной области (маляры, операторы покрасочных камер, мотористы и т. д.). Результатом слаженной, прописанной поэтапно и распределенной по времени работы будет готовый автомобиль.
Программисты также сталкиваются со сложными задачами, и код, который им предстоит написать, иногда состоит из нескольких десятков строк. Чтобы не запутаться в своем же коде и для удобства отладки программы и поиска ошибок они также разбивают программу на более мелкие части – подпрограммы.
Начальное знание. Процедура – это алгоритм, который целиком используется при составлении другого алгоритма. Процедура, возвращающая некоторое конечное значение, называется функцией. Структура процедуры повторяет структуру программы, она также представлена заголовком и телом.
Процедура – это подпрограмма, не возвращающая никакого значения.
Функция – это подпрограмма, возвращающая некоторое значение.
Технология разбиения программы на подпрограммы называется технологией нисходящего или структурного программирования, то есть программа выполняется «сверху вниз». Структурное программирование делает программу более понятной. Ее легче отлаживать и сопровождать.
Проблема для исследования: как написать алгоритм, включающий в себя подпрограмму, на компьютере?
Вопросы для решения проблемы исследования:
1. Когда удобно использовать подпрограммы?
2. Какие преимущества дает применение подпрограмм?
Определение. Подпрограмма – это отдельная функционально независимая часть программы. Любая подпрограмма обладает той же структурой, которой обладает и вся программа.
Очень важно понимать, что в подпрограммы выделяется любой законченный фрагмент программы. В качестве ориентиров можно привести следующие рекомендации.
1. Когда Вы несколько раз перепишите в программе одни и те же последовательности команд, необходимость введения подпрограммы приобретает характер острой внутренней потребности.
2. Иногда слишком много мелочей закрывают главное. Полезно убрать в подпрограмму подробности, заслоняющие смысл основной программы.
3. Полезно разбить длинную программу на составные части – просто как книгу разбивают на главы. При этом основная программа становится похожей на оглавление.
4. Бывают сложные частные алгоритмы. Полезно отладить их отдельно в небольших тестирующих программах. Включение программ с отлаженными алгоритмами в основную программу будет легким, если они оформлены как подпрограммы.
5. Все, что Вы сделали хорошо в одной программе, Вам захочется перенести в новые. Для повторного использования таких частей лучше сразу выделять в программе полезные алгоритмы в отдельные подпрограммы.
Подпрограммы решают три важные задачи:
• избавляют от необходимости многократно повторять в тексте программы аналогичные фрагменты;
• улучшают структуру программы, облегчая ее понимание;
• повышают устойчивость к ошибкам программирования и непредвидимым последствиям при модификациях программы.
Подпрограммы могут быть стандартными, т.е. определенными системой, и собственными, т.е. определенными программистом. (привести примеры встроенных подпрограмм).
Структура процедуры имеет следующий вид:
Procedure <имя процедуры>(формальные параметры : их тип);
Var
(локальные переменные)
begin
. . .
end;
Процедура вызывается по имени:
<имя процедуры> (фактические параметры);
Значение каждого фактического параметра при вызове процедуры передаётся формальному параметру. Временно управление передаётся процедуре. После завершения работы процедуры управление возвращается в основную программу.
Каждый формальный параметр указывается вместе со своим типом. Соответствующий ему фактический параметр указывается без типа. Между формальными и фактическими параметрами должно быть соответствие по количеству параметров, по их типу и порядку следования.
Заголовок процедуры может выглядеть так:
PROCEDURE GG(a,b,c:integer); вызываться так: GG(3,n,m)
Здесь a,b,c–формальные параметры, а 3, n, m–фактические параметры
Таким образом в процедуру передаются значения: a=3, b=n, c=m
Переменные описанные в процедуре после слова Var, являются внутренними переменными процедуры или промежуточными, они не являются данными для операций внутри процедуры и не являются результатом её выполнения, а нужны лишь для промежуточных действий. Данные и результаты описываются в круглых скобках после имени процедуры. Перед описанием переменных–результатов пишут служебное слово var.
Например :
Procedure express(a,b,c : real; var x,y:real);
Var
z : real;
begin
z:=a+ b+ c;
x:=sqr(z);
y:=sqrt(z);
end ;
Эту процедуру можно вызвать следующим образом:
express(7.6, 6.8, 9.5, x1, x2);
Формальные входные параметры a, b, c принимают значения соответствующих фактических параметров a=7.6; b=6.8; c=9.5.
При этих значениях выполняется процедура. Результатом выполнения процедуры являются x, y, которые передают свои значения соответствующим фактическим параметрам x1, y1. Таким образом в основной программе будем иметь x1=20, y1=22.
В качестве фактических параметров могут быть константы, переменные, выражения, массивы. В качестве формальных параметров могут быть только переменные(константы и выражения недопустимы).
IV. Закрепление:
Контрольные вопросы по теме «Процедуры»
ü Дайте определение вспомогательного алгоритма.
ü Обоснуйте необходимость применения подпрограмм.
ü Опишите структуру процедуры.
ü Дайте определения понятиям: глобальные переменные, локальные переменные.
ü Дайте определения понятиям: формальные значения, фактические значения.
ü Опишите механизм передачи параметров из основной программы в подпрограмму и наоборот.
4. Процедура имеет заголовок: Procedure TTT(a,b:integer; VAR s:real);
Правильный вызов процедуры:
TTT(3,5,7)
TTT(3,5,X)
TTT(3,4.5,X)
Какое определение верно, либо ложно:
1.Вложение подпрограмм не допускается. |
|
2.После раздела описаний процедуры следует ее тело, содержащее последовательность операторов, заключенных в операторные скобки. |
|
3.Передача информации из тела программы в процедуру осуществляется с помощью механизма параметров. |
|
4.Имена, объявленные в основной программе, доступны во всех описанных в ней подпрограммах. |
|
5. Параметр-значение просто передает некоторое значение в подпрограмму. |
|
6. Передача значений из процедуры в программу осуществляется с помощью параметров-переменных. |
|
4. Напишите, что выведет на экран следующая программа:
Program V1_Z1;
Var A,B: Integer;
Procedure F1 (X,Y:Integer);
Begin
Y:=2*X+3;
End;
Procedure F2 (Var X,Y:Integer);
Begin
Y:=3*X+1;
End;
Begin
A:=1;
B:=3;
F1(A,B);
WriteLn('A=',A,'B=',B);
F2(A,B);
WriteLn('A=',A,'B=',B);
End. Ответ: (а=1, б=3; а=1, б=4)
2. Напишите, что выведет на экран следующая программа:
Program V2_Z1;
Var A,B:Integer;
Procedure F1(Var X,Y:Integer);
Begin
Y:=SQR(X);
X:=SQR(X)+X;
End;
Procedure F2(Var X:Integer; Y:Integer);
Begin
Y:=SQR(X);
X:=SQR(X)+X;
End;
Begin
A:=1;B:=3;
F1(A,B); WriteLn('A=',A,'B=',B);
F2(A,B); WriteLn('A=',A,'B=',B);
End. Ответ: (а=2, б=1; а=6, б=1)
V. Итоги урока и домашнее задание:
Подведение итогов урока. Выставление оценок за работу на уроке. Разбор типичных трудностей возникших при освоении темы.
Домашнее задание:
1. Задача.
Треугольник задан координатами вершин, вычислить периметр, площадь. Вычисление длин сторон оформить с помощью процедуры.
Объяснение:
– чтобы подсчитать длину одной стороны необходимо 4 числа
–
формула для подсчёта длины: A =
Какая функция в Паскале означает корень квадратный?
– SQRT означает возведение в квадрат – SQR
– периметр находим по формуле Р = A + B + C
–
формула для нахождения площади: S =
– сколько раз будем обращаться к процедуре? – 3 раза
2. Составить опорный конспект по теме Подпрограмма-функция.
© ООО «Знанио»
С вами с 2009 года.