43-44 урок, 10 класс – практика
Учитель: Брух Т.В.
Дата: ___________
Тема урока: «Контрольная работа «Циклы».
Логические функции на языке Паскаль»
Цели урока:
образовательная
сформировать у учащихся единую систему понятий, связанных с понятиями процедуры и функции; научить применять подпрограммы в решении задач на Паскале, а также научить понимать какой вид подпрограммы, необходим при решении определенной задачи; показать основные приемы использования подпрограмм;
воспитательная
воспитать аккуратность, внимание, организованность; культура вычислительных навыков;
развивающая
развить логическое мышление, алгоритмической культуры учащихся; развить знания и умения составлять и отлаживать подпрограммы на языке Паскаль, знать правила записи процедур без параметров и с параметрами; знать правила записи функций; уметь применять процедуры и функции при решении простых задач.
Ход урока
Организационный этап
Подготовка учащихся к работе на уроке
Проверка домашнего задания
Контрольная работа «Циклы»
Смотри приложение
Объяснение нового материала – Логические функции в Паскаль
В языке программирования Паскаль есть два вида подпрограмм:
Procedure– процедура
Function- функция.
Подпрограмма в Паскаль является отдельной независимой частью программы, которая обладает той же структурой, что и основная программа. Таким образом, подпрограмма имеет заголовок, разделы описания переменных, констант, процедур, функций и т.д.
Использование подпрограмм обусловлено несколькими причинами, среди которых:
Улучшение структуры программы, что облегчает ее понимание.
Отсутствие необходимости повторять в программе многие фрагменты.
Избавление от многих ошибок, которые мог бы допустить программист.
Основными подпрограммами в Паскаль являются процедуры и функции.
Разделяют стандартные подпрограммы и пользовательские. Стандартные подпрограммы включены в язык Pascal (например, процедура clrscr, которая очищает экран, или функция cos, которая возвращает в качестве своего значения косинус числа). Пользовательские подпрограммы пишутся программистом как отдельная мини-программа, которая присоединяется к основной программе.
Для объединения программы и подпрограммы используется 2 метода:
Текст подпрограммы записывается в основной программе в соответствующем разделе (для процедур этот раздел называется Procedure, для функций – Function).
Текст подпрограммы записывается в отдельном файле (модуле), а затем подключается к основной программе.
Первый способ применяется, в том случае, если программа не очень большая, а подпрограмма не будет использоваться в других программах. Если же вы планируете использовать подпрограмму в других программах необходимо использовать 2-й способ.
Как уже было сказано, подпрограмма обладает той же структурой что и основная программа. Здесь следует лишь запомнить, что подпрограмма имеет заголовок, который должен отличаться от заголовка основной программы. Кроме того, подпрограмма заканчивается не точкой, а точкой с запятой.
Подпрограмма начинает работать после вызова ее из основной программы. Вызов происходит путем указания в программе заголовка подпрограммы. При этом действие основной программы приостанавливается, и начинает работать подпрограмма. После выполнения всех операторов подпрограммы управление передается основной программе.
Любая подпрограмма должна быть описана до того как она будет использована в программе. Переменные, которые используются подпрограммой, бывают 2-х видов:
Локальные переменные описываются в разделе Var подпрограммы и могут использоваться только этой подпрограммой.
Глобальные переменные описываются в разделе Var основной программы и могут использоваться как основной программой, так и подпрограммой, за исключением тех случаев, когда имена глобальных и локальных переменных совпадают. В этом случае подпрограмма будет использовать локальные переменные.
Для локальных переменных выделяется память в специальной области, которая называется стеком. После выполнения подпрограммы память освобождается, и результаты ее выполнения исчезают.
Как уже было сказано существует 2 вида подпрограмм, процедуры и функции. Основное отличие их друг от друга в том, что процедура выполняет какие-либо действия и не возвращает результатов этих действий. Функция, после выполнения каких-либо действий, возвращает результат. Например, процедура CLRSCR очищает экран, а функция ABS (-2) подсчитывает модуль числа -2 и возвращает в качестве значения число 2.
Описание процедуры имеет вид:
procedure имя (список формальных параметров);
описания констант и переменных
begin
операторы
end;
Описание функции имеет вид:
function имя (список формальных параметров): тип возвращаемого значения;
описания констант и переменных
begin
операторы
end;
5. Практическая работа
1. Составьте программу, получения изображения, в котором в первой строке 1 звездочка, во второй — 2, в третьей -3, …, в строке с номером m — m звездочек.
program z2;
var m, i,k: integer;
procedure pr (n:integer);
var i : integer ;
begin
for i :=1 to n do write ('*'); writeln;
end;
begin
readln(m);
for i:=1 to m do
pr(i);
end.
2. В языке программирования Паскаль нет функции возведения в степень. Написать процедуру для нахождения степени числа и вычислить значение выражения: х5 + х4 +х8.
program z4;
var x,s,sum:real; n:integer;
procedure st(x:real; n:integer; var s:real);
var i:integer;
begin
s:=1;
for i:=1 to n do
s:=s*x;
end;
begin
readln(x);
st(x,5,s); sum:=s;
st(x,4,s); sum:=sum+s;
st(x,8,s); sum:=sum+s;
writeln(sum:15:2);
end.
3. Написать программу описывающей и использующей функцию, которая вычисляет и возвращает сумму двух целых чисел:
| Var a, b, c: integer; function sum(x, y: integer): integer; begin result := x + y; end; begin readln(a, b); writeln(sum(a, b)); end. |
4. Напишите функцию, которая не принимает аргументов и возвращает число 55
function f1():integer; begin result := 55; end; begin writeln('f1() vernula:', f1()); readln(); end. |
5. Напишите функцию, которая принимает два аргумента: первый целого типа, а второй вещественного, и возвращает разницу между их произведением и их суммой.
var m: integer; z : real; function f2(a: integer; b: real): real; var h: real; begin h := a*b - (a+b); result := h; end; begin m := 2; z := 4.5; z := f2(m, z); writeln('z=', z); readln(); end. |
6. Напишите функцию, которая возвращает сумму трёх целых чисел.
7. Напишите процедуру, которая принимает переменную целого типа по ссылке, просит пользователя ввести значение в консоли и инициализирует переменную этим значением
6. Подведение итогов. Домашнее задание
Даны два предложения. Подсчитать общее количество букв Н в них (определить функцию для расчета количества букв Н в предложении).
var
s1,s2: string;
n1,n2: integer;
c: char;
function LiteraCount(str: string; ch: char): Integer;
var
i, n: integer;
begin
n:=0;
for i:= 1 to Length(str) do
if str[i] = ch then n:= n + 1;
LiteraCount := n;
end;
begin
Writeln('Vvedite bukvu:'); Readln(c);
Writeln('Vvedite stroku 1:'); Readln(s1);
n1:=LiteraCount(s1,c);
Writeln('Vvedite stroku 2:'); Readln(s2);
n2:=LiteraCount(s2,c);
Writeln(n1+n2);
Readln;
end.