43-44 урок, 10 класс – практика
Учитель: Брух Т.В.
Дата: ___________
Тема урока: «Контрольная работа «Циклы».
Логические функции на языке Паскаль»
Цели урока:
образовательная
сформировать у учащихся единую систему понятий, связанных с понятиями процедуры и функции; научить применять подпрограммы в решении задач на Паскале, а также научить понимать какой вид подпрограммы, необходим при решении определенной задачи; показать основные приемы использования подпрограмм;
воспитательная
воспитать аккуратность, внимание, организованность; культура вычислительных навыков;
развивающая
развить логическое мышление, алгоритмической культуры учащихся; развить знания и умения составлять и отлаживать подпрограммы на языке Паскаль, знать правила записи процедур без параметров и с параметрами; знать правила записи функций; уметь применять процедуры и функции при решении простых задач.
Ход урока
1. Организационный этап
Подготовка учащихся к работе на уроке
2. Проверка домашнего задания
3. Контрольная работа «Циклы»
Смотри приложение
4. Объяснение нового материала – Логические функции в Паскаль
В языке программирования Паскаль есть два вида подпрограмм:
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. Написать программу описывающей и использующей функцию, которая вычисляет и возвращает сумму двух целых чисел:
|
|
4. Напишите функцию, которая не принимает аргументов и возвращает число 55
|
5. Напишите функцию, которая принимает два аргумента: первый целого типа, а второй вещественного, и возвращает разницу между их произведением и их суммой.
|
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.
© ООО «Знанио»
С вами с 2009 года.