1. 1. Повторение основных понятий и определений из курсаматематики, на которых
будет построена работа учащихсяна уроке.
Дайте определение функции
Продолжитезапись n!= …
Запишите формулу вычисления числа сочетаний из «n» по
«m»
Запишите формулу Герона
2. Используя возможности интерактивной доски учащиесясобирают блок-
схему, отображающуюпроцесс решениязадачи с использованием компьютера
3. Анализ текстов программ (учащиесяработают в группах )
2. {Преобразованиецелого числа в строку восьмеричного представления}
ProcedureOctString(Nmb: integer; var S: string);
{Заголовок процедуры со списком формальныхпараметров;
nmb- исходноецелое число;
S- строка для записи результатовпреобразования }
Var
P: integer;{объявление локальнойпеременной P}
Begin
P:= Abs(Nmb);
S:= ‘’;{пустая строка}
Repeat
S:= chr (p mod 8) +s;
P:=p div 8;
Until p=0;
If nmb<0 then
S:=’-’ + s;
End;
Begin
Writeln(‘введите число’);
Readln(InpNmb);
OctString(InpNmb,RezultString);
RezultString:= ‘Число ’+ str(InpNmb)+’ в восьмеричнойс.с. равно’+ RezultString;
End.
3. 4. Используя электронный плакат учащиесяповторяют различные способы
представленияалгоритма
5. Учащимсяпредлагается рассмотретьиллюстрации и сделать вывод о том что их
объединяет
4. 6. Ввести понятие рекурсии и рассмотретьна примере
Программадолжна прочитать n и найти n!
(Требуется рекурсивныйалгоритм)
Решение: n! = n*(n - 1)! ; 0! = 1
Программабудет раскладывать n! на n*(n - 1)! до тех пор, пока n не
танет равно нулю, тогда по заданному равенству 0! = 1, обратно умножит на «отделенные»
множители и выведет результат.
Например: 5! = 5*(5-1)! = 5*4! = 5*4*3!
= 5*4*3*2! = 5*4*3*2*1! = = 5*4*3*2*1*0! = 5*4*3*2*1*1 = 5*4*3*2*1 =
5*4*3*2 = 5*4*6 = 5*24 = 120
Программа:
var
n: byte;
function Fact (n: byte): longint;
begin
if n=0 then Fact := 1
else Fact := n*Fact(n-1);
end;
begin
readln(n);
writeln(Factorial(n));
end.
5. 7. Требуетсянаписать программу, котораяпо заданному n находила бы n-ный
член последовательности Фибоначчи(работа в группах при распределении
ролей:постановказадачи, написаниеосновной программы и рекурсивной
функции с использованием различныхтиповциклов)
Рекурсивный алгоритмбудет опираться на правила:
Fib(n)= Fib(n-1)+Fib(n-2)
Fib(0)=0
Fib(1)=1
6. program fib;
var
n: byte;
(* Функция нахождения n-го числа Фибоначчи*)
function Fibona44i (n: byte): longint;
begin
if (n=0) then Fibona44i := 0
else if (n<3) then Fibona44i := 1
else
{ рекурсивныйвызов }
Fibona44i := Fibona44i(n-1)+Fibona44i(n-2);
end;
begin
write('Введите n'); readln(n);
writeln('Fib(',n,') = ',Fibona44i(n));
readln;
end.
8. Анализ термина recursio — «возвращение»
В некийдень
один поэтс мозгами набекрень
поэмусел писать,начавши: «В некийдень
один поэтс мозгами набекрень
поэмусел писать,начавши: «В некийдень
7. 9. Выводы урока
Модульный подход к построению проекта и
программного кода
При построении проекта и написании программного кода программисты
стараются не просто решить саму поставленную перед ними задачу, но и
найти эффективное решение,
сократить время на решение задачи,
облегчить в будущем чтение программного кода.
Появление в программировании аппарата подпрограмм помогло решать
программистам эти вспомогательные задачи.
Структурно программа разбивается на более короткие подпрограммы.
Программа делится на отдельные модули, что повышает удобство ее отладки,
внесения модификаций и локализации ошибок. При таком подходе программа
пишется в терминах вызова подпрограмм верхнего уровня, которые
реализуются при помощи подпрограмм более низкого уровня, и т.д.
На основе нисходящего структурного программирования – программирования
по технологии «сверху вниз» – была разработана технология коллективной
разработки больших программных комплексов.
В языках программирования для выделения отдельных модулей в
подпрограммы используются процедуры и функции, работать с которыми
просто и удобно.
10. Домашнее задание
Подсчитать сумму ряда 11
+ 22
+ 33
+ …nn.
Для решения этой задачи удобно использовать функцию вычисления степени
числа.