Партнерка на США и Канаду по недвижимости, выплаты в крипто
- 30% recurring commission
- Выплаты в USDT
- Вывод каждую неделю
- Комиссия до 5 лет за каждого referral
Урок 32. Тема урока: Метод пошаговой детализации (1 час).
Цель урока: систематизация знаний и навыков по применению технологии программирования – метода пошаговой детализации, разработке подпрограмм.
Примерный ход урока: Данный урок можно рассматривать как некоторое резюме по технологии процедурного программирования, так как при решении задач с подпрограммами пользовались именно методом пошаговой детализации. Обсудите с учащимися особенности разработки достаточно сложного программного обеспечения, необходимость разбиения задачи на подзадачи, возможность (или даже необходимость) решения этих подзадач разными исполнителями, требования к таким решениям.
В качестве примера можно разобрать пример, представленный в учебнике, при этом, смоделировать работу команды разработчиков программы: обсудить общий план алгоритма, составить программу, а учащимся поручить разработать тексты подпрограмм, сравнить полученные решения. Обязательно обратите внимание на необходимость и важность(!) процесса тестирования программы.
Подведите итог занятия, обсудив систему основных понятий, вопросы после параграфа.
Домашнее задание. §2.2.11, составить программу методом пошаговой детализации для задачи: Создать два одномерных массива размером N и M с помощью генератора случайных чисел. Вставить минимальный элемент первого массива после минимального элемента второго массива (если минимальных элементов несколько, то вставить после первого из них).
Урок 33. Тема урока: Решение задач методом пошаговой детализации (1 час).
Цель урока: систематизация знаний и навыков по разработке подпрограмм и применению технологии программирования – метода пошаговой детализации.
Примерный ход урока:
Разобрать домашнее задание. Выяснить, как рассуждали учащиеся при разбиении задачи на подзадачи, какие подпрограммы применили учащиеся для составления программы. Решение может быть следующим:
Program Home_Work;
Type mas=array[1..30]of integer;
var A, B:mas;
i, k,N, M:integer;
Procedure Create(var X:mas; N: integer);
var i:integer;
begin
for i:=1 to N do X[i]:=Random(100)-50;
end;
Procedure Print( X:mas; N: integer);
var i:integer;
begin
writeln('Array:');
for i:=1 to N do
write(X[i]:4);
writeln
end;
Function Nom_Min(X:mas; N: integer):integer;
var i, N_Min:integer;
begin
N_Min:=1;
for i:=2 to N do
if X[i]<X[N_Min]
Then N_Min:=i;
Nom_Min:=N_Min
end;
begin
Writeln('Введите кол-во элементов в массиве 1');
Readln(N);
Writeln('Введите кол-во элементов в массиве 2');
Readln(M);
Create(A, N);
Create(B, M);
Print(A, N);
Print(B, M);
k:=Nom_min(B, M);
{вставка минимального элемента массива А после минимального элемента массива В:}
For i:=M downto k+1 do
B[i+1]:=B[i]; {сдвинули элементы массива В вправо на 1 позицию}
B[k+1]:=A[Nom_min(A, N)]; {непосредственная вставка }
M:=M+1;
Print(B, M);
end.
Далее можно решить небольшие задачи в парах, при этом ученики должны разработать общий алгоритм, распределить обязанности по составлению подпрограмм, составить и отладить, протестировать программу. Например:
1) Создать два одномерных массива разного размера. Найти элементы, принадлежащие и первому, и второму массиву.
2) Создать два одномерных массива разного размера. Найти элементы, которые есть в первом массиве, и которых нет во втором массиве.
3) Создать два одномерных массива разного размера. Найти элементы, которые есть во втором массиве, и которых нет в первом.
4) Создать два одномерных массива разного размера. Найти максимальные значения в каждом массиве. Массив, максимальный элемент которого больше, упорядочить по убыванию.
Подведите итоги занятия, пусть учащиеся поделятся впечатлениями от работы.
Домашнее задание. Самостоятельно разобрать §2.2.12, проработать приведённые в параграфе примеры, выполнить упр. №5.


