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 z
var m, i,k: integer
procedure pr (n:integer
var i : integer
begin
for i :=1 to n do write (*
end
begin
readln(m);
for i:=1 to m do
pr(i);
end.
2. В языке программированияПаскаль нет функции возведения в степень. Написать процедуру для нахождениястепени числа и вычислить значение выражения: х5 + х4 +х8.
program z
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.
